X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_nova_servers_resource_ids.py;h=b5c87545e9590051a1f735c664b6d5afeb2ff7a5;hb=48a07b6942d3956666d30947372653feb702fdae;hp=d35fce571e8f19be3c95c0f250826d28d4419154;hpb=f5edc06be0d8bedeb0904b348ba5e3e67c74f186;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_nova_servers_resource_ids.py b/ice_validator/tests/test_nova_servers_resource_ids.py index d35fce5..b5c8754 100644 --- a/ice_validator/tests/test_nova_servers_resource_ids.py +++ b/ice_validator/tests/test_nova_servers_resource_ids.py @@ -2,7 +2,7 @@ # ============LICENSE_START======================================================= # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -37,20 +37,19 @@ # # ECOMP is a trademark and service mark of AT&T Intellectual Property. # - import pytest -import yaml +from tests import cached_yaml as yaml from .helpers import validates from .utils.vm_types import get_vm_type_for_nova_server -@validates("R-01455", "R-48067", "R-00977") -def test_nova_servers_valid_resource_ids(heat_template): +@validates("R-40499", "R-57282") +def test_nova_servers_valid_resource_ids(yaml_file): """ Make sure all nova servers have valid resource ids """ - with open(heat_template) as fh: + with open(yaml_file) as fh: yml = yaml.load(fh) # skip if resources are not defined @@ -68,10 +67,42 @@ def test_nova_servers_valid_resource_ids(heat_template): vm_type = get_vm_type_for_nova_server(v1) if not vm_type: - continue - vm_type = vm_type.lower() - - if vm_type + "_" not in k1.lower(): - invalid_nova_servers.append(k1) + # could not determine vm_type + invalid_nova_servers.append({"resource": k1, "vm_type": "none found"}) + else: + k1_split = k1.split("_server_") + k1_prefix = k1_split[0] + if k1_prefix != vm_type: + # vm_type on server doesn't match + invalid_nova_servers.append({"resource": k1, "vm_type": vm_type}) + else: + if len(k1_split) == 2: + k1_suffix = k1_split[1] + try: + int(k1_suffix) + except ValueError: + # vm_type_index is not an integer + invalid_nova_servers.append( + { + "resource": k1, + "vm_type": vm_type, + "vm_type_index": k1_suffix, + } + ) + else: + # vm_type_index not found + invalid_nova_servers.append( + { + "resource": k1, + "vm_type": vm_type, + "vm_type_index": "none found", + } + ) - assert not set(invalid_nova_servers) + assert not invalid_nova_servers, ( + "Invalid OS::Nova::Server resource ids detected {}. " + "OS::Nova::Server resource ids must be in the form " + "{{vm_type}}_server_{{vm_type_index}} where " + "{{vm_type}} is derived from flavor, image and name properties." + "".format(invalid_nova_servers) + )