diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorGuru.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorGuru.java index 6ec77414a53..3711bbf65f1 100755 --- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorGuru.java +++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3HypervisorGuru.java @@ -87,6 +87,15 @@ public class Ovm3HypervisorGuru extends HypervisorGuruBase implements Hypervisor */ public Pair getCommandHostDelegation(long hostId, Command cmd) { LOGGER.debug("getCommandHostDelegation: " + cmd.getClass()); + performSideEffectsForDelegationOnCommand(hostId, cmd); + return new Pair(Boolean.FALSE, Long.valueOf(hostId)); + } + + /** + * @param hostId + * @param cmd + */ + void performSideEffectsForDelegationOnCommand(long hostId, Command cmd) { if (cmd instanceof StorageSubSystemCommand) { StorageSubSystemCommand c = (StorageSubSystemCommand)cmd; c.setExecuteInSequence(true); @@ -105,12 +114,8 @@ public class Ovm3HypervisorGuru extends HypervisorGuruBase implements Hypervisor EndPoint ep = endPointSelector.selectHypervisorHost(new ZoneScope(host.getDataCenterId())); host = hostDao.findById(ep.getId()); hostDao.loadDetails(host); - // String snapshotHotFixVersion = host.getDetail(XenserverConfigs.XS620HotFix); - // if (snapshotHotFixVersion != null && snapshotHotFixVersion.equalsIgnoreCase(XenserverConfigs.XSHotFix62ESP1004)) { - return new Pair(Boolean.TRUE, Long.valueOf(ep.getId())); } } } - return new Pair(Boolean.FALSE, Long.valueOf(hostId)); } } diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3StorageProcessor.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3StorageProcessor.java index 6a1ebb28ce0..3c28f1fde35 100644 --- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3StorageProcessor.java +++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/Ovm3StorageProcessor.java @@ -114,6 +114,9 @@ public class Ovm3StorageProcessor implements StorageProcessor { } else if ((srcData.getObjectType() == DataObjectType.SNAPSHOT) && (destData.getObjectType() == DataObjectType.TEMPLATE)) { return createTemplateFromSnapshot(cmd); + } else if ((srcData.getObjectType() == DataObjectType.SNAPSHOT) + && (destData.getObjectType() == DataObjectType.VOLUME)) { + return createVolumeFromSnapshot(cmd); } else { msg = "Unable to do stuff for " + srcStore.getClass() + ":" + srcData.getObjectType() + " to " diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java index f8aabff64a0..9567f313492 100644 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java @@ -58,9 +58,11 @@ import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.UserVmDao; +import org.apache.log4j.Logger; @Local(value = HypervisorGuru.class) public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru, Configurable { + private final Logger LOGGER = Logger.getLogger(XenServerGuru.class); @Inject GuestOSDao _guestOsDao; @Inject @@ -173,6 +175,7 @@ public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru, @Override public Pair getCommandHostDelegation(long hostId, Command cmd) { + LOGGER.debug("getCommandHostDelegation: " + cmd.getClass()); if (cmd instanceof StorageSubSystemCommand) { StorageSubSystemCommand c = (StorageSubSystemCommand)cmd; c.setExecuteInSequence(true);