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=76e5f180aa8fd781f7046e986b10594a1a2c1097;hb=503041fb7ec395fe57e418d584c4a5d06f4c9877;hp=d4fdb36758e3ac40ca036f7146e464eee42e1a23;hpb=6985dd5e75118aed4ff07c88de11c8c9cd5c72cb;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 d4fdb36..76e5f18 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 @@ -1,12 +1,12 @@ # -*- coding: utf8 -*- -# ============LICENSE_START======================================================= +# ============LICENSE_START==================================================== # org.onap.vvp/validation-scripts # =================================================================== # Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); +# under the Apache License, Version 2.0 (the "License"); # you may not use this software except in compliance with the License. # You may obtain a copy of the License at # @@ -21,7 +21,7 @@ # # # Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); # you may not use this documentation except in compliance with the License. # You may obtain a copy of the License at # @@ -35,31 +35,59 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # +import re + from .helpers import validates +from .utils.ports import check_parameter_format +from tests.structures import NeutronPortProcessor + +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$" +) -import pytest -import yaml -from .utils.ports import get_invalid_ip_addresses +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') -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-41492", "R-35735", "R-159016") +def test_external_aap_format(yaml_file): + check_parameter_format( + yaml_file, aap_regx_dict, "external", NeutronPortProcessor, "allowed_address_pairs", "ip_address" + ) - invalid_ip_addresses = get_invalid_ip_addresses(yml['resources'], - "allowed_address_pairs") - assert not set(invalid_ip_addresses) +@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" + )