Updated Branches:
refs/heads/4.0 5ac59fbec -> c0d2c1b95
CLOUDSTACK-1761 - Available local storage disk capacity incorrectly reported in
KVM to manager. This adds collection of available storage to KVM, not
just used.
Bugfix-for: 4.0.2, 4.1, master
Submitted-by: Ted Smith <[email protected]>
Signed-off-by: Marcus Sorensen <[email protected]> 1363966235 -0600
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c0d2c1b9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c0d2c1b9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c0d2c1b9
Branch: refs/heads/4.0
Commit: c0d2c1b958e98460ec1fea7eb378d4ca4f35a052
Parents: 5ac59fb
Author: Marcus Sorensen <[email protected]>
Authored: Fri Mar 22 09:30:35 2013 -0600
Committer: Joe Brockmeier <[email protected]>
Committed: Fri Mar 22 10:35:08 2013 -0500
----------------------------------------------------------------------
.../kvm/resource/LibvirtComputingResource.java | 2 +-
.../hypervisor/kvm/storage/KVMStoragePool.java | 2 ++
.../kvm/storage/LibvirtStorageAdaptor.java | 2 ++
.../hypervisor/kvm/storage/LibvirtStoragePool.java | 10 ++++++++++
4 files changed, 15 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0d2c1b9/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 825de23..d0be02f 100755
---
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -3332,7 +3332,7 @@ public class LibvirtComputingResource extends
ServerResourceBase implements
localStoragePool.getUuid(), cmd.getPrivateIpAddress(),
_localStoragePath, _localStoragePath,
StoragePoolType.Filesystem, localStoragePool.getCapacity(),
- localStoragePool.getUsed());
+ localStoragePool.getAvailable());
sscmd = new StartupStorageCommand();
sscmd.setPoolInfo(pi);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0d2c1b9/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java
----------------------------------------------------------------------
diff --git
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java
index 5437e7c..d32a6fd 100644
---
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java
+++
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePool.java
@@ -39,6 +39,8 @@ public interface KVMStoragePool {
public long getUsed();
+ public long getAvailable();
+
public boolean refresh();
public boolean isExternalSnapshot();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0d2c1b9/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 d065e90..131c37e 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
@@ -403,6 +403,7 @@ public class LibvirtStorageAdaptor implements
StorageAdaptor {
pool.refresh();
pool.setCapacity(storage.getInfo().capacity);
pool.setUsed(storage.getInfo().allocation);
+ pool.setAvailable(storage.getInfo().available);
return pool;
} catch (LibvirtException e) {
@@ -535,6 +536,7 @@ public class LibvirtStorageAdaptor implements
StorageAdaptor {
pool.setCapacity(sp.getInfo().capacity);
pool.setUsed(sp.getInfo().allocation);
+ pool.setAvailable(sp.getInfo().available);
return pool;
} catch (LibvirtException e) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0d2c1b9/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java
----------------------------------------------------------------------
diff --git
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java
index 32f8ce9..1396097 100644
---
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java
+++
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java
@@ -28,6 +28,7 @@ public class LibvirtStoragePool implements KVMStoragePool {
protected String uri;
protected long capacity;
protected long used;
+ protected long available;
protected String name;
protected String localPath;
protected PhysicalDiskFormat defaultFormat;
@@ -48,6 +49,7 @@ public class LibvirtStoragePool implements KVMStoragePool {
this._storageAdaptor = adaptor;
this.capacity = 0;
this.used = 0;
+ this.available = 0;
this._pool = pool;
}
@@ -65,11 +67,19 @@ public class LibvirtStoragePool implements KVMStoragePool {
this.used = used;
}
+ public void setAvailable(long available) {
+ this.available = available;
+ }
+
@Override
public long getUsed() {
return this.used;
}
+ public long getAvailable() {
+ return this.available;
+ }
+
public StoragePoolType getStoragePoolType() {
return this.type;
}