Signed-off-by: Guido Trotter <[email protected]>
---
 lib/bootstrap.py |    9 +++++++++
 lib/cmdlib.py    |    8 ++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/lib/bootstrap.py b/lib/bootstrap.py
index 18db894..1cc4da9 100644
--- a/lib/bootstrap.py
+++ b/lib/bootstrap.py
@@ -137,6 +137,15 @@ def InitCluster(cluster_name, mac_prefix, def_bridge,
   if config.ConfigWriter.IsCluster():
     raise errors.OpPrereqError("Cluster is already initialised")
 
+  if not enabled_hypervisors:
+    raise errors.OpPrereqError("Enabled hypervisors list must contain at"
+                               " least one member")
+  invalid_hvs = [hv_name for hv_name in enabled_hypervisors
+                 if hv_name not in constants.HYPER_TYPES]
+  if invalid_hvs:
+    raise errors.OpPrereqError("Enabled hypervisors contains invalid"
+                               " entries: %s" % invalid_hvs)
+
   hostname = utils.HostInfo()
 
   if hostname.ip.startswith("127."):
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 1c8a6f0..5965f36 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1516,6 +1516,14 @@ class LUSetClusterParams(LogicalUnit):
 
     if self.op.enabled_hypervisors is not None:
       self.hv_list = self.op.enabled_hypervisors
+      if not self.hv_list:
+        raise errors.OpPrereqError("Enabled hypervisors list must contain at"
+                                   " least one member")
+      invalid_hvs = [hv_name for hv_name in self.hv_list
+                     if hv_name not in constants.HYPER_TYPES]
+      if invalid_hvs:
+        raise errors.OpPrereqError("Enabled hypervisors contains invalid"
+                                   " entries: %s" % invalid_hvs)
     else:
       self.hv_list = cluster.enabled_hypervisors
 
-- 
1.5.6.5

Reply via email to