X-Git-Url: https://gerrit.onap.org/r/gitweb?p=vvp%2Fvalidation-scripts.git;a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_nova_servers_resource_ids.py;h=dd3e156254a654c12389f9e70f37718954ca2fc7;hp=d35fce571e8f19be3c95c0f250826d28d4419154;hb=60d5ad7d00eadd6395eca186e6fa76a43df3c6cf;hpb=31d5da59b39d38760cc519a2c5e5b70357b539e8 diff --git a/ice_validator/tests/test_nova_servers_resource_ids.py b/ice_validator/tests/test_nova_servers_resource_ids.py index d35fce5..dd3e156 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 @@ -39,18 +39,20 @@ # 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 +70,29 @@ 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 {}\n" \ + "OS::Nova::Server resource ids must be in the form " \ + "_server_ \n" \ + " is derived from flavor, image and name properties " \ + "".format(invalid_nova_servers)