You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/04/02 20:22:49 UTC
[08/39] git commit: updated refs/heads/master to 3e28747
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30e72e4a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
index 10a97a2..0cf40f5 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
@@ -92,7 +92,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
protected CitrixResourceBase hypervisorResource;
protected String BaseMountPointOnHost = "/var/run/cloud_mount";
- public XenServerStorageProcessor(CitrixResourceBase resource) {
+ public XenServerStorageProcessor(final CitrixResourceBase resource) {
hypervisorResource = resource;
}
@@ -104,39 +104,39 @@ public class XenServerStorageProcessor implements StorageProcessor {
// detach the new SR
// if we needed to perform an attach to the source SR, detach from it
@Override
- public SnapshotAndCopyAnswer snapshotAndCopy(SnapshotAndCopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
+ public SnapshotAndCopyAnswer snapshotAndCopy(final SnapshotAndCopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
try {
SR sourceSr = null;
- Map<String, String> sourceDetails = cmd.getSourceDetails();
+ final Map<String, String> sourceDetails = cmd.getSourceDetails();
if (sourceDetails != null && sourceDetails.keySet().size() > 0) {
- String iScsiName = sourceDetails.get(DiskTO.IQN);
- String storageHost = sourceDetails.get(DiskTO.STORAGE_HOST);
- String chapInitiatorUsername = sourceDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
- String chapInitiatorSecret = sourceDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+ final String iScsiName = sourceDetails.get(DiskTO.IQN);
+ final String storageHost = sourceDetails.get(DiskTO.STORAGE_HOST);
+ final String chapInitiatorUsername = sourceDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
+ final String chapInitiatorSecret = sourceDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
sourceSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, false);
}
- VDI vdiToSnapshot = VDI.getByUuid(conn, cmd.getUuidOfSourceVdi());
+ final VDI vdiToSnapshot = VDI.getByUuid(conn, cmd.getUuidOfSourceVdi());
- VDI vdiSnapshot = vdiToSnapshot.snapshot(conn, new HashMap<String, String>());
+ final VDI vdiSnapshot = vdiToSnapshot.snapshot(conn, new HashMap<String, String>());
- Map<String, String> destDetails = cmd.getDestDetails();
+ final Map<String, String> destDetails = cmd.getDestDetails();
- String iScsiName = destDetails.get(DiskTO.IQN);
- String storageHost = destDetails.get(DiskTO.STORAGE_HOST);
- String chapInitiatorUsername = destDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
- String chapInitiatorSecret = destDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+ final String iScsiName = destDetails.get(DiskTO.IQN);
+ final String storageHost = destDetails.get(DiskTO.STORAGE_HOST);
+ final String chapInitiatorUsername = destDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
+ final String chapInitiatorSecret = destDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
- SR newSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, false);
+ final SR newSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, false);
- VDI vdiCopy = vdiSnapshot.copy(conn, newSr);
+ final VDI vdiCopy = vdiSnapshot.copy(conn, newSr);
- String vdiUuid = vdiCopy.getUuid(conn);
+ final String vdiUuid = vdiCopy.getUuid(conn);
vdiSnapshot.destroy(conn);
@@ -146,13 +146,13 @@ public class XenServerStorageProcessor implements StorageProcessor {
hypervisorResource.removeSR(conn, newSr);
- SnapshotAndCopyAnswer snapshotAndCopyAnswer = new SnapshotAndCopyAnswer();
+ final SnapshotAndCopyAnswer snapshotAndCopyAnswer = new SnapshotAndCopyAnswer();
snapshotAndCopyAnswer.setPath(vdiUuid);
return snapshotAndCopyAnswer;
}
- catch (Exception ex) {
+ catch (final Exception ex) {
s_logger.warn("Failed to take and copy snapshot: " + ex.toString(), ex);
return new SnapshotAndCopyAnswer(ex.getMessage());
@@ -160,40 +160,40 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public AttachAnswer attachIso(AttachCommand cmd) {
- DiskTO disk = cmd.getDisk();
- DataTO data = disk.getData();
- DataStoreTO store = data.getDataStore();
+ public AttachAnswer attachIso(final AttachCommand cmd) {
+ final DiskTO disk = cmd.getDisk();
+ final DataTO data = disk.getData();
+ final DataStoreTO store = data.getDataStore();
String isoURL = null;
if (store == null) {
- TemplateObjectTO iso = (TemplateObjectTO) disk.getData();
+ final TemplateObjectTO iso = (TemplateObjectTO) disk.getData();
isoURL = iso.getName();
} else {
if (!(store instanceof NfsTO)) {
s_logger.debug("Can't attach a iso which is not created on nfs: ");
return new AttachAnswer("Can't attach a iso which is not created on nfs: ");
}
- NfsTO nfsStore = (NfsTO) store;
+ final NfsTO nfsStore = (NfsTO) store;
isoURL = nfsStore.getUrl() + nfsStore.getPathSeparator() + data.getPath();
}
- String vmName = cmd.getVmName();
+ final String vmName = cmd.getVmName();
try {
- Connection conn = hypervisorResource.getConnection();
+ final Connection conn = hypervisorResource.getConnection();
VBD isoVBD = null;
// Find the VM
- VM vm = hypervisorResource.getVM(conn, vmName);
+ final VM vm = hypervisorResource.getVM(conn, vmName);
// Find the ISO VDI
- VDI isoVDI = hypervisorResource.getIsoVDIByURL(conn, vmName, isoURL);
+ final VDI isoVDI = hypervisorResource.getIsoVDIByURL(conn, vmName, isoURL);
// Find the VM's CD-ROM VBD
- Set<VBD> vbds = vm.getVBDs(conn);
- for (VBD vbd : vbds) {
- String userDevice = vbd.getUserdevice(conn);
- Types.VbdType type = vbd.getType(conn);
+ final Set<VBD> vbds = vm.getVBDs(conn);
+ for (final VBD vbd : vbds) {
+ final String userDevice = vbd.getUserdevice(conn);
+ final Types.VbdType type = vbd.getType(conn);
if (userDevice.equals("3") && type == Types.VbdType.CD) {
isoVBD = vbd;
@@ -215,39 +215,39 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new AttachAnswer(disk);
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
s_logger.warn("Failed to attach iso" + ": " + e.toString(), e);
return new AttachAnswer(e.toString());
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.warn("Failed to attach iso" + ": " + e.toString(), e);
return new AttachAnswer(e.toString());
}
}
@Override
- public AttachAnswer attachVolume(AttachCommand cmd) {
- DiskTO disk = cmd.getDisk();
- DataTO data = disk.getData();
+ public AttachAnswer attachVolume(final AttachCommand cmd) {
+ final DiskTO disk = cmd.getDisk();
+ final DataTO data = disk.getData();
try {
- String vmName = cmd.getVmName();
- String vdiNameLabel = vmName + "-DATA";
+ final String vmName = cmd.getVmName();
+ final String vdiNameLabel = vmName + "-DATA";
- Connection conn = this.hypervisorResource.getConnection();
+ final Connection conn = hypervisorResource.getConnection();
VM vm = null;
boolean vmNotRunning = true;
try {
- vm = this.hypervisorResource.getVM(conn, vmName);
+ vm = hypervisorResource.getVM(conn, vmName);
- VM.Record vmr = vm.getRecord(conn);
+ final VM.Record vmr = vm.getRecord(conn);
vmNotRunning = vmr.powerState != VmPowerState.RUNNING;
- } catch (CloudRuntimeException ex) {
+ } catch (final CloudRuntimeException ex) {
}
- Map<String, String> details = disk.getDetails();
- boolean isManaged = Boolean.parseBoolean(details.get(DiskTO.MANAGED));
+ final Map<String, String> details = disk.getDetails();
+ final boolean isManaged = Boolean.parseBoolean(details.get(DiskTO.MANAGED));
// if the VM is not running and we're not dealing with managed storage, just return success (nothing to do here)
// this should probably never actually happen
@@ -261,7 +261,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
vdi = hypervisorResource.prepareManagedStorage(conn, details, data.getPath(), vdiNameLabel);
if (vmNotRunning) {
- DiskTO newDisk = new DiskTO(disk.getData(), disk.getDiskSeq(), vdi.getUuid(conn), disk.getType());
+ final DiskTO newDisk = new DiskTO(disk.getData(), disk.getDiskSeq(), vdi.getUuid(conn), disk.getType());
return new AttachAnswer(newDisk);
}
@@ -271,17 +271,17 @@ public class XenServerStorageProcessor implements StorageProcessor {
// Figure out the disk number to attach the VM to
String diskNumber = null;
- Long deviceId = disk.getDiskSeq();
+ final Long deviceId = disk.getDiskSeq();
if (deviceId != null) {
if (deviceId.longValue() == 3) {
- String msg = "Device 3 is reserved for CD-ROM, choose other device";
+ final String msg = "Device 3 is reserved for CD-ROM, choose other device";
return new AttachAnswer(msg);
}
if (hypervisorResource.isDeviceUsed(conn, vm, deviceId)) {
- String msg = "Device " + deviceId + " is used in VM " + vmName;
+ final String msg = "Device " + deviceId + " is used in VM " + vmName;
return new AttachAnswer(msg);
}
@@ -291,7 +291,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
diskNumber = hypervisorResource.getUnusedDeviceNum(conn, vm);
}
- VBD.Record vbdr = new VBD.Record();
+ final VBD.Record vbdr = new VBD.Record();
vbdr.VM = vm;
vbdr.VDI = vdi;
@@ -301,66 +301,66 @@ public class XenServerStorageProcessor implements StorageProcessor {
vbdr.type = Types.VbdType.DISK;
vbdr.unpluggable = true;
- VBD vbd = VBD.create(conn, vbdr);
+ final VBD vbd = VBD.create(conn, vbdr);
// Attach the VBD to the VM
try {
vbd.plug(conn);
- } catch (Exception e) {
+ } catch (final Exception e) {
vbd.destroy(conn);
throw e;
}
// Update the VDI's label to include the VM name
vdi.setNameLabel(conn, vdiNameLabel);
- DiskTO newDisk = new DiskTO(disk.getData(), Long.parseLong(diskNumber), vdi.getUuid(conn), disk.getType());
+ final DiskTO newDisk = new DiskTO(disk.getData(), Long.parseLong(diskNumber), vdi.getUuid(conn), disk.getType());
return new AttachAnswer(newDisk);
- } catch (Exception e) {
- String msg = "Failed to attach volume" + " for uuid: " + data.getPath() + " due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Failed to attach volume" + " for uuid: " + data.getPath() + " due to " + e.toString();
s_logger.warn(msg, e);
return new AttachAnswer(msg);
}
}
@Override
- public Answer dettachIso(DettachCommand cmd) {
- DiskTO disk = cmd.getDisk();
- DataTO data = disk.getData();
- DataStoreTO store = data.getDataStore();
+ public Answer dettachIso(final DettachCommand cmd) {
+ final DiskTO disk = cmd.getDisk();
+ final DataTO data = disk.getData();
+ final DataStoreTO store = data.getDataStore();
String isoURL = null;
if (store == null) {
- TemplateObjectTO iso = (TemplateObjectTO) disk.getData();
+ final TemplateObjectTO iso = (TemplateObjectTO) disk.getData();
isoURL = iso.getName();
} else {
if (!(store instanceof NfsTO)) {
s_logger.debug("Can't attach a iso which is not created on nfs: ");
return new AttachAnswer("Can't attach a iso which is not created on nfs: ");
}
- NfsTO nfsStore = (NfsTO) store;
+ final NfsTO nfsStore = (NfsTO) store;
isoURL = nfsStore.getUrl() + nfsStore.getPathSeparator() + data.getPath();
}
try {
- Connection conn = hypervisorResource.getConnection();
+ final Connection conn = hypervisorResource.getConnection();
// Find the VM
- VM vm = hypervisorResource.getVM(conn, cmd.getVmName());
- String vmUUID = vm.getUuid(conn);
+ final VM vm = hypervisorResource.getVM(conn, cmd.getVmName());
+ final String vmUUID = vm.getUuid(conn);
// Find the ISO VDI
- VDI isoVDI = hypervisorResource.getIsoVDIByURL(conn, cmd.getVmName(), isoURL);
+ final VDI isoVDI = hypervisorResource.getIsoVDIByURL(conn, cmd.getVmName(), isoURL);
- SR sr = isoVDI.getSR(conn);
+ final SR sr = isoVDI.getSR(conn);
// Look up all VBDs for this VDI
- Set<VBD> vbds = isoVDI.getVBDs(conn);
+ final Set<VBD> vbds = isoVDI.getVBDs(conn);
// Iterate through VBDs, and if the VBD belongs the VM, eject
// the ISO from it
- for (VBD vbd : vbds) {
- VM vbdVM = vbd.getVM(conn);
- String vbdVmUUID = vbdVM.getUuid(conn);
+ for (final VBD vbd : vbds) {
+ final VM vbdVM = vbd.getVM(conn);
+ final String vbdVmUUID = vbdVM.getUuid(conn);
if (vbdVmUUID.equals(vmUUID)) {
// If an ISO is already inserted, eject it
@@ -376,37 +376,37 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
return new DettachAnswer(disk);
- } catch (XenAPIException e) {
- String msg = "Failed to dettach volume" + " for uuid: " + data.getPath() + " due to " + e.toString();
+ } catch (final XenAPIException e) {
+ final String msg = "Failed to dettach volume" + " for uuid: " + data.getPath() + " due to " + e.toString();
s_logger.warn(msg, e);
return new DettachAnswer(msg);
- } catch (Exception e) {
- String msg = "Failed to dettach volume" + " for uuid: " + data.getPath() + " due to " + e.getMessage();
+ } catch (final Exception e) {
+ final String msg = "Failed to dettach volume" + " for uuid: " + data.getPath() + " due to " + e.getMessage();
s_logger.warn(msg, e);
return new DettachAnswer(msg);
}
}
@Override
- public Answer dettachVolume(DettachCommand cmd) {
- DiskTO disk = cmd.getDisk();
- DataTO data = disk.getData();
+ public Answer dettachVolume(final DettachCommand cmd) {
+ final DiskTO disk = cmd.getDisk();
+ final DataTO data = disk.getData();
try {
- Connection conn = this.hypervisorResource.getConnection();
+ final Connection conn = hypervisorResource.getConnection();
- String vmName = cmd.getVmName();
+ final String vmName = cmd.getVmName();
VM vm = null;
boolean vmNotRunning = true;
try {
- vm = this.hypervisorResource.getVM(conn, vmName);
+ vm = hypervisorResource.getVM(conn, vmName);
- VM.Record vmr = vm.getRecord(conn);
+ final VM.Record vmr = vm.getRecord(conn);
vmNotRunning = vmr.powerState != VmPowerState.RUNNING;
- } catch (CloudRuntimeException ex) {
+ } catch (final CloudRuntimeException ex) {
}
// if the VM is not running and we're not dealing with managed storage, just return success (nothing to do here)
@@ -416,14 +416,14 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
if (!vmNotRunning) {
- VDI vdi = this.hypervisorResource.mount(conn, null, null, data.getPath());
+ final VDI vdi = hypervisorResource.mount(conn, null, null, data.getPath());
// Look up all VBDs for this VDI
- Set<VBD> vbds = vdi.getVBDs(conn);
+ final Set<VBD> vbds = vdi.getVBDs(conn);
// Detach each VBD from its VM, and then destroy it
- for (VBD vbd : vbds) {
- VBD.Record vbdr = vbd.getRecord(conn);
+ for (final VBD vbd : vbds) {
+ final VBD.Record vbdr = vbd.getRecord(conn);
if (vbdr.currentlyAttached) {
vbd.unplug(conn);
@@ -435,7 +435,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
// Update the VDI's label to be "detached"
vdi.setNameLabel(conn, "detached");
- this.hypervisorResource.umount(conn, vdi);
+ hypervisorResource.umount(conn, vdi);
}
if (cmd.isManaged()) {
@@ -443,83 +443,83 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
return new DettachAnswer(disk);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.warn("Failed dettach volume: " + data.getPath());
return new DettachAnswer("Failed dettach volume: " + data.getPath() + ", due to " + e.toString());
}
}
- protected SR getSRByNameLabel(Connection conn, String nameLabel) throws BadServerResponse, XenAPIException, XmlRpcException {
- Set<SR> srs = SR.getByNameLabel(conn, nameLabel);
+ protected SR getSRByNameLabel(final Connection conn, final String nameLabel) throws BadServerResponse, XenAPIException, XmlRpcException {
+ final Set<SR> srs = SR.getByNameLabel(conn, nameLabel);
if (srs.size() != 1) {
throw new CloudRuntimeException("storage uuid: " + nameLabel + " is not unique");
}
- SR poolsr = srs.iterator().next();
+ final SR poolsr = srs.iterator().next();
return poolsr;
}
- protected VDI createVdi(Connection conn, String vdiName, SR sr, long size) throws BadServerResponse, XenAPIException, XmlRpcException {
- VDI.Record vdir = new VDI.Record();
+ protected VDI createVdi(final Connection conn, final String vdiName, final SR sr, final long size) throws BadServerResponse, XenAPIException, XmlRpcException {
+ final VDI.Record vdir = new VDI.Record();
vdir.nameLabel = vdiName;
vdir.SR = sr;
vdir.type = Types.VdiType.USER;
vdir.virtualSize = size;
- VDI vdi = VDI.create(conn, vdir);
+ final VDI vdi = VDI.create(conn, vdir);
return vdi;
}
- protected void deleteVDI(Connection conn, VDI vdi) throws BadServerResponse, XenAPIException, XmlRpcException {
+ protected void deleteVDI(final Connection conn, final VDI vdi) throws BadServerResponse, XenAPIException, XmlRpcException {
vdi.destroy(conn);
}
@Override
- public Answer createSnapshot(CreateObjectCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- SnapshotObjectTO snapshotTO = (SnapshotObjectTO) cmd.getData();
- long snapshotId = snapshotTO.getId();
- String snapshotName = snapshotTO.getName();
+ public Answer createSnapshot(final CreateObjectCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final SnapshotObjectTO snapshotTO = (SnapshotObjectTO) cmd.getData();
+ final long snapshotId = snapshotTO.getId();
+ final String snapshotName = snapshotTO.getName();
String details = "create snapshot operation Failed for snapshotId: " + snapshotId;
String snapshotUUID = null;
try {
- String volumeUUID = snapshotTO.getVolume().getPath();
- VDI volume = VDI.getByUuid(conn, volumeUUID);
+ final String volumeUUID = snapshotTO.getVolume().getPath();
+ final VDI volume = VDI.getByUuid(conn, volumeUUID);
- VDI snapshot = volume.snapshot(conn, new HashMap<String, String>());
+ final VDI snapshot = volume.snapshot(conn, new HashMap<String, String>());
if (snapshotName != null) {
snapshot.setNameLabel(conn, snapshotName);
}
snapshotUUID = snapshot.getUuid(conn);
- String preSnapshotUUID = snapshotTO.getParentSnapshotPath();
+ final String preSnapshotUUID = snapshotTO.getParentSnapshotPath();
//check if it is a empty snapshot
if (preSnapshotUUID != null) {
- SR sr = volume.getSR(conn);
- String srUUID = sr.getUuid(conn);
- String type = sr.getType(conn);
- Boolean isISCSI = IsISCSI(type);
- String snapshotParentUUID = getVhdParent(conn, srUUID, snapshotUUID, isISCSI);
+ final SR sr = volume.getSR(conn);
+ final String srUUID = sr.getUuid(conn);
+ final String type = sr.getType(conn);
+ final Boolean isISCSI = IsISCSI(type);
+ final String snapshotParentUUID = getVhdParent(conn, srUUID, snapshotUUID, isISCSI);
try {
- String preSnapshotParentUUID = getVhdParent(conn, srUUID, preSnapshotUUID, isISCSI);
+ final String preSnapshotParentUUID = getVhdParent(conn, srUUID, preSnapshotUUID, isISCSI);
if (snapshotParentUUID != null && snapshotParentUUID.equals(preSnapshotParentUUID)) {
// this is empty snapshot, remove it
snapshot.destroy(conn);
snapshotUUID = preSnapshotUUID;
}
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to get parent snapshot", e);
}
}
- SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
+ final SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
newSnapshot.setPath(snapshotUUID);
return new CreateObjectAnswer(newSnapshot);
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
details += ", reason: " + e.toString();
s_logger.warn(details, e);
- } catch (Exception e) {
+ } catch (final Exception e) {
details += ", reason: " + e.toString();
s_logger.warn(details, e);
}
@@ -528,47 +528,47 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer deleteVolume(DeleteCommand cmd) {
- DataTO volume = cmd.getData();
- Connection conn = hypervisorResource.getConnection();
+ public Answer deleteVolume(final DeleteCommand cmd) {
+ final DataTO volume = cmd.getData();
+ final Connection conn = hypervisorResource.getConnection();
String errorMsg = null;
try {
- VDI vdi = VDI.getByUuid(conn, volume.getPath());
+ final VDI vdi = VDI.getByUuid(conn, volume.getPath());
deleteVDI(conn, vdi);
return new Answer(null);
- } catch (BadServerResponse e) {
+ } catch (final BadServerResponse e) {
s_logger.debug("Failed to delete volume", e);
errorMsg = e.toString();
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
s_logger.debug("Failed to delete volume", e);
errorMsg = e.toString();
- } catch (XmlRpcException e) {
+ } catch (final XmlRpcException e) {
s_logger.debug("Failed to delete volume", e);
errorMsg = e.toString();
}
return new Answer(null, false, errorMsg);
}
- protected SR getNfsSR(Connection conn, StorageFilerTO pool) {
- Map<String, String> deviceConfig = new HashMap<String, String>();
+ protected SR getNfsSR(final Connection conn, final StorageFilerTO pool) {
+ final Map<String, String> deviceConfig = new HashMap<String, String>();
try {
- String server = pool.getHost();
+ final String server = pool.getHost();
String serverpath = pool.getPath();
serverpath = serverpath.replace("//", "/");
- Set<SR> srs = SR.getAll(conn);
- for (SR sr : srs) {
+ final Set<SR> srs = SR.getAll(conn);
+ for (final SR sr : srs) {
if (!SRType.NFS.equals(sr.getType(conn))) {
continue;
}
- Set<PBD> pbds = sr.getPBDs(conn);
+ final Set<PBD> pbds = sr.getPBDs(conn);
if (pbds.isEmpty()) {
continue;
}
- PBD pbd = pbds.iterator().next();
+ final PBD pbd = pbds.iterator().next();
- Map<String, String> dc = pbd.getDeviceConfig(conn);
+ final Map<String, String> dc = pbd.getDeviceConfig(conn);
if (dc == null) {
continue;
@@ -584,27 +584,27 @@ public class XenServerStorageProcessor implements StorageProcessor {
if (server.equals(dc.get("server")) && serverpath.equals(dc.get("serverpath"))) {
throw new CloudRuntimeException("There is a SR using the same configuration server:" + dc.get("server") + ", serverpath:" + dc.get("serverpath") +
- " for pool " + pool.getUuid() + "on host:" + hypervisorResource.getHost().uuid);
+ " for pool " + pool.getUuid() + "on host:" + hypervisorResource.getHost().getUuid());
}
}
deviceConfig.put("server", server);
deviceConfig.put("serverpath", serverpath);
- Host host = Host.getByUuid(conn, hypervisorResource.getHost().uuid);
- Map<String, String> smConfig = new HashMap<String, String>();
+ final Host host = Host.getByUuid(conn, hypervisorResource.getHost().getUuid());
+ final Map<String, String> smConfig = new HashMap<String, String>();
smConfig.put("nosubdir", "true");
- SR sr = SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, smConfig);
+ final SR sr = SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, smConfig);
sr.scan(conn);
return sr;
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
throw new CloudRuntimeException("Unable to create NFS SR " + pool.toString(), e);
- } catch (XmlRpcException e) {
+ } catch (final XmlRpcException e) {
throw new CloudRuntimeException("Unable to create NFS SR " + pool.toString(), e);
}
}
- protected Answer directDownloadHttpTemplate(CopyCommand cmd, DecodedDataObject srcObj, DecodedDataObject destObj) {
- Connection conn = hypervisorResource.getConnection();
+ protected Answer directDownloadHttpTemplate(final CopyCommand cmd, final DecodedDataObject srcObj, final DecodedDataObject destObj) {
+ final Connection conn = hypervisorResource.getConnection();
SR poolsr = null;
VDI vdi = null;
boolean result = false;
@@ -617,53 +617,53 @@ public class XenServerStorageProcessor implements StorageProcessor {
if (vdi == null) {
throw new CloudRuntimeException("can't find volume: " + destObj.getPath());
}
- String destStoreUuid = destObj.getStore().getUuid();
- Set<SR> srs = SR.getByNameLabel(conn, destStoreUuid);
+ final String destStoreUuid = destObj.getStore().getUuid();
+ final Set<SR> srs = SR.getByNameLabel(conn, destStoreUuid);
if (srs.size() != 1) {
throw new CloudRuntimeException("storage uuid: " + destStoreUuid + " is not unique");
}
poolsr = srs.iterator().next();
- VDI.Record vdir = vdi.getRecord(conn);
- String vdiLocation = vdir.location;
+ final VDI.Record vdir = vdi.getRecord(conn);
+ final String vdiLocation = vdir.location;
String pbdLocation = null;
if (destObj.getStore().getScheme().equalsIgnoreCase(DataStoreProtocol.NFS.toString())) {
pbdLocation = "/run/sr-mount/" + poolsr.getUuid(conn);
} else {
- Set<PBD> pbds = poolsr.getPBDs(conn);
+ final Set<PBD> pbds = poolsr.getPBDs(conn);
if (pbds.size() != 1) {
throw new CloudRuntimeException("Don't how to handle multiple pbds:" + pbds.size() + " for sr: " + poolsr.getUuid(conn));
}
- PBD pbd = pbds.iterator().next();
- Map<String, String> deviceCfg = pbd.getDeviceConfig(conn);
+ final PBD pbd = pbds.iterator().next();
+ final Map<String, String> deviceCfg = pbd.getDeviceConfig(conn);
pbdLocation = deviceCfg.get("location");
}
if (pbdLocation == null) {
throw new CloudRuntimeException("Can't get pbd location");
}
- String vdiPath = pbdLocation + "/" + vdiLocation + ".vhd";
+ final String vdiPath = pbdLocation + "/" + vdiLocation + ".vhd";
//download a url into vdipath
//downloadHttpToLocalFile(vdiPath, template.getPath());
hypervisorResource.callHostPlugin(conn, "storagePlugin", "downloadTemplateFromUrl", "destPath", vdiPath, "srcUrl", srcObj.getPath());
result = true;
//return new CopyCmdAnswer(cmd, vdi.getUuid(conn));
- } catch (BadServerResponse e) {
+ } catch (final BadServerResponse e) {
s_logger.debug("Failed to download template", e);
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
s_logger.debug("Failed to download template", e);
- } catch (XmlRpcException e) {
+ } catch (final XmlRpcException e) {
s_logger.debug("Failed to download template", e);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to download template", e);
} finally {
if (!result && vdi != null) {
try {
vdi.destroy(conn);
- } catch (BadServerResponse e) {
+ } catch (final BadServerResponse e) {
s_logger.debug("Failed to cleanup newly created vdi");
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
s_logger.debug("Failed to cleanup newly created vdi");
- } catch (XmlRpcException e) {
+ } catch (final XmlRpcException e) {
s_logger.debug("Failed to cleanup newly created vdi");
}
}
@@ -671,61 +671,61 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new Answer(cmd, false, "Failed to download template");
}
- protected Answer execute(AttachPrimaryDataStoreCmd cmd) {
- String dataStoreUri = cmd.getDataStore();
- Connection conn = hypervisorResource.getConnection();
+ protected Answer execute(final AttachPrimaryDataStoreCmd cmd) {
+ final String dataStoreUri = cmd.getDataStore();
+ final Connection conn = hypervisorResource.getConnection();
try {
- DecodedDataObject obj = Decoder.decode(dataStoreUri);
+ final DecodedDataObject obj = Decoder.decode(dataStoreUri);
- DecodedDataStore store = obj.getStore();
+ final DecodedDataStore store = obj.getStore();
- SR sr = hypervisorResource.getStorageRepository(conn, store.getUuid());
+ final SR sr = hypervisorResource.getStorageRepository(conn, store.getUuid());
hypervisorResource.setupHeartbeatSr(conn, sr, false);
- long capacity = sr.getPhysicalSize(conn);
- long available = capacity - sr.getPhysicalUtilisation(conn);
+ final long capacity = sr.getPhysicalSize(conn);
+ final long available = capacity - sr.getPhysicalUtilisation(conn);
if (capacity == -1) {
- String msg = "Pool capacity is -1! pool: ";
+ final String msg = "Pool capacity is -1! pool: ";
s_logger.warn(msg);
return new Answer(cmd, false, msg);
}
- AttachPrimaryDataStoreAnswer answer = new AttachPrimaryDataStoreAnswer(cmd);
+ final AttachPrimaryDataStoreAnswer answer = new AttachPrimaryDataStoreAnswer(cmd);
answer.setCapacity(capacity);
answer.setUuid(sr.getUuid(conn));
answer.setAvailable(available);
return answer;
- } catch (XenAPIException e) {
- String msg = "AttachPrimaryDataStoreCmd add XenAPIException:" + e.toString();
+ } catch (final XenAPIException e) {
+ final String msg = "AttachPrimaryDataStoreCmd add XenAPIException:" + e.toString();
s_logger.warn(msg, e);
return new Answer(cmd, false, msg);
- } catch (Exception e) {
- String msg = "AttachPrimaryDataStoreCmd failed:" + e.getMessage();
+ } catch (final Exception e) {
+ final String msg = "AttachPrimaryDataStoreCmd failed:" + e.getMessage();
s_logger.warn(msg, e);
return new Answer(cmd, false, msg);
}
}
- protected boolean IsISCSI(String type) {
+ protected boolean IsISCSI(final String type) {
return SRType.LVMOHBA.equals(type) || SRType.LVMOISCSI.equals(type) || SRType.LVM.equals(type);
}
- private String copy_vhd_from_secondarystorage(Connection conn, String mountpoint, String sruuid, int wait) {
- String nameLabel = "cloud-" + UUID.randomUUID().toString();
- String results =
+ private String copy_vhd_from_secondarystorage(final Connection conn, final String mountpoint, final String sruuid, final int wait) {
+ final String nameLabel = "cloud-" + UUID.randomUUID().toString();
+ final String results =
hypervisorResource.callHostPluginAsync(conn, "vmopspremium", "copy_vhd_from_secondarystorage", wait, "mountpoint", mountpoint, "sruuid", sruuid, "namelabel",
nameLabel);
String errMsg = null;
if (results == null || results.isEmpty()) {
errMsg = "copy_vhd_from_secondarystorage return null";
} else {
- String[] tmp = results.split("#");
- String status = tmp[0];
+ final String[] tmp = results.split("#");
+ final String status = tmp[0];
if (status.equals("0")) {
return tmp[1];
} else {
errMsg = tmp[1];
}
}
- String source = mountpoint.substring(mountpoint.lastIndexOf('/') + 1);
+ final String source = mountpoint.substring(mountpoint.lastIndexOf('/') + 1);
if (hypervisorResource.killCopyProcess(conn, source)) {
destroyVDIbyNameLabel(conn, nameLabel);
}
@@ -733,35 +733,35 @@ public class XenServerStorageProcessor implements StorageProcessor {
throw new CloudRuntimeException(errMsg);
}
- private void destroyVDIbyNameLabel(Connection conn, String nameLabel) {
+ private void destroyVDIbyNameLabel(final Connection conn, final String nameLabel) {
try {
- Set<VDI> vdis = VDI.getByNameLabel(conn, nameLabel);
+ final Set<VDI> vdis = VDI.getByNameLabel(conn, nameLabel);
if (vdis.size() != 1) {
s_logger.warn("destoryVDIbyNameLabel failed due to there are " + vdis.size() + " VDIs with name " + nameLabel);
return;
}
- for (VDI vdi : vdis) {
+ for (final VDI vdi : vdis) {
try {
vdi.destroy(conn);
- } catch (Exception e) {
+ } catch (final Exception e) {
}
}
- } catch (Exception e) {
+ } catch (final Exception e) {
}
}
- protected VDI getVDIbyUuid(Connection conn, String uuid) {
+ protected VDI getVDIbyUuid(final Connection conn, final String uuid) {
try {
return VDI.getByUuid(conn, uuid);
- } catch (Exception e) {
- String msg = "Catch Exception " + e.getClass().getName() + " :VDI getByUuid for uuid: " + uuid + " failed due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Catch Exception " + e.getClass().getName() + " :VDI getByUuid for uuid: " + uuid + " failed due to " + e.toString();
s_logger.debug(msg);
throw new CloudRuntimeException(msg, e);
}
}
- protected String getVhdParent(Connection conn, String primaryStorageSRUuid, String snapshotUuid, Boolean isISCSI) {
- String parentUuid =
+ protected String getVhdParent(final Connection conn, final String primaryStorageSRUuid, final String snapshotUuid, final Boolean isISCSI) {
+ final String parentUuid =
hypervisorResource.callHostPlugin(conn, "vmopsSnapshot", "getVhdParent", "primaryStorageSRUuid", primaryStorageSRUuid, "snapshotUuid", snapshotUuid,
"isISCSI", isISCSI.toString());
@@ -774,20 +774,20 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer copyTemplateToPrimaryStorage(CopyCommand cmd) {
- DataTO srcDataTo = cmd.getSrcTO();
- DataTO destDataTo = cmd.getDestTO();
- int wait = cmd.getWait();
- DataStoreTO srcDataStoreTo = srcDataTo.getDataStore();
+ public Answer copyTemplateToPrimaryStorage(final CopyCommand cmd) {
+ final DataTO srcDataTo = cmd.getSrcTO();
+ final DataTO destDataTo = cmd.getDestTO();
+ final int wait = cmd.getWait();
+ final DataStoreTO srcDataStoreTo = srcDataTo.getDataStore();
try {
- if ((srcDataStoreTo instanceof NfsTO) && (srcDataTo.getObjectType() == DataObjectType.TEMPLATE)) {
- NfsTO srcImageStore = (NfsTO) srcDataStoreTo;
- TemplateObjectTO srcTemplateObjectTo = (TemplateObjectTO) srcDataTo;
- String storeUrl = srcImageStore.getUrl();
- URI uri = new URI(storeUrl);
- String tmplPath = uri.getHost() + ":" + uri.getPath() + "/" + srcDataTo.getPath();
- DataStoreTO destDataStoreTo = destDataTo.getDataStore();
+ if (srcDataStoreTo instanceof NfsTO && srcDataTo.getObjectType() == DataObjectType.TEMPLATE) {
+ final NfsTO srcImageStore = (NfsTO) srcDataStoreTo;
+ final TemplateObjectTO srcTemplateObjectTo = (TemplateObjectTO) srcDataTo;
+ final String storeUrl = srcImageStore.getUrl();
+ final URI uri = new URI(storeUrl);
+ final String tmplPath = uri.getHost() + ":" + uri.getPath() + "/" + srcDataTo.getPath();
+ final DataStoreTO destDataStoreTo = destDataTo.getDataStore();
boolean managed = false;
String storageHost = null;
@@ -798,9 +798,9 @@ public class XenServerStorageProcessor implements StorageProcessor {
String chapInitiatorSecret = null;
if (destDataStoreTo instanceof PrimaryDataStoreTO) {
- PrimaryDataStoreTO destPrimaryDataStoreTo = (PrimaryDataStoreTO)destDataStoreTo;
+ final PrimaryDataStoreTO destPrimaryDataStoreTo = (PrimaryDataStoreTO)destDataStoreTo;
- Map<String, String> details = destPrimaryDataStoreTo.getDetails();
+ final Map<String, String> details = destPrimaryDataStoreTo.getDetails();
if (details != null) {
managed = Boolean.parseBoolean(details.get(PrimaryDataStoreTO.MANAGED));
@@ -816,12 +816,12 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
}
- Connection conn = hypervisorResource.getConnection();
+ final Connection conn = hypervisorResource.getConnection();
final SR sr;
if (managed) {
- Map<String, String> details = new HashMap<String, String>();
+ final Map<String, String> details = new HashMap<String, String>();
details.put(DiskTO.STORAGE_HOST, storageHost);
details.put(DiskTO.IQN, managedStoragePoolName);
@@ -831,11 +831,11 @@ public class XenServerStorageProcessor implements StorageProcessor {
sr = hypervisorResource.prepareManagedSr(conn, details);
} else {
- String srName = destDataStoreTo.getUuid();
- Set<SR> srs = SR.getByNameLabel(conn, srName);
+ final String srName = destDataStoreTo.getUuid();
+ final Set<SR> srs = SR.getByNameLabel(conn, srName);
if (srs.size() != 1) {
- String msg = "There are " + srs.size() + " SRs with same name: " + srName;
+ final String msg = "There are " + srs.size() + " SRs with same name: " + srName;
s_logger.warn(msg);
@@ -845,19 +845,19 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
}
- String srUuid = sr.getUuid(conn);
- String tmplUuid = copy_vhd_from_secondarystorage(conn, tmplPath, srUuid, wait);
- VDI tmplVdi = getVDIbyUuid(conn, tmplUuid);
+ final String srUuid = sr.getUuid(conn);
+ final String tmplUuid = copy_vhd_from_secondarystorage(conn, tmplPath, srUuid, wait);
+ final VDI tmplVdi = getVDIbyUuid(conn, tmplUuid);
final String uuidToReturn;
- Long physicalSize = tmplVdi.getPhysicalUtilisation(conn);
+ final Long physicalSize = tmplVdi.getPhysicalUtilisation(conn);
if (managed) {
uuidToReturn = tmplUuid;
tmplVdi.setNameLabel(conn, managedStoragePoolRootVolumeName);
} else {
- VDI snapshotVdi = tmplVdi.snapshot(conn, new HashMap<String, String>());
+ final VDI snapshotVdi = tmplVdi.snapshot(conn, new HashMap<String, String>());
uuidToReturn = snapshotVdi.getUuid(conn);
@@ -870,10 +870,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
try {
Thread.sleep(5000);
- } catch (InterruptedException e) {
+ } catch (final InterruptedException e) {
}
- TemplateObjectTO newVol = new TemplateObjectTO();
+ final TemplateObjectTO newVol = new TemplateObjectTO();
newVol.setUuid(uuidToReturn);
newVol.setPath(uuidToReturn);
@@ -884,8 +884,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new CopyCmdAnswer(newVol);
}
- } catch (Exception e) {
- String msg = "Catch Exception " + e.getClass().getName() + " for template + " + " due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Catch Exception " + e.getClass().getName() + " for template + " + " due to " + e.toString();
s_logger.warn(msg, e);
@@ -896,13 +896,13 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer createVolume(CreateObjectCommand cmd) {
- DataTO data = cmd.getData();
- VolumeObjectTO volume = (VolumeObjectTO) data;
+ public Answer createVolume(final CreateObjectCommand cmd) {
+ final DataTO data = cmd.getData();
+ final VolumeObjectTO volume = (VolumeObjectTO) data;
try {
- Connection conn = hypervisorResource.getConnection();
- SR poolSr = hypervisorResource.getStorageRepository(conn, data.getDataStore().getUuid());
+ final Connection conn = hypervisorResource.getConnection();
+ final SR poolSr = hypervisorResource.getStorageRepository(conn, data.getDataStore().getUuid());
VDI.Record vdir = new VDI.Record();
vdir.nameLabel = volume.getName();
vdir.SR = poolSr;
@@ -913,24 +913,24 @@ public class XenServerStorageProcessor implements StorageProcessor {
vdi = VDI.create(conn, vdir);
vdir = vdi.getRecord(conn);
- VolumeObjectTO newVol = new VolumeObjectTO();
+ final VolumeObjectTO newVol = new VolumeObjectTO();
newVol.setName(vdir.nameLabel);
newVol.setSize(vdir.virtualSize);
newVol.setPath(vdir.uuid);
return new CreateObjectAnswer(newVol);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("create volume failed: " + e.toString());
return new CreateObjectAnswer(e.toString());
}
}
@Override
- public Answer cloneVolumeFromBaseTemplate(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- DataTO srcData = cmd.getSrcTO();
- DataTO destData = cmd.getDestTO();
- VolumeObjectTO volume = (VolumeObjectTO) destData;
+ public Answer cloneVolumeFromBaseTemplate(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final DataTO srcData = cmd.getSrcTO();
+ final DataTO destData = cmd.getDestTO();
+ final VolumeObjectTO volume = (VolumeObjectTO) destData;
VDI vdi = null;
try {
VDI tmpltvdi = null;
@@ -943,43 +943,43 @@ public class XenServerStorageProcessor implements StorageProcessor {
vdir = vdi.getRecord(conn);
s_logger.debug("Succesfully created VDI: Uuid = " + vdir.uuid);
- VolumeObjectTO newVol = new VolumeObjectTO();
+ final VolumeObjectTO newVol = new VolumeObjectTO();
newVol.setName(vdir.nameLabel);
newVol.setSize(vdir.virtualSize);
newVol.setPath(vdir.uuid);
return new CopyCmdAnswer(newVol);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.warn("Unable to create volume; Pool=" + destData + "; Disk: ", e);
return new CopyCmdAnswer(e.toString());
}
}
@Override
- public Answer copyVolumeFromImageCacheToPrimary(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- DataTO srcData = cmd.getSrcTO();
- DataTO destData = cmd.getDestTO();
- int wait = cmd.getWait();
- VolumeObjectTO srcVolume = (VolumeObjectTO) srcData;
- VolumeObjectTO destVolume = (VolumeObjectTO) destData;
- DataStoreTO srcStore = srcVolume.getDataStore();
+ public Answer copyVolumeFromImageCacheToPrimary(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final DataTO srcData = cmd.getSrcTO();
+ final DataTO destData = cmd.getDestTO();
+ final int wait = cmd.getWait();
+ final VolumeObjectTO srcVolume = (VolumeObjectTO) srcData;
+ final VolumeObjectTO destVolume = (VolumeObjectTO) destData;
+ final DataStoreTO srcStore = srcVolume.getDataStore();
if (srcStore instanceof NfsTO) {
- NfsTO nfsStore = (NfsTO) srcStore;
+ final NfsTO nfsStore = (NfsTO) srcStore;
try {
- SR primaryStoragePool = hypervisorResource.getStorageRepository(conn, destVolume.getDataStore().getUuid());
- String srUuid = primaryStoragePool.getUuid(conn);
- URI uri = new URI(nfsStore.getUrl());
- String volumePath = uri.getHost() + ":" + uri.getPath() + nfsStore.getPathSeparator() + srcVolume.getPath();
- String uuid = copy_vhd_from_secondarystorage(conn, volumePath, srUuid, wait);
- VolumeObjectTO newVol = new VolumeObjectTO();
+ final SR primaryStoragePool = hypervisorResource.getStorageRepository(conn, destVolume.getDataStore().getUuid());
+ final String srUuid = primaryStoragePool.getUuid(conn);
+ final URI uri = new URI(nfsStore.getUrl());
+ final String volumePath = uri.getHost() + ":" + uri.getPath() + nfsStore.getPathSeparator() + srcVolume.getPath();
+ final String uuid = copy_vhd_from_secondarystorage(conn, volumePath, srUuid, wait);
+ final VolumeObjectTO newVol = new VolumeObjectTO();
newVol.setPath(uuid);
newVol.setSize(srcVolume.getSize());
return new CopyCmdAnswer(newVol);
- } catch (Exception e) {
- String msg = "Catch Exception " + e.getClass().getName() + " due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Catch Exception " + e.getClass().getName() + " due to " + e.toString();
s_logger.warn(msg, e);
return new CopyCmdAnswer(e.toString());
}
@@ -990,18 +990,18 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer copyVolumeFromPrimaryToSecondary(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- VolumeObjectTO srcVolume = (VolumeObjectTO) cmd.getSrcTO();
- VolumeObjectTO destVolume = (VolumeObjectTO) cmd.getDestTO();
- int wait = cmd.getWait();
- DataStoreTO destStore = destVolume.getDataStore();
+ public Answer copyVolumeFromPrimaryToSecondary(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final VolumeObjectTO srcVolume = (VolumeObjectTO) cmd.getSrcTO();
+ final VolumeObjectTO destVolume = (VolumeObjectTO) cmd.getDestTO();
+ final int wait = cmd.getWait();
+ final DataStoreTO destStore = destVolume.getDataStore();
if (destStore instanceof NfsTO) {
SR secondaryStorage = null;
try {
- NfsTO nfsStore = (NfsTO) destStore;
- URI uri = new URI(nfsStore.getUrl());
+ final NfsTO nfsStore = (NfsTO) destStore;
+ final URI uri = new URI(nfsStore.getUrl());
// Create the volume folder
if (!hypervisorResource.createSecondaryStorageFolder(conn, uri.getHost() + ":" + uri.getPath(), destVolume.getPath())) {
throw new InternalErrorException("Failed to create the volume folder.");
@@ -1010,16 +1010,16 @@ public class XenServerStorageProcessor implements StorageProcessor {
// Create a SR for the volume UUID folder
secondaryStorage = hypervisorResource.createNfsSRbyURI(conn, new URI(nfsStore.getUrl() + nfsStore.getPathSeparator() + destVolume.getPath()), false);
// Look up the volume on the source primary storage pool
- VDI srcVdi = getVDIbyUuid(conn, srcVolume.getPath());
+ final VDI srcVdi = getVDIbyUuid(conn, srcVolume.getPath());
// Copy the volume to secondary storage
- VDI destVdi = hypervisorResource.cloudVDIcopy(conn, srcVdi, secondaryStorage, wait);
- String destVolumeUUID = destVdi.getUuid(conn);
+ final VDI destVdi = hypervisorResource.cloudVDIcopy(conn, srcVdi, secondaryStorage, wait);
+ final String destVolumeUUID = destVdi.getUuid(conn);
- VolumeObjectTO newVol = new VolumeObjectTO();
+ final VolumeObjectTO newVol = new VolumeObjectTO();
newVol.setPath(destVolume.getPath() + nfsStore.getPathSeparator() + destVolumeUUID + ".vhd");
newVol.setSize(srcVolume.getSize());
return new CopyCmdAnswer(newVol);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to copy volume to secondary: " + e.toString());
return new CopyCmdAnswer("Failed to copy volume to secondary: " + e.toString());
} finally {
@@ -1029,7 +1029,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new CopyCmdAnswer("unsupported protocol");
}
- boolean swiftUpload(Connection conn, SwiftTO swift, String container, String ldir, String lfilename, Boolean isISCSI, int wait) {
+ boolean swiftUpload(final Connection conn, final SwiftTO swift, final String container, final String ldir, final String lfilename, final Boolean isISCSI, final int wait) {
String result = null;
try {
result =
@@ -1038,23 +1038,23 @@ public class XenServerStorageProcessor implements StorageProcessor {
if (result != null && result.equals("true")) {
return true;
}
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.warn("swift upload failed due to " + e.toString(), e);
}
return false;
}
- protected String deleteSnapshotBackup(Connection conn, String localMountPoint, String path, String secondaryStorageMountPath, String backupUUID) {
+ protected String deleteSnapshotBackup(final Connection conn, final String localMountPoint, final String path, final String secondaryStorageMountPath, final String backupUUID) {
// If anybody modifies the formatting below again, I'll skin them
- String result =
+ final String result =
hypervisorResource.callHostPlugin(conn, "vmopsSnapshot", "deleteSnapshotBackup", "backupUUID", backupUUID, "path", path, "secondaryStorageMountPath",
secondaryStorageMountPath, "localMountPoint", localMountPoint);
return result;
}
- public String swiftBackupSnapshot(Connection conn, SwiftTO swift, String srUuid, String snapshotUuid, String container, Boolean isISCSI, int wait) {
+ public String swiftBackupSnapshot(final Connection conn, final SwiftTO swift, final String srUuid, final String snapshotUuid, final String container, final Boolean isISCSI, final int wait) {
String lfilename;
String ldir;
if (isISCSI) {
@@ -1069,7 +1069,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
protected String backupSnapshotToS3(final Connection connection, final S3TO s3, final String srUuid, final String folder, final String snapshotUuid,
- final Boolean iSCSIFlag, final int wait) {
+ final Boolean iSCSIFlag, final int wait) {
final String filename = iSCSIFlag ? "VHD-" + snapshotUuid : snapshotUuid + ".vhd";
final String dir = (iSCSIFlag ? "/dev/VG_XenStorage-" : "/var/run/sr-mount/") + srUuid;
@@ -1090,7 +1090,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
return null;
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.error(String.format("S3 upload failed of snapshot %1$s due to %2$s.", snapshotUuid, e.toString()), e);
}
@@ -1098,8 +1098,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
- protected Long getSnapshotSize(Connection conn, String primaryStorageSRUuid, String snapshotUuid, Boolean isISCSI, int wait) {
- String physicalSize = hypervisorResource.callHostPluginAsync(conn, "vmopsSnapshot", "getSnapshotSize", wait,
+ protected Long getSnapshotSize(final Connection conn, final String primaryStorageSRUuid, final String snapshotUuid, final Boolean isISCSI, final int wait) {
+ final String physicalSize = hypervisorResource.callHostPluginAsync(conn, "vmopsSnapshot", "getSnapshotSize", wait,
"primaryStorageSRUuid", primaryStorageSRUuid, "snapshotUuid", snapshotUuid, "isISCSI", isISCSI.toString());
if (physicalSize == null || physicalSize.isEmpty()) {
return (long) 0;
@@ -1108,8 +1108,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
}
- protected String backupSnapshot(Connection conn, String primaryStorageSRUuid, String localMountPoint, String path, String secondaryStorageMountPath,
- String snapshotUuid, String prevBackupUuid, Boolean isISCSI, int wait) {
+ protected String backupSnapshot(final Connection conn, final String primaryStorageSRUuid, final String localMountPoint, final String path, final String secondaryStorageMountPath,
+ final String snapshotUuid, String prevBackupUuid, final Boolean isISCSI, final int wait) {
String backupSnapshotUuid = null;
if (prevBackupUuid == null) {
@@ -1118,8 +1118,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
// Each argument is put in a separate line for readability.
// Using more lines does not harm the environment.
- String backupUuid = UUID.randomUUID().toString();
- String results =
+ final String backupUuid = UUID.randomUUID().toString();
+ final String results =
hypervisorResource.callHostPluginAsync(conn, "vmopsSnapshot", "backupSnapshot", wait, "primaryStorageSRUuid", primaryStorageSRUuid, "path", path,
"secondaryStorageMountPath", secondaryStorageMountPath, "snapshotUuid", snapshotUuid, "prevBackupUuid", prevBackupUuid, "backupUuid", backupUuid,
"isISCSI", isISCSI.toString(), "localMountPoint", localMountPoint);
@@ -1130,8 +1130,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
secondaryStorageMountPath + " due to null";
} else {
- String[] tmp = results.split("#");
- String status = tmp[0];
+ final String[] tmp = results.split("#");
+ final String status = tmp[0];
backupSnapshotUuid = tmp[1];
// status == "1" if and only if backupSnapshotUuid != null
// So we don't rely on status value but return backupSnapshotUuid as an
@@ -1145,45 +1145,45 @@ public class XenServerStorageProcessor implements StorageProcessor {
secondaryStorageMountPath + " due to " + tmp[1];
}
}
- String source = backupUuid + ".vhd";
+ final String source = backupUuid + ".vhd";
hypervisorResource.killCopyProcess(conn, source);
s_logger.warn(errMsg);
throw new CloudRuntimeException(errMsg);
}
- protected boolean destroySnapshotOnPrimaryStorageExceptThis(Connection conn, String volumeUuid, String avoidSnapshotUuid) {
+ protected boolean destroySnapshotOnPrimaryStorageExceptThis(final Connection conn, final String volumeUuid, final String avoidSnapshotUuid) {
try {
- VDI volume = getVDIbyUuid(conn, volumeUuid);
+ final VDI volume = getVDIbyUuid(conn, volumeUuid);
if (volume == null) {
throw new InternalErrorException("Could not destroy snapshot on volume " + volumeUuid + " due to can not find it");
}
- Set<VDI> snapshots = volume.getSnapshots(conn);
- for (VDI snapshot : snapshots) {
+ final Set<VDI> snapshots = volume.getSnapshots(conn);
+ for (final VDI snapshot : snapshots) {
try {
if (!snapshot.getUuid(conn).equals(avoidSnapshotUuid)) {
snapshot.destroy(conn);
}
- } catch (Exception e) {
- String msg = "Destroying snapshot: " + snapshot + " on primary storage failed due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Destroying snapshot: " + snapshot + " on primary storage failed due to " + e.toString();
s_logger.warn(msg, e);
}
}
s_logger.debug("Successfully destroyed snapshot on volume: " + volumeUuid + " execept this current snapshot " + avoidSnapshotUuid);
return true;
- } catch (XenAPIException e) {
- String msg = "Destroying snapshot on volume: " + volumeUuid + " execept this current snapshot " + avoidSnapshotUuid + " failed due to " + e.toString();
+ } catch (final XenAPIException e) {
+ final String msg = "Destroying snapshot on volume: " + volumeUuid + " execept this current snapshot " + avoidSnapshotUuid + " failed due to " + e.toString();
s_logger.error(msg, e);
- } catch (Exception e) {
- String msg = "Destroying snapshot on volume: " + volumeUuid + " execept this current snapshot " + avoidSnapshotUuid + " failed due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Destroying snapshot on volume: " + volumeUuid + " execept this current snapshot " + avoidSnapshotUuid + " failed due to " + e.toString();
s_logger.warn(msg, e);
}
return false;
}
- private boolean destroySnapshotOnPrimaryStorage(Connection conn, String lastSnapshotUuid) {
+ private boolean destroySnapshotOnPrimaryStorage(final Connection conn, final String lastSnapshotUuid) {
try {
- VDI snapshot = getVDIbyUuid(conn, lastSnapshotUuid);
+ final VDI snapshot = getVDIbyUuid(conn, lastSnapshotUuid);
if (snapshot == null) {
// since this is just used to cleanup leftover bad snapshots, no need to throw exception
s_logger.warn("Could not destroy snapshot " + lastSnapshotUuid + " due to can not find it");
@@ -1191,24 +1191,24 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
snapshot.destroy(conn);
return true;
- } catch (XenAPIException e) {
- String msg = "Destroying snapshot: " + lastSnapshotUuid + " failed due to " + e.toString();
+ } catch (final XenAPIException e) {
+ final String msg = "Destroying snapshot: " + lastSnapshotUuid + " failed due to " + e.toString();
s_logger.error(msg, e);
- } catch (Exception e) {
- String msg = "Destroying snapshot: " + lastSnapshotUuid + " failed due to " + e.toString();
+ } catch (final Exception e) {
+ final String msg = "Destroying snapshot: " + lastSnapshotUuid + " failed due to " + e.toString();
s_logger.warn(msg, e);
}
return false;
}
@Override
- public Answer backupSnapshot(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- DataTO srcData = cmd.getSrcTO();
- DataTO cacheData = cmd.getCacheTO();
- DataTO destData = cmd.getDestTO();
- int wait = cmd.getWait();
- String primaryStorageNameLabel = srcData.getDataStore().getUuid();
+ public Answer backupSnapshot(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final DataTO srcData = cmd.getSrcTO();
+ final DataTO cacheData = cmd.getCacheTO();
+ final DataTO destData = cmd.getDestTO();
+ final int wait = cmd.getWait();
+ final String primaryStorageNameLabel = srcData.getDataStore().getUuid();
String secondaryStorageUrl = null;
NfsTO cacheStore = null;
String destPath = null;
@@ -1222,58 +1222,58 @@ public class XenServerStorageProcessor implements StorageProcessor {
destPath = destData.getPath();
}
- SnapshotObjectTO snapshotTO = (SnapshotObjectTO) srcData;
- SnapshotObjectTO snapshotOnImage = (SnapshotObjectTO) destData;
- String snapshotUuid = snapshotTO.getPath();
- String volumeUuid = snapshotTO.getVolume().getPath();
+ final SnapshotObjectTO snapshotTO = (SnapshotObjectTO) srcData;
+ final SnapshotObjectTO snapshotOnImage = (SnapshotObjectTO) destData;
+ final String snapshotUuid = snapshotTO.getPath();
+ final String volumeUuid = snapshotTO.getVolume().getPath();
- String prevBackupUuid = snapshotOnImage.getParentSnapshotPath();
- String prevSnapshotUuid = snapshotTO.getParentSnapshotPath();
+ final String prevBackupUuid = snapshotOnImage.getParentSnapshotPath();
+ final String prevSnapshotUuid = snapshotTO.getParentSnapshotPath();
// By default assume failure
String details = null;
String snapshotBackupUuid = null;
Long physicalSize = null;
- Map<String, String> options = cmd.getOptions();
+ final Map<String, String> options = cmd.getOptions();
boolean fullbackup = Boolean.parseBoolean(options.get("fullSnapshot"));
boolean result = false;
try {
- SR primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
+ final SR primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
if (primaryStorageSR == null) {
throw new InternalErrorException("Could not backup snapshot because the primary Storage SR could not be created from the name label: " +
primaryStorageNameLabel);
}
- String psUuid = primaryStorageSR.getUuid(conn);
- Boolean isISCSI = IsISCSI(primaryStorageSR.getType(conn));
+ final String psUuid = primaryStorageSR.getUuid(conn);
+ final Boolean isISCSI = IsISCSI(primaryStorageSR.getType(conn));
- VDI snapshotVdi = getVDIbyUuid(conn, snapshotUuid);
+ final VDI snapshotVdi = getVDIbyUuid(conn, snapshotUuid);
String snapshotPaUuid = null;
if (prevSnapshotUuid != null && !fullbackup) {
try {
snapshotPaUuid = getVhdParent(conn, psUuid, snapshotUuid, isISCSI);
if (snapshotPaUuid != null) {
- String snashotPaPaPaUuid = getVhdParent(conn, psUuid, snapshotPaUuid, isISCSI);
- String prevSnashotPaUuid = getVhdParent(conn, psUuid, prevSnapshotUuid, isISCSI);
+ final String snashotPaPaPaUuid = getVhdParent(conn, psUuid, snapshotPaUuid, isISCSI);
+ final String prevSnashotPaUuid = getVhdParent(conn, psUuid, prevSnapshotUuid, isISCSI);
if (snashotPaPaPaUuid != null && prevSnashotPaUuid != null && prevSnashotPaUuid.equals(snashotPaPaPaUuid)) {
fullbackup = false;
} else {
fullbackup = true;
}
}
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to get parent snapshots, take full snapshot", e);
fullbackup = true;
}
}
- URI uri = new URI(secondaryStorageUrl);
- String secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath();
- DataStoreTO destStore = destData.getDataStore();
- String folder = destPath;
+ final URI uri = new URI(secondaryStorageUrl);
+ final String secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath();
+ final DataStoreTO destStore = destData.getDataStore();
+ final String folder = destPath;
String finalPath = null;
- String localMountPoint = BaseMountPointOnHost + File.separator + UUID.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString();
+ final String localMountPoint = BaseMountPointOnHost + File.separator + UUID.nameUUIDFromBytes(secondaryStorageUrl.getBytes()).toString();
if (fullbackup) {
// the first snapshot is always a full snapshot
@@ -1282,25 +1282,25 @@ public class XenServerStorageProcessor implements StorageProcessor {
s_logger.warn(details);
return new CopyCmdAnswer(details);
}
- String snapshotMountpoint = secondaryStorageUrl + "/" + folder;
+ final String snapshotMountpoint = secondaryStorageUrl + "/" + folder;
SR snapshotSr = null;
try {
snapshotSr = hypervisorResource.createNfsSRbyURI(conn, new URI(snapshotMountpoint), false);
- VDI backedVdi = hypervisorResource.cloudVDIcopy(conn, snapshotVdi, snapshotSr, wait);
+ final VDI backedVdi = hypervisorResource.cloudVDIcopy(conn, snapshotVdi, snapshotSr, wait);
snapshotBackupUuid = backedVdi.getUuid(conn);
- String primarySRuuid = snapshotSr.getUuid(conn);
+ final String primarySRuuid = snapshotSr.getUuid(conn);
physicalSize = getSnapshotSize(conn, primarySRuuid, snapshotBackupUuid, isISCSI, wait);
if (destStore instanceof SwiftTO) {
try {
- String container = "S-" + snapshotTO.getVolume().getVolumeId().toString();
- String destSnapshotName = swiftBackupSnapshot(conn, (SwiftTO) destStore, snapshotSr.getUuid(conn), snapshotBackupUuid, container, false, wait);
- String swiftPath = container + File.separator + destSnapshotName;
+ final String container = "S-" + snapshotTO.getVolume().getVolumeId().toString();
+ final String destSnapshotName = swiftBackupSnapshot(conn, (SwiftTO) destStore, snapshotSr.getUuid(conn), snapshotBackupUuid, container, false, wait);
+ final String swiftPath = container + File.separator + destSnapshotName;
finalPath = swiftPath;
} finally {
try {
deleteSnapshotBackup(conn, localMountPoint, folder, secondaryStorageMountPath, snapshotBackupUuid);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to delete snapshot on cache storages", e);
}
}
@@ -1314,7 +1314,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
} finally {
try {
deleteSnapshotBackup(conn, localMountPoint, folder, secondaryStorageMountPath, snapshotBackupUuid);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Failed to delete snapshot on cache storages", e);
}
}
@@ -1329,9 +1329,9 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
}
} else {
- String primaryStorageSRUuid = primaryStorageSR.getUuid(conn);
+ final String primaryStorageSRUuid = primaryStorageSR.getUuid(conn);
if (destStore instanceof SwiftTO) {
- String container = "S-" + snapshotTO.getVolume().getVolumeId().toString();
+ final String container = "S-" + snapshotTO.getVolume().getVolumeId().toString();
snapshotBackupUuid =
swiftBackupSnapshot(conn, (SwiftTO) destStore, primaryStorageSRUuid, snapshotPaUuid, "S-" + snapshotTO.getVolume().getVolumeId().toString(),
isISCSI, wait);
@@ -1342,10 +1342,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
throw new CloudRuntimeException("S3 upload of snapshots " + snapshotPaUuid + " failed");
}
} else {
- String results =
+ final String results =
backupSnapshot(conn, primaryStorageSRUuid, localMountPoint, folder, secondaryStorageMountPath, snapshotUuid, prevBackupUuid, isISCSI, wait);
- String[] tmp = results.split("#");
+ final String[] tmp = results.split("#");
snapshotBackupUuid = tmp[1];
physicalSize = Long.parseLong(tmp[2]);
finalPath = folder + cacheStore.getPathSeparator() + snapshotBackupUuid;
@@ -1354,7 +1354,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
// delete primary snapshots with only the last one left
destroySnapshotOnPrimaryStorageExceptThis(conn, volumeUuid, snapshotUuid);
- SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
+ final SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
newSnapshot.setPath(finalPath);
newSnapshot.setPhysicalSize(physicalSize);
if (fullbackup) {
@@ -1364,10 +1364,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
result = true;
return new CopyCmdAnswer(newSnapshot);
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
details = "BackupSnapshot Failed due to " + e.toString();
s_logger.warn(details, e);
- } catch (Exception e) {
+ } catch (final Exception e) {
details = "BackupSnapshot Failed due to " + e.getMessage();
s_logger.warn(details, e);
} finally {
@@ -1375,7 +1375,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
// remove last bad primary snapshot when exception happens
try {
destroySnapshotOnPrimaryStorage(conn, snapshotUuid);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("clean up snapshot failed", e);
}
}
@@ -1385,17 +1385,17 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer createTemplateFromVolume(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- VolumeObjectTO volume = (VolumeObjectTO) cmd.getSrcTO();
- TemplateObjectTO template = (TemplateObjectTO) cmd.getDestTO();
- NfsTO destStore = (NfsTO) cmd.getDestTO().getDataStore();
- int wait = cmd.getWait();
+ public Answer createTemplateFromVolume(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final VolumeObjectTO volume = (VolumeObjectTO) cmd.getSrcTO();
+ final TemplateObjectTO template = (TemplateObjectTO) cmd.getDestTO();
+ final NfsTO destStore = (NfsTO) cmd.getDestTO().getDataStore();
+ final int wait = cmd.getWait();
- String secondaryStoragePoolURL = destStore.getUrl();
- String volumeUUID = volume.getPath();
+ final String secondaryStoragePoolURL = destStore.getUrl();
+ final String volumeUUID = volume.getPath();
- String userSpecifiedName = template.getName();
+ final String userSpecifiedName = template.getName();
String details = null;
SR tmpltSR = null;
@@ -1403,7 +1403,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
String secondaryStorageMountPath = null;
String installPath = null;
try {
- URI uri = new URI(secondaryStoragePoolURL);
+ final URI uri = new URI(secondaryStoragePoolURL);
secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath();
installPath = template.getPath();
if (!hypervisorResource.createSecondaryStorageFolder(conn, secondaryStorageMountPath, installPath)) {
@@ -1412,25 +1412,25 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new CopyCmdAnswer(details);
}
- VDI vol = getVDIbyUuid(conn, volumeUUID);
+ final VDI vol = getVDIbyUuid(conn, volumeUUID);
// create template SR
- URI tmpltURI = new URI(secondaryStoragePoolURL + "/" + installPath);
+ final URI tmpltURI = new URI(secondaryStoragePoolURL + "/" + installPath);
tmpltSR = hypervisorResource.createNfsSRbyURI(conn, tmpltURI, false);
// copy volume to template SR
- VDI tmpltVDI = hypervisorResource.cloudVDIcopy(conn, vol, tmpltSR, wait);
+ final VDI tmpltVDI = hypervisorResource.cloudVDIcopy(conn, vol, tmpltSR, wait);
// scan makes XenServer pick up VDI physicalSize
tmpltSR.scan(conn);
if (userSpecifiedName != null) {
tmpltVDI.setNameLabel(conn, userSpecifiedName);
}
- String tmpltUUID = tmpltVDI.getUuid(conn);
- String tmpltFilename = tmpltUUID + ".vhd";
- long virtualSize = tmpltVDI.getVirtualSize(conn);
- long physicalSize = tmpltVDI.getPhysicalUtilisation(conn);
+ final String tmpltUUID = tmpltVDI.getUuid(conn);
+ final String tmpltFilename = tmpltUUID + ".vhd";
+ final long virtualSize = tmpltVDI.getVirtualSize(conn);
+ final long physicalSize = tmpltVDI.getPhysicalUtilisation(conn);
// create the template.properties file
- String templatePath = secondaryStorageMountPath + "/" + installPath;
+ final String templatePath = secondaryStorageMountPath + "/" + installPath;
result =
hypervisorResource.postCreatePrivateTemplate(conn, templatePath, tmpltFilename, tmpltUUID, userSpecifiedName, null, physicalSize, virtualSize,
template.getId());
@@ -1440,15 +1440,15 @@ public class XenServerStorageProcessor implements StorageProcessor {
installPath = installPath + "/" + tmpltFilename;
hypervisorResource.removeSR(conn, tmpltSR);
tmpltSR = null;
- TemplateObjectTO newTemplate = new TemplateObjectTO();
+ final TemplateObjectTO newTemplate = new TemplateObjectTO();
newTemplate.setPath(installPath);
newTemplate.setFormat(ImageFormat.VHD);
newTemplate.setSize(virtualSize);
newTemplate.setPhysicalSize(physicalSize);
newTemplate.setName(tmpltUUID);
- CopyCmdAnswer answer = new CopyCmdAnswer(newTemplate);
+ final CopyCmdAnswer answer = new CopyCmdAnswer(newTemplate);
return answer;
- } catch (Exception e) {
+ } catch (final Exception e) {
if (tmpltSR != null) {
hypervisorResource.removeSR(conn, tmpltSR);
}
@@ -1462,17 +1462,17 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer createTemplateFromSnapshot(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
+ public Answer createTemplateFromSnapshot(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
- SnapshotObjectTO snapshotObjTO = (SnapshotObjectTO)cmd.getSrcTO();
- TemplateObjectTO templateObjTO = (TemplateObjectTO)cmd.getDestTO();
+ final SnapshotObjectTO snapshotObjTO = (SnapshotObjectTO)cmd.getSrcTO();
+ final TemplateObjectTO templateObjTO = (TemplateObjectTO)cmd.getDestTO();
if (!(snapshotObjTO.getDataStore() instanceof PrimaryDataStoreTO) || !(templateObjTO.getDataStore() instanceof NfsTO)) {
return null;
}
- String userSpecifiedTemplateName = templateObjTO.getName();
+ final String userSpecifiedTemplateName = templateObjTO.getName();
NfsTO destStore = null;
URI destUri = null;
@@ -1481,7 +1481,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
destStore = (NfsTO)templateObjTO.getDataStore();
destUri = new URI(destStore.getUrl());
- } catch (Exception ex) {
+ } catch (final Exception ex) {
s_logger.debug("Invalid URI", ex);
return new CopyCmdAnswer("Invalid URI: " + ex.toString());
@@ -1490,37 +1490,37 @@ public class XenServerStorageProcessor implements StorageProcessor {
SR srcSr = null;
SR destSr = null;
- String destDir = templateObjTO.getPath();
+ final String destDir = templateObjTO.getPath();
VDI destVdi = null;
boolean result = false;
try {
- Map<String, String> srcDetails = cmd.getOptions();
+ final Map<String, String> srcDetails = cmd.getOptions();
- String iScsiName = srcDetails.get(DiskTO.IQN);
- String storageHost = srcDetails.get(DiskTO.STORAGE_HOST);
- String chapInitiatorUsername = srcDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
- String chapInitiatorSecret = srcDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+ final String iScsiName = srcDetails.get(DiskTO.IQN);
+ final String storageHost = srcDetails.get(DiskTO.STORAGE_HOST);
+ final String chapInitiatorUsername = srcDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
+ final String chapInitiatorSecret = srcDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
srcSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, true);
- String destNfsPath = destUri.getHost() + ":" + destUri.getPath();
+ final String destNfsPath = destUri.getHost() + ":" + destUri.getPath();
if (!hypervisorResource.createSecondaryStorageFolder(conn, destNfsPath, destDir)) {
- String details = " Failed to create folder " + destDir + " in secondary storage";
+ final String details = " Failed to create folder " + destDir + " in secondary storage";
s_logger.warn(details);
return new CopyCmdAnswer(details);
}
- URI templateUri = new URI(destStore.getUrl() + "/" + destDir);
+ final URI templateUri = new URI(destStore.getUrl() + "/" + destDir);
destSr = hypervisorResource.createNfsSRbyURI(conn, templateUri, false);
// there should only be one VDI in this SR
- VDI srcVdi = srcSr.getVDIs(conn).iterator().next();
+ final VDI srcVdi = srcSr.getVDIs(conn).iterator().next();
destVdi = srcVdi.copy(conn, destSr);
@@ -1531,10 +1531,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
destVdi.setNameLabel(conn, userSpecifiedTemplateName);
}
- String templateUuid = destVdi.getUuid(conn);
- String templateFilename = templateUuid + ".vhd";
- long virtualSize = destVdi.getVirtualSize(conn);
- long physicalSize = destVdi.getPhysicalUtilisation(conn);
+ final String templateUuid = destVdi.getUuid(conn);
+ final String templateFilename = templateUuid + ".vhd";
+ final long virtualSize = destVdi.getVirtualSize(conn);
+ final long physicalSize = destVdi.getPhysicalUtilisation(conn);
// create the template.properties file
String templatePath = destNfsPath + "/" + destDir;
@@ -1548,7 +1548,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
throw new CloudRuntimeException("Could not create the template.properties file on secondary storage dir: " + templateUri);
}
- TemplateObjectTO newTemplate = new TemplateObjectTO();
+ final TemplateObjectTO newTemplate = new TemplateObjectTO();
newTemplate.setPath(destDir + "/" + templateFilename);
newTemplate.setFormat(Storage.ImageFormat.VHD);
@@ -1560,7 +1560,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
result = true;
return new CopyCmdAnswer(newTemplate);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
s_logger.error("Failed to create a template from a snapshot", ex);
return new CopyCmdAnswer("Failed to create a template from a snapshot: " + ex.toString());
@@ -1569,7 +1569,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
if (destVdi != null) {
try {
destVdi.destroy(conn);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.debug("Cleaned up leftover VDI on destination storage due to failure: ", e);
}
}
@@ -1586,12 +1586,12 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer createVolumeFromSnapshot(CopyCommand cmd) {
- Connection conn = hypervisorResource.getConnection();
- DataTO srcData = cmd.getSrcTO();
- SnapshotObjectTO snapshot = (SnapshotObjectTO) srcData;
- DataTO destData = cmd.getDestTO();
- DataStoreTO imageStore = srcData.getDataStore();
+ public Answer createVolumeFromSnapshot(final CopyCommand cmd) {
+ final Connection conn = hypervisorResource.getConnection();
+ final DataTO srcData = cmd.getSrcTO();
+ final SnapshotObjectTO snapshot = (SnapshotObjectTO) srcData;
+ final DataTO destData = cmd.getDestTO();
+ final DataStoreTO imageStore = srcData.getDataStore();
if (srcData.getDataStore() instanceof PrimaryDataStoreTO && destData.getDataStore() instanceof PrimaryDataStoreTO) {
return createVolumeFromSnapshot2(cmd);
@@ -1601,10 +1601,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new CopyCmdAnswer("unsupported protocol");
}
- NfsTO nfsImageStore = (NfsTO) imageStore;
<TRUNCATED>