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