X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_allowed_address_pairs_include_vm_type_network_role.py;h=6b3c63cea93731b83d3cbbef265aa072580637a9;hb=5ff7ed0cf3ac9e8110579ee4f0f711e30fb2511e;hp=0d4bbdfd59efce52f64ae252418ce58a776a2287;hpb=31d5da59b39d38760cc519a2c5e5b70357b539e8;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_allowed_address_pairs_include_vm_type_network_role.py b/ice_validator/tests/test_allowed_address_pairs_include_vm_type_network_role.py index 0d4bbdf..6b3c63c 100644 --- a/ice_validator/tests/test_allowed_address_pairs_include_vm_type_network_role.py +++ b/ice_validator/tests/test_allowed_address_pairs_include_vm_type_network_role.py @@ -2,7 +2,7 @@ # ============LICENSE_START==================================================== # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# Copyright © 2019 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -35,48 +35,102 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # - -''' -test_allowed_address_pairs_include_vm_type_network_role -''' - -import pytest -from tests import cached_yaml as yaml +import re from .helpers import validates -from .utils.ports import get_invalid_ip_addresses +from .utils.ports import check_parameter_format +from tests.structures import ( + NeutronPortProcessor, + ContrailV2VirtualMachineInterfaceProcessor, +) -VERSION = '1.0.0' +VERSION = "1.0.0" # pylint: disable=invalid-name +RE_EXTERNAL_PARAM_AAP = re.compile( # match pattern + r"(?P.+)_(?P.+)_floating(_v6)?_ip$" +) + +RE_INTERNAL_PARAM_AAP = re.compile( # match pattern + r"(?P.+)_int_(?P.+)_floating(_v6)?_ip$" +) + +RE_INTERNAL_PARAM_AAPS = re.compile( # match pattern + r"(?P.+)_int_(?P.+)_floating(_v6)?_ips$" +) + +aap_regx_dict = { + "external": { + "string": { + "readable": "{vm-type}_{network-role}_floating_ip or {vm-type}_{network-role}_floating_v6_ip", + "machine": RE_EXTERNAL_PARAM_AAP, + } + }, + "internal": { + "string": { + "readable": "{vm-type}_int_{network-role}_floating_ip or {vm-type}_int_{network-role}_floating_v6_ip", + "machine": RE_INTERNAL_PARAM_AAP, + }, + "comma_delimited_list": { + "readable": "{vm-type}_int_{network-role}_floating_ips or {vm-type}_int_{network-role}_floating_v6_ips", + "machine": RE_INTERNAL_PARAM_AAPS, + }, + }, + "parameter_to_resource_comparisons": ["vm_type", "network_role"], +} + + +@validates("R-41492", "R-35735", "R-159016", "R-91810", "R-41956", "R-41493") +def test_external_aap_format(yaml_file): + check_parameter_format( + yaml_file, + aap_regx_dict, + "external", + NeutronPortProcessor, + "allowed_address_pairs", + "ip_address", + exemptions_allowed=True, + ) -@validates('R-41492', - 'R-35735', - 'R-98748') -def test_allowed_address_pairs_include_vm_type_network_role(heat_template): - ''' - Check that all allowed_address_pairs include the {vm_type} of the - nova server it is associated to and also contains the - {network_role} of the network it is associated with - ''' - with open(heat_template) as fh: - yml = yaml.load(fh) - # skip if resources are not defined - if "resources" not in yml: - pytest.skip("No resources specified in the heat template") +@validates("R-717227", "R-805572") +def test_internal_aap_format(yaml_file): + check_parameter_format( + yaml_file, + aap_regx_dict, + "internal", + NeutronPortProcessor, + "allowed_address_pairs", + "ip_address", + ) - if "parameters" not in yml: - pytest.skip("No parameters specified in the heat template") - invalid_ip_addresses = get_invalid_ip_addresses(yml['resources'], - "allowed_address_pairs", - yml["parameters"]) +@validates("R-100280", "R-100290", "R-100310", "R-100330", "R-100350", "R-41493") +def test_external_aap_format_contrail(yaml_file): + check_parameter_format( + yaml_file, + aap_regx_dict, + "external", + ContrailV2VirtualMachineInterfaceProcessor, + "virtual_machine_interface_allowed_address_pairs", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix", + exemptions_allowed=True, + ) - assert not set(invalid_ip_addresses), ( - 'invalid ip addresses allowed address pairs %s' % list( - set(invalid_ip_addresses))) +@validates("R-100360", "R-100370") +def test_contrail_internal_vmi_aap_parameter(yaml_file): + check_parameter_format( + yaml_file, + aap_regx_dict, + "internal", + ContrailV2VirtualMachineInterfaceProcessor, + "virtual_machine_interface_allowed_address_pairs", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip", + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix", + )