On Thu, Feb 17, 2011 at 03:38:27PM +0100, Iustin Pop wrote:
> On Thu, Feb 17, 2011 at 03:38:01PM +0100, Michael Hanselmann wrote:
> > Am 17. Februar 2011 14:51 schrieb Iustin Pop <[email protected]>:
> > > Since we don't have the data per design, UNAVAIL is appropriate here,
> > > while NODATA is not.
> > >
> > > The patch also adds a comment: if we extend the live fields list to
> > > contain other data in the future, we need to reevaluate this solution.
> > 
> > Can you please update the unittest for _GetLiveNodeField?
> 
> Oh damn, wanted to do that but forgot. Thanks, will resend.

Interdiff:

diff --git a/test/ganeti.query_unittest.py b/test/ganeti.query_unittest.py
index db66405..69f6a75 100755
--- a/test/ganeti.query_unittest.py
+++ b/test/ganeti.query_unittest.py
@@ -355,7 +355,7 @@ class TestNodeQuery(unittest.TestCase):
                    master_candidate=(name != master_name and idx % 3 == 0),
                    offline=False,
                    drained=False,
-                   vm_capable=False,
+                   vm_capable=True,
                    master_capable=False,
                    ndparams={},
                    group="default",
@@ -468,10 +468,16 @@ class TestNodeQuery(unittest.TestCase):
 
   def testGetLiveNodeField(self):
     nodes = [
-      objects.Node(name="node1", drained=False, offline=False),
-      objects.Node(name="node2", drained=True, offline=False),
-      objects.Node(name="node3", drained=False, offline=False),
-      objects.Node(name="node4", drained=False, offline=True),
+      objects.Node(name="node1", drained=False, offline=False,
+                   vm_capable=True),
+      objects.Node(name="node2", drained=True, offline=False,
+                   vm_capable=True),
+      objects.Node(name="node3", drained=False, offline=False,
+                   vm_capable=True),
+      objects.Node(name="node4", drained=False, offline=True,
+                   vm_capable=True),
+      objects.Node(name="node5", drained=False, offline=False,
+                   vm_capable=False),
       ]
     live_data = dict.fromkeys([node.name for node in nodes], {})
 
@@ -511,6 +517,13 @@ class TestNodeQuery(unittest.TestCase):
     self.assertRaises(AssertionError, query._GetLiveNodeField,
                       "hello", constants.QFT_BOOL, ctx, nodes[0])
 
+    # Non-vm_capable node
+    assert not nodes[4].vm_capable
+    ctx = _QueryData(None, curlive_data={})
+    self.assertEqual(query._GetLiveNodeField("hello", constants.QFT_NUMBER,
+                                             ctx, nodes[4]),
+                     query._FS_UNAVAIL, None)
+
 
 class TestInstanceQuery(unittest.TestCase):
   def _Create(self, selected):

-- 
iustin

Reply via email to