Fix test output splattering
authorRené Nussbaumer <rn@google.com>
Thu, 24 Feb 2011 13:51:13 +0000 (14:51 +0100)
committerRené Nussbaumer <rn@google.com>
Thu, 24 Feb 2011 14:40:37 +0000 (15:40 +0100)
Instead of hardcode to ToStdout in the helper class, we should use
a user provided feedback function. In unittests this is a noop.

Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>

lib/client/gnt_cluster.py
test/ganeti.client.gnt_cluster_unittest.py

index dcd0792..10b2a1b 100644 (file)
@@ -976,7 +976,7 @@ class _RunWhenNodesReachableHelper:
   @ivar success: Indicates if all action_cb calls were successful
 
   """
-  def __init__(self, node_list, action_cb, node2ip, port,
+  def __init__(self, node_list, action_cb, node2ip, port, feedback_fn,
                _ping_fn=netutils.TcpPing, _sleep_fn=time.sleep):
     """Init the object.
 
@@ -985,6 +985,7 @@ class _RunWhenNodesReachableHelper:
     @type node2ip: dict
     @param node2ip: Node to ip mapping
     @param port: The port to use for the TCP ping
+    @param feedback_fn: The function used for feedback
     @param _ping_fn: Function to check reachabilty (for unittest use only)
     @param _sleep_fn: Function to sleep (for unittest use only)
 
@@ -995,6 +996,7 @@ class _RunWhenNodesReachableHelper:
     self.success = True
     self.action_cb = action_cb
     self.port = port
+    self.feedback_fn = feedback_fn
     self._ping_fn = _ping_fn
     self._sleep_fn = _sleep_fn
 
@@ -1022,7 +1024,7 @@ class _RunWhenNodesReachableHelper:
     for node in self.down:
       if self._ping_fn(self.node2ip[node], self.port, timeout=_EPO_PING_TIMEOUT,
                        live_port_needed=True):
-        ToStdout("Node %s became available", node)
+        self.feedback_fn("Node %s became available" % node)
         self.up.add(node)
         self.down -= self.up
         # If we have a node available there is the possibility to run the
@@ -1051,7 +1053,8 @@ def _RunWhenNodesReachable(node_list, action_cb, interval):
                  for node in node_list)
 
   port = netutils.GetDaemonPort(constants.NODED)
-  helper = _RunWhenNodesReachableHelper(node_list, action_cb, node2ip, port)
+  helper = _RunWhenNodesReachableHelper(node_list, action_cb, node2ip, port,
+                                        ToStdout)
 
   try:
     return utils.Retry(helper, interval, _EPO_REACHABLE_TIMEOUT,
index 3a6b051..737d438 100755 (executable)
@@ -48,6 +48,9 @@ class TestEpo(unittest.TestCase):
     self.assert_(secs >= 0 and secs <= 5)
     return
 
+  def _NoopFeedback(self, text):
+    return
+
   def testPingFnRemoveHostsUp(self):
     seen = set()
     def _FakeSeenPing(ip, *args, **kwargs):
@@ -58,7 +61,8 @@ class TestEpo(unittest.TestCase):
 
     helper = gnt_cluster._RunWhenNodesReachableHelper(self.nodes,
                                                       self._FakeAction,
-                                                      self.nodes2ip, port=0,
+                                                      self.nodes2ip, 0,
+                                                      self._NoopFeedback,
                                                       _ping_fn=_FakeSeenPing,
                                                       _sleep_fn=self._FakeSleep)
 
@@ -80,7 +84,8 @@ class TestEpo(unittest.TestCase):
       return called
 
     helper = gnt_cluster._RunWhenNodesReachableHelper(self.nodes, _FalseAction,
-                                                      self.nodes2ip, port=0,
+                                                      self.nodes2ip, 0,
+                                                      self._NoopFeedback,
                                                       _ping_fn=self._FakePing,
                                                       _sleep_fn=self._FakeSleep)
     for _ in self.nodes: