2 # ============LICENSE_START====================================================
3 # org.onap.vvp/validation-scripts
4 # ===================================================================
5 # Copyright © 2019 AT&T Intellectual Property. All rights reserved.
6 # ===================================================================
8 # Unless otherwise specified, all software contained herein is licensed
9 # under the Apache License, Version 2.0 (the "License");
10 # you may not use this software except in compliance with the License.
11 # You may obtain a copy of the License at
13 # http://www.apache.org/licenses/LICENSE-2.0
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS,
17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 # See the License for the specific language governing permissions and
19 # limitations under the License.
23 # Unless otherwise specified, all documentation contained herein is licensed
24 # under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25 # you may not use this documentation except in compliance with the License.
26 # You may obtain a copy of the License at
28 # https://creativecommons.org/licenses/by/4.0/
30 # Unless required by applicable law or agreed to in writing, documentation
31 # distributed under the License is distributed on an "AS IS" BASIS,
32 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33 # See the License for the specific language governing permissions and
34 # limitations under the License.
36 # ============LICENSE_END============================================
45 from .structures import ContrailV2InterfaceRouteTableProcessor
46 from .structures import ContrailV2NetworkIpamProcessor
47 from .structures import ContrailV2PortTupleProcessor
48 from .structures import ContrailV2ServiceHealthCheckProcessor
49 from .structures import ContrailV2ServiceTemplateProcessor
50 from .utils.network_roles import get_network_roles
51 from .utils.vm_types import get_vm_types
52 from .structures import Heat
53 from .helpers import validates
58 def run_test(heat_template, contrail_class, get_parts, part_name):
62 heat = Heat(filepath=heat_template)
63 if not heat.resources:
64 pytest.skip("No resources found")
65 parts = get_parts(heat.resources)
67 pytest.skip("No %s found" % part_name)
69 contrail_resources = heat.get_resource_by_type(
70 resource_type=contrail_class.resource_type
72 if not contrail_resources:
73 pytest.skip("No %s resources found" % contrail_class.resource_type)
76 for rid in contrail_resources:
77 if not any(heat.part_is_in_name(part, rid) for part in parts):
83 % (contrail_class.resource_type, bad, part_name, list(parts))
87 # pylint: disable=invalid-name
91 def test_contrail_interfaceroutetable_resource_id(yaml_file):
93 A VNF's Heat Orchestration Template's Resource
94 ``OS::ContrailV2::InterfaceRouteTable``
97 contain the ``{network-role}``.
101 ContrailV2InterfaceRouteTableProcessor,
107 @validates("R-30753")
108 def test_contrail_networkipam_resource_id(yaml_file):
110 A VNF's Heat Orchestration Template's Resource
111 ``OS::ContrailV2::NetworkIpam``
114 contain the ``{network-role}``.
117 yaml_file, ContrailV2NetworkIpamProcessor, get_network_roles, "network_role"
121 @validates("R-20065")
122 def test_contrail_porttuple_resource_id(yaml_file):
124 A VNF's Heat Orchestration Template's Resource
125 ``OS::ContrailV2::PortTuple``
128 contain the ``{vm-type}``.
130 run_test(yaml_file, ContrailV2PortTupleProcessor, get_vm_types, "vm_type")
133 @validates("R-76014")
134 def test_contrail_servicehealthcheck_resource_id(yaml_file):
136 A VNF's Heat Orchestration Template's Resource
137 ``OS::ContrailV2::ServiceHealthCheck``
140 contain the ``{vm-type}``.
142 run_test(yaml_file, ContrailV2ServiceHealthCheckProcessor, get_vm_types, "vm_type")
145 @validates("R-16437")
146 def test_contrail_servicetemplate_resource_id(yaml_file):
148 A VNF's Heat Orchestration Template's Resource
149 ``OS::ContrailV2::ServiceTemplate``
152 contain the ``{vm-type}``.
154 run_test(yaml_file, ContrailV2ServiceTemplateProcessor, get_vm_types, "vm_type")