On group verify, only flush to group nodes
authorKlaus Aehlig <aehlig@google.com>
Mon, 8 Feb 2016 10:24:46 +0000 (11:24 +0100)
committerKlaus Aehlig <aehlig@google.com>
Wed, 10 Feb 2016 09:59:08 +0000 (10:59 +0100)
As group verification also verifies that all nodes
in this group have the same understanding of the configuration,
it needs to be flushed at the beginning of the verification.
However, it is enough to flush only to the nodes of that group.
So do this.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Brian Foley <bpfoley@google.com>

lib/cmdlib/cluster/verify.py
lib/config/__init__.py

index 772ea9a..f817705 100644 (file)
@@ -1981,7 +1981,7 @@ class LUClusterVerifyGroup(LogicalUnit, _VerifyErrors):
       feedback_fn("* Gathering information about nodes (%s nodes)" %
                   len(self.my_node_uuids))
       # Force the configuration to be fully distributed before doing any tests
-      self.cfg.FlushConfig()
+      self.cfg.FlushConfigGroup(self.group_uuid)
       # Due to the way our RPC system works, exact response times cannot be
       # guaranteed (e.g. a broken node could run into a timeout). By keeping
       # the time before and after executing the request, we can at least have
index 179e08b..9efc8a4 100644 (file)
@@ -3335,6 +3335,16 @@ class ConfigWriter(object):
     if not self._offline:
       self._wconfd.FlushConfig()
 
+  def FlushConfigGroup(self, uuid):
+    """Force the distribution of configuration to master candidates of a group.
+
+    It is not necessary to hold a lock for this operation, it is handled
+    internally by WConfd.
+
+    """
+    if not self._offline:
+      self._wconfd.FlushConfigGroup(uuid)
+
   @ConfigSync(shared=1)
   def GetAllDiskInfo(self):
     """Get the configuration of all disks.