Skip to content

Conversation

@weizhouapache
Copy link
Member

@weizhouapache weizhouapache commented Jan 21, 2026

Description

This PR includes the following changes on top of CloudStack 4.22.0.0 release:

  • Support VM deployment with keyboard "Spanish Latin American Keyboard".
  • Support additional VM details for Templates from OVA on VMware.
  • Support Spanish Latin American Keyboard in NoVNC console on VMware.

Usage

  • Deploy VM with keyboard "Spanish Latin American Keyboard"

In the instance deployment wizard, choose "Spanish Latin American Keyboard” as keyboard
image

  • Support additional VM details for Templates from OVA

If a VM template is registered with “Read Instance settings from OVA” set to true, users can add additional VM details beyond those loaded from the OVA file or created by CloudStack.
These settings can be configured globally or per zone.
(1)Enable Vmware additional details from OVA (it is disabled by default).
image

(2)To support the keyboard settings, set the value of global setting “vmware.allowed.additional.details.from.ova” “ to “keyboard”
image

When VM is Stopped, users can add, update or remove settings for keyboard.
image

If the keyboard is “Spanish Latin American” inside Guest VMs, please set the keyboard to “es-latam”.

  • Support Spanish Latin American Keyboard in NoVNC console
    When user inputs the letters (upper cases and lower cases), numbers, and a list of special characters and keyboard combinations (provided by ARSAT), the correct characters should be displayed on the screen (Windows, or shell).

Please refer to https://commons.wikimedia.org/wiki/File:KB_Latin_American.svg

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • Build/CI
  • Test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

Screenshots (if appropriate):

How Has This Been Tested?

How did you try to break this feature and the system with this change?

@weizhouapache
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@weizhouapache a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@codecov
Copy link

codecov bot commented Jan 21, 2026

Codecov Report

❌ Patch coverage is 21.42857% with 22 lines in your changes missing coverage. Please review.
✅ Project coverage is 17.59%. Comparing base (71f47d6) to head (86b7ef2).
⚠️ Report is 97 commits behind head on 4.22.

Files with missing lines Patch % Lines
.../src/main/java/com/cloud/vm/UserVmManagerImpl.java 18.75% 11 Missing and 2 partials ⚠️
...apache/cloudstack/api/response/UserVmResponse.java 0.00% 6 Missing ⚠️
...ava/com/cloud/api/query/dao/UserVmJoinDaoImpl.java 33.33% 1 Missing and 1 partial ⚠️
...ain/java/com/cloud/api/query/QueryManagerImpl.java 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               4.22   #12484      +/-   ##
============================================
+ Coverage     17.56%   17.59%   +0.02%     
- Complexity    15545    15596      +51     
============================================
  Files          5909     5910       +1     
  Lines        529056   529845     +789     
  Branches      64617    64738     +121     
============================================
+ Hits          92953    93218     +265     
- Misses       425648   426131     +483     
- Partials      10455    10496      +41     
Flag Coverage Δ
uitests 3.60% <ø> (+0.01%) ⬆️
unittests 18.66% <21.42%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@DaanHoogland DaanHoogland added this to the 4.22.1 milestone Jan 21, 2026
@blueorangutan
Copy link

Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 16460

@weizhouapache
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@weizhouapache a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16469

@kiranchavala
Copy link
Contributor

@blueorangutan test rocky8 vmware-70u3

@blueorangutan
Copy link

@kiranchavala a [SL] Trillian-Jenkins test job (rocky8 mgmt + vmware-70u3) has been kicked to run smoke tests

@apache apache deleted a comment from blueorangutan Jan 23, 2026
@blueorangutan
Copy link

[SF] Trillian test result (tid-15268)
Environment: vmware-70u3 (x2), zone: Advanced Networking with Mgmt server r8
Total time taken: 111098 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr12484-t15268-vmware-70u3.zip
Smoke tests completed. 145 look OK, 4 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
ContextSuite context=TestClusterDRS>:setup Error 0.00 test_cluster_drs.py
test_01_vpn_usage Error 1.12 test_usage.py
test_01_deploy_vm_on_specific_host Error 13.62 test_vm_deployment_planner.py
test_02_deploy_vm_on_specific_cluster Error 3604.07 test_vm_deployment_planner.py
test_03_deploy_vm_on_specific_pod Error 2.33 test_vm_deployment_planner.py
test_04_deploy_vm_on_host_override_pod_and_cluster Error 2.30 test_vm_deployment_planner.py
test_05_deploy_vm_on_cluster_override_pod Error 2.28 test_vm_deployment_planner.py
test_01_migrate_vm_strict_tags_success Error 3606.12 test_vm_strict_host_tags.py
test_02_migrate_vm_strict_tags_failure Error 4.75 test_vm_strict_host_tags.py
test_01_restore_vm_strict_tags_success Error 15.97 test_vm_strict_host_tags.py
test_02_restore_vm_strict_tags_failure Error 3604.49 test_vm_strict_host_tags.py
test_01_scale_vm_strict_tags_success Error 18.11 test_vm_strict_host_tags.py
test_02_scale_vm_strict_tags_failure Error 3603.41 test_vm_strict_host_tags.py
test_01_deploy_vm_on_specific_host_without_strict_tags Error 19.96 test_vm_strict_host_tags.py
test_02_deploy_vm_on_any_host_without_strict_tags Error 3605.87 test_vm_strict_host_tags.py
test_03_deploy_vm_on_specific_host_with_strict_tags_success Error 3603.49 test_vm_strict_host_tags.py
test_04_deploy_vm_on_any_host_with_strict_tags_success Error 3609.86 test_vm_strict_host_tags.py

@blueorangutan
Copy link

[SF] Trillian test result (tid-15264)
Environment: vmware-70u3 (x2), zone: Advanced Networking with Mgmt server r8
Total time taken: 272565 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr12484-t15264-vmware-70u3.zip
Smoke tests completed. 137 look OK, 12 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
ContextSuite context=TestClusterDRS>:setup Error 0.00 test_cluster_drs.py
test_01_vpn_usage Error 1.10 test_usage.py
test_01_deploy_vm_on_specific_host Error 3604.72 test_vm_deployment_planner.py
test_02_deploy_vm_on_specific_cluster Error 1.26 test_vm_deployment_planner.py
test_03_deploy_vm_on_specific_pod Error 4.29 test_vm_deployment_planner.py
test_04_deploy_vm_on_host_override_pod_and_cluster Error 2.24 test_vm_deployment_planner.py
test_05_deploy_vm_on_cluster_override_pod Error 1.20 test_vm_deployment_planner.py
test_02_offline_migrate_VM_with_two_data_disks Error 1832.17 test_vm_life_cycle.py
test_03_live_migrate_VM_with_two_data_disks Error 40.82 test_vm_life_cycle.py
test_04_migrate_detached_volume Error 1831.51 test_vm_life_cycle.py
test_09_expunge_vm Failure 424.46 test_vm_life_cycle.py
test_11_destroy_vm_and_volumes Error 1830.53 test_vm_life_cycle.py
test_12_start_vm_multiple_volumes_allocated Error 1920.77 test_vm_life_cycle.py
test_01_migrate_vm_strict_tags_success Error 5.68 test_vm_strict_host_tags.py
test_02_migrate_vm_strict_tags_failure Error 3.59 test_vm_strict_host_tags.py
test_01_restore_vm_strict_tags_success Error 5.62 test_vm_strict_host_tags.py
test_02_restore_vm_strict_tags_failure Error 5.64 test_vm_strict_host_tags.py
test_01_scale_vm_strict_tags_success Error 3.55 test_vm_strict_host_tags.py
test_02_scale_vm_strict_tags_failure Error 8.68 test_vm_strict_host_tags.py
test_01_deploy_vm_on_specific_host_without_strict_tags Error 5.62 test_vm_strict_host_tags.py
test_02_deploy_vm_on_any_host_without_strict_tags Error 9.65 test_vm_strict_host_tags.py
test_03_deploy_vm_on_specific_host_with_strict_tags_success Error 3.62 test_vm_strict_host_tags.py
test_04_deploy_vm_on_any_host_with_strict_tags_success Error 8.66 test_vm_strict_host_tags.py
test_04_deploy_vnf_appliance Error 1964.59 test_vnf_templates.py
ContextSuite context=TestVnfTemplates>:teardown Error 3613.00 test_vnf_templates.py
ContextSuite context=TestCreateVolume>:teardown Error 2258.01 test_volumes.py
test_11_attach_volume_with_unstarted_vm Error 1917.89 test_volumes.py
test_01_verify_ipv6_vpc Error 3608.42 test_vpc_ipv6.py
test_01_verify_ipv6_vpc Error 3608.70 test_vpc_ipv6.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL Error 3609.18 test_vpc_redundant.py
test_02_redundant_VPC_default_routes Error 3610.19 test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers Error 3675.24 test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nics Error 3610.63 test_vpc_redundant.py
test_05_rvpc_multi_tiers Error 3609.62 test_vpc_redundant.py
test_02_VPC_default_routes Error 3611.67 test_vpc_router_nics.py
test_01_redundant_vpc_site2site_vpn Failure 3672.23 test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpn Error 3672.45 test_vpc_vpn.py
test_01_vpc_site2site_vpn_multiple_options Failure 3608.30 test_vpc_vpn.py
test_01_vpc_site2site_vpn_multiple_options Error 3608.53 test_vpc_vpn.py
test_01_vpc_site2site_vpn Error 2025.27 test_vpc_vpn.py
test_01_cancel_host_maintenace_with_no_migration_jobs Error 1806.62 test_host_maintenance.py
test_02_cancel_host_maintenace_with_migration_jobs Error 3649.98 test_host_maintenance.py
test_02_cancel_host_maintenace_with_migration_jobs Error 3650.21 test_host_maintenance.py
test_03_cancel_host_maintenace_with_migration_jobs_failure Error 1801.08 test_host_maintenance.py

Copy link
Contributor

@kiranchavala kiranchavala left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Tested the spanish keyboard support for Ubuntu,Redhat , Rocky , windows, opensuse based os ova files

Debian/Ubuntu based os

Local keyboard: Spanish Latin American works

sudo apt update
sudo apt install language-pack-es

sudo dpkg-reconfigure keyboard-configuration
  72. Generic 105-key PC
  84. Spanish (Latin American)
  1. Spanish (Latin American)
  3. Right Alt (AltGr)
  2. Right Alt (AltGr)

sudo systemctl restart keyboard-setup

Stop the VM and add the vm setting

keyboard=es-latam

RHEL/Rocky9/Opensuse

Local keyboard: Spanish Latin American

sudo localectl set-keymap latam

Stop the VM and add the vm setting 

keyboard=es-latam

windows server 2016,2022

Local keyboard: Spanish Latin American

During windows vm ova Deployment select the keyboard

Screenshot 2026-01-27 at 4 33 45 PM 539747754-b5d5f000-fca4-4189-a814-145a398a83de

Pasted the content in novnc console and the paste worked fine


| ¬ ° " & / ( )
= ' \ ? ¿ ¡ @ '
á é í ó ú
¨
ä ë ï ö ü
+ ~ * ñ Ñ { ^ [ } ` ] < >
, ; . : - _

Screenshot 2026-01-27 at 4 57 41 PM

@kiranchavala
Copy link
Contributor

@blueorangutan test rocky8 vmware-70u3

@blueorangutan
Copy link

@kiranchavala a [SL] Trillian-Jenkins test job (rocky8 mgmt + vmware-70u3) has been kicked to run smoke tests

@blueorangutan
Copy link

[SF] Trillian Build Failed (tid-15305)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

4 participants