2 # ============LICENSE_START====================================================
3 # org.onap.vvp/validation-scripts
4 # ===================================================================
5 # Copyright © 2017 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============================================
38 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
46 from .structures import ContrailV2InterfaceRouteTable
47 from .structures import ContrailV2NetworkIpam
48 from .structures import ContrailV2PortTuple
49 from .structures import ContrailV2ServiceHealthCheck
50 from .structures import ContrailV2ServiceTemplate
51 from .utils.network_roles import get_network_roles
52 from .utils.vm_types import get_vm_types
53 from .structures import Heat
54 from .helpers import validates
59 def run_test(heat_template, contrail_class, get_parts, part_name):
63 heat = Heat(filepath=heat_template)
64 if not heat.resources:
65 pytest.skip("No resources found")
66 parts = get_parts(heat.resources)
68 pytest.skip("No %s found" % part_name)
70 contrail_resources = heat.get_resource_by_type(
71 resource_type=contrail_class.resource_type
73 if not contrail_resources:
74 pytest.skip("No %s resources found" % contrail_class.resource_type)
77 for rid in contrail_resources:
78 if not any(heat.part_is_in_name(part, rid) for part in parts):
84 % (contrail_class.resource_type, bad, part_name, list(parts))
88 # pylint: disable=invalid-name
92 def test_contrail_interfaceroutetable_resource_id(heat_template):
94 A VNF's Heat Orchestration Template's Resource
95 ``OS::ContrailV2::InterfaceRouteTable``
98 contain the ``{network-role}``.
101 heat_template, ContrailV2InterfaceRouteTable, get_network_roles, "network_role"
105 @validates("R-30753")
106 def test_contrail_networkipam_resource_id(heat_template):
108 A VNF's Heat Orchestration Template's Resource
109 ``OS::ContrailV2::NetworkIpam``
112 contain the ``{network-role}``.
114 run_test(heat_template, ContrailV2NetworkIpam, get_network_roles, "network_role")
117 @validates("R-20065")
118 def test_contrail_porttuple_resource_id(heat_template):
120 A VNF's Heat Orchestration Template's Resource
121 ``OS::ContrailV2::PortTuple``
124 contain the ``{vm-type}``.
126 run_test(heat_template, ContrailV2PortTuple, get_vm_types, "vm_type")
129 @validates("R-76014")
130 def test_contrail_servicehealthcheck_resource_id(heat_template):
132 A VNF's Heat Orchestration Template's Resource
133 ``OS::ContrailV2::ServiceHealthCheck``
136 contain the ``{vm-type}``.
138 run_test(heat_template, ContrailV2ServiceHealthCheck, get_vm_types, "vm_type")
141 @validates("R-16437")
142 def test_contrail_servicetemplate_resource_id(heat_template):
144 A VNF's Heat Orchestration Template's Resource
145 ``OS::ContrailV2::ServiceTemplate``
148 contain the ``{vm-type}``.
150 run_test(heat_template, ContrailV2ServiceTemplate, get_vm_types, "vm_type")