[ https://issues.apache.org/jira/browse/CLOUDSTACK-9539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15651570#comment-15651570 ]
ASF GitHub Bot commented on CLOUDSTACK-9539: -------------------------------------------- Github user blueorangutan commented on the issue: https://github.com/apache/cloudstack/pull/1727 <b>Trillian test result (tid-320)</b> 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 > Support changing Service offering for instance with VM Snapshots > ---------------------------------------------------------------- > > Key: CLOUDSTACK-9539 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9539 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Reporter: Nicolas Vazquez > Assignee: Nicolas Vazquez > > h3. Actual behaviour > CloudStack doesn't support changing service offering for vm instances which > have vm snapshots, they should be removed before changing service offering. > h3. 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. > h3. Proposed solution: > 1. 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;}} > 2. New vm snapshots will use instance vm service offering id as > {{service_offering_id}} > 3. Revert to vm snapshots should use vm snapshot's {{service_offering_id}} > value. > h3. 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 -- This message was sent by Atlassian JIRA (v6.3.4#6332)