gnt-group info uses a revised format
authorBernardo Dal Seno <bdalseno@google.com>
Thu, 28 Mar 2013 11:45:06 +0000 (12:45 +0100)
committerBernardo Dal Seno <bdalseno@google.com>
Thu, 4 Apr 2013 09:28:25 +0000 (11:28 +0200)
The code is more modular, the output is more similar to "gnt-cluster info"
and is YAML-compliant.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>

lib/client/gnt_group.py

index 8749fcd..2d11618 100644 (file)
@@ -1,7 +1,7 @@
 #
 #
 
-# Copyright (C) 2010, 2011, 2012 Google Inc.
+# Copyright (C) 2010, 2011, 2012, 2013 Google Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -29,7 +29,6 @@ from ganeti import constants
 from ganeti import opcodes
 from ganeti import utils
 from ganeti import compat
-from cStringIO import StringIO
 
 
 #: default list of fields for L{ListGroups}
@@ -283,16 +282,15 @@ def EvacuateGroup(opts, args):
   return rcode
 
 
-def _FormatDict(custom, actual, level=2):
-  """Helper function to L{cli.FormatParameterDict}.
-
-  @param custom: The customized dict
-  @param actual: The fully filled dict
-
-  """
-  buf = StringIO()
-  FormatParameterDict(buf, custom, actual, level=level)
-  return buf.getvalue().rstrip("\n")
+def _FormatGroupInfo(group):
+  (name, ndparams, custom_ndparams, diskparams, custom_diskparams,
+   ipolicy, custom_ipolicy) = group
+  return [
+    ("Node group", name),
+    ("Node parameters", FormatParamsDictInfo(custom_ndparams, ndparams)),
+    ("Disk parameters", FormatParamsDictInfo(custom_diskparams, diskparams)),
+    ("Instance policy", FormatPolicyInfo(custom_ipolicy, ipolicy, False)),
+    ]
 
 
 def GroupInfo(_, args):
@@ -307,17 +305,9 @@ def GroupInfo(_, args):
   result = cl.QueryGroups(names=args, fields=selected_fields,
                           use_locking=False)
 
-  for (name,
-       ndparams, custom_ndparams,
-       diskparams, custom_diskparams,
-       ipolicy, custom_ipolicy) in result:
-    ToStdout("Node group: %s" % name)
-    ToStdout("  Node parameters:")
-    ToStdout(_FormatDict(custom_ndparams, ndparams))
-    ToStdout("  Disk parameters:")
-    ToStdout(_FormatDict(custom_diskparams, diskparams))
-    ToStdout("  Instance policy:")
-    ToStdout(_FormatDict(custom_ipolicy, ipolicy))
+  PrintGenericInfo([
+    _FormatGroupInfo(group) for group in result
+    ])
 
 
 commands = {