Node names in NV_VMNODES
authorHelga Velroyen <helgav@google.com>
Tue, 5 Aug 2014 07:46:56 +0000 (09:46 +0200)
committerHelga Velroyen <helgav@google.com>
Thu, 25 Sep 2014 08:26:57 +0000 (10:26 +0200)
This patch populates the list 'NV_VMNODES' with node
names and not node UUIDs, as the backend only uses this
list to identify VM-capable nodes by querying for the
node name.

Signed-off-by: Helga Velroyen <helgav@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

lib/cmdlib/cluster.py
lib/config.py

index 8322c4e..84c66a2 100644 (file)
@@ -2960,7 +2960,7 @@ class LUClusterVerifyGroup(LogicalUnit, _VerifyErrors):
       constants.NV_TIME: None,
       constants.NV_MASTERIP: (self.cfg.GetMasterNodeName(), master_ip),
       constants.NV_OSLIST: None,
-      constants.NV_VMNODES: self.cfg.GetNonVmCapableNodeList(),
+      constants.NV_VMNODES: self.cfg.GetNonVmCapableNodeNameList(),
       constants.NV_USERSCRIPTS: user_scripts,
       }
 
index 391aea7..f246543 100644 (file)
@@ -1981,7 +1981,7 @@ class ConfigWriter(object):
 
   @locking.ssynchronized(_config_lock, shared=1)
   def GetNonVmCapableNodeList(self):
-    """Return the list of nodes which are not vm capable.
+    """Return the list of nodes' uuids which are not vm capable.
 
     """
     all_nodes = [self._UnlockedGetNodeInfo(node)
@@ -1989,6 +1989,15 @@ class ConfigWriter(object):
     return [node.uuid for node in all_nodes if not node.vm_capable]
 
   @locking.ssynchronized(_config_lock, shared=1)
+  def GetNonVmCapableNodeNameList(self):
+    """Return the list of nodes' names which are not vm capable.
+
+    """
+    all_nodes = [self._UnlockedGetNodeInfo(node)
+                 for node in self._UnlockedGetNodeList()]
+    return [node.name for node in all_nodes if not node.vm_capable]
+
+  @locking.ssynchronized(_config_lock, shared=1)
   def GetMultiNodeInfo(self, node_uuids):
     """Get the configuration of multiple nodes.