Separate the computation of all config IDs
authorIustin Pop <iustin@google.com>
Wed, 23 Sep 2009 15:37:46 +0000 (17:37 +0200)
committerIustin Pop <iustin@google.com>
Fri, 25 Sep 2009 13:27:33 +0000 (15:27 +0200)
We will need this in another place, so we abstract the 'compute all
current IDs' functionality into a separate function. We also change the
name of the _ComputeAllLVs to _AllLVs to match the other _All*s
functions.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
(cherry picked from commit 34e54ebc1417f843bc96c86025f15fb76c3a023a)

lib/config.py

index b43b3e8..af45aa3 100644 (file)
@@ -148,7 +148,7 @@ class ConfigWriter:
       raise errors.ConfigurationError("Can't generate unique DRBD secret")
     return secret
 
-  def _ComputeAllLVs(self):
+  def _AllLVs(self):
     """Compute the list of all LVs.
 
     """
@@ -159,6 +159,23 @@ class ConfigWriter:
         lvnames.update(lv_list)
     return lvnames
 
+  def _AllIDs(self, include_temporary):
+    """Compute the list of all UUIDs and names we have.
+
+    @type include_temporary: boolean
+    @param include_temporary: whether to include the _temporary_ids set
+    @rtype: set
+    @return: a set of IDs
+
+    """
+    existing = set()
+    if include_temporary:
+      existing.update(self._temporary_ids)
+    existing.update(self._AllLVs())
+    existing.update(self._config_data.instances.keys())
+    existing.update(self._config_data.nodes.keys())
+    return existing
+
   @locking.ssynchronized(_config_lock, shared=1)
   def GenerateUniqueID(self, exceptions=None):
     """Generate an unique disk name.
@@ -175,11 +192,7 @@ class ConfigWriter:
     @return: the unique id
 
     """
-    existing = set()
-    existing.update(self._temporary_ids)
-    existing.update(self._ComputeAllLVs())
-    existing.update(self._config_data.instances.keys())
-    existing.update(self._config_data.nodes.keys())
+    existing = self._AllIDs(include_temporary=True)
     if exceptions is not None:
       existing.update(exceptions)
     retries = 64