List node parameters in gnt-group list
authorRené Nussbaumer <rn@google.com>
Wed, 12 Jan 2011 09:50:17 +0000 (10:50 +0100)
committerRené Nussbaumer <rn@google.com>
Thu, 13 Jan 2011 12:09:02 +0000 (13:09 +0100)
Signed-off-by: René Nussbaumer <rn@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
Reviewed-by: Adeodato Simo <dato@google.com>

lib/client/gnt_group.py
lib/query.py

index 9b14c25..063928f 100644 (file)
@@ -31,7 +31,7 @@ from ganeti import utils
 
 
 #: default list of fields for L{ListGroups}
-_LIST_DEF_FIELDS = ["name", "node_cnt", "pinst_cnt", "alloc_policy"]
+_LIST_DEF_FIELDS = ["name", "node_cnt", "pinst_cnt", "alloc_policy", "ndparams"]
 
 
 def AddGroup(opts, args):
@@ -68,6 +68,20 @@ def AssignNodes(opts, args):
   SubmitOpCode(op, opts=opts)
 
 
+def _FmtDict(data):
+  """Format dict data into command-line format.
+
+  @param data: The input dict to be formatted
+  @return: The formatted dict
+
+  """
+  if not data:
+    return "(empty)"
+
+  return utils.CommaJoin(["%s=%s" % (key, value)
+                          for key, value in data.items()])
+
+
 def ListGroups(opts, args):
   """List node groups and their properties.
 
@@ -79,7 +93,11 @@ def ListGroups(opts, args):
 
   """
   desired_fields = ParseFields(opts.output, _LIST_DEF_FIELDS)
-  fmtoverride = dict.fromkeys(["node_list", "pinst_list"], (",".join, False))
+  fmtoverride = {
+    "node_list": (",".join, False),
+    "pinst_list": (",".join, False),
+    "ndparams": (_FmtDict, False),
+    }
 
   return GenericList(constants.QR_GROUP, desired_fields, args, None,
                      opts.separator, not opts.no_headers,
index 25263ce..21caea6 100644 (file)
@@ -1157,6 +1157,7 @@ _GROUP_SIMPLE_FIELDS = {
   "name": ("Group", constants.QFT_TEXT),
   "serial_no": ("SerialNo", constants.QFT_NUMBER),
   "uuid": ("UUID", constants.QFT_TEXT),
+  "ndparams": ("NDParams", constants.QFT_OTHER),
   }