Merge branch 'hotfix-0.4.4' into develop
[snf-image-creator] / image_creator / dialog_wizard.py
index cfce374..0856d8a 100644 (file)
@@ -336,26 +336,32 @@ def start_wizard(session):
 
     # Create Sysprep Params Wizard Page
     needed = image.os.needed_sysprep_params
-    param_names = needed.keys()
+    # Only show the parameters that don't have default values
+    param_names = [param for param in needed if needed[param].default is None]
 
     def sysprep_params_fields():
         fields = []
         available = image.os.sysprep_params
         for name in param_names:
             text = needed[name].description
-            default = available[name] if name in available else ""
+            default = str(available[name]) if name in available else ""
             fields.append(("%s: " % text, default, SYSPREP_PARAM_MAXLEN))
         return fields
 
     def sysprep_params_validate(answer):
         params = {}
         for i in range(len(answer)):
-            if needed[param_names[i]].validator(answer):
-                params[param_names[i]] = answer[i]
-            else:
-                session['dialog'].msgbox("Invalid value for parameter `%s'" %
-                                         param_names[i])
-                raise WizardReloadPage
+            try:
+                value = needed[param_names[i]].type(answer[i])
+                if needed[param_names[i]].validate(value):
+                    params[param_names[i]] = value
+                    continue
+            except ValueError:
+                pass
+
+            session['dialog'].msgbox("Invalid value for parameter `%s'" %
+                                     param_names[i])
+            raise WizardReloadPage
         return params
 
     def sysprep_params_display(params):