Summary: Don't add secondary storage to KVM heartbeat

BUG-ID: CLOUDSTACK-2173
Bugfix-for: 4.2
Signed-off-by: Marcus Sorensen <mar...@betterservers.com> 1366865750 -0600


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/33006ff1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/33006ff1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/33006ff1

Branch: refs/heads/ui-add-remove-nics
Commit: 33006ff1978dda435f717ff5e9125c9a522af4d4
Parents: 299cccf
Author: Marcus Sorensen <mar...@betterservers.com>
Authored: Wed Apr 24 22:55:50 2013 -0600
Committer: Marcus Sorensen <mar...@betterservers.com>
Committed: Wed Apr 24 22:55:50 2013 -0600

----------------------------------------------------------------------
 .../hypervisor/kvm/resource/KVMHAMonitor.java      |    7 ++++---
 .../kvm/storage/KVMStoragePoolManager.java         |   12 ++++++++++--
 2 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33006ff1/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
index d1470d6..0e4d9ee 100644
--- 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
+++ 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
@@ -55,9 +55,10 @@ public class KVMHAMonitor extends KVMHABase implements 
Runnable {
     public void removeStoragePool(String uuid) {
         synchronized (_storagePool) {
             NfsStoragePool pool = this._storagePool.get(uuid);
-            Script.runSimpleBashScript("umount " + pool._mountDestPath);
-            s_logger.debug("attempted to umount '" + pool._mountDestPath + 
"'");
-            this._storagePool.remove(uuid);
+            if (pool != null) {
+                Script.runSimpleBashScript("umount " + pool._mountDestPath);
+                this._storagePool.remove(uuid);
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33006ff1/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
index f5719ba..31d491c 100644
--- 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
+++ 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java
@@ -94,18 +94,26 @@ public class KVMStoragePoolManager {
             protocol = StoragePoolType.NetworkFilesystem;
         }
 
-        return createStoragePool(uuid, sourceHost, 0, sourcePath, "", 
protocol);
+        // secondary storage registers itself through here
+        return createStoragePool(uuid, sourceHost, 0, sourcePath, "", 
protocol, false);
     }
 
     public KVMStoragePool createStoragePool( String name, String host, int 
port,
                                              String path, String userInfo,
                                              StoragePoolType type) {
+        // primary storage registers itself through here
+        return createStoragePool(name, host, port, path, userInfo, type, true);
+    }
+
+    private KVMStoragePool createStoragePool( String name, String host, int 
port,
+                                             String path, String userInfo,
+                                             StoragePoolType type, boolean 
primaryStorage) {
         StorageAdaptor adaptor = getStorageAdaptor(type);
         KVMStoragePool pool = adaptor.createStoragePool(name,
                                 host, port, path, userInfo, type);
 
         // LibvirtStorageAdaptor-specific statement
-        if (type == StoragePoolType.NetworkFilesystem) {
+        if (type == StoragePoolType.NetworkFilesystem && primaryStorage) {
             KVMHABase.NfsStoragePool nfspool = new KVMHABase.NfsStoragePool(
                     pool.getUuid(), host, path, pool.getLocalPath(),
                     PoolType.PrimaryStorage);

Reply via email to