agent: Only probe running VMs for the current Hypervisor Type

Otherwise we try to probe for LXC VMs on a KVM hypervisor and vise versa.


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

Branch: refs/heads/vmware-storage-motion
Commit: 322db71eedb6b52fca6f92b46b613607083c4d88
Parents: 5b902c7
Author: Wido den Hollander <w...@42on.com>
Authored: Sun May 26 11:38:00 2013 +0200
Committer: Wido den Hollander <w...@42on.com>
Committed: Sun May 26 11:38:41 2013 +0200

----------------------------------------------------------------------
 agent/conf/agent.properties                        |    5 +++
 .../kvm/resource/LibvirtComputingResource.java     |   24 ++++++++------
 2 files changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/322db71e/agent/conf/agent.properties
----------------------------------------------------------------------
diff --git a/agent/conf/agent.properties b/agent/conf/agent.properties
index 7dc4ba8..60030ae 100644
--- a/agent/conf/agent.properties
+++ b/agent/conf/agent.properties
@@ -84,6 +84,11 @@ domr.scripts.dir=scripts/network/domr/kvm
 # set the hypervisor type, values are: kvm, lxc
 # hypervisor.type=kvm
 
+# set the hypervisor URI. Usually there is no need for changing this
+# For KVM: qemu:///system
+# For LXC: lxc:///
+# hypervisor.uri=qemu:///system
+
 # settings to enable direct networking in libvirt, should not be used
 # on hosts that run system vms, values for mode are: private, bridge, vepa
 # libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.DirectVifDriver

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/322db71e/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 c34d1eb..f979cfe 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
@@ -3943,18 +3943,22 @@ ServerResource {
         final HashMap<String, State> vmStates = new HashMap<String, State>();
         Connect conn = null;
 
-        try {
-            conn = 
LibvirtConnection.getConnectionByType(HypervisorType.LXC.toString());
-            vmStates.putAll(getAllVms(conn));
-        } catch (LibvirtException e) {
-            s_logger.debug("Failed to get connection: " + e.getMessage());
+        if (_hypervisorType == HypervisorType.LXC) {
+            try {
+                conn = 
LibvirtConnection.getConnectionByType(HypervisorType.LXC.toString());
+                vmStates.putAll(getAllVms(conn));
+            } catch (LibvirtException e) {
+                s_logger.debug("Failed to get connection: " + e.getMessage());
+            }
         }
 
-        try {
-            conn = 
LibvirtConnection.getConnectionByType(HypervisorType.KVM.toString());
-            vmStates.putAll(getAllVms(conn));
-        } catch (LibvirtException e) {
-            s_logger.debug("Failed to get connection: " + e.getMessage());
+        if (_hypervisorType == HypervisorType.KVM) {
+            try {
+                conn = 
LibvirtConnection.getConnectionByType(HypervisorType.KVM.toString());
+                vmStates.putAll(getAllVms(conn));
+            } catch (LibvirtException e) {
+                s_logger.debug("Failed to get connection: " + e.getMessage());
+            }
         }
 
         return vmStates;

Reply via email to