Skip to content

server: set VirtualMachineTO arch from template if present#11530

Merged
weizhouapache merged 2 commits intoapache:4.20from
shapeblue:fix-hypguru-vm-arch
Sep 24, 2025
Merged

server: set VirtualMachineTO arch from template if present#11530
weizhouapache merged 2 commits intoapache:4.20from
shapeblue:fix-hypguru-vm-arch

Conversation

@shwstppr
Copy link
Copy Markdown
Contributor

Description

Fixes #11529

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?

Fixes apache#11529

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Aug 29, 2025

Codecov Report

❌ Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 16.17%. Comparing base (8756be5) to head (36b9e8a).
⚠️ Report is 94 commits behind head on 4.20.

Files with missing lines Patch % Lines
.../java/com/cloud/hypervisor/HypervisorGuruBase.java 0.00% 6 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               4.20   #11530      +/-   ##
============================================
+ Coverage     16.16%   16.17%   +0.01%     
- Complexity    13279    13285       +6     
============================================
  Files          5656     5656              
  Lines        497884   497999     +115     
  Branches      60378    60402      +24     
============================================
+ Hits          80463    80533      +70     
- Misses       408466   408504      +38     
- Partials       8955     8962       +7     
Flag Coverage Δ
uitests 4.00% <ø> (+<0.01%) ⬆️
unittests 17.02% <0.00%> (+0.01%) ⬆️

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.

@shwstppr shwstppr linked an issue Aug 29, 2025 that may be closed by this pull request
weizhouapache
weizhouapache previously approved these changes Aug 29, 2025
Copy link
Copy Markdown
Member

@weizhouapache weizhouapache left a comment

Choose a reason for hiding this comment

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

code lgtm

we could use
CPUArch.x86.getType() instead of i686
CPUArch.amd64.getType() instead of x86_64

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
@shwstppr
Copy link
Copy Markdown
Contributor Author

@blueorangutan package

@blueorangutan
Copy link
Copy Markdown

@shwstppr 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
Copy Markdown

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

@shwstppr shwstppr marked this pull request as ready for review September 2, 2025 06:57
Copy link
Copy Markdown
Contributor

@DaanHoogland DaanHoogland left a comment

Choose a reason for hiding this comment

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

clgtm

@DaanHoogland
Copy link
Copy Markdown
Contributor

@blueorangutan test

@blueorangutan
Copy link
Copy Markdown

@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@blueorangutan
Copy link
Copy Markdown

[SF] Trillian test result (tid-14195)
Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8
Total time taken: 667 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11530-t14195-kvm-ol8.zip
Smoke tests completed. 0 look OK, 0 have errors, 141 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
all_test_2fa Skipped --- test_2fa.py
all_test_account_access Skipped --- test_account_access.py
all_test_accounts Skipped --- test_accounts.py
all_test_affinity_groups_projects Skipped --- test_affinity_groups_projects.py
all_test_affinity_groups Skipped --- test_affinity_groups.py
all_test_annotations Skipped --- test_annotations.py
all_test_async_job Skipped --- test_async_job.py
all_test_attach_multiple_volumes Skipped --- test_attach_multiple_volumes.py
all_test_backup_recovery_dummy Skipped --- test_backup_recovery_dummy.py
all_test_backup_recovery_veeam Skipped --- test_backup_recovery_veeam.py
all_test_bucket Skipped --- test_bucket.py
all_test_certauthority_root Skipped --- test_certauthority_root.py
all_test_cluster_drs Skipped --- test_cluster_drs.py
all_test_console_endpoint Skipped --- test_console_endpoint.py
all_test_create_list_domain_account_project Skipped --- test_create_list_domain_account_project.py
all_test_create_network Skipped --- test_create_network.py
all_test_deploy_vgpu_enabled_vm Skipped --- test_deploy_vgpu_enabled_vm.py
all_test_deploy_virtio_scsi_vm Skipped --- test_deploy_virtio_scsi_vm.py
all_test_deploy_vm_extra_config_data Skipped --- test_deploy_vm_extra_config_data.py
all_test_deploy_vm_iso Skipped --- test_deploy_vm_iso.py
all_test_deploy_vm_iso_uefi Skipped --- test_deploy_vm_iso_uefi.py
all_test_deploy_vm_root_resize Skipped --- test_deploy_vm_root_resize.py
all_test_deploy_vms_in_parallel Skipped --- test_deploy_vms_in_parallel.py
all_test_deploy_vms_with_varied_deploymentplanners Skipped --- test_deploy_vms_with_varied_deploymentplanners.py
all_test_deploy_vm_with_userdata Skipped --- test_deploy_vm_with_userdata.py
all_test_diagnostics Skipped --- test_diagnostics.py
all_test_direct_download Skipped --- test_direct_download.py
all_test_disk_offerings Skipped --- test_disk_offerings.py
all_test_disk_provisioning_types Skipped --- test_disk_provisioning_types.py
all_test_domain_disk_offerings Skipped --- test_domain_disk_offerings.py
all_test_domain_network_offerings Skipped --- test_domain_network_offerings.py
all_test_domain_service_offerings Skipped --- test_domain_service_offerings.py
all_test_domain_vpc_offerings Skipped --- test_domain_vpc_offerings.py
all_test_dynamicroles Skipped --- test_dynamicroles.py
all_test_enable_account_settings_for_domain Skipped --- test_enable_account_settings_for_domain.py
all_test_enable_role_based_users_in_projects Skipped --- test_enable_role_based_users_in_projects.py
all_test_events_resource Skipped --- test_events_resource.py
all_test_gateway_on_shared_networks Skipped --- test_gateway_on_shared_networks.py
all_test_global_acls Skipped --- test_global_acls.py
all_test_global_settings Skipped --- test_global_settings.py
all_test_guest_os Skipped --- test_guest_os.py
all_test_guest_vlan_range Skipped --- test_guest_vlan_range.py
all_test_host_control_state Skipped --- test_host_control_state.py
all_test_hostha_simulator Skipped --- test_hostha_simulator.py
all_test_host_ping Skipped --- test_host_ping.py
all_test_host_tags Skipped --- test_host_tags.py
all_test_human_readable_logs Skipped --- test_human_readable_logs.py
all_test_image_store_object_migration Skipped --- test_image_store_object_migration.py
all_test_import_unmanage_volumes Skipped --- test_import_unmanage_volumes.py
all_test_internal_lb Skipped --- test_internal_lb.py
all_test_ipv4_routing Skipped --- test_ipv4_routing.py
all_test_ipv6_infra Skipped --- test_ipv6_infra.py
all_test_iso Skipped --- test_iso.py
all_test_kubernetes_clusters Skipped --- test_kubernetes_clusters.py
all_test_kubernetes_supported_versions Skipped --- test_kubernetes_supported_versions.py
all_test_list_accounts Skipped --- test_list_accounts.py
all_test_list_disk_offerings Skipped --- test_list_disk_offerings.py
all_test_list_domains Skipped --- test_list_domains.py
all_test_list_hosts Skipped --- test_list_hosts.py
all_test_list_ids_parameter Skipped --- test_list_ids_parameter.py
all_test_list_service_offerings Skipped --- test_list_service_offerings.py
all_test_list_storage_pools Skipped --- test_list_storage_pools.py
all_test_list_volumes Skipped --- test_list_volumes.py
all_test_loadbalance Skipped --- test_loadbalance.py
all_test_login Skipped --- test_login.py
all_test_metrics_api Skipped --- test_metrics_api.py
all_test_migration Skipped --- test_migration.py
all_test_multipleips_per_nic Skipped --- test_multipleips_per_nic.py
all_test_nested_virtualization Skipped --- test_nested_virtualization.py
all_test_network_acl Skipped --- test_network_acl.py
all_test_network_ipv6 Skipped --- test_network_ipv6.py
all_test_network_permissions Skipped --- test_network_permissions.py
all_test_network Skipped --- test_network.py
all_test_nic_adapter_type Skipped --- test_nic_adapter_type.py
all_test_nic Skipped --- test_nic.py
all_test_non_contigiousvlan Skipped --- test_non_contigiousvlan.py
all_test_nonstrict_affinity_group Skipped --- test_nonstrict_affinity_group.py
all_test_object_stores Skipped --- test_object_stores.py
all_test_outofbandmanagement_nestedplugin Skipped --- test_outofbandmanagement_nestedplugin.py
all_test_outofbandmanagement Skipped --- test_outofbandmanagement.py
all_test_over_provisioning Skipped --- test_over_provisioning.py
all_test_password_server Skipped --- test_password_server.py
all_test_persistent_network Skipped --- test_persistent_network.py
all_test_portable_publicip Skipped --- test_portable_publicip.py
all_test_portforwardingrules Skipped --- test_portforwardingrules.py
all_test_primary_storage Skipped --- test_primary_storage.py
all_test_primary_storage_scope Skipped --- test_primary_storage_scope.py
all_test_privategw_acl_ovs_gre Skipped --- test_privategw_acl_ovs_gre.py
all_test_privategw_acl Skipped --- test_privategw_acl.py
all_test_private_roles Skipped --- test_private_roles.py
all_test_projects Skipped --- test_projects.py
all_test_public_ip_range Skipped --- test_public_ip_range.py
all_test_purge_expunged_vms Skipped --- test_purge_expunged_vms.py
all_test_pvlan Skipped --- test_pvlan.py
all_test_quarantined_ips Skipped --- test_quarantined_ips.py
all_test_regions Skipped --- test_regions.py
all_test_register_userdata Skipped --- test_register_userdata.py
all_test_reset_configuration_settings Skipped --- test_reset_configuration_settings.py
all_test_reset_vm_on_reboot Skipped --- test_reset_vm_on_reboot.py
all_test_resource_accounting Skipped --- test_resource_accounting.py
all_test_resource_detail Skipped --- test_resource_detail.py
all_test_resource_names Skipped --- test_resource_names.py
all_test_restore_vm Skipped --- test_restore_vm.py
all_test_router_dhcphosts Skipped --- test_router_dhcphosts.py
all_test_router_dns Skipped --- test_router_dns.py
all_test_router_dnsservice Skipped --- test_router_dnsservice.py
all_test_routers_iptables_default_policy Skipped --- test_routers_iptables_default_policy.py
all_test_routers_network_ops Skipped --- test_routers_network_ops.py
all_test_routers Skipped --- test_routers.py
all_test_safe_shutdown Skipped --- test_safe_shutdown.py
all_test_scale_vm Skipped --- test_scale_vm.py
all_test_secondary_storage Skipped --- test_secondary_storage.py
all_test_service_offerings Skipped --- test_service_offerings.py
all_test_set_sourcenat Skipped --- test_set_sourcenat.py
all_test_sharedfs_lifecycle Skipped --- test_sharedfs_lifecycle.py
all_test_snapshots Skipped --- test_snapshots.py
all_test_ssvm Skipped --- test_ssvm.py
all_test_staticroles Skipped --- test_staticroles.py
all_test_storage_policy Skipped --- test_storage_policy.py
all_test_templates Skipped --- test_templates.py
all_test_update_security_group Skipped --- test_update_security_group.py
all_test_usage_events Skipped --- test_usage_events.py
all_test_usage Skipped --- test_usage.py
all_test_vm_autoscaling Skipped --- test_vm_autoscaling.py
all_test_vm_deployment_planner Skipped --- test_vm_deployment_planner.py
all_test_vm_life_cycle Skipped --- test_vm_life_cycle.py
all_test_vm_lifecycle_unmanage_import Skipped --- test_vm_lifecycle_unmanage_import.py
all_test_vm_schedule Skipped --- test_vm_schedule.py
all_test_vm_snapshot_kvm Skipped --- test_vm_snapshot_kvm.py
all_test_vm_snapshots Skipped --- test_vm_snapshots.py
all_test_vm_strict_host_tags Skipped --- test_vm_strict_host_tags.py
all_test_vnf_templates Skipped --- test_vnf_templates.py
all_test_volumes Skipped --- test_volumes.py
all_test_vpc_ipv6 Skipped --- test_vpc_ipv6.py
all_test_vpc_redundant Skipped --- test_vpc_redundant.py
all_test_vpc_router_nics Skipped --- test_vpc_router_nics.py
all_test_vpc_vpn Skipped --- test_vpc_vpn.py
all_test_webhook_delivery Skipped --- test_webhook_delivery.py
all_test_webhook_lifecycle Skipped --- test_webhook_lifecycle.py
all_test_host_maintenance Skipped --- test_host_maintenance.py
all_test_hostha_kvm Skipped --- test_hostha_kvm.py

@shwstppr
Copy link
Copy Markdown
Contributor Author

shwstppr commented Sep 6, 2025

@blueorangutan package

@blueorangutan
Copy link
Copy Markdown

@shwstppr 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
Copy Markdown

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

@shwstppr
Copy link
Copy Markdown
Contributor Author

shwstppr commented Sep 7, 2025

@blueorangutan test

@blueorangutan
Copy link
Copy Markdown

@shwstppr a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@blueorangutan
Copy link
Copy Markdown

[SF] Trillian test result (tid-14229)
Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8
Total time taken: 56086 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11530-t14229-kvm-ol8.zip
Smoke tests completed. 140 look OK, 1 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
test_01_deployVMInSharedNetwork Failure 337.02 test_network.py

@DaanHoogland DaanHoogland added this to the 4.20.2 milestone Sep 18, 2025
@weizhouapache weizhouapache dismissed their stale review September 23, 2025 11:46

found something new

@weizhouapache
Copy link
Copy Markdown
Member

@shwstppr

I checked the source code and found something

  • for aarch64, admin needs to add guest.cpu.arch=aarch64 in agent.properties
  • many vm configurations (cpu arch, machine type, disk type, etc) are based on the value of guest.cpu.arch
  • the arch in vmTO is used only if guest.cpu.arch is not set

I think this PR makes sense, but it does not really fix any issues.
For aarch64 hosts, user still have to configure guest.cpu.arch in agent.properties

@weizhouapache
Copy link
Copy Markdown
Member

@blueorangutan package

@blueorangutan
Copy link
Copy Markdown

@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
Copy Markdown

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

@weizhouapache
Copy link
Copy Markdown
Member

@blueorangutan test

@blueorangutan
Copy link
Copy Markdown

@weizhouapache a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@weizhouapache
Copy link
Copy Markdown
Member

verified OK

the arch in StartCommand is correct

@blueorangutan
Copy link
Copy Markdown

[SF] Trillian test result (tid-14429)
Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8
Total time taken: 56414 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11530-t14429-kvm-ol8.zip
Smoke tests completed. 141 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

@weizhouapache weizhouapache merged commit 98b9af2 into apache:4.20 Sep 24, 2025
25 of 26 checks passed
@DaanHoogland DaanHoogland deleted the fix-hypguru-vm-arch branch September 24, 2025 07:41
dhslove pushed a commit to ablecloud-team/ablestack-cloud that referenced this pull request Oct 17, 2025
)

* server: set VirtualMachineTO arch from template if present

Fixes apache#11529

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

* refactor

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>

---------

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HypervisorGuruBase.java did not consider aarch64

4 participants