text:
CLOUDSTACK-9539: Support changing Service offering for instance with VM Snapshots

Actual behaviour
CloudStack doesn't support changing service offering for vm instances which have vm snapshots, they should be removed before changing service offering.
Goal
Extend actual behaviour by supporting changing service offering for vms which have vm snapshots. In that case, previously taken snapshots (if reverted) should use previous service offering, future snapshots should use the newest.
Proposed solution:

Adding service_offering_id column on vm_snapshots table: This way snapshot can be reverted to original state even though service offering can be changed for vm instance.
NOTE: Existing vm snapshots are populated on update script by:
UPDATE vm_snapshots s JOIN vm_instance v ON v.id = s.vm_id SET s.service_offering_id = v.service_offering_id;
New vm snapshots will use instance vm service offering id as service_offering_id
Revert to vm snapshots should use vm snapshot's service_offering_id value.

Example use case:

Deploy vm using service offering A
Take vm snapshot -> snap1 (service offering A)
Stop vm
Change vm service offering to B
Revert to VM snapshot snap 1
Start vm

It is expected that vm has service offering A after last step

@ustcweizhou @koushik-das thanks for your review! I refactored based on your comments and tested everything is working as expected.
To test new marvin test introduced in test/integration/smoke/test_vm_snapshots.py in Vmware, is needed to include #1677 changes. Once it gets merged I can rebase 4.9

Thanks @nvazquez I'll kick some tests
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-135

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-278)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 26230 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t278-kvm-centos7.zip
Test completed. 47 look ok, 1 have error(s)

Test
Result
Time (s)
Test File

test_change_service_offering_for_vm_with_snapshots
Error
139.92
test_vm_snapshots.py

test_01_vpc_site2site_vpn
Success
154.91
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
66.15
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
260.87
test_vpc_vpn.py

test_02_VPC_default_routes
Success
276.30
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
564.17
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
516.91
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1427.48
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
559.98
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
762.23
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1291.35
test_vpc_redundant.py

test_09_delete_detached_volume
Success
15.48
test_volumes.py

test_08_resize_volume
Success
15.41
test_volumes.py

test_07_resize_fail
Success
20.45
test_volumes.py

test_06_download_detached_volume
Success
15.29
test_volumes.py

test_05_detach_volume
Success
100.22
test_volumes.py

test_04_delete_attached_volume
Success
10.20
test_volumes.py

test_03_download_attached_volume
Success
15.31
test_volumes.py

test_02_attach_volume
Success
75.03
test_volumes.py

test_01_create_volume
Success
713.88
test_volumes.py

test_deploy_vm_multiple
Success
293.79
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.66
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.17
test_vm_life_cycle.py

test_08_migrate_vm
Success
40.95
test_vm_life_cycle.py

test_07_restore_vm
Success
0.14
test_vm_life_cycle.py

test_06_destroy_vm
Success
125.80
test_vm_life_cycle.py

test_03_reboot_vm
Success
125.93
test_vm_life_cycle.py

test_02_start_vm
Success
10.17
test_vm_life_cycle.py

test_01_stop_vm
Success
40.31
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
85.74
test_templates.py

test_08_list_system_templates
Success
0.06
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.06
test_templates.py

test_04_extract_template
Success
5.16
test_templates.py

test_03_delete_template
Success
5.11
test_templates.py

test_02_edit_template
Success
90.17
test_templates.py

test_01_create_template
Success
60.56
test_templates.py

test_10_destroy_cpvm
Success
161.79
test_ssvm.py

test_09_destroy_ssvm
Success
168.75
test_ssvm.py

test_08_reboot_cpvm
Success
131.79
test_ssvm.py

test_07_reboot_ssvm
Success
133.62
test_ssvm.py

test_06_stop_cpvm
Success
131.74
test_ssvm.py

test_05_stop_ssvm
Success
138.75
test_ssvm.py

test_04_cpvm_internals
Success
1.26
test_ssvm.py

test_03_ssvm_internals
Success
3.87
test_ssvm.py

test_02_list_cpvm_vm
Success
0.15
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.14
test_ssvm.py

test_01_snapshot_root_disk
Success
11.41
test_snapshots.py

test_04_change_offering_small
Success
210.61
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.08
test_service_offerings.py

test_01_create_service_offering
Success
0.13
test_service_offerings.py

test_02_sys_template_ready
Success
0.13
test_secondary_storage.py

test_01_sys_vm_start
Success
0.18
test_secondary_storage.py

test_09_reboot_router
Success
35.30
test_routers.py

test_08_start_router
Success
30.31
test_routers.py

test_07_stop_router
Success
10.17
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.69
test_routers.py

test_03_restart_network_cleanup
Success
55.50
test_routers.py

test_02_router_internal_adv
Success
1.04
test_routers.py

test_01_router_internal_basic
Success
0.58
test_routers.py

test_router_dns_guestipquery
Success
76.77
test_router_dns.py

test_router_dns_externalipquery
Success
0.07
test_router_dns.py

test_router_dhcphosts
Success
276.98
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.08
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
156.10
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.22
test_pvlan.py

test_dedicatePublicIpRange
Success
0.43
test_public_ip_range.py

test_04_rvpc_privategw_static_routes
Success
502.00
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
505.99
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
381.63
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
103.88
test_privategw_acl.py

test_01_primary_storage_nfs
Success
35.86
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.20
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.52
test_portable_publicip.py

test_isolate_network_password_server
Success
89.36
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.23
test_over_provisioning.py

test_oobm_zchange_password
Success
21.02
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.49
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.53
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.51
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.52
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
62.65
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.21
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.11
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.19
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.12
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.11
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.09
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
29.74
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.32
test_non_contigiousvlan.py

test_01_nic
Success
712.29
test_nic.py

test_releaseIP
Success
254.24
test_network.py

test_reboot_router
Success
434.76
test_network.py

test_public_ip_user_account
Success
10.30
test_network.py

test_public_ip_admin_account
Success
40.27
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
66.83
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.78
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
125.47
test_network.py

test_delete_account
Success
314.90
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.65
test_network.py

test_01_port_fwd_on_src_nat
Success
112.43
test_network.py

test_nic_secondaryip_add_remove
Success
208.95
test_multipleips_per_nic.py

login_test_saml_user
Success
25.12
test_login.py

test_assign_and_removal_lb
Success
133.47
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
187.27
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
217.85
test_loadbalance.py

test_03_list_snapshots
Success
0.06
test_list_ids_parameter.py

test_02_list_templates
Success
0.04
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.07
test_iso.py

test_05_iso_permissions
Success
0.07
test_iso.py

test_04_extract_Iso
Success
5.17
test_iso.py

test_03_delete_iso
Success
95.12
test_iso.py

test_02_edit_iso
Success
0.06
test_iso.py

test_01_create_iso
Success
21.87
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
238.84
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
199.77
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
535.21
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
432.67
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.35
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.31
test_global_settings.py

test_rolepermission_lifecycle_update
Success
7.41
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
7.03
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
6.80
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
7.01
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.91
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
6.98
test_dynamicroles.py

test_role_lifecycle_update
Success
12.59
test_dynamicroles.py

test_role_lifecycle_list
Success
7.10
test_dynamicroles.py

test_role_lifecycle_delete
Success
12.38
test_dynamicroles.py

test_role_lifecycle_create
Success
6.85
test_dynamicroles.py

test_role_inuse_deletion
Success
6.80
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
9.29
test_dynamicroles.py

test_role_account_acls
Success
9.72
test_dynamicroles.py

test_default_role_deletion
Success
6.93
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.12
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.05
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.07
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.41
test_disk_offerings.py

test_01_create_disk_offering
Success
0.19
test_disk_offerings.py

test_deployvm_userdispersing
Success
55.98
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
20.79
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
61.02
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
10.43
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
60.93
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
7.20
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
7.40
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
228.93
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
208.87
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
71.05
test_affinity_groups.py

test_03_delete_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_02_revert_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Skipped
0.00
test_vm_snapshots.py

test_01_create_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_01_scale_vm
Skipped
0.00
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.04
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.00
test_deploy_vgpu_enabled_vm.py

@rhtyd thanks for running tests. Looking at blueorangutan we realized that new marvin test should exclude some hypervisors that don't allow vm snapshots, in this case was KVM:
raise e\n', 'CloudstackAPIException: Execute cmd: createvmsnapshot failed, due to: errorCode: 431, errorText:VM snapshot is not enabled for hypervisor type: KVM\n'

I0ll refactor test file so new marvin test introduced in this PR uses only those hypervisors that allow vm snapshots

@nvazquez thanks, I'll kick another one against vmware
@blueorangutan test centos7 vmware-55u3

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-55u3) has been kicked to run smoke tests

@rhtyd I refactored test_vm_snapshots.py file. As it is in the first test, KVM, hyperv and lxc will be excluded for new test. Specifically about running it on Vmware, most tests on this file will fail due to 12 minutes issue that we addressed in this PR #1677

Trillian test result (tid-294)
Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 37155 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t294-vmware-55u3.zip
Test completed. 45 look ok, 3 have error(s)

Test
Result
Time (s)
Test File

test_03_vpc_privategw_restart_vpc_cleanup
Failure
277.48
test_privategw_acl.py

test_01_vpc_site2site_vpn
Error
586.21
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Error
757.53
test_vpc_vpn.py

ContextSuite context=TestVPCRedundancy>:teardown
Error
747.09
test_vpc_redundant.py

test_01_vpc_remote_access_vpn
Success
171.23
test_vpc_vpn.py

test_02_VPC_default_routes
Success
362.52
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
805.54
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
742.01
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1572.75
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
777.10
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
758.86
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1411.46
test_vpc_redundant.py

test_09_delete_detached_volume
Success
30.71
test_volumes.py

test_06_download_detached_volume
Success
65.43
test_volumes.py

test_05_detach_volume
Success
110.25
test_volumes.py

test_04_delete_attached_volume
Success
10.14
test_volumes.py

test_03_download_attached_volume
Success
15.19
test_volumes.py

test_02_attach_volume
Success
53.73
test_volumes.py

test_01_create_volume
Success
517.12
test_volumes.py

test_change_service_offering_for_vm_with_snapshots
Success
652.28
test_vm_snapshots.py

test_03_delete_vm_snapshots
Success
275.17
test_vm_snapshots.py

test_02_revert_vm_snapshots
Success
226.96
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Success
246.28
test_vm_snapshots.py

test_01_create_vm_snapshots
Success
162.30
test_vm_snapshots.py

test_deploy_vm_multiple
Success
298.24
test_vm_life_cycle.py

test_deploy_vm
Success
0.02
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.01
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
27.30
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.20
test_vm_life_cycle.py

test_08_migrate_vm
Success
85.78
test_vm_life_cycle.py

test_07_restore_vm
Success
0.06
test_vm_life_cycle.py

test_06_destroy_vm
Success
10.10
test_vm_life_cycle.py

test_03_reboot_vm
Success
5.12
test_vm_life_cycle.py

test_02_start_vm
Success
40.24
test_vm_life_cycle.py

test_01_stop_vm
Success
10.10
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
316.65
test_templates.py

test_08_list_system_templates
Success
0.02
test_templates.py

test_07_list_public_templates
Success
0.03
test_templates.py

test_05_template_permissions
Success
0.04
test_templates.py

test_04_extract_template
Success
15.21
test_templates.py

test_03_delete_template
Success
5.07
test_templates.py

test_02_edit_template
Success
90.14
test_templates.py

test_01_create_template
Success
196.05
test_templates.py

test_10_destroy_cpvm
Success
266.54
test_ssvm.py

test_09_destroy_ssvm
Success
268.51
test_ssvm.py

test_08_reboot_cpvm
Success
156.26
test_ssvm.py

test_07_reboot_ssvm
Success
158.14
test_ssvm.py

test_06_stop_cpvm
Success
181.51
test_ssvm.py

test_05_stop_ssvm
Success
173.29
test_ssvm.py

test_04_cpvm_internals
Success
1.02
test_ssvm.py

test_03_ssvm_internals
Success
3.18
test_ssvm.py

test_02_list_cpvm_vm
Success
0.08
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.08
test_ssvm.py

test_01_snapshot_root_disk
Success
25.95
test_snapshots.py

test_04_change_offering_small
Success
97.42
test_service_offerings.py

test_03_delete_service_offering
Success
0.02
test_service_offerings.py

test_02_edit_service_offering
Success
0.05
test_service_offerings.py

test_01_create_service_offering
Success
0.07
test_service_offerings.py

test_02_sys_template_ready
Success
0.08
test_secondary_storage.py

test_01_sys_vm_start
Success
0.11
test_secondary_storage.py

test_09_reboot_router
Success
176.06
test_routers.py

test_08_start_router
Success
156.01
test_routers.py

test_07_stop_router
Success
20.25
test_routers.py

test_06_router_advanced
Success
0.03
test_routers.py

test_05_router_basic
Success
0.03
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.56
test_routers.py

test_03_restart_network_cleanup
Success
190.96
test_routers.py

test_02_router_internal_adv
Success
0.87
test_routers.py

test_01_router_internal_basic
Success
0.47
test_routers.py

test_router_dns_guestipquery
Success
77.11
test_router_dns.py

test_router_dns_externalipquery
Success
0.03
test_router_dns.py

test_router_dhcphosts
Success
148.24
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
5.08
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
30.23
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.15
test_pvlan.py

test_dedicatePublicIpRange
Success
0.27
test_public_ip_range.py

test_04_rvpc_privategw_static_routes
Success
1157.71
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
710.94
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
233.08
test_privategw_acl.py

test_01_primary_storage_nfs
Success
36.40
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.12
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.32
test_portable_publicip.py

test_isolate_network_password_server
Success
95.12
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.09
test_over_provisioning.py

test_oobm_zchange_password
Success
20.54
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.48
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.54
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.51
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.51
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.51
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
16.02
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
56.99
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.12
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.07
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.12
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.07
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.06
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.06
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
29.37
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.22
test_non_contigiousvlan.py

test_01_nic
Success
800.91
test_nic.py

test_releaseIP
Success
307.87
test_network.py

test_reboot_router
Success
669.54
test_network.py

test_public_ip_user_account
Success
10.21
test_network.py

test_public_ip_admin_account
Success
40.20
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
76.44
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.31
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
124.74
test_network.py

test_delete_account
Success
262.58
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.57
test_network.py

test_01_port_fwd_on_src_nat
Success
111.62
test_network.py

test_nic_secondaryip_add_remove
Success
278.13
test_multipleips_per_nic.py

login_test_saml_user
Success
21.41
test_login.py

test_assign_and_removal_lb
Success
148.28
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
207.03
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
207.74
test_loadbalance.py

test_03_list_snapshots
Success
0.05
test_list_ids_parameter.py

test_02_list_templates
Success
0.03
test_list_ids_parameter.py

test_01_list_volumes
Success
0.02
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.04
test_iso.py

test_05_iso_permissions
Success
0.05
test_iso.py

test_04_extract_Iso
Success
5.12
test_iso.py

test_03_delete_iso
Success
95.10
test_iso.py

test_02_edit_iso
Success
0.12
test_iso.py

test_01_create_iso
Success
21.33
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
634.32
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
413.12
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
1067.19
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
820.34
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.19
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.09
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.36
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
6.21
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
6.15
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
6.16
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.24
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
6.17
test_dynamicroles.py

test_role_lifecycle_update
Success
11.29
test_dynamicroles.py

test_role_lifecycle_list
Success
6.16
test_dynamicroles.py

test_role_lifecycle_delete
Success
11.19
test_dynamicroles.py

test_role_lifecycle_create
Success
6.17
test_dynamicroles.py

test_role_inuse_deletion
Success
6.33
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
7.54
test_dynamicroles.py

test_role_account_acls
Success
7.63
test_dynamicroles.py

test_default_role_deletion
Success
6.28
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.04
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.03
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.03
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.04
test_disk_offerings.py

test_01_create_disk_offering
Success
0.07
test_disk_offerings.py

test_deployvm_userdispersing
Success
55.52
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
105.77
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
377.04
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
30.36
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
156.06
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
6.13
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
6.13
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
6.23
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
242.53
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
276.60
test_affinity_groups.py

test_08_resize_volume
Skipped
5.07
test_volumes.py

test_07_resize_fail
Skipped
15.23
test_volumes.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.01
test_staticroles.py

test_01_scale_vm
Skipped
66.30
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.02
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.00
test_deploy_vgpu_enabled_vm.py

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✖debian. JID-150

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-320)
Environment: kvm-centos6 (x2), Advanced Networking with Mgmt server 7
Total time taken: 28892 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t320-kvm-centos6.zip
Test completed. 47 look ok, 1 have error(s)

Test
Result
Time (s)
Test File

ContextSuite context=TestListIdsParams>:setup
Error
0.00
test_list_ids_parameter.py

test_01_vpc_site2site_vpn
Success
180.46
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
71.18
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
266.86
test_vpc_vpn.py

test_02_VPC_default_routes
Success
363.50
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
703.04
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
551.06
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1352.57
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
622.84
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
783.62
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1334.33
test_vpc_redundant.py

test_09_delete_detached_volume
Success
15.83
test_volumes.py

test_08_resize_volume
Success
15.45
test_volumes.py

test_07_resize_fail
Success
20.60
test_volumes.py

test_06_download_detached_volume
Success
15.39
test_volumes.py

test_05_detach_volume
Success
100.27
test_volumes.py

test_04_delete_attached_volume
Success
10.24
test_volumes.py

test_03_download_attached_volume
Success
15.35
test_volumes.py

test_02_attach_volume
Success
107.05
test_volumes.py

test_01_create_volume
Success
867.24
test_volumes.py

test_deploy_vm_multiple
Success
268.72
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.73
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.27
test_vm_life_cycle.py

test_08_migrate_vm
Success
56.13
test_vm_life_cycle.py

test_07_restore_vm
Success
0.14
test_vm_life_cycle.py

test_06_destroy_vm
Success
130.96
test_vm_life_cycle.py

test_03_reboot_vm
Success
125.92
test_vm_life_cycle.py

test_02_start_vm
Success
10.19
test_vm_life_cycle.py

test_01_stop_vm
Success
125.96
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
121.89
test_templates.py

test_08_list_system_templates
Success
0.04
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.07
test_templates.py

test_04_extract_template
Success
5.22
test_templates.py

test_03_delete_template
Success
5.12
test_templates.py

test_02_edit_template
Success
90.11
test_templates.py

test_01_create_template
Success
75.76
test_templates.py

test_10_destroy_cpvm
Success
162.29
test_ssvm.py

test_09_destroy_ssvm
Success
194.63
test_ssvm.py

test_08_reboot_cpvm
Success
132.15
test_ssvm.py

test_07_reboot_ssvm
Success
134.08
test_ssvm.py

test_06_stop_cpvm
Success
132.07
test_ssvm.py

test_05_stop_ssvm
Success
164.44
test_ssvm.py

test_04_cpvm_internals
Success
1.89
test_ssvm.py

test_03_ssvm_internals
Success
3.77
test_ssvm.py

test_02_list_cpvm_vm
Success
0.14
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.15
test_ssvm.py

test_04_change_offering_small
Success
244.79
test_service_offerings.py

test_03_delete_service_offering
Success
0.05
test_service_offerings.py

test_02_edit_service_offering
Success
0.10
test_service_offerings.py

test_01_create_service_offering
Success
0.14
test_service_offerings.py

test_02_sys_template_ready
Success
0.14
test_secondary_storage.py

test_01_sys_vm_start
Success
0.19
test_secondary_storage.py

test_09_reboot_router
Success
40.40
test_routers.py

test_08_start_router
Success
35.34
test_routers.py

test_07_stop_router
Success
10.16
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.83
test_routers.py

test_03_restart_network_cleanup
Success
90.76
test_routers.py

test_02_router_internal_adv
Success
1.13
test_routers.py

test_01_router_internal_basic
Success
0.67
test_routers.py

test_router_dns_guestipquery
Success
107.77
test_router_dns.py

test_router_dns_externalipquery
Success
0.06
test_router_dns.py

test_router_dhcphosts
Success
292.41
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.08
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
130.94
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.22
test_pvlan.py

test_dedicatePublicIpRange
Success
0.42
test_public_ip_range.py

test_04_rvpc_privategw_static_routes
Success
602.80
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
573.60
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
457.50
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
128.59
test_privategw_acl.py

test_01_primary_storage_nfs
Success
36.12
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.23
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.44
test_portable_publicip.py

test_isolate_network_password_server
Success
123.65
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.13
test_over_provisioning.py

test_oobm_zchange_password
Success
21.02
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.50
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.53
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
10.51
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.52
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.52
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
52.56
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.18
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.13
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.22
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.12
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.09
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.11
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
29.64
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.32
test_non_contigiousvlan.py

test_01_nic
Success
546.11
test_nic.py

test_releaseIP
Success
268.90
test_network.py

test_reboot_router
Success
464.72
test_network.py

test_public_ip_user_account
Success
10.26
test_network.py

test_public_ip_admin_account
Success
40.27
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
67.04
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.93
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
155.68
test_network.py

test_delete_account
Success
283.87
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.66
test_network.py

test_01_port_fwd_on_src_nat
Success
141.83
test_network.py

test_nic_secondaryip_add_remove
Success
213.63
test_multipleips_per_nic.py

login_test_saml_user
Success
24.95
test_login.py

test_assign_and_removal_lb
Success
133.72
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
187.49
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
248.14
test_loadbalance.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.06
test_iso.py

test_04_extract_Iso
Success
5.18
test_iso.py

test_03_delete_iso
Success
95.13
test_iso.py

test_02_edit_iso
Success
0.06
test_iso.py

test_01_create_iso
Success
21.91
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
330.30
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
208.37
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
618.28
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
547.22
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.35
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.15
test_global_settings.py

test_rolepermission_lifecycle_update
Success
7.27
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
7.11
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
6.77
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
6.97
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
7.13
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
6.92
test_dynamicroles.py

test_role_lifecycle_update
Success
7.29
test_dynamicroles.py

test_role_lifecycle_list
Success
7.11
test_dynamicroles.py

test_role_lifecycle_delete
Success
7.38
test_dynamicroles.py

test_role_lifecycle_create
Success
7.09
test_dynamicroles.py

test_role_inuse_deletion
Success
6.80
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
9.35
test_dynamicroles.py

test_role_account_acls
Success
9.47
test_dynamicroles.py

test_default_role_deletion
Success
7.39
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.08
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.06
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.06
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.07
test_disk_offerings.py

test_01_create_disk_offering
Success
0.12
test_disk_offerings.py

test_deployvm_userdispersing
Success
20.65
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
50.92
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
65.72
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
121.20
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
75.99
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
6.89
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
6.87
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
239.98
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
234.02
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
71.00
test_affinity_groups.py

test_change_service_offering_for_vm_with_snapshots
Skipped
0.00
test_vm_snapshots.py

test_03_delete_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_02_revert_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Skipped
0.00
test_vm_snapshots.py

test_01_create_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_01_snapshot_root_disk
Skipped
0.00
test_snapshots.py

test_01_scale_vm
Skipped
0.00
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.04
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.01
test_deploy_vgpu_enabled_vm.py

@nvazquez can you rebase and fix conflicts.

@rhtyd Sure, rebased

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-225

What about custom offerings? In case of custom offerings the cpu/ram are stored in the VM details table? How will this case be handled?

@koushik-das Good catch. Thanks. I think there are 2 options. Either not allow changing service offering for VM with VM snapshot if current offering is Custom. Or save custom offering details to vm_snaphsot details and apply them during the snapshot reversion. Which option do you think is more applicable? I think option 2 is better.

Option 2 is definitely better.

@nvazquez can you look at comments from @koushik-das @serg38 do we have lgtms on this one?

@rhtyd @koushik-das @serg38 thanks, I'll work on second option

@koushik-das @rhtyd I pushed changes for supporting custom service offerings the way @koushik-das and @serg38 proposed

@koushik-das @rhtyd This PR now supports custom service offerings. Can you review and kick off tests?

@serg38 sure
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-452

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-775)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 36639 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t775-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_routers_network_ops.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_volumes.py
Test completed. 46 look ok, 2 have error(s)

Test
Result
Time (s)
Test File

test_04_rvpc_privategw_static_routes
Failure
325.49
test_privategw_acl.py

test_01_create_volume
Error
249.50
test_volumes.py

test_01_vpc_site2site_vpn
Success
155.09
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
56.06
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
220.54
test_vpc_vpn.py

test_02_VPC_default_routes
Success
439.69
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
803.98
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
495.23
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1402.48
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
531.61
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
738.77
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1258.38
test_vpc_redundant.py

test_09_delete_detached_volume
Success
156.47
test_volumes.py

test_08_resize_volume
Success
156.34
test_volumes.py

test_07_resize_fail
Success
161.69
test_volumes.py

test_06_download_detached_volume
Success
151.70
test_volumes.py

test_05_detach_volume
Success
236.21
test_volumes.py

test_04_delete_attached_volume
Success
151.14
test_volumes.py

test_03_download_attached_volume
Success
156.35
test_volumes.py

test_02_attach_volume
Success
184.57
test_volumes.py

test_deploy_vm_multiple
Success
363.28
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.55
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.19
test_vm_life_cycle.py

test_08_migrate_vm
Success
66.06
test_vm_life_cycle.py

test_07_restore_vm
Success
0.13
test_vm_life_cycle.py

test_06_destroy_vm
Success
130.85
test_vm_life_cycle.py

test_03_reboot_vm
Success
125.83
test_vm_life_cycle.py

test_02_start_vm
Success
10.17
test_vm_life_cycle.py

test_01_stop_vm
Success
125.80
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
65.60
test_templates.py

test_08_list_system_templates
Success
0.03
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.06
test_templates.py

test_04_extract_template
Success
5.23
test_templates.py

test_03_delete_template
Success
5.10
test_templates.py

test_02_edit_template
Success
90.12
test_templates.py

test_01_create_template
Success
70.61
test_templates.py

test_10_destroy_cpvm
Success
136.41
test_ssvm.py

test_09_destroy_ssvm
Success
138.18
test_ssvm.py

test_08_reboot_cpvm
Success
131.31
test_ssvm.py

test_07_reboot_ssvm
Success
103.08
test_ssvm.py

test_06_stop_cpvm
Success
131.47
test_ssvm.py

test_05_stop_ssvm
Success
138.32
test_ssvm.py

test_04_cpvm_internals
Success
1.02
test_ssvm.py

test_03_ssvm_internals
Success
3.31
test_ssvm.py

test_02_list_cpvm_vm
Success
0.12
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.13
test_ssvm.py

test_01_snapshot_root_disk
Success
16.15
test_snapshots.py

test_04_change_offering_small
Success
204.59
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.05
test_service_offerings.py

test_01_create_service_offering
Success
0.11
test_service_offerings.py

test_02_sys_template_ready
Success
0.14
test_secondary_storage.py

test_01_sys_vm_start
Success
0.22
test_secondary_storage.py

test_09_reboot_router
Success
35.30
test_routers.py

test_08_start_router
Success
25.25
test_routers.py

test_07_stop_router
Success
10.16
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.57
test_routers.py

test_03_restart_network_cleanup
Success
55.48
test_routers.py

test_02_router_internal_adv
Success
0.84
test_routers.py

test_01_router_internal_basic
Success
0.45
test_routers.py

test_router_dns_guestipquery
Success
76.78
test_router_dns.py

test_router_dns_externalipquery
Success
0.07
test_router_dns.py

test_router_dhcphosts
Success
331.81
test_router_dhcphosts.py

test_router_dhcp_opts
Success
21.47
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
5.11
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
161.06
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.32
test_pvlan.py

test_dedicatePublicIpRange
Success
0.50
test_public_ip_range.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
681.68
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
546.05
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
87.19
test_privategw_acl.py

test_01_primary_storage_nfs
Success
35.86
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.23
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.45
test_portable_publicip.py

test_isolate_network_password_server
Success
58.86
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.14
test_over_provisioning.py

test_oobm_zchange_password
Success
30.72
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.34
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.30
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.31
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.31
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.32
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.33
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.35
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
92.58
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.17
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.10
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.19
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.10
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.08
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.07
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
23.43
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.31
test_non_contigiousvlan.py

test_01_nic
Success
494.98
test_nic.py

test_releaseIP
Success
232.72
test_network.py

test_reboot_router
Success
468.79
test_network.py

test_public_ip_user_account
Success
10.25
test_network.py

test_public_ip_admin_account
Success
40.32
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
66.63
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.54
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
120.56
test_network.py

test_delete_account
Success
297.88
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.94
test_network.py

test_01_port_fwd_on_src_nat
Success
111.90
test_network.py

test_nic_secondaryip_add_remove
Success
198.00
test_multipleips_per_nic.py

login_test_saml_user
Success
19.27
test_login.py

test_assign_and_removal_lb
Success
133.52
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
187.02
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
207.33
test_loadbalance.py

test_03_list_snapshots
Success
0.09
test_list_ids_parameter.py

test_02_list_templates
Success
0.04
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.06
test_iso.py

test_04_extract_Iso
Success
5.37
test_iso.py

test_03_delete_iso
Success
95.13
test_iso.py

test_02_edit_iso
Success
0.06
test_iso.py

test_01_create_iso
Success
21.00
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
183.27
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
163.01
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
530.19
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
409.66
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.32
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.14
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.20
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
6.00
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
5.87
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
5.92
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.05
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
5.95
test_dynamicroles.py

test_role_lifecycle_update
Success
11.03
test_dynamicroles.py

test_role_lifecycle_list
Success
5.93
test_dynamicroles.py

test_role_lifecycle_delete
Success
10.95
test_dynamicroles.py

test_role_lifecycle_create
Success
5.91
test_dynamicroles.py

test_role_inuse_deletion
Success
5.93
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
8.37
test_dynamicroles.py

test_role_account_acls
Success
8.36
test_dynamicroles.py

test_default_role_deletion
Success
6.12
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.07
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.05
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.07
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.07
test_disk_offerings.py

test_01_create_disk_offering
Success
0.13
test_disk_offerings.py

test_deployvm_userdispersing
Success
20.87
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
20.73
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
86.10
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
10.42
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
55.78
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
6.32
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
6.41
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
248.28
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
203.64
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
116.95
test_affinity_groups.py

test_change_service_offering_for_vm_with_snapshots
Skipped
0.00
test_vm_snapshots.py

test_03_delete_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_02_revert_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Skipped
0.00
test_vm_snapshots.py

test_01_create_vm_snapshots
Skipped
0.00
test_vm_snapshots.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_01_scale_vm
Skipped
0.00
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.03
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.00
test_deploy_vgpu_enabled_vm.py

@blueorangutan test centos7 vmware-55u3

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-55u3) has been kicked to run smoke tests

Trillian test result (tid-778)
Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
Total time taken: 51612 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t778-vmware-55u3.zip
Intermitten failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_routers_network_ops.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 47 look ok, 1 have error(s)

Test
Result
Time (s)
Test File

test_04_rvpc_privategw_static_routes
Failure
252.62
test_privategw_acl.py

test_01_vpc_site2site_vpn
Success
441.94
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
172.18
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
719.34
test_vpc_vpn.py

test_02_VPC_default_routes
Success
410.07
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
760.20
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
724.28
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1555.35
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
810.39
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
696.00
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1537.82
test_vpc_redundant.py

test_09_delete_detached_volume
Success
31.08
test_volumes.py

test_06_download_detached_volume
Success
85.78
test_volumes.py

test_05_detach_volume
Success
100.46
test_volumes.py

test_04_delete_attached_volume
Success
15.24
test_volumes.py

test_03_download_attached_volume
Success
20.31
test_volumes.py

test_02_attach_volume
Success
58.83
test_volumes.py

test_01_create_volume
Success
537.15
test_volumes.py

test_change_service_offering_for_vm_with_snapshots
Success
575.69
test_vm_snapshots.py

test_03_delete_vm_snapshots
Success
280.30
test_vm_snapshots.py

test_02_revert_vm_snapshots
Success
241.07
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Success
201.58
test_vm_snapshots.py

test_01_create_vm_snapshots
Success
166.72
test_vm_snapshots.py

test_deploy_vm_multiple
Success
272.93
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.84
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.22
test_vm_life_cycle.py

test_08_migrate_vm
Success
81.17
test_vm_life_cycle.py

test_07_restore_vm
Success
0.10
test_vm_life_cycle.py

test_06_destroy_vm
Success
10.14
test_vm_life_cycle.py

test_03_reboot_vm
Success
5.15
test_vm_life_cycle.py

test_02_start_vm
Success
25.27
test_vm_life_cycle.py

test_01_stop_vm
Success
10.15
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
271.95
test_templates.py

test_08_list_system_templates
Success
0.04
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.07
test_templates.py

test_04_extract_template
Success
15.30
test_templates.py

test_03_delete_template
Success
5.11
test_templates.py

test_02_edit_template
Success
90.12
test_templates.py

test_01_create_template
Success
141.10
test_templates.py

test_10_destroy_cpvm
Success
297.06
test_ssvm.py

test_09_destroy_ssvm
Success
269.16
test_ssvm.py

test_08_reboot_cpvm
Success
156.74
test_ssvm.py

test_07_reboot_ssvm
Success
158.66
test_ssvm.py

test_06_stop_cpvm
Success
207.08
test_ssvm.py

test_05_stop_ssvm
Success
173.82
test_ssvm.py

test_04_cpvm_internals
Success
1.25
test_ssvm.py

test_03_ssvm_internals
Success
3.86
test_ssvm.py

test_02_list_cpvm_vm
Success
0.13
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.14
test_ssvm.py

test_01_snapshot_root_disk
Success
66.51
test_snapshots.py

test_04_change_offering_small
Success
126.93
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.08
test_service_offerings.py

test_01_create_service_offering
Success
0.11
test_service_offerings.py

test_02_sys_template_ready
Success
0.14
test_secondary_storage.py

test_01_sys_vm_start
Success
0.19
test_secondary_storage.py

test_09_reboot_router
Success
181.26
test_routers.py

test_08_start_router
Success
135.95
test_routers.py

test_07_stop_router
Success
20.22
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.66
test_routers.py

test_03_restart_network_cleanup
Success
166.21
test_routers.py

test_02_router_internal_adv
Success
1.05
test_routers.py

test_01_router_internal_basic
Success
0.58
test_routers.py

test_router_dns_guestipquery
Success
77.26
test_router_dns.py

test_router_dns_externalipquery
Success
0.08
test_router_dns.py

test_router_dhcphosts
Success
186.28
test_router_dhcphosts.py

test_router_dhcp_opts
Success
21.70
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.09
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
45.45
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.22
test_pvlan.py

test_dedicatePublicIpRange
Success
0.43
test_public_ip_range.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
1180.51
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
748.83
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
193.16
test_privategw_acl.py

test_01_primary_storage_nfs
Success
37.68
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.25
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.47
test_portable_publicip.py

test_isolate_network_password_server
Success
94.36
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.15
test_over_provisioning.py

test_oobm_zchange_password
Success
30.93
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.34
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.23
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
10.33
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.35
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.34
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.37
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.32
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
92.71
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.16
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.10
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
0.16
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.10
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.09
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.08
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
23.43
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.32
test_non_contigiousvlan.py

test_01_nic
Success
510.39
test_nic.py

test_releaseIP
Success
328.55
test_network.py

test_reboot_router
Success
670.67
test_network.py

test_public_ip_user_account
Success
10.40
test_network.py

test_public_ip_admin_account
Success
40.32
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
76.84
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.78
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
125.59
test_network.py

test_delete_account
Success
333.31
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.73
test_network.py

test_01_port_fwd_on_src_nat
Success
111.83
test_network.py

test_nic_secondaryip_add_remove
Success
227.97
test_multipleips_per_nic.py

login_test_saml_user
Success
19.66
test_login.py

test_assign_and_removal_lb
Success
148.88
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
207.60
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
208.23
test_loadbalance.py

test_03_list_snapshots
Success
0.09
test_list_ids_parameter.py

test_02_list_templates
Success
0.05
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.07
test_iso.py

test_04_extract_Iso
Success
5.24
test_iso.py

test_03_delete_iso
Success
95.20
test_iso.py

test_02_edit_iso
Success
0.09
test_iso.py

test_01_create_iso
Success
21.06
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
631.41
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
456.06
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
1135.37
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
823.70
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.44
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.18
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.32
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
6.03
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
6.04
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
6.23
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.11
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
5.99
test_dynamicroles.py

test_role_lifecycle_update
Success
11.04
test_dynamicroles.py

test_role_lifecycle_list
Success
5.96
test_dynamicroles.py

test_role_lifecycle_delete
Success
11.02
test_dynamicroles.py

test_role_lifecycle_create
Success
5.99
test_dynamicroles.py

test_role_inuse_deletion
Success
5.92
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
8.39
test_dynamicroles.py

test_role_account_acls
Success
8.56
test_dynamicroles.py

test_default_role_deletion
Success
6.10
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.10
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.05
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.07
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.08
test_disk_offerings.py

test_01_create_disk_offering
Success
0.12
test_disk_offerings.py

test_deployvm_userdispersing
Success
65.99
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
111.84
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
216.85
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
30.84
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
181.71
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
6.40
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
5.93
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
6.19
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
212.69
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
242.42
test_affinity_groups.py

test_08_resize_volume
Skipped
10.14
test_volumes.py

test_07_resize_fail
Skipped
15.32
test_volumes.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_01_scale_vm
Skipped
66.35
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.04
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.01
test_deploy_vgpu_enabled_vm.py

@nvazquez Since 4.9.2 is already released and this is not a bugfix the DB changes should go to schema-490to4910.sql

@serg38 done, I reverted DB changes to schema-490to4910.sql, thanks!
@koushik-das thanks for reviewing! I refactored PR according to your review

@rhtyd @karuturi Can we run tests on this PR and merge on success ?

LGTM

@koushik-das @rhtyd @rafaelweingartner  Can you review changes @nvazquez put in place? CI tests are good.

Long time I do not review a PR here. I have to say, @nvazquez , great job!!
@serg38 you read my mind!! I had just started reading @nvazquez PR description when you called me.
Well documented methods. The methods are short and concise. The code is clear and looks nice (at least for me).
I jumped over the 70+ messages here. So, excuse me if I ask something that has already been clarified before.
However, as always I have something to complain; I might be getting old, that is probably why :) . Just teasing; it is more like a set of suggestion;

On VMSnapshotVO, what about declaring the instance attribute you create as private? I know the others are not, and at the end of the day, it does not change much. However, as long as we are using Java and if we consider “VMSnapshotVO” as a POJO, then it feels a good idea to use private attributes that are only accessible to their gets/sets.
On VMSnapshotManagerImpl, here we have a “service” layer object/component. I would have the same suggestion regarding the use of private/protected attributes here (this is cosmetics).
Still on VMSnapshotManagerImpl, what about extracting the code from lines 358-373 to a method? This may enable you to write unit test cases for these lines.
Also on VMSnapshotManagerImpl, methods “addSupportForCustomServiceOffering”, “updateUserVmServiceOffering”, “getVmMapDetails”, “changeUserVmServiceOffering”, revertUserVmDetailsFromVmSnapshot, and “ugradeUserVmServiceOffering” are clean and well documented. However, I am missing their test cases. What about some test cases here, then it would be awesome.
on VMSnapshotManagerImpl, the method “ugradeUserVmServiceOffering” seems to have a typo mistake ;)
the method “revertUserVmDetailsFromVmSnapshot” receives a parameter “userVm”, but it does not seem to be used.

I am assuming you have executed the functional test “test_vm_snapshots.py” and it passed successfully, right?
Very good feature to be added. Thanks for the valuable contribution to ACS 👍

Hi @rafaelweingartner! Thanks a lot for your review! As usual, your comments are really valuable.
I agree with you on the points you've mentioned and I've refactored the PR based on them, mostly on the unit tests for the new methods which I have missed out.
About, test_vm_snapshots.py it passed successfully, please let me know if it is needed to post results and I'll rebase 4.9 branch and re ran the test.
Thanks again for taking the time to review the PR!

Great job.
I just noticed two possible cases that might be a good idea to write a test case for.
Test case for method “createAndPersistVMSnapshot” to check when an exception for line 388 is thrown. The same for method “changeUserVmServiceOffering” when an exception for line 742 is thrown.
The idea is that, if those conditions are met, an exception should be accepted; so, it is a test case that prepares the code in a way that those conditions are satisfied and an exception is thrown.
I do not know if my explanation was intelligible. If you did not understand what I meant, please call me.

@rafaelweingartner excellent, I added both test cases on VMSnapshotManagerTest, thanks!
@koushik-das thanks for pointing that out, I agree with you that db changes should be in schema-4920to4930.sql, but it still no file on 4.9 branch, so I moved changes to schema-4910to4920.sql in the mean time. @karuturi is there a plan for 4.9.3 or should I retarget this PR to master branch so I could include changes in schema-4920to41000.sql?

Its an enhancement. It should be for the next major release which is 4.10(on master branch)

Perfect @nvazquez
Thanks for all of the hard work 👍
LGTM

@rafaelweingartner @koushik-das @karuturi
Great, I've re-targeted PR to master branch. Thanks for your help!

@DaanHoogland @borisstoyanov @rhtyd Guys can you kick off tests for this PR?

@blueorangutan package

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-477

@blueorangutan test

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-809)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31586 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t809-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 48 look ok, 1 have error(s)

Test
Result
Time (s)
Test File

test_04_rvpc_privategw_static_routes
Failure
310.09
test_privategw_acl.py

test_01_vpc_site2site_vpn
Success
160.06
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
61.24
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
241.12
test_vpc_vpn.py

test_02_VPC_default_routes
Success
258.78
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
532.79
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
506.07
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1394.10
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
545.37
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
751.62
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1288.57
test_vpc_redundant.py

test_09_delete_detached_volume
Success
156.49
test_volumes.py

test_08_resize_volume
Success
151.34
test_volumes.py

test_07_resize_fail
Success
156.41
test_volumes.py

test_06_download_detached_volume
Success
151.59
test_volumes.py

test_05_detach_volume
Success
150.73
test_volumes.py

test_04_delete_attached_volume
Success
151.10
test_volumes.py

test_03_download_attached_volume
Success
156.22
test_volumes.py

test_02_attach_volume
Success
84.11
test_volumes.py

test_01_create_volume
Success
711.26
test_volumes.py

test_03_delete_vm_snapshots
Success
275.18
test_vm_snapshots.py

test_02_revert_vm_snapshots
Success
95.76
test_vm_snapshots.py

test_01_create_vm_snapshots
Success
158.73
test_vm_snapshots.py

test_deploy_vm_multiple
Success
263.02
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.64
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.15
test_vm_life_cycle.py

test_08_migrate_vm
Success
50.93
test_vm_life_cycle.py

test_07_restore_vm
Success
0.12
test_vm_life_cycle.py

test_06_destroy_vm
Success
125.78
test_vm_life_cycle.py

test_03_reboot_vm
Success
125.90
test_vm_life_cycle.py

test_02_start_vm
Success
10.18
test_vm_life_cycle.py

test_01_stop_vm
Success
35.41
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
60.58
test_templates.py

test_08_list_system_templates
Success
0.03
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.06
test_templates.py

test_04_extract_template
Success
5.15
test_templates.py

test_03_delete_template
Success
5.13
test_templates.py

test_02_edit_template
Success
90.18
test_templates.py

test_01_create_template
Success
40.40
test_templates.py

test_10_destroy_cpvm
Success
191.41
test_ssvm.py

test_09_destroy_ssvm
Success
168.60
test_ssvm.py

test_08_reboot_cpvm
Success
101.48
test_ssvm.py

test_07_reboot_ssvm
Success
103.35
test_ssvm.py

test_06_stop_cpvm
Success
131.79
test_ssvm.py

test_05_stop_ssvm
Success
133.21
test_ssvm.py

test_04_cpvm_internals
Success
1.15
test_ssvm.py

test_03_ssvm_internals
Success
3.94
test_ssvm.py

test_02_list_cpvm_vm
Success
0.20
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.14
test_ssvm.py

test_01_snapshot_root_disk
Success
11.29
test_snapshots.py

test_04_change_offering_small
Success
239.54
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.05
test_service_offerings.py

test_01_create_service_offering
Success
0.10
test_service_offerings.py

test_02_sys_template_ready
Success
0.12
test_secondary_storage.py

test_01_sys_vm_start
Success
0.17
test_secondary_storage.py

test_09_reboot_router
Success
35.29
test_routers.py

test_08_start_router
Success
25.24
test_routers.py

test_07_stop_router
Success
10.30
test_routers.py

test_06_router_advanced
Success
0.07
test_routers.py

test_05_router_basic
Success
0.06
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.56
test_routers.py

test_03_restart_network_cleanup
Success
55.47
test_routers.py

test_02_router_internal_adv
Success
1.04
test_routers.py

test_01_router_internal_basic
Success
0.57
test_routers.py

test_router_dns_guestipquery
Success
76.73
test_router_dns.py

test_router_dns_externalipquery
Success
0.08
test_router_dns.py

test_router_dhcphosts
Success
256.91
test_router_dhcphosts.py

test_router_dhcp_opts
Success
21.66
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.07
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
145.97
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.20
test_pvlan.py

test_dedicatePublicIpRange
Success
0.45
test_public_ip_range.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
444.74
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
369.93
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
82.11
test_privategw_acl.py

test_01_primary_storage_nfs
Success
35.77
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.19
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.39
test_portable_publicip.py

test_isolate_network_password_server
Success
90.24
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.13
test_over_provisioning.py

test_oobm_zchange_password
Success
30.61
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.32
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.29
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.32
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.30
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.32
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.31
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.31
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
92.52
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.17
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.17
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.07
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.14
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
23.40
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.29
test_non_contigiousvlan.py

test_01_nic
Success
399.17
test_nic.py

test_releaseIP
Success
258.07
test_network.py

test_reboot_router
Success
388.59
test_network.py

test_public_ip_user_account
Success
10.23
test_network.py

test_public_ip_admin_account
Success
40.25
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
66.76
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.47
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
120.67
test_network.py

test_delete_account
Success
262.57
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.62
test_network.py

test_01_port_fwd_on_src_nat
Success
109.67
test_network.py

test_nic_secondaryip_add_remove
Success
252.74
test_multipleips_per_nic.py

login_test_saml_user
Success
19.35
test_login.py

test_assign_and_removal_lb
Success
133.25
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
187.06
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
217.49
test_loadbalance.py

test_03_list_snapshots
Success
0.09
test_list_ids_parameter.py

test_02_list_templates
Success
0.04
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.06
test_iso.py

test_04_extract_Iso
Success
5.15
test_iso.py

test_03_delete_iso
Success
95.12
test_iso.py

test_02_edit_iso
Success
0.05
test_iso.py

test_01_create_iso
Success
21.04
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
192.82
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
142.72
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
515.09
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
403.96
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.27
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.23
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.21
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
6.01
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
5.88
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
5.90
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.02
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
5.90
test_dynamicroles.py

test_role_lifecycle_update
Success
10.98
test_dynamicroles.py

test_role_lifecycle_list
Success
5.91
test_dynamicroles.py

test_role_lifecycle_delete
Success
10.91
test_dynamicroles.py

test_role_lifecycle_create
Success
5.90
test_dynamicroles.py

test_role_inuse_deletion
Success
5.88
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
8.01
test_dynamicroles.py

test_role_account_acls
Success
8.30
test_dynamicroles.py

test_default_role_deletion
Success
6.00
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.08
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.04
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.05
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.06
test_disk_offerings.py

test_01_create_disk_offering
Success
0.10
test_disk_offerings.py

test_deployvm_userdispersing
Success
20.57
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
20.63
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
70.89
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
35.54
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
50.67
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
5.97
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
5.97
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
232.53
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
202.36
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
61.17
test_affinity_groups.py

test_change_service_offering_for_vm_with_snapshots
Skipped
0.00
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Skipped
0.00
test_vm_snapshots.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_11_ss_nfs_version_on_ssvm
Skipped
0.02
test_ssvm.py

test_01_scale_vm
Skipped
0.00
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.03
test_primary_storage.py

test_nested_virtualization_vmware
Skipped
0.00
test_nested_virtualization.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.03
test_deploy_vgpu_enabled_vm.py

test_3d_gpu_support
Skipped
0.03
test_deploy_vgpu_enabled_vm.py

@borisstoyanov @DaanHoogland @rhtyd KVM tests passed but key smoke test is skipped
test_change_service_offering_for_vm_with_snapshots	Skipped
To be on the safe side can we test it on vmware and Xen as well?

Sure @serg38
@blueorangutan test centos7 xenserver-65sp1

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + xenserver-65sp1) has been kicked to run smoke tests

Trillian test result (tid-811)
Environment: xenserver-65sp1 (x2), Advanced Networking with Mgmt server 7
Total time taken: 40396 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t811-xenserver-65sp1.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_volumes.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 46 look ok, 3 have error(s)

Test
Result
Time (s)
Test File

test_05_rvpc_multi_tiers
Failure
520.33
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Failure
1345.24
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Failure
532.36
test_vpc_redundant.py

test_04_rvpc_privategw_static_routes
Failure
712.65
test_privategw_acl.py

test_06_download_detached_volume
Error
20.29
test_volumes.py

test_01_vpc_site2site_vpn
Success
286.57
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
131.48
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
517.13
test_vpc_vpn.py

test_02_VPC_default_routes
Success
319.39
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
623.69
test_vpc_router_nics.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
839.88
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
1063.92
test_vpc_redundant.py

test_09_delete_detached_volume
Success
15.74
test_volumes.py

test_08_resize_volume
Success
85.81
test_volumes.py

test_07_resize_fail
Success
100.88
test_volumes.py

test_05_detach_volume
Success
100.23
test_volumes.py

test_04_delete_attached_volume
Success
10.21
test_volumes.py

test_03_download_attached_volume
Success
15.24
test_volumes.py

test_02_attach_volume
Success
10.66
test_volumes.py

test_01_create_volume
Success
392.23
test_volumes.py

test_change_service_offering_for_vm_with_snapshots
Success
414.61
test_vm_snapshots.py

test_03_delete_vm_snapshots
Success
280.25
test_vm_snapshots.py

test_02_revert_vm_snapshots
Success
214.26
test_vm_snapshots.py

test_01_create_vm_snapshots
Success
100.61
test_vm_snapshots.py

test_deploy_vm_multiple
Success
187.19
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.67
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.24
test_vm_life_cycle.py

test_08_migrate_vm
Success
66.03
test_vm_life_cycle.py

test_07_restore_vm
Success
0.10
test_vm_life_cycle.py

test_06_destroy_vm
Success
10.14
test_vm_life_cycle.py

test_03_reboot_vm
Success
10.16
test_vm_life_cycle.py

test_02_start_vm
Success
20.21
test_vm_life_cycle.py

test_01_stop_vm
Success
25.23
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
80.76
test_templates.py

test_08_list_system_templates
Success
0.03
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.06
test_templates.py

test_04_extract_template
Success
5.12
test_templates.py

test_03_delete_template
Success
5.11
test_templates.py

test_02_edit_template
Success
90.07
test_templates.py

test_01_create_template
Success
50.44
test_templates.py

test_10_destroy_cpvm
Success
196.49
test_ssvm.py

test_09_destroy_ssvm
Success
228.80
test_ssvm.py

test_08_reboot_cpvm
Success
146.53
test_ssvm.py

test_07_reboot_ssvm
Success
148.58
test_ssvm.py

test_06_stop_cpvm
Success
136.52
test_ssvm.py

test_05_stop_ssvm
Success
168.91
test_ssvm.py

test_04_cpvm_internals
Success
0.99
test_ssvm.py

test_03_ssvm_internals
Success
3.34
test_ssvm.py

test_02_list_cpvm_vm
Success
0.11
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.12
test_ssvm.py

test_01_snapshot_root_disk
Success
26.40
test_snapshots.py

test_04_change_offering_small
Success
119.00
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.05
test_service_offerings.py

test_01_create_service_offering
Success
0.08
test_service_offerings.py

test_02_sys_template_ready
Success
0.13
test_secondary_storage.py

test_01_sys_vm_start
Success
0.17
test_secondary_storage.py

test_01_scale_vm
Success
5.18
test_scale_vm.py

test_09_reboot_router
Success
65.43
test_routers.py

test_08_start_router
Success
50.52
test_routers.py

test_07_stop_router
Success
15.18
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.51
test_routers.py

test_03_restart_network_cleanup
Success
115.79
test_routers.py

test_02_router_internal_adv
Success
0.77
test_routers.py

test_01_router_internal_basic
Success
0.41
test_routers.py

test_router_dns_guestipquery
Success
48.74
test_router_dns.py

test_router_dns_externalipquery
Success
0.08
test_router_dns.py

test_router_dhcphosts
Success
112.21
test_router_dhcphosts.py

test_router_dhcp_opts
Success
31.16
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.07
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
75.55
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.25
test_pvlan.py

test_dedicatePublicIpRange
Success
0.37
test_public_ip_range.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
827.09
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
612.36
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
147.63
test_privategw_acl.py

test_01_primary_storage_nfs
Success
38.81
test_primary_storage.py

test_01_primary_storage_iscsi
Success
77.23
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.33
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.42
test_portable_publicip.py

test_isolate_network_password_server
Success
35.93
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.12
test_over_provisioning.py

test_oobm_zchange_password
Success
30.72
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.34
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.24
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.32
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.36
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.30
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.33
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.33
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
82.78
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.15
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
5.21
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.07
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.08
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
29.39
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.32
test_non_contigiousvlan.py

test_01_nic
Success
529.77
test_nic.py

test_releaseIP
Success
268.71
test_network.py

test_reboot_router
Success
514.09
test_network.py

test_public_ip_user_account
Success
10.24
test_network.py

test_public_ip_admin_account
Success
40.40
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
86.61
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
76.35
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
102.98
test_network.py

test_delete_account
Success
303.08
test_network.py

test_02_port_fwd_on_non_src_nat
Success
70.71
test_network.py

test_01_port_fwd_on_src_nat
Success
83.75
test_network.py

test_nic_secondaryip_add_remove
Success
152.25
test_multipleips_per_nic.py

login_test_saml_user
Success
19.23
test_login.py

test_assign_and_removal_lb
Success
148.36
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
207.57
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
207.77
test_loadbalance.py

test_03_list_snapshots
Success
0.06
test_list_ids_parameter.py

test_02_list_templates
Success
0.04
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.06
test_iso.py

test_04_extract_Iso
Success
5.11
test_iso.py

test_03_delete_iso
Success
95.21
test_iso.py

test_02_edit_iso
Success
0.07
test_iso.py

test_01_create_iso
Success
21.01
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
419.49
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
309.52
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
944.64
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
662.82
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.25
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.20
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.15
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
5.98
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
5.88
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
5.89
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.00
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
5.93
test_dynamicroles.py

test_role_lifecycle_update
Success
10.98
test_dynamicroles.py

test_role_lifecycle_list
Success
5.88
test_dynamicroles.py

test_role_lifecycle_delete
Success
10.94
test_dynamicroles.py

test_role_lifecycle_create
Success
5.88
test_dynamicroles.py

test_role_inuse_deletion
Success
5.89
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
8.01
test_dynamicroles.py

test_role_account_acls
Success
8.40
test_dynamicroles.py

test_default_role_deletion
Success
6.01
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.07
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.04
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.05
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.07
test_disk_offerings.py

test_01_create_disk_offering
Success
0.08
test_disk_offerings.py

test_deployvm_userdispersing
Success
51.05
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
75.94
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
146.15
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
25.54
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
101.12
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
5.90
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
5.85
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
6.08
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
142.09
test_deploy_vm_iso.py

test_DeployVmAntiAffinityGroup
Success
171.62
test_affinity_groups.py

test_01_test_vm_volume_snapshot
Skipped
0.00
test_vm_snapshots.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.02
test_staticroles.py

test_11_ss_nfs_version_on_ssvm
Skipped
0.02
test_ssvm.py

test_nested_virtualization_vmware
Skipped
0.00
test_nested_virtualization.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
0.03
test_deploy_vgpu_enabled_vm.py

test_3d_gpu_support
Skipped
0.03
test_deploy_vgpu_enabled_vm.py

Thanks @borisstoyanov! Can we test it against Vmware?

@blueorangutan test centos7 vmware-60u2

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + vmware-60u2) has been kicked to run smoke tests

There you go @nvazquez, results should come up in 6-8 hours.

Great, thanks @borisstoyanov!

Trillian test result (tid-817)
Environment: vmware-60u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 43428 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1727-t817-vmware-60u2.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_routers_network_ops.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 48 look ok, 1 have error(s)

Test
Result
Time (s)
Test File

test_04_rvpc_privategw_static_routes
Failure
808.93
test_privategw_acl.py

test_01_vpc_site2site_vpn
Success
321.50
test_vpc_vpn.py

test_01_vpc_remote_access_vpn
Success
161.88
test_vpc_vpn.py

test_01_redundant_vpc_site2site_vpn
Success
538.04
test_vpc_vpn.py

test_02_VPC_default_routes
Success
289.56
test_vpc_router_nics.py

test_01_VPC_nics_after_destroy
Success
721.30
test_vpc_router_nics.py

test_05_rvpc_multi_tiers
Success
627.21
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Success
1478.29
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Success
638.93
test_vpc_redundant.py

test_02_redundant_VPC_default_routes
Success
608.03
test_vpc_redundant.py

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Success
1310.61
test_vpc_redundant.py

test_09_delete_detached_volume
Success
20.77
test_volumes.py

test_06_download_detached_volume
Success
50.49
test_volumes.py

test_05_detach_volume
Success
100.26
test_volumes.py

test_04_delete_attached_volume
Success
10.20
test_volumes.py

test_03_download_attached_volume
Success
15.30
test_volumes.py

test_02_attach_volume
Success
49.58
test_volumes.py

test_01_create_volume
Success
435.28
test_volumes.py

test_change_service_offering_for_vm_with_snapshots
Success
500.36
test_vm_snapshots.py

test_03_delete_vm_snapshots
Success
275.21
test_vm_snapshots.py

test_02_revert_vm_snapshots
Success
222.12
test_vm_snapshots.py

test_01_test_vm_volume_snapshot
Success
201.53
test_vm_snapshots.py

test_01_create_vm_snapshots
Success
161.64
test_vm_snapshots.py

test_deploy_vm_multiple
Success
262.85
test_vm_life_cycle.py

test_deploy_vm
Success
0.03
test_vm_life_cycle.py

test_advZoneVirtualRouter
Success
0.02
test_vm_life_cycle.py

test_10_attachAndDetach_iso
Success
26.95
test_vm_life_cycle.py

test_09_expunge_vm
Success
125.22
test_vm_life_cycle.py

test_08_migrate_vm
Success
56.05
test_vm_life_cycle.py

test_07_restore_vm
Success
0.11
test_vm_life_cycle.py

test_06_destroy_vm
Success
5.12
test_vm_life_cycle.py

test_03_reboot_vm
Success
5.13
test_vm_life_cycle.py

test_02_start_vm
Success
15.20
test_vm_life_cycle.py

test_01_stop_vm
Success
5.12
test_vm_life_cycle.py

test_CreateTemplateWithDuplicateName
Success
206.63
test_templates.py

test_08_list_system_templates
Success
0.03
test_templates.py

test_07_list_public_templates
Success
0.04
test_templates.py

test_05_template_permissions
Success
0.05
test_templates.py

test_04_extract_template
Success
10.23
test_templates.py

test_03_delete_template
Success
5.11
test_templates.py

test_02_edit_template
Success
90.14
test_templates.py

test_01_create_template
Success
105.82
test_templates.py

test_10_destroy_cpvm
Success
261.82
test_ssvm.py

test_09_destroy_ssvm
Success
233.75
test_ssvm.py

test_08_reboot_cpvm
Success
156.62
test_ssvm.py

test_07_reboot_ssvm
Success
188.54
test_ssvm.py

test_06_stop_cpvm
Success
171.74
test_ssvm.py

test_05_stop_ssvm
Success
173.73
test_ssvm.py

test_04_cpvm_internals
Success
1.17
test_ssvm.py

test_03_ssvm_internals
Success
3.28
test_ssvm.py

test_02_list_cpvm_vm
Success
0.12
test_ssvm.py

test_01_list_sec_storage_vm
Success
0.13
test_ssvm.py

test_01_snapshot_root_disk
Success
16.17
test_snapshots.py

test_04_change_offering_small
Success
116.84
test_service_offerings.py

test_03_delete_service_offering
Success
0.04
test_service_offerings.py

test_02_edit_service_offering
Success
0.08
test_service_offerings.py

test_01_create_service_offering
Success
0.11
test_service_offerings.py

test_02_sys_template_ready
Success
0.13
test_secondary_storage.py

test_01_sys_vm_start
Success
0.18
test_secondary_storage.py

test_09_reboot_router
Success
115.76
test_routers.py

test_08_start_router
Success
100.72
test_routers.py

test_07_stop_router
Success
25.25
test_routers.py

test_06_router_advanced
Success
0.06
test_routers.py

test_05_router_basic
Success
0.04
test_routers.py

test_04_restart_network_wo_cleanup
Success
5.63
test_routers.py

test_03_restart_network_cleanup
Success
120.85
test_routers.py

test_02_router_internal_adv
Success
1.02
test_routers.py

test_01_router_internal_basic
Success
0.53
test_routers.py

test_router_dns_guestipquery
Success
76.67
test_router_dns.py

test_router_dns_externalipquery
Success
0.08
test_router_dns.py

test_router_dhcphosts
Success
134.05
test_router_dhcphosts.py

test_router_dhcp_opts
Success
21.58
test_router_dhcphosts.py

test_01_updatevolumedetail
Success
0.08
test_resource_detail.py

test_01_reset_vm_on_reboot
Success
20.30
test_reset_vm_on_reboot.py

test_createRegion
Success
0.04
test_regions.py

test_create_pvlan_network
Success
5.22
test_pvlan.py

test_dedicatePublicIpRange
Success
0.66
test_public_ip_range.py

test_03_vpc_privategw_restart_vpc_cleanup
Success
918.51
test_privategw_acl.py

test_02_vpc_privategw_static_routes
Success
601.74
test_privategw_acl.py

test_01_vpc_privategw_acl
Success
203.13
test_privategw_acl.py

test_01_primary_storage_nfs
Success
36.00
test_primary_storage.py

test_createPortablePublicIPRange
Success
15.19
test_portable_publicip.py

test_createPortablePublicIPAcquire
Success
15.49
test_portable_publicip.py

test_isolate_network_password_server
Success
64.15
test_password_server.py

test_UpdateStorageOverProvisioningFactor
Success
0.13
test_over_provisioning.py

test_oobm_zchange_password
Success
30.87
test_outofbandmanagement.py

test_oobm_multiple_mgmt_server_ownership
Success
16.37
test_outofbandmanagement.py

test_oobm_issue_power_status
Success
10.25
test_outofbandmanagement.py

test_oobm_issue_power_soft
Success
15.36
test_outofbandmanagement.py

test_oobm_issue_power_reset
Success
15.33
test_outofbandmanagement.py

test_oobm_issue_power_on
Success
15.34
test_outofbandmanagement.py

test_oobm_issue_power_off
Success
15.36
test_outofbandmanagement.py

test_oobm_issue_power_cycle
Success
15.38
test_outofbandmanagement.py

test_oobm_enabledisable_across_clusterzones
Success
87.68
test_outofbandmanagement.py

test_oobm_enable_feature_valid
Success
5.15
test_outofbandmanagement.py

test_oobm_enable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_disable_feature_valid
Success
0.15
test_outofbandmanagement.py

test_oobm_disable_feature_invalid
Success
0.09
test_outofbandmanagement.py

test_oobm_configure_invalid_driver
Success
0.07
test_outofbandmanagement.py

test_oobm_configure_default_driver
Success
0.07
test_outofbandmanagement.py

test_oobm_background_powerstate_sync
Success
29.45
test_outofbandmanagement.py

test_extendPhysicalNetworkVlan
Success
15.33
test_non_contigiousvlan.py

test_01_nic
Success
454.92
test_nic.py

test_releaseIP
Success
323.60
test_network.py

test_reboot_router
Success
549.77
test_network.py

test_public_ip_user_account
Success
10.26
test_network.py

test_public_ip_admin_account
Success
40.28
test_network.py

test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
Success
76.80
test_network.py

test_network_rules_acquired_public_ip_2_nat_rule
Success
61.60
test_network.py

test_network_rules_acquired_public_ip_1_static_nat_rule
Success
125.20
test_network.py

test_delete_account
Success
222.62
test_network.py

test_02_port_fwd_on_non_src_nat
Success
55.62
test_network.py

test_01_port_fwd_on_src_nat
Success
111.76
test_network.py

test_nested_virtualization_vmware
Success
343.64
test_nested_virtualization.py

test_nic_secondaryip_add_remove
Success
247.97
test_multipleips_per_nic.py

login_test_saml_user
Success
19.16
test_login.py

test_assign_and_removal_lb
Success
148.01
test_loadbalance.py

test_02_create_lb_rule_non_nat
Success
207.19
test_loadbalance.py

test_01_create_lb_rule_src_nat
Success
207.68
test_loadbalance.py

test_03_list_snapshots
Success
0.09
test_list_ids_parameter.py

test_02_list_templates
Success
0.04
test_list_ids_parameter.py

test_01_list_volumes
Success
0.03
test_list_ids_parameter.py

test_07_list_default_iso
Success
0.06
test_iso.py

test_05_iso_permissions
Success
0.06
test_iso.py

test_04_extract_Iso
Success
5.17
test_iso.py

test_03_delete_iso
Success
95.28
test_iso.py

test_02_edit_iso
Success
0.08
test_iso.py

test_01_create_iso
Success
20.98
test_iso.py

test_04_rvpc_internallb_haproxy_stats_on_all_interfaces
Success
450.42
test_internal_lb.py

test_03_vpc_internallb_haproxy_stats_on_all_interfaces
Success
328.96
test_internal_lb.py

test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80
Success
883.64
test_internal_lb.py

test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80
Success
702.52
test_internal_lb.py

test_dedicateGuestVlanRange
Success
10.27
test_guest_vlan_range.py

test_UpdateConfigParamWithScope
Success
0.14
test_global_settings.py

test_rolepermission_lifecycle_update
Success
6.18
test_dynamicroles.py

test_rolepermission_lifecycle_list
Success
6.00
test_dynamicroles.py

test_rolepermission_lifecycle_delete
Success
5.86
test_dynamicroles.py

test_rolepermission_lifecycle_create
Success
5.89
test_dynamicroles.py

test_rolepermission_lifecycle_concurrent_updates
Success
6.02
test_dynamicroles.py

test_role_lifecycle_update_role_inuse
Success
5.91
test_dynamicroles.py

test_role_lifecycle_update
Success
11.00
test_dynamicroles.py

test_role_lifecycle_list
Success
6.09
test_dynamicroles.py

test_role_lifecycle_delete
Success
10.93
test_dynamicroles.py

test_role_lifecycle_create
Success
5.88
test_dynamicroles.py

test_role_inuse_deletion
Success
5.87
test_dynamicroles.py

test_role_account_acls_multiple_mgmt_servers
Success
8.03
test_dynamicroles.py

test_role_account_acls
Success
8.38
test_dynamicroles.py

test_default_role_deletion
Success
5.96
test_dynamicroles.py

test_04_create_fat_type_disk_offering
Success
0.07
test_disk_offerings.py

test_03_delete_disk_offering
Success
0.04
test_disk_offerings.py

test_02_edit_disk_offering
Success
0.05
test_disk_offerings.py

test_02_create_sparse_type_disk_offering
Success
0.07
test_disk_offerings.py

test_01_create_disk_offering
Success
0.14
test_disk_offerings.py

test_deployvm_userdispersing
Success
40.71
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userconcentrated
Success
70.89
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_firstfit
Success
171.34
test_deploy_vms_with_varied_deploymentplanners.py

test_deployvm_userdata_post
Success
95.92
test_deploy_vm_with_userdata.py

test_deployvm_userdata
Success
121.10
test_deploy_vm_with_userdata.py

test_02_deploy_vm_root_resize
Success
5.96
test_deploy_vm_root_resize.py

test_01_deploy_vm_root_resize
Success
5.89
test_deploy_vm_root_resize.py

test_00_deploy_vm_root_resize
Success
5.98
test_deploy_vm_root_resize.py

test_deploy_vm_from_iso
Success
152.16
test_deploy_vm_iso.py

test_3d_gpu_support
Success
374.74
test_deploy_vgpu_enabled_vm.py

test_DeployVmAntiAffinityGroup
Success
151.83
test_affinity_groups.py

test_08_resize_volume
Skipped
5.11
test_volumes.py

test_07_resize_fail
Skipped
10.29
test_volumes.py

test_06_copy_template
Skipped
0.00
test_templates.py

test_static_role_account_acls
Skipped
0.03
test_staticroles.py

test_11_ss_nfs_version_on_ssvm
Skipped
0.02
test_ssvm.py

test_01_scale_vm
Skipped
66.27
test_scale_vm.py

test_01_primary_storage_iscsi
Skipped
0.04
test_primary_storage.py

test_06_copy_iso
Skipped
0.00
test_iso.py

test_deploy_vgpu_enabled_vm
Skipped
1.09
test_deploy_vgpu_enabled_vm.py

@karuturi This one is ready for merging. Two LGTMs + tests passing on all 3 hypervisors

@nvazquez Can you resolve conflicts? It might be due to the merge of your other PR #1747 :)
Thanks.

@karuturi sure, done! Thanks!

merging

authors: blueorangutan borisstoyanov karuturi koushik-das nvazquez rafaelweingartner rhtyd serg38