From 3d7d3a121d9acd09add9078e4e741452d03ca09d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Nussbaumer?= <rn@google.com>
Date: Wed, 12 Sep 2012 14:41:25 +0200
Subject: [PATCH] Make iallocator request types more strict
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This adapts the type of some request input fields to more stricter ones.

Signed-off-by: RenΓ© Nussbaumer <rn@google.com>
Reviewed-by: Michael Hanselmann <hansmi@google.com>
---
 lib/masterd/iallocator.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/masterd/iallocator.py b/lib/masterd/iallocator.py
index 6aedc7c3e..856d22212 100644
--- a/lib/masterd/iallocator.py
+++ b/lib/masterd/iallocator.py
@@ -57,6 +57,8 @@ _NEVAC_FAILED = \
 _NEVAC_RESULT = ht.TAnd(ht.TIsLength(3),
                         ht.TItems([_NEVAC_MOVED, _NEVAC_FAILED, _JOB_LIST]))
 
+_INST_NAME = ("name", ht.TNonEmptyString)
+
 
 class _AutoReqParam(objectutils.AutoSlots):
   """Meta class for request definitions.
@@ -141,9 +143,9 @@ class IAReqInstanceAlloc(IARequestBase):
   # pylint: disable=E1101
   MODE = constants.IALLOCATOR_MODE_ALLOC
   REQ_PARAMS = [
-    ("name", ht.TString),
-    ("memory", ht.TInt),
-    ("spindle_use", ht.TInt),
+    _INST_NAME,
+    ("memory", ht.TPositiveInt),
+    ("spindle_use", ht.TPositiveInt),
     ("disks", ht.TListOf(ht.TDict)),
     ("disk_template", ht.TString),
     ("os", ht.TString),
@@ -230,7 +232,7 @@ class IAReqRelocate(IARequestBase):
   # pylint: disable=E1101
   MODE = constants.IALLOCATOR_MODE_RELOC
   REQ_PARAMS = [
-    ("name", ht.TString),
+    _INST_NAME,
     ("relocate_from", _STRING_LIST),
     ]
   REQ_RESULT = ht.TList
-- 
GitLab