From 130f0966bc54dc99eb42b795012d333080b9e8ff Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Wed, 28 Jul 2010 14:26:04 -0400
Subject: [PATCH] RAPI: Add os params to instance creation v1

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                  | 3 ++-
 test/ganeti.rapi.rlib2_unittest.py | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index 0f6ffa0eb..f52829277 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -590,7 +590,8 @@ def _ParseInstanceCreateRequestVersion1(data, dry_run):
   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),
diff --git a/test/ganeti.rapi.rlib2_unittest.py b/test/ganeti.rapi.rlib2_unittest.py
index 4316a6ca9..4e3bc35b7 100755
--- a/test/ganeti.rapi.rlib2_unittest.py
+++ b/test/ganeti.rapi.rlib2_unittest.py
@@ -107,6 +107,7 @@ class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
                   "nics": nics,
                   "mode": mode,
                   "disk_template": disk_template,
+                  "os": "debootstrap",
                   }
 
                 if beparams is not None:
@@ -152,7 +153,8 @@ class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
       "disks": [],
       "nics": [],
       "mode": constants.INSTANCE_CREATE,
-      "disk_template": constants.DT_PLAIN
+      "disk_template": constants.DT_PLAIN,
+      "os": "debootstrap",
       }
 
     for name in reqfields.keys():
-- 
GitLab