You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by hu...@apache.org on 2014/01/23 17:16:18 UTC
[4/4] git commit: updated refs/heads/master to 50b6de4
Findbugs finding : Fix potential NPE
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/50b6de47
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/50b6de47
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/50b6de47
Branch: refs/heads/master
Commit: 50b6de471417d93b7d50e53c3db47de9ea39b155
Parents: 5e0d61b
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Thu Jan 23 16:14:56 2014 +0000
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Thu Jan 23 16:14:56 2014 +0000
----------------------------------------------------------------------
.../kvm/storage/LibvirtStorageAdaptor.java | 68 ++++++++++----------
1 file changed, 34 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50b6de47/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
index fafbee0..bbd1c24 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
@@ -386,7 +386,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
LibvirtStoragePool libvirtPool = (LibvirtStoragePool)pool;
try {
- StorageVol vol = this.getVolume(libvirtPool.getPool(), volumeUuid);
+ StorageVol vol = getVolume(libvirtPool.getPool(), volumeUuid);
KVMPhysicalDisk disk;
LibvirtStorageVolumeDef voldef = getStorageVolumeDef(libvirtPool.getPool().getConnect(), vol);
disk = new KVMPhysicalDisk(vol.getPath(), vol.getName(), pool);
@@ -471,7 +471,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
String targetPath = pdef.getTargetPath();
if (targetPath != null && targetPath.equals(path)) {
s_logger.debug("Storage pool utilizing path '" + path + "' already exists as pool " + poolname +
- ", undefining so we can re-define with correct name " + name);
+ ", undefining so we can re-define with correct name " + name);
if (p.isPersistent() == 1) {
p.destroy();
p.undefine();
@@ -527,8 +527,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
String error = e.toString();
if (error.contains("Storage source conflict")) {
throw new CloudRuntimeException("A pool matching this location already exists in libvirt, " +
- " but has a different UUID/Name. Cannot create new pool without first " + " removing it. Check for inactive pools via 'virsh pool-list --all'. " +
- error);
+ " but has a different UUID/Name. Cannot create new pool without first " + " removing it. Check for inactive pools via 'virsh pool-list --all'. " +
+ error);
} else {
throw new CloudRuntimeException(error);
}
@@ -556,7 +556,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
/*
* Some storage pools, like RBD also have 'secret' information stored in libvirt
* Destroy them if they exist
- */
+ */
try {
s = conn.secretLookupByUUIDString(uuid);
} catch (LibvirtException e) {
@@ -580,7 +580,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
if (e.toString().contains("exit status 16")) {
String targetPath = _mountPoint + File.separator + uuid;
s_logger.error("deleteStoragePool removed pool from libvirt, but libvirt had trouble" + "unmounting the pool. Trying umount location " + targetPath +
- "again in a few seconds");
+ "again in a few seconds");
String result = Script.runSimpleBashScript("sleep 5 && umount " + targetPath);
if (result == null) {
s_logger.error("Succeeded in unmounting " + targetPath);
@@ -624,7 +624,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
IoCTX io = r.ioCtxCreate(pool.getSourceDir());
Rbd rbd = new Rbd(io);
- rbd.create(name, size, this.rbdFeatures, this.rbdOrder);
+ rbd.create(name, size, rbdFeatures, rbdOrder);
r.ioCtxDestroy(io);
} catch (RadosException e) {
@@ -702,7 +702,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
try {
Connect conn = LibvirtConnection.getConnection();
- StoragePool pool = conn.storagePoolLookupByUUIDString(poolUuid);
+ conn.storagePoolLookupByUUIDString(poolUuid);
deleteStoragePool(poolUuid);
@@ -753,7 +753,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
LibvirtStoragePool libvirtPool = (LibvirtStoragePool)pool;
try {
- StorageVol vol = this.getVolume(libvirtPool.getPool(), uuid);
+ StorageVol vol = getVolume(libvirtPool.getPool(), uuid);
deleteVol(libvirtPool, vol);
vol.free();
return true;
@@ -784,7 +784,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
So for RBD we don't create the image, but let qemu-img do that for us.
We then create a KVMPhysicalDisk object that we can return
- */
+ */
try {
if (destPool.getType() != StoragePoolType.RBD) {
disk = destPool.createPhysicalDisk(newUuid, format, template.getVirtualSize());
@@ -815,8 +815,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
QemuImg qemu = new QemuImg(timeout);
QemuImgFile srcFile;
QemuImgFile destFile =
- new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(), destPool.getSourcePort(), destPool.getAuthUserName(),
- destPool.getAuthSecret(), disk.getPath()));
+ new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(), destPool.getSourcePort(), destPool.getAuthUserName(),
+ destPool.getAuthSecret(), disk.getPath()));
destFile.setFormat(format);
if (srcPool.getType() != StoragePoolType.RBD) {
@@ -850,9 +850,9 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
if (srcImage.isOldFormat()) {
/* The source image is RBD format 1, we have to do a regular copy */
s_logger.debug("The source image " + srcPool.getSourceDir() + "/" + template.getName() +
- " is RBD format 1. We have to perform a regular copy (" + template.getVirtualSize() + " bytes)");
+ " is RBD format 1. We have to perform a regular copy (" + template.getVirtualSize() + " bytes)");
- rbd.create(disk.getName(), template.getVirtualSize(), this.rbdFeatures, this.rbdOrder);
+ rbd.create(disk.getName(), template.getVirtualSize(), rbdFeatures, rbdOrder);
RbdImage destImage = rbd.open(disk.getName());
s_logger.debug("Starting to copy " + srcImage.getName() + " to " + destImage.getName() + " in Ceph pool " + srcPool.getSourceDir());
@@ -862,10 +862,10 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
rbd.close(destImage);
} else {
s_logger.debug("The source image " + srcPool.getSourceDir() + "/" + template.getName() +
- " is RBD format 2. We will perform a RBD clone using snapshot " + this.rbdTemplateSnapName);
+ " is RBD format 2. We will perform a RBD clone using snapshot " + rbdTemplateSnapName);
/* The source image is format 2, we can do a RBD snapshot+clone (layering) */
- rbd.clone(template.getName(), this.rbdTemplateSnapName, io, disk.getName(), this.rbdFeatures, this.rbdOrder);
- s_logger.debug("Succesfully cloned " + template.getName() + "@" + this.rbdTemplateSnapName + " to " + disk.getName());
+ rbd.clone(template.getName(), rbdTemplateSnapName, io, disk.getName(), rbdFeatures, rbdOrder);
+ s_logger.debug("Succesfully cloned " + template.getName() + "@" + rbdTemplateSnapName + " to " + disk.getName());
}
rbd.close(srcImage);
@@ -893,14 +893,14 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
Rbd dRbd = new Rbd(dIO);
s_logger.debug("Creating " + disk.getName() + " on the destination cluster " + rDest.confGet("mon_host") + " in pool " +
- destPool.getSourceDir());
- dRbd.create(disk.getName(), template.getVirtualSize(), this.rbdFeatures, this.rbdOrder);
+ destPool.getSourceDir());
+ dRbd.create(disk.getName(), template.getVirtualSize(), rbdFeatures, rbdOrder);
RbdImage srcImage = sRbd.open(template.getName());
RbdImage destImage = dRbd.open(disk.getName());
s_logger.debug("Copying " + template.getName() + " from Ceph cluster " + rSrc.confGet("mon_host") + " to " + disk.getName() + " on cluster " +
- rDest.confGet("mon_host"));
+ rDest.confGet("mon_host"));
sRbd.copy(srcImage, destImage);
sRbd.close(srcImage);
@@ -923,7 +923,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
}
if (disk == null) {
- throw new CloudRuntimeException("Failed to create " + disk.getPath() + " from template " + template.getName());
+ throw new CloudRuntimeException("Failed to create disk from template " + template.getName());
}
return disk;
@@ -942,7 +942,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
try {
String[] vols = virtPool.listVolumes();
for (String volName : vols) {
- KVMPhysicalDisk disk = this.getPhysicalDisk(volName, pool);
+ KVMPhysicalDisk disk = getPhysicalDisk(volName, pool);
disks.add(disk);
}
return disks;
@@ -1036,11 +1036,11 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
}
} else if ((srcPool.getType() != StoragePoolType.RBD) && (destPool.getType() == StoragePoolType.RBD)) {
/**
- * Qemu doesn't support writing to RBD format 2 directly, so we have to write to a temporary RAW file first
- * which we then convert to RBD format 2.
- *
- * A HUGE performance gain can be achieved here if QCOW2 -> RBD format 2 can be done in one step
- */
+ * Qemu doesn't support writing to RBD format 2 directly, so we have to write to a temporary RAW file first
+ * which we then convert to RBD format 2.
+ *
+ * A HUGE performance gain can be achieved here if QCOW2 -> RBD format 2 can be done in one step
+ */
s_logger.debug("The source image is not RBD, but the destination is. We will convert into RBD format 2");
String sourceFile;
boolean useTmpFile = false;
@@ -1069,7 +1069,7 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
Rbd rbd = new Rbd(io);
s_logger.debug("Creating RBD image " + name + " in Ceph pool " + destPool.getSourceDir() + " with RBD format 2");
- rbd.create(name, disk.getVirtualSize(), this.rbdFeatures, this.rbdOrder);
+ rbd.create(name, disk.getVirtualSize(), rbdFeatures, rbdOrder);
RbdImage image = rbd.open(name);
@@ -1098,10 +1098,10 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
}
/* Snapshot the image and protect that snapshot so we can clone (layer) from it */
- s_logger.debug("Creating RBD snapshot " + this.rbdTemplateSnapName + " on image " + name);
- image.snapCreate(this.rbdTemplateSnapName);
- s_logger.debug("Protecting RBD snapshot " + this.rbdTemplateSnapName + " on image " + name);
- image.snapProtect(this.rbdTemplateSnapName);
+ s_logger.debug("Creating RBD snapshot " + rbdTemplateSnapName + " on image " + name);
+ image.snapCreate(rbdTemplateSnapName);
+ s_logger.debug("Protecting RBD snapshot " + rbdTemplateSnapName + " on image " + name);
+ image.snapProtect(rbdTemplateSnapName);
rbd.close(image);
r.ioCtxDestroy(io);
@@ -1125,8 +1125,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
it doesn't benefit us. It's better to keep the current code in place which works
*/
srcFile =
- new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(), srcPool.getSourcePort(), srcPool.getAuthUserName(), srcPool.getAuthSecret(),
- sourcePath));
+ new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(), srcPool.getSourcePort(), srcPool.getAuthUserName(), srcPool.getAuthSecret(),
+ sourcePath));
srcFile.setFormat(sourceFormat);
destFile = new QemuImgFile(destPath);
destFile.setFormat(destFormat);