RAPI: Add os params to instance creation v1
authorIustin Pop <iustin@google.com>
Wed, 28 Jul 2010 18:26:04 +0000 (14:26 -0400)
committerIustin Pop <iustin@google.com>
Wed, 28 Jul 2010 20:27:34 +0000 (16:27 -0400)
Since the RAPI QA suite doesn't seem to offer easy testing of failed
creations, I didn't add this to the QA. Pointers on how to do it are
welcome.

The patch also changes the 'os' argument to be required, since that is
how the LU expects it, and without it we just fail later instead of
directly at submission time.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

lib/rapi/rlib2.py
test/ganeti.rapi.rlib2_unittest.py

index 0f6ffa0..f528292 100644 (file)
@@ -590,7 +590,8 @@ def _ParseInstanceCreateRequestVersion1(data, dry_run):
   return opcodes.OpCreateInstance(
     mode=baserlib.CheckParameter(data, "mode"),
     instance_name=baserlib.CheckParameter(data, "name"),
   return opcodes.OpCreateInstance(
     mode=baserlib.CheckParameter(data, "mode"),
     instance_name=baserlib.CheckParameter(data, "name"),
-    os_type=baserlib.CheckParameter(data, "os", default=None),
+    os_type=baserlib.CheckParameter(data, "os"),
+    osparams=baserlib.CheckParameter(data, "osparams", default={}),
     force_variant=baserlib.CheckParameter(data, "force_variant",
                                           default=False),
     pnode=baserlib.CheckParameter(data, "pnode", default=None),
     force_variant=baserlib.CheckParameter(data, "force_variant",
                                           default=False),
     pnode=baserlib.CheckParameter(data, "pnode", default=None),
index 4316a6c..4e3bc35 100755 (executable)
@@ -107,6 +107,7 @@ class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
                   "nics": nics,
                   "mode": mode,
                   "disk_template": disk_template,
                   "nics": nics,
                   "mode": mode,
                   "disk_template": disk_template,
+                  "os": "debootstrap",
                   }
 
                 if beparams is not None:
                   }
 
                 if beparams is not None:
@@ -152,7 +153,8 @@ class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
       "disks": [],
       "nics": [],
       "mode": constants.INSTANCE_CREATE,
       "disks": [],
       "nics": [],
       "mode": constants.INSTANCE_CREATE,
-      "disk_template": constants.DT_PLAIN
+      "disk_template": constants.DT_PLAIN,
+      "os": "debootstrap",
       }
 
     for name in reqfields.keys():
       }
 
     for name in reqfields.keys():