diff --git a/lib/config.py b/lib/config.py index 58f66576414c7f1c3e5743815b6bb62945f2e7e7..050cdacef2d913288ed1f49e947d8e69cbb52283 100644 --- a/lib/config.py +++ b/lib/config.py @@ -577,13 +577,21 @@ class ConfigWriter: invalid_hvs = set(cluster.enabled_hypervisors) - constants.HYPER_TYPES if invalid_hvs: result.append("enabled hypervisors contains invalid entries: %s" % - invalid_hvs) + utils.CommaJoin(invalid_hvs)) missing_hvp = (set(cluster.enabled_hypervisors) - set(cluster.hvparams.keys())) if missing_hvp: result.append("hypervisor parameters missing for the enabled" " hypervisor(s) %s" % utils.CommaJoin(missing_hvp)) + if not cluster.enabled_disk_templates: + result.append("enabled disk templates list doesn't have any entries") + invalid_disk_templates = set(cluster.enabled_disk_templates) \ + - constants.DISK_TEMPLATES + if invalid_disk_templates: + result.append("enabled disk templates list contains invalid entries:" + " %s" % utils.CommaJoin(invalid_disk_templates)) + if cluster.master_node not in data.nodes: result.append("cluster has invalid primary node '%s'" % cluster.master_node) @@ -663,6 +671,11 @@ class ConfigWriter: filled, constants.NICS_PARAMETER_TYPES) _helper_nic(owner, filled) + # disk template checks + if not instance.disk_template in data.cluster.enabled_disk_templates: + result.append("instance '%s' uses the disabled disk template '%s'." % + (instance_name, instance.disk_template)) + # parameter checks if instance.beparams: _helper("instance %s" % instance.name, "beparams",