- If more than one vm_type is detected all vm_types will
be returned
"""
- if not isinstance(resource, dict):
- return set()
- if "type" not in resource:
- return set()
- if resource["type"] != "OS::Nova::Server":
- return set()
- if "properties" not in resource:
+ if not is_nova_server(resource):
return set()
key_values = ["name", "flavor", "image"]
vm_types = []
for k2, v2 in resource["properties"].items():
- if k2 not in key_values:
- continue
- if "get_param" not in v2:
+ if not isinstance(v2, dict) or any(
+ [k2 not in key_values, "get_param" not in v2]
+ ):
continue
formats = [v for v in key_value_formats if v[0] == k2]
for v3 in formats:
return set(vm_types)
+def is_nova_server(resource):
+
+ return (
+ isinstance(resource, dict)
+ and "type" in resource
+ and "properties" in resource
+ and resource.get("type") == "OS::Nova::Server"
+ )
+
+
def get_vm_type_for_nova_server(resource):
"""
Get the vm_type for a resource