mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-8748: VM UUID accessible in CreateVMSnapshotCommand and RevertToVMSnapshotCommand
This patch makes it possible to expose VM UUID to subsystems, this can be useful for implementing VM Snapshots for KVM in future. This was PR #717 towards 4.5 Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> (cherry picked from commit 0062ff2672e257f2a4290e054e23ef4333a34983) Signed-off-by: Remi Bergsma <github@remi.nl>
This commit is contained in:
parent
3fd35dd4a7
commit
180afe52e5
@ -25,8 +25,14 @@ import org.apache.cloudstack.storage.to.VolumeObjectTO;
|
|||||||
|
|
||||||
|
|
||||||
public class CreateVMSnapshotCommand extends VMSnapshotBaseCommand {
|
public class CreateVMSnapshotCommand extends VMSnapshotBaseCommand {
|
||||||
|
private String vmUuid;
|
||||||
|
|
||||||
public CreateVMSnapshotCommand(String vmName, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType) {
|
public CreateVMSnapshotCommand(String vmName, String vmUuid, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType) {
|
||||||
super(vmName, snapshot, volumeTOs, guestOSType);
|
super(vmName, snapshot, volumeTOs, guestOSType);
|
||||||
|
this.vmUuid = vmUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVmUuid() {
|
||||||
|
return vmUuid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,16 +25,18 @@ import org.apache.cloudstack.storage.to.VolumeObjectTO;
|
|||||||
|
|
||||||
public class RevertToVMSnapshotCommand extends VMSnapshotBaseCommand {
|
public class RevertToVMSnapshotCommand extends VMSnapshotBaseCommand {
|
||||||
|
|
||||||
public RevertToVMSnapshotCommand(String vmName, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType) {
|
public RevertToVMSnapshotCommand(String vmName, String vmUuid, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType) {
|
||||||
super(vmName, snapshot, volumeTOs, guestOSType);
|
super(vmName, snapshot, volumeTOs, guestOSType);
|
||||||
|
this.vmUuid = vmUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RevertToVMSnapshotCommand(String vmName, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType, boolean reloadVm) {
|
public RevertToVMSnapshotCommand(String vmName, String vmUuid, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType, boolean reloadVm) {
|
||||||
this(vmName, snapshot, volumeTOs, guestOSType);
|
this(vmName, vmUuid, snapshot, volumeTOs, guestOSType);
|
||||||
setReloadVm(reloadVm);
|
setReloadVm(reloadVm);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean reloadVm = false;
|
private boolean reloadVm = false;
|
||||||
|
private String vmUuid;
|
||||||
|
|
||||||
public boolean isReloadVm() {
|
public boolean isReloadVm() {
|
||||||
return reloadVm;
|
return reloadVm;
|
||||||
@ -43,4 +45,8 @@ public class RevertToVMSnapshotCommand extends VMSnapshotBaseCommand {
|
|||||||
public void setReloadVm(boolean reloadVm) {
|
public void setReloadVm(boolean reloadVm) {
|
||||||
this.reloadVm = reloadVm;
|
this.reloadVm = reloadVm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getVmUuid() {
|
||||||
|
return vmUuid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,7 +137,7 @@ public class DefaultVMSnapshotStrategy extends ManagerBase implements VMSnapshot
|
|||||||
HostVO host = hostDao.findById(hostId);
|
HostVO host = hostDao.findById(hostId);
|
||||||
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
||||||
|
|
||||||
CreateVMSnapshotCommand ccmd = new CreateVMSnapshotCommand(userVm.getInstanceName(), target, volumeTOs, guestOS.getDisplayName());
|
CreateVMSnapshotCommand ccmd = new CreateVMSnapshotCommand(userVm.getInstanceName(), userVm.getUuid(), target, volumeTOs, guestOS.getDisplayName());
|
||||||
if (guestOsMapping == null) {
|
if (guestOsMapping == null) {
|
||||||
ccmd.setPlatformEmulator(null);
|
ccmd.setPlatformEmulator(null);
|
||||||
} else {
|
} else {
|
||||||
@ -350,7 +350,7 @@ public class DefaultVMSnapshotStrategy extends ManagerBase implements VMSnapshot
|
|||||||
snapshot.getCurrent(), parent, true);
|
snapshot.getCurrent(), parent, true);
|
||||||
Long hostId = vmSnapshotHelper.pickRunningHost(vmSnapshot.getVmId());
|
Long hostId = vmSnapshotHelper.pickRunningHost(vmSnapshot.getVmId());
|
||||||
GuestOSVO guestOS = guestOSDao.findById(userVm.getGuestOSId());
|
GuestOSVO guestOS = guestOSDao.findById(userVm.getGuestOSId());
|
||||||
RevertToVMSnapshotCommand revertToSnapshotCommand = new RevertToVMSnapshotCommand(vmInstanceName, vmSnapshotTO, volumeTOs, guestOS.getDisplayName());
|
RevertToVMSnapshotCommand revertToSnapshotCommand = new RevertToVMSnapshotCommand(vmInstanceName, userVm.getUuid(), vmSnapshotTO, volumeTOs, guestOS.getDisplayName());
|
||||||
HostVO host = hostDao.findById(hostId);
|
HostVO host = hostDao.findById(hostId);
|
||||||
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
||||||
if (guestOsMapping == null) {
|
if (guestOsMapping == null) {
|
||||||
|
|||||||
@ -124,7 +124,7 @@ public class HypervisorHelperImpl implements HypervisorHelper {
|
|||||||
GuestOSVO guestOS = guestOSDao.findById(virtualMachine.getGuestOSId());
|
GuestOSVO guestOS = guestOSDao.findById(virtualMachine.getGuestOSId());
|
||||||
List<VolumeObjectTO> volumeTOs = vmSnapshotHelper.getVolumeTOList(virtualMachine.getId());
|
List<VolumeObjectTO> volumeTOs = vmSnapshotHelper.getVolumeTOList(virtualMachine.getId());
|
||||||
CreateVMSnapshotCommand ccmd =
|
CreateVMSnapshotCommand ccmd =
|
||||||
new CreateVMSnapshotCommand(virtualMachine.getInstanceName(), vmSnapshotTO, volumeTOs, guestOS.getDisplayName());
|
new CreateVMSnapshotCommand(virtualMachine.getInstanceName(), virtualMachine.getUuid(), vmSnapshotTO, volumeTOs, guestOS.getDisplayName());
|
||||||
HostVO host = hostDao.findById(hostId);
|
HostVO host = hostDao.findById(hostId);
|
||||||
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
GuestOSHypervisorVO guestOsMapping = guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), host.getHypervisorType().toString(), host.getHypervisorVersion());
|
||||||
ccmd.setPlatformEmulator(guestOsMapping.getGuestOsName());
|
ccmd.setPlatformEmulator(guestOsMapping.getGuestOsName());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user