Add support for sysprep-parameters
[snf-image-creator] / image_creator / main.py
index bff95d9..edee4fe 100644 (file)
@@ -121,6 +121,10 @@ def parse_options(input_args):
                       "input media", default=[], action="append",
                       metavar="SYSPREP")
 
+    parser.add_option("--sysprep-param", dest="sysprep_params", default=[],
+                      help="Add KEY=VALUE system preparation parameter",
+                      action="append")
+
     parser.add_option("--no-sysprep", dest="sysprep", default=True,
                       help="don't perform any system preparation operation",
                       action="store_false")
@@ -170,6 +174,16 @@ def parse_options(input_args):
         meta[key] = value
     options.metadata = meta
 
+    sysprep_params = {}
+    for p in options.sysprep_params:
+        try:
+            key, value = p.split('=', 1)
+        except ValueError:
+            raise FatalError("Sysprep parameter optiont: `%s' is not in "
+                             "KEY=VALUE format." % p)
+        sysprep_params[key] = value
+    options.sysprep_params = sysprep_params
+
     return options
 
 
@@ -253,7 +267,7 @@ def image_creator():
     try:
         snapshot = disk.snapshot()
 
-        image = disk.get_image(snapshot)
+        image = disk.get_image(snapshot, sysprep_params=options.sysprep_params)
 
         for sysprep in options.disabled_syspreps:
             image.os.disable_sysprep(image.os.get_sysprep_by_name(sysprep))