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.
This should fix issue 143. The listing now shows (node2==ofline,
node3==not vm_capable):
Node DTotal DFree MTotal MNode MFree Pinst Sinst
node1 698.6G 630.5G 32.0G 1.0G 30.0G 8 7
node2 (offline) (offline) (offline) (offline) (offline) 9 4
node3 (unavail) (unavail) (unavail) (unavail) (unavail) 0 0
---
lib/query.py | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/lib/query.py b/lib/query.py
index 8d8b667..f83e5c4 100644
--- a/lib/query.py
+++ b/lib/query.py
@@ -487,6 +487,7 @@ _NODE_SIMPLE_FIELDS = {
#: Fields requiring talking to the node
+# Note that none of these are available for non-vm_capable nodes
_NODE_LIVE_FIELDS = {
"bootid": ("BootID", QFT_TEXT, "bootid"),
"cnodes": ("CNodes", QFT_NUMBER, "cpu_nodes"),
@@ -577,6 +578,9 @@ def _GetLiveNodeField(field, kind, ctx, node):
if node.offline:
return _FS_OFFLINE
+ if not node.vm_capable:
+ return _FS_UNAVAIL
+
if not ctx.curlive_data:
return _FS_NODATA
--
1.7.3.1