Skip to content

smoke test: support ceph storage pools - #11931

Open
weizhouapache wants to merge 4 commits into
apache:mainfrom
weizhouapache:4.22-smoke-tests-on-ceph
Open

smoke test: support ceph storage pools#11931
weizhouapache wants to merge 4 commits into
apache:mainfrom
weizhouapache:4.22-smoke-tests-on-ceph

Conversation

@weizhouapache

@weizhouapache weizhouapache commented Oct 29, 2025

Copy link
Copy Markdown
Member

Description

This PR improves and fixes some tests on ceph storage

  • enable direct download tests on ceph
  • enable over provisioning tests on ceph
  • enable volume snapshot tests on ceph
  • enable nas backup tests on ceph (exc. incremental backup)
  • fix test_human_readable_logs.py by increasing timeout of restarting to 120 seconds
  • skip live vm migration for VMs with volume migration between ceph storage pools
  • skip vm snapshots for VMs on ceph
  • skip volume migration test between ceph storage pools (fixed by ceph: fix offline volume migration between ceph pools #12103)
  • skip volume encryption tests on ceph

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?

@boring-cyborg boring-cyborg Bot added component:integration-test Python Warning... Python code Ahead! labels Oct 29, 2025
@weizhouapache

Copy link
Copy Markdown
Member Author

@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.

@weizhouapache weizhouapache added this to the 4.22.1 milestone Oct 29, 2025
@codecov

codecov Bot commented Oct 29, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 17.45%. Comparing base (223fc25) to head (844de76).
⚠️ Report is 482 commits behind head on 4.22.

Additional details and impacted files
@@             Coverage Diff              @@
##               4.22   #11931      +/-   ##
============================================
- Coverage     17.56%   17.45%   -0.11%     
+ Complexity    15548    15513      -35     
============================================
  Files          5910     5913       +3     
  Lines        529129   529385     +256     
  Branches      64634    64677      +43     
============================================
- Hits          92942    92425     -517     
- Misses       425730   426543     +813     
+ Partials      10457    10417      -40     
Flag Coverage Δ
uitests 3.58% <ø> (+<0.01%) ⬆️
unittests 18.51% <ø> (-0.12%) ⬇️

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

☔ View full report in Codecov by Harness.
📢 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.

@blueorangutan

Copy link
Copy Markdown

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

@weizhouapache

Copy link
Copy Markdown
Member Author

@blueorangutan test matrix

@blueorangutan

Copy link
Copy Markdown

@weizhouapache a [SL] Trillian-Jenkins matrix job (EL8 mgmt + EL8 KVM, Ubuntu22 mgmt + Ubuntu22 KVM, EL8 mgmt + VMware 7.0u3, EL9 mgmt + XCP-ng 8.2 ) has been kicked to run smoke tests

@blueorangutan

Copy link
Copy Markdown

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

Test Result Time (s) Test File
test_02_migrate_VM_with_two_data_disks Error 38.80 test_vm_life_cycle.py
ContextSuite context=TestVmSnapshot>:teardown Error 288.49 test_vm_snapshots.py

@blueorangutan

Copy link
Copy Markdown

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

Test Result Time (s) Test File
test_02_migrate_VM_with_two_data_disks Error 38.29 test_vm_life_cycle.py
ContextSuite context=TestVmSnapshot>:teardown Error 291.59 test_vm_snapshots.py
test_hostha_enable_ha_when_host_disabled Error 3.67 test_hostha_kvm.py
test_hostha_enable_ha_when_host_in_maintenance Error 305.91 test_hostha_kvm.py

@weizhouapache

Copy link
Copy Markdown
Member Author

@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 15597

@weizhouapache

Copy link
Copy Markdown
Member Author

@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

@blueorangutan

Copy link
Copy Markdown

[SF] Trillian test result (tid-14744)
Environment: xcpng82 (x2), zone: Advanced Networking with Mgmt server ol9
Total time taken: 129543 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11931-t14744-xcpng82.zip
Smoke tests completed. 139 look OK, 10 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
test_01_events_resource Error 822.70 test_events_resource.py
test_08_upgrade_kubernetes_ha_cluster Failure 3787.76 test_kubernetes_clusters.py
test_01_non_strict_host_anti_affinity Error 520.75 test_nonstrict_affinity_group.py
test_02_non_strict_host_affinity Error 130.06 test_nonstrict_affinity_group.py
test_02_list_snapshots_with_removed_data_store Error 18.51 test_snapshots.py
test_02_list_snapshots_with_removed_data_store Error 18.52 test_snapshots.py
test_01_ssl_offloading_isolated_network Failure 949.48 test_ssl_offloading.py
test_01_vpn_usage Error 1.18 test_usage.py
test_01_scale_up_verify Failure 579.72 test_vm_autoscaling.py
test_11_destroy_vm_and_volumes Error 30.02 test_vm_life_cycle.py
ContextSuite context=TestVmSnapshot>:teardown Error 314.04 test_vm_snapshots.py
test_01_migrate_vm_strict_tags_success Error 78.07 test_vm_strict_host_tags.py

@blueorangutan

Copy link
Copy Markdown

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

Test Result Time (s) Test File

@blueorangutan

Copy link
Copy Markdown

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

Test Result Time (s) Test File
test_08_upgrade_kubernetes_ha_cluster Failure 3693.33 test_kubernetes_clusters.py
test_list_vms_metrics_admin Error 3633.14 test_metrics_api.py
test_list_vms_metrics_history Error 25.23 test_metrics_api.py
test_list_volumes_metrics_history Error 3606.95 test_metrics_api.py
ContextSuite context=TestISOUsage>:setup Error 0.00 test_usage.py
test_01_vpn_usage Error 1.22 test_usage.py
test_01_deploy_vm_on_specific_host Error 26.64 test_vm_deployment_planner.py
test_02_deploy_vm_on_specific_cluster Error 3604.05 test_vm_deployment_planner.py
test_03_deploy_vm_on_specific_pod Error 2.66 test_vm_deployment_planner.py
test_04_deploy_vm_on_host_override_pod_and_cluster Error 4.61 test_vm_deployment_planner.py
test_05_deploy_vm_on_cluster_override_pod Error 3.61 test_vm_deployment_planner.py
test_09_expunge_vm Failure 424.88 test_vm_life_cycle.py
ContextSuite context=TestVmSnapshot>:teardown Error 299.52 test_vm_snapshots.py
test_01_migrate_vm_strict_tags_success Error 3607.74 test_vm_strict_host_tags.py
test_02_migrate_vm_strict_tags_failure Error 4.65 test_vm_strict_host_tags.py
test_01_restore_vm_strict_tags_success Error 20.56 test_vm_strict_host_tags.py
test_02_restore_vm_strict_tags_failure Error 3607.25 test_vm_strict_host_tags.py
test_01_scale_vm_strict_tags_success Error 23.20 test_vm_strict_host_tags.py
test_02_scale_vm_strict_tags_failure Error 3606.02 test_vm_strict_host_tags.py
test_01_deploy_vm_on_specific_host_without_strict_tags Error 27.80 test_vm_strict_host_tags.py
test_02_deploy_vm_on_any_host_without_strict_tags Error 3605.43 test_vm_strict_host_tags.py
test_03_deploy_vm_on_specific_host_with_strict_tags_success Error 3603.58 test_vm_strict_host_tags.py
test_04_deploy_vm_on_any_host_with_strict_tags_success Error 3608.30 test_vm_strict_host_tags.py
test_04_deploy_vnf_appliance Error 2022.66 test_vnf_templates.py
ContextSuite context=TestVnfTemplates>:teardown Error 1817.67 test_vnf_templates.py
ContextSuite context=TestCreateVolume>:teardown Error 2264.70 test_volumes.py
test_01_verify_ipv6_vpc Error 3791.85 test_vpc_ipv6.py
test_01_verify_ipv6_vpc Error 3792.19 test_vpc_ipv6.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL Error 1924.77 test_vpc_redundant.py
test_02_redundant_VPC_default_routes Error 1923.29 test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers Error 1819.42 test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nics Error 1925.69 test_vpc_redundant.py
test_05_rvpc_multi_tiers Error 1915.19 test_vpc_redundant.py
test_01_VPC_nics_after_destroy Failure 5719.14 test_vpc_router_nics.py
test_01_redundant_vpc_site2site_vpn Failure 1912.43 test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpn Error 1912.58 test_vpc_vpn.py
test_01_vpc_site2site_vpn_multiple_options Error 2564.26 test_vpc_vpn.py
test_01_vpc_remote_access_vpn Error 1937.20 test_vpc_vpn.py

@weizhouapache

Copy link
Copy Markdown
Member Author

ready for review and testing

@sureshanaparti

Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@sureshanaparti 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.

@sureshanaparti

Copy link
Copy Markdown
Contributor

ready for review and testing

@weizhouapache can you advise on testing, should these smoke tests run against env with only ceph as primary storage?

@blueorangutan

Copy link
Copy Markdown

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

@sureshanaparti

Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@sureshanaparti 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 16825

test_backup_recovery_nas.py only allowed NFS primary storage, since it
reused the primary storage pool's own path as the NAS backup repository
address, and always required incremental-backup semantics that only
qcow2/NFS storage can provide. Neither holds on Ceph/RBD.

- setUpClass now accepts RBD alongside NFS as the primary storage pool
  type, picking a pool that's actually Up rather than list()[0] --
  environments that added Ceph/RBD after the zone's original NFS
  primary storage keep that old pool around in Disabled state, and it
  still sorts first, silently exercising its path as if it were the
  storage VMs actually deploy on.
- The NAS backup repository's NFS export address is resolved
  independently of the primary storage: when the primary pool isn't NFS,
  reuse the nfs test data entry (services[nfs][url]) -- the same
  temporary NFS mount point test_primary_storage.py uses for its
  temporary NFS primary storage pool, and something every marvin
  environment already has configured. An explicit
  nas_backup_repository_address test data entry or
  NAS_BACKUP_REPO_ADDRESS environment variable, if set, takes precedence.
- The external offering imported in setUpClass is matched to the
  repository just created by externalid (== the repository's own id
  for the nas provider) rather than blindly taking index 0 -- a stray
  repository left over from an earlier interrupted run, whose backups
  didn't get cleaned up so its own teardown couldn't remove it either,
  sorts alongside the new one with no guarantee of which comes first.
- Incremental NAS backups require QEMU dirty bitmaps / libvirt
  checkpoints, which only exist on file-based qcow2 storage
  (NASBackupProvider.allVolumesOnCheckpointCapableStorage). The six
  incremental-chain tests now skip on RBD/Ceph, where the provider
  always falls back to full-only backups server-side, rather than
  failing on assertions that storage type can never satisfy.
- Added test_restore_volume_and_attach_to_vm, which exercises
  restoreVolumeFromBackupAndAttachToVM end-to-end (restoring a backed-up
  ROOT and DATADISK volume onto a second, stopped Instance) -- the API
  that drives the restore-and-attach code fixed by the previous commit
  (apache#14007). The target Instance is stopped with
  forced=True: a graceful ACPI stop was observed to time out (~2
  minutes) before falling back to a hard destroy anyway, and once
  forced to a hard destroy the domain drops out of libvirt entirely,
  so the periodic ping-based PowerState sync the restore call depends
  on falls back to a much slower heuristic well past any reasonable
  wait. A forced stop destroys the domain immediately and
  deterministically.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Ready

Development

Successfully merging this pull request may close these issues.

6 participants