Add option for printing the needed sysprep params
authorNikos Skalkotos <skalkoto@grnet.gr>
Thu, 4 Jul 2013 08:01:14 +0000 (11:01 +0300)
committerNikos Skalkotos <skalkoto@grnet.gr>
Tue, 30 Jul 2013 13:43:59 +0000 (16:43 +0300)
image_creator/main.py
image_creator/os_type/__init__.py

index edee4fe..8fecf1b 100644 (file)
@@ -121,6 +121,10 @@ def parse_options(input_args):
                       "input media", default=[], action="append",
                       metavar="SYSPREP")
 
+    parser.add_option("--print-sysprep-params", dest="print_sysprep_params",
+                      default=False, help="print the needed sysprep parameters"
+                      " for this input media", action="store_true")
+
     parser.add_option("--sysprep-param", dest="sysprep_params", default=[],
                       help="Add KEY=VALUE system preparation parameter",
                       action="append")
@@ -191,9 +195,9 @@ def image_creator():
     options = parse_options(sys.argv[1:])
 
     if options.outfile is None and not options.upload and not \
-            options.print_sysprep:
-        raise FatalError("At least one of `-o', `-u' or `--print-sysprep' "
-                         "must be set")
+            options.print_sysprep and not options.print_sysprep_params:
+        raise FatalError("At least one of `-o', `-u', `--print-sysprep' or "
+                         "`--print-sysprep-params' must be set")
 
     if options.silent:
         out = SilentOutput()
@@ -279,6 +283,10 @@ def image_creator():
             image.os.print_syspreps()
             out.output()
 
+        if options.print_sysprep_params:
+            image.os.print_sysprep_params()
+            out.output()
+
         if options.outfile is None and not options.upload:
             return 0
 
index 8501094..729b749 100644 (file)
@@ -183,6 +183,23 @@ class OSBase(object):
                 descr = wrapper.fill(textwrap.dedent(sysprep.__doc__))
                 self.out.output('    %s:\n%s\n' % (name, descr))
 
+    def print_sysprep_params(self):
+        """Print the system preparation parameter the user may use"""
+
+        self.out.output("Needed system preparation parameters:")
+
+        params = self.needed_sysprep_params()
+
+        if len(params) == 0:
+            self.out.output("(none)")
+            return
+
+        for param in params:
+            self.out.output("\t%s (%s): %s" %
+                            (param.description, param.name,
+                             self.sysprep_params[param.name] if param.name in
+                             self.sysprep_params else "(none)"))
+
     def do_sysprep(self):
         """Prepare system for image creation."""