On Tue, Jun 22, 2010 at 06:30:06PM +0200, Iustin Pop wrote:
> On Tue, Jun 22, 2010 at 04:10:28PM +0200, Guido Trotter wrote:
> > On Wed, Jun 16, 2010 at 5:21 AM, Iustin Pop <[email protected]> wrote:
> > > +    for key in sorted(instance["os_actual"]):
> > > +      if key in instance["os_instance"]:
> > > +        val = instance["os_instance"][key]
> > > +      else:
> > > +        val = "default (%s)" % instance["os_actual"][key]
> > > +      buf.write("    - %s: %s\n" % (key, val))
> > 
> > This code is quite a lot similar (almost the same) to the one for
> > printing hv params.
> > How about we collapse it (and perhaps we could use the same for
> > beparams too, we'd lose capitalization, but keep the output the same
> > as the input, and avoid changes if we ever add a be param).
> 
> Yeah, I was thinking something like that. Let me see what I can do.

OK, +the list this time :)

Interdiff:

diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 3b6768c..a90a80d 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -1111,6 +1111,19 @@ def _FormatList(buf, data, indent_level):
       _FormatList(buf, elem, indent_level+1)
 
 
+def _FormatParameterDict(per_inst, actual):
+  """Formats a parameter dictionary.
+
+  @type per_inst: dict
+  @param per_inst: the instance's own parameters
+  @type actual: dict
+  @param actual: the current parameter set (including defaults)
+
+  """
+  for key in sorted(actual):
+    val = per_inst.get(key, "default (%s)" % actual[key])
+    buf.write("    - %s: %s\n" % (key, val))
+
 def ShowInstanceConfig(opts, args):
   """Compute instance run-time status.
 
@@ -1159,12 +1172,7 @@ def ShowInstanceConfig(opts, args):
     buf.write("    - primary: %s\n" % instance["pnode"])
     buf.write("    - secondaries: %s\n" % utils.CommaJoin(instance["snodes"]))
     buf.write("  Operating system: %s\n" % instance["os"])
-    for key in sorted(instance["os_actual"]):
-      if key in instance["os_instance"]:
-        val = instance["os_instance"][key]
-      else:
-        val = "default (%s)" % instance["os_actual"][key]
-      buf.write("    - %s: %s\n" % (key, val))
+    _FormatParameterDict(instance["os_instance"], instance["os_actual"])
     if instance.has_key("network_port"):
       buf.write("  Allocated network port: %s\n" %
                 compat.TryToRoman(instance["network_port"],
@@ -1191,12 +1199,7 @@ def ShowInstanceConfig(opts, args):
                                       vnc_bind_address)
       buf.write("    - console connection: vnc to %s\n" % vnc_console_port)
 
-    for key in sorted(instance["hv_actual"]):
-      if key in instance["hv_instance"]:
-        val = instance["hv_instance"][key]
-      else:
-        val = "default (%s)" % instance["hv_actual"][key]
-      buf.write("    - %s: %s\n" % (key, val))
+    _FormatParameterDict(instance["hv_instance"], instance["hv_actual"])
     buf.write("  Hardware:\n")
     buf.write("    - VCPUs: %s\n" %
               compat.TryToRoman(instance["be_actual"][constants.BE_VCPUS],

-- 
iustin

Reply via email to