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