From 5d55819e668a5a8028e9d776e81a197e9a1fad83 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sun, 14 Mar 2010 16:38:55 +0100 Subject: [PATCH] Abstract disk template verification This is a simple check, but we'll need it in multiple places. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/cmdlib.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index f32b61dee..096c7b8db 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -542,6 +542,16 @@ def _CheckNodeNotDrained(lu, node): errors.ECODE_INVAL) +def _CheckDiskTemplate(template): + """Ensure a given disk template is valid. + + """ + if template not in constants.DISK_TEMPLATES: + msg = ("Invalid disk template name '%s', valid templates are: %s" % + (template, utils.CommaJoin(constants.DISK_TEMPLATES))) + raise errors.OpPrereqError(msg, errors.ECODE_INVAL) + + def _ExpandItemName(fn, name, kind): """Expand an item name. @@ -5845,9 +5855,7 @@ class LUCreateInstance(LogicalUnit): self.op.mode, errors.ECODE_INVAL) # disk template and mirror node verification - if self.op.disk_template not in constants.DISK_TEMPLATES: - raise errors.OpPrereqError("Invalid disk template name", - errors.ECODE_INVAL) + _CheckDiskTemplate(self.op.disk_template) if self.op.hypervisor is None: self.op.hypervisor = self.cfg.GetHypervisorType() -- GitLab