From 1f4df7c7ad27b23773ad9cdbe4db1632ce388cf1 Mon Sep 17 00:00:00 2001 From: "stark, steven" Date: Mon, 17 Dec 2018 12:43:02 -0800 Subject: [VVP] updating validation scripts in dublin - adding backlog of new validation scripts for dublin - updating existing tests - removing outdated tests Issue-ID: VVP-123 Change-Id: Ib8260889ac957c1dd28d8ede450fc8edc6fb0ec0 Signed-off-by: stark, steven --- .../tests/test_servers_have_required_metadata.py | 30 ++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'ice_validator/tests/test_servers_have_required_metadata.py') diff --git a/ice_validator/tests/test_servers_have_required_metadata.py b/ice_validator/tests/test_servers_have_required_metadata.py index 3e84d43..8ea8869 100644 --- a/ice_validator/tests/test_servers_have_required_metadata.py +++ b/ice_validator/tests/test_servers_have_required_metadata.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 @@ -44,12 +44,12 @@ from tests import cached_yaml as yaml from .helpers import validates -@validates('R-37437', 'R-71493', 'R-72483') +@validates("R-37437", "R-71493", "R-72483") def test_servers_have_required_metadata(yaml_file): - ''' + """ Check all defined nova server instances have the required metadata: vnf_id and vf_module_id - ''' + """ with open(yaml_file) as fh: yml = yaml.load(fh) @@ -57,20 +57,24 @@ def test_servers_have_required_metadata(yaml_file): if "resources" not in yml: pytest.skip("No resources specified in the heat template") - required_metadata = ["vnf_id", "vf_module_id", "vnf_name"] + required_metadata = {"vnf_id", "vf_module_id", "vnf_name"} - invalid_nova_servers = [] + errors = [] for k, v in yml["resources"].items(): if v.get("type") != "OS::Nova::Server": continue - if 'properties' not in v: + if "properties" not in v: continue - if 'metadata' not in v['properties']: + if "metadata" not in v["properties"]: continue - # do not add the server if it has the required metadata - if set(required_metadata) <= set(v["properties"]["metadata"].keys()): - continue - invalid_nova_servers.append(k) + metadata = set(v.get("properties", {}).get("metadata", {}).keys()) + missing_metadata = required_metadata.difference(metadata) + if missing_metadata: + msg_template = ( + "OS::Nova::Server {} is missing the following " + + "metadata properties: {}" + ) + errors.append(msg_template.format(k, missing_metadata)) - assert not set(invalid_nova_servers) + assert not errors, "\n".join(errors) -- cgit 1.2.3-korg