[ https://issues.apache.org/jira/browse/CLOUDSTACK-9539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828341#comment-15828341 ]
rashmidixit commented on CLOUDSTACK-9539: ----------------------------------------- Github user nvazquez commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1727#discussion_r96670694 --- Diff: server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java --- @@ -707,16 +802,41 @@ private UserVm orchestrateRevertToVMSnapshot(Long vmSnapshotId) throws Insuffici throw new InvalidParameterValueException("There is other active vm snapshot tasks on the instance, please try again later"); } + revertUserVmDetailsFromVmSnapshot(userVm, vmSnapshotVo); + try { VMSnapshotStrategy strategy = findVMSnapshotStrategy(vmSnapshotVo); strategy.revertVMSnapshot(vmSnapshotVo); + updateUserVmServiceOffering(userVm, vmSnapshotVo); --- End diff -- @koushik-das Done, thanks for your review! --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- > 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)