# ============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
#
# ============LICENSE_END============================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
-
-"""
-resources:
-{vm-type}_server_{vm-type_index}
-"""
import pytest
from .structures import Heat
-from .structures import ContrailV2InstanceIp
+from .structures import ContrailV2InstanceIpProcessor
from .helpers import validates
-VERSION = "1.1.0"
+VERSION = "2.0.0"
def run_test(heat_template, regex_names, network_flavor):
"""run test
"""
heat = Heat(filepath=heat_template)
- heat_object_class = ContrailV2InstanceIp
- resource_type = heat_object_class.resource_type
+ processor = ContrailV2InstanceIpProcessor
+ resource_type = processor.resource_type
resources = heat.get_resource_by_type(resource_type=resource_type)
if not resources:
pytest.skip("No %s resources found" % resource_type)
bad = []
- heat_object = heat_object_class()
- rid_patterns = heat_object.get_rid_patterns()
+ rid_patterns = processor.get_rid_patterns()
for rid, resource in resources.items():
- flavor = heat_object.get_network_flavor(resource)
+ flavor = processor.get_network_flavor(resource)
if flavor != network_flavor:
continue
- regex_name = heat_object.get_rid_match_tuple(rid)[0]
- if regex_name in regex_names:
+
+ regex_name = processor.get_rid_match_tuple(rid)[0]
+ if regex_name and regex_name in regex_names:
continue
bad.append(rid)
assert not bad, "%s resource ids %s must match one of %s" % (
@validates("R-53310", "R-46128")
-def test_contrail_instance_ip_resource_id_external(heat_template):
+def test_contrail_instance_ip_resource_id_external(yaml_file):
"""
A VNF's Heat Orchestration Template's Resource OS::ContrailV2::InstanceIp
that is configuring an IPv4 Address on a port attached to an external
"""
run_test(
- heat_template,
- regex_names=("ip", "v6_ip"),
- network_flavor=ContrailV2InstanceIp.network_flavor_external,
+ yaml_file,
+ regex_names=("external"),
+ network_flavor=ContrailV2InstanceIpProcessor.network_flavor_external,
)
@validates("R-62187", "R-87563")
-def test_contrail_instance_ip_resource_id_internal(heat_template):
+def test_contrail_instance_ip_resource_id_internal(yaml_file):
"""
internal
{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}
_v6_IP_{index}
"""
run_test(
- heat_template,
- regex_names=("int_ip", "int_v6_ip"),
- network_flavor=ContrailV2InstanceIp.network_flavor_internal,
- )
-
-
-@validates("R-20947", "R-88540")
-def test_contrail_instance_ip_resource_id_subint(heat_template):
- """
- subint
- {vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}
- _IP_{index}
- {vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}
- _v6_IP_{index}
- """
- run_test(
- heat_template,
- regex_names=("subint_ip", "subint_v6_ip"),
- network_flavor=ContrailV2InstanceIp.network_flavor_subint,
+ yaml_file,
+ regex_names=("internal"),
+ network_flavor=ContrailV2InstanceIpProcessor.network_flavor_internal,
)