aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ice_validator/heat_requirements.json603
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml50
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml59
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/level0.yaml (renamed from ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_0.yaml)3
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/level1.yaml (renamed from ice_validator/tests/fixtures/test_nesting_level/fail/bad-level1.yaml)8
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/level2.yaml (renamed from ice_validator/tests/fixtures/test_nesting_level/fail/bad-level2.yaml)4
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/fail/level3.yaml (renamed from ice_validator/tests/fixtures/test_nesting_level/pass/level3.yaml)0
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml6
-rw-r--r--ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml17
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml49
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml64
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml59
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml63
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml59
-rw-r--r--ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml62
-rw-r--r--ice_validator/tests/structures.py33
-rw-r--r--ice_validator/tests/test_environment_file_parameters.py15
-rw-r--r--ice_validator/tests/test_nesting_level.py45
-rw-r--r--ice_validator/tests/test_nesting_nova_server.py98
-rw-r--r--ice_validator/tests/utils/nested_files.py83
20 files changed, 416 insertions, 964 deletions
diff --git a/ice_validator/heat_requirements.json b/ice_validator/heat_requirements.json
index 35d97c4..cfec775 100644
--- a/ice_validator/heat_requirements.json
+++ b/ice_validator/heat_requirements.json
@@ -1,5 +1,5 @@
{
- "created": "2019-12-03T06:33:16.165894",
+ "created": "2020-01-11T06:35:28.164506",
"current_version": "el alto",
"project": "",
"versions": {
@@ -73163,7 +73163,7 @@
"needs_amount": 813
},
"el alto": {
- "created": "2019-12-03T06:33:16.165821",
+ "created": "2020-01-11T06:35:28.164432",
"filters": {},
"filters_amount": 0,
"needs": {
@@ -73346,7 +73346,7 @@
"validation_mode": ""
},
"R-00606": {
- "description": "A VNF **MAY** be connected to zero, one or more than one external\nnetwork.",
+ "description": "A VNF **MAY** be connected to zero, one or more than one ONAP external\nnetwork.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -73376,7 +73376,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -73487,7 +73487,7 @@
"validation_mode": ""
},
"R-01123": {
- "description": "The VNF or PNF package Manifest file **MUST** contain: VNF or PNF\npackage meta-data, a list of all artifacts (both internal and\nexternal) entry's including their respected URI's, as specified\nin ETSI GS NFV-SOL 004",
+ "description": "The VNF or PNF CSAR package Manifest file **MUST** contain: VNF or PNF\npackage meta-data, a list of all artifacts (both internal and\nexternal) entry's including their respected URI's, as specified\nin ETSI GS NFV-SOL 004",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -73502,14 +73502,14 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF or PNF",
+ "target": "VNF or PNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -73517,7 +73517,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "el alto",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -73806,7 +73806,7 @@
"validation_mode": "none"
},
"R-02164": {
- "description": "When a VNF's Heat Orchestration Template's Contrail resource\nhas a property that\nreferences an external network that requires the network's\nFully Qualified Domain Name (FQDN), the property parameter\n\n* **MUST** follow the format ``{network-role}_net_fqdn``\n* **MUST** be declared as type ``string``\n* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's\n Environment File",
+ "description": "When a VNF's Heat Orchestration Template's Contrail resource\nhas a property that\nreferences an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nthat requires the network's\nFully Qualified Domain Name (FQDN), the property parameter\n\n* **MUST** follow the format ``{network-role}_net_fqdn``\n* **MUST** be declared as type ``string``\n* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's\n Environment File",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -73821,9 +73821,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"Contrail Network Parameters",
"Contrail Resource Parameters"
],
@@ -73837,7 +73837,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -74304,7 +74304,7 @@
"validation_mode": ""
},
"R-03595": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one external network Resource ID\n**SHOULD** use the naming convention\n\n* ``{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nthe ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP external network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -74335,7 +74335,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -74554,7 +74554,7 @@
"validation_mode": ""
},
"R-04697": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the external\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP external\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -74584,7 +74584,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -74744,9 +74744,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -75264,7 +75264,7 @@
"validation_mode": ""
},
"R-08775": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and more than one network (internal\nand/or external) Resource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and more than one network\n(ONAP internal network\nand/or ONAP external network), the ``OS::Neutron::SecurityGroup``\nResource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -75295,7 +75295,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -75441,7 +75441,7 @@
"validation_mode": "static"
},
"R-100010": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75472,7 +75472,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75513,7 +75513,7 @@
"validation_mode": "static"
},
"R-100030": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the external\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_ips``\n\n where\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP external\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75544,7 +75544,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75585,7 +75585,7 @@
"validation_mode": "static"
},
"R-100050": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network\n(per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network\n(per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75616,7 +75616,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75657,7 +75657,7 @@
"validation_mode": "static"
},
"R-100070": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP external\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75688,7 +75688,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75729,7 +75729,7 @@
"validation_mode": "static"
},
"R-100090": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75760,7 +75760,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75801,7 +75801,7 @@
"validation_mode": "static"
},
"R-100110": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75832,7 +75832,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75873,7 +75873,7 @@
"validation_mode": "static"
},
"R-100130": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75904,7 +75904,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -75945,7 +75945,7 @@
"validation_mode": "static"
},
"R-100150": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` is assigning an IP address to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``instance_ip_address``\nand the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -75976,7 +75976,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76017,7 +76017,7 @@
"validation_mode": "static"
},
"R-100170": {
- "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.",
+ "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an ONAP external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76048,12 +76048,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100180": {
- "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.",
+ "description": "The VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp``\nproperty ``instance_ip_address``\nparameter associated with an ONAP internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76084,7 +76084,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76125,7 +76125,7 @@
"validation_mode": "static"
},
"R-100200": {
- "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv4 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.",
+ "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv4 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76156,7 +76156,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76197,7 +76197,7 @@
"validation_mode": "static"
},
"R-100220": {
- "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv6 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.",
+ "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::ContrailV2::InstanceIp`` is assigning an IP address\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv6 subnet is to be specified\nusing the property ``subnet_uuid``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76228,7 +76228,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76269,7 +76269,7 @@
"validation_mode": "static"
},
"R-100240": {
- "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n assigning an IP address\n to an internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
+ "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n assigning an IP address\n to an ONAP internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the ONAP internal network IPv4 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76300,7 +76300,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76341,7 +76341,7 @@
"validation_mode": "static"
},
"R-100260": {
- "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n attaching\n to an internal network (per the ONAP definition,\n see Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv6 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n``int_{network-role}_v6_subnet_id``,\nwhere ``{network-role}`` is the network role of the internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
+ "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::ContrailV2::InstanceIp`` in an Incremental Module is\n attaching\n to an ONAP internal network (per the ONAP definition,\n see Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the ONAP internal network IPv6 subnet is to be specified\n using the property ``subnet_uuid``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_v6_subnet_id``\n\nwhere ``{network-role}`` is the network role of the ONAP internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76372,7 +76372,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76413,7 +76413,7 @@
"validation_mode": "static"
},
"R-100280": {
- "description": "If a VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface``\nis attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\nmap property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.",
+ "description": "If a VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface``\nis attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\nmap property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76428,9 +76428,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76444,12 +76444,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100310": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an external\nnetwork (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv4 VIP address.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP external\nnetwork (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv4 VIP address.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76464,9 +76464,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76480,12 +76480,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100330": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an external\nnetwork (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv6 VIP address.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an ONAP\nexternal\nnetwork (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 Virtual IP (VIP)\nis required to be supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nThe ONAP data model can only support one IPv6 VIP address.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76500,9 +76500,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76516,12 +76516,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100350": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nexternal network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::ContrailV2::VirtualMachineInterface`` resource\n**MUST** contain resource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameters **not** supported by the ONAP data model.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n ``comma_delimited_list``.\n\nAnd the ``OS::ContrailV2::VirtualMachineInterface`` resource\n**MUST** contain resource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all map property\n\n``virtual_machine_interface_allowed_address_pairs``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip``,\n\n``virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n\nparameters **not** supported by the ONAP data model.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76536,9 +76536,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76552,12 +76552,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100360": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76572,9 +76572,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "Internal Networks",
+ "section_name": "ONAP Internal Networks",
"sections": [
- "Internal Networks",
+ "ONAP Internal Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76588,12 +76588,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-100370": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\ninternal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` is attaching to an\nONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the map property,\n``virtual_machine_interface_allowed_address_pairs,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip,\nvirtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix``\n, the parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters",
"full_title": "",
"hide_links": "",
@@ -76608,9 +76608,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "Internal Networks",
+ "section_name": "ONAP Internal Networks",
"sections": [
- "Internal Networks",
+ "ONAP Internal Networks",
"OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allowed_address_pairs",
"Contrail Resource Parameters"
],
@@ -76624,7 +76624,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -76749,9 +76749,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -77025,7 +77025,7 @@
"validation_mode": "static"
},
"R-11168": {
- "description": "A VNF's Heat Orchestration Template's Resource ID that is associated with\nan external network **MUST** include the ``{network-role}`` as part\nof the resource ID.",
+ "description": "A VNF's Heat Orchestration Template's Resource ID that is associated with\nan ONAP external network **MUST** include the ``{network-role}`` as part\nof the resource ID.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}",
"full_title": "",
"hide_links": "",
@@ -77054,7 +77054,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -77980,7 +77980,7 @@
"validation_mode": ""
},
"R-14198": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to one {vm-type} and one internal network Resource ID **SHOULD**\nuse the naming convention\n\n* ``{vm-type}_int_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to one {vm-type} and one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and\nR-35666), the\n``OS::Neutron::SecurityGroup`` Resource ID **SHOULD**\nuse the naming convention\n\n* ``{vm-type}_int_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP internal network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -78011,12 +78011,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
"R-14447": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RST_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``RST`` signifies that it is the Resource Service Template\n* ``{index}`` is the index.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::ServiceTemplate``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RST_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``RST`` signifies that it is the Resource Service Template\n* ``{index}`` is the index.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -78067,9 +78067,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -78157,7 +78157,7 @@
"validation_mode": ""
},
"R-15189": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup`` Resource ID\n**MAY** use the naming convention\n\n* ``{vm-type}_RSG``\n\nor\n\n* ``{vm-type}_Server_Grp``\n\nor\n\n* ``{vm-type}_ServerGroup``\n\nor\n\n* ``{vm-type}_servergroup``",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup``\nResource ID **MAY** use the naming convention\n\n* ``{vm-type}_RSG``\n\nor\n\n* ``{vm-type}_Server_Grp``\n\nor\n\n* ``{vm-type}_ServerGroup``\n\nor\n\n* ``{vm-type}_servergroup``",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -78193,7 +78193,7 @@
"validation_mode": ""
},
"R-15287": {
- "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv6 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.",
+ "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv6 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv6 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_v6_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -78223,7 +78223,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -78511,7 +78511,7 @@
"validation_mode": ""
},
"R-16241": {
- "description": "A VNF's internal network **MUST** have one subnet.\nA VNF's internal network **MAY** have more than one subnet.",
+ "description": "A VNF's ONAP internal network **MUST** have one subnet.\nA VNF's ONAP internal network **MAY** have more than one subnet.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -78541,7 +78541,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -78759,7 +78759,7 @@
"validation_mode": ""
},
"R-16968": {
- "description": "A VNF's Heat Orchestration Templates **MUST NOT** include heat\nresources to create external networks.",
+ "description": "A VNF's Heat Orchestration Templates **MUST NOT** include heat\nresources to create an ONAP external network.\n\nAn ONAP external network **MUST** be instantiated by using VID\nor by invoking SO directly.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -78789,12 +78789,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-17334": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and one external network Resource ID\n**SHOULD** use the naming convention\n\n* ``{vm-type}_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup``\nthat is applicable to one ``{vm-type}`` and one ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nthe ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``{vm-type}_{network-role}_security_group``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -78825,7 +78825,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -78971,7 +78971,7 @@
"validation_mode": ""
},
"R-18001": {
- "description": "If the VNF's ports connected to a unique internal network\nand the port's IP addresses are statically assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the\nIPv6 addresses **MAY** be from different subnets.",
+ "description": "If the VNF's ports connected to a unique ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand the port's IP addresses are statically assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the\nIPv6 addresses **MAY** be from different subnets.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -79002,7 +79002,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -79648,7 +79648,7 @@
"validation_mode": ""
},
"R-20453": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an external network Resource ID\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968), the ``OS::Neutron::Port``\nResource ID\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -79679,7 +79679,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -79875,14 +79875,14 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF",
+ "target": "VNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -79890,12 +79890,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
"R-21330": {
- "description": "A VNF's Heat Orchestration Template's Resource property parameter that is\nassociated with external network **MUST** include the ``{network-role}``\nas part of the parameter name.",
+ "description": "A VNF's Heat Orchestration Template's Resource property parameter that is\nassociated with an ONAP\nexternal network **MUST** include the ``{network-role}``\nas part of the parameter name.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}",
"full_title": "",
"hide_links": "",
@@ -79924,7 +79924,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -80103,7 +80103,7 @@
"validation_mode": ""
},
"R-221914": {
- "description": "The VNF or PNF package **MUST** contain a a human-readable change log text\nfile. The Change Log file keeps a history describing any changes in the VNF\nor PNF package. The Change Log file is kept up to date continuously from\nthe creation of the CSAR package.",
+ "description": "The VNF or PNF CSAR package **MUST** contain a human-readable change log text\nfile. The Change Log file keeps a history describing any changes in the VNF\nor PNF package. The Change Log file is kept up to date continuously from\nthe creation of the CSAR package.",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -80111,21 +80111,21 @@
"id_complete": "R-221914",
"id_parent": "R-221914",
"impacts": "",
- "introduced": "dublin",
+ "introduced": "frankfurt",
"is_need": true,
"is_part": false,
"keyword": "MUST",
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF or PNF",
+ "target": "VNF or PNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -80388,7 +80388,7 @@
"validation_mode": ""
},
"R-22688": {
- "description": "When a VNF's Heat Orchestration Template creates an internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461\nand R-35666) and the internal network needs to be shared between modules\nwithin a VNF, the internal network **MUST** be created either in the\n\n* the base module\n* a nested YAML file invoked by the base module\n\nand the base module **MUST** contain an output parameter that provides\neither the network UUID or network name.\n\n* If the network UUID value is used to reference the network, the output\n parameter name in the base module **MUST** follow the naming convention\n ``int_{network-role}_net_id``\n* If the network name in is used to reference the network, the output\n parameter name in the base template **MUST** follow the naming convention\n ``int_{network-role}_net_name``\n\n``{network-role}`` **MUST** be the network-role of the internal network\ncreated in the Base Module.\n\nThe Base Module Output Parameter MUST be declared in the ``parameters:``\nsection of the Incremental Module(s) where the ``OS::Neutron::Port``\nresource(s) is attaching to the internal network.",
+ "description": "When a VNF's Heat Orchestration Template creates an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461\nand R-35666) and the ONAP internal network needs to be shared between\nmodules within a VNF, the ONAP\ninternal network **MUST** be created either in the\n\n* the base module\n* a nested YAML file invoked by the base module\n\nand the base module **MUST** contain an output parameter that provides\neither the network UUID or network name.\n\n* If the network UUID value is used to reference the network, the output\n parameter name in the base module **MUST** follow the naming convention\n ``int_{network-role}_net_id``\n* If the network name in is used to reference the network, the output\n parameter name in the base template **MUST** follow the naming convention\n ``int_{network-role}_net_name``\n\nThe ``{network-role}`` **MUST** be the network-role of the ONAP\ninternal network created in the Base Module.\n\nThe Base Module Output Parameter MUST be declared in the ``parameters:``\nsection of the Incremental Module(s) where the ``OS::Neutron::Port``\nresource(s) is attaching to the ONAP internal network.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -80418,7 +80418,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -80740,7 +80740,7 @@
"validation_mode": ""
},
"R-23503": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the ONAP external\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -80770,12 +80770,48 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
+ "R-23663": {
+ "description": "A VNF's Heat Orchestration template's base module\n**MAY** (or **MAY NOT**)\ncontain the section ``resources:``.",
+ "docname": "Chapter5/Heat/ONAP Heat Orchestration Template Format",
+ "full_title": "",
+ "hide_links": "",
+ "id": "R-23663",
+ "id_complete": "R-23663",
+ "id_parent": "R-23663",
+ "impacts": "",
+ "introduced": "frankfurt",
+ "is_need": true,
+ "is_part": false,
+ "keyword": "MAY",
+ "links": [],
+ "notes": "",
+ "parts": {},
+ "section_name": "resources",
+ "sections": [
+ "resources",
+ "Heat Orchestration Template Structure",
+ "ONAP Heat Orchestration Template Format"
+ ],
+ "status": null,
+ "tags": [],
+ "target": "VNF",
+ "test": "",
+ "test_case": "",
+ "test_file": "",
+ "title": "",
+ "title_from_content": "",
+ "type": "req",
+ "type_name": "Requirement",
+ "updated": "",
+ "validated_by": "",
+ "validation_mode": "none"
+ },
"R-23664": {
- "description": "A VNF's Heat Orchestration template's base module, incremental\nmodule, and volume module **MUST**\ncontain the section ``resources:``.",
+ "description": "A VNF's Heat Orchestration template's incremental\nmodule and volume module **MUST**\ncontain the section ``resources:``.",
"docname": "Chapter5/Heat/ONAP Heat Orchestration Template Format",
"full_title": "",
"hide_links": "",
@@ -81167,7 +81203,7 @@
"validation_mode": ""
},
"R-24997": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to\none ``{vm-type}`` Resource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_keypair_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``{index}`` is the ``{index}`` of the keypair.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair``\napplies to one ``{vm-type}``, the ``OS::Nova::Keypair``\nResource ID **SHOULD** use the naming convention\n\n* ``{vm-type}_keypair_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type of the ``OS::Nova::Server``\n* ``{index}`` is the ``{index}`` of the keypair.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -81198,7 +81234,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -81450,7 +81486,7 @@
"validation_mode": "none"
},
"R-25720": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net``\nResource ID **MUST** use the naming convention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create internal networks.\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net``\nResource ID **MUST** use the naming convention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create ONAP internal networks\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666).\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -81481,7 +81517,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -81703,7 +81739,7 @@
"validation_mode": "none"
},
"R-26351": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an internal network Resource ID **MUST**\nuse the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is attaching to an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nthe ``OS::Neutron::Port`` Resource ID **MUST**\nuse the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{port_index}`` references the instance of the port on the ``{vm-type}``\n attached to ``{network-role}`` network. The\n ``{port_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new port is defined on the instance of the ``{vm-type}`` attached to\n ``{network-role}`` network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -81734,7 +81770,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -82024,7 +82060,7 @@
"validation_mode": ""
},
"R-27469": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv4 address Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{index}`` is the instance of the IPv4 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv4 address, the\n``OS::Neutron::Port`` Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{index}`` is the instance of the IPv4 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -82055,7 +82091,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -82095,7 +82131,7 @@
"validation_mode": ""
},
"R-27818": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -82125,12 +82161,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-27970": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated with\nmore than one ``{vm-type}`` and/or more than one internal and/or external\nnetwork, the Resource ID **MAY** contain the term ``shared`` and/or **MAY**\ncontain text that identifies the VNF.",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated with\nmore than one ``{vm-type}`` and/or more than one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand/or ONAP external network (per the ONAP definition, see Requirement\nR-57424 and R-16968), the Resource ID **MAY** contain the term\n``shared`` and/or **MAY**\ncontain text that identifies the VNF.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -82159,7 +82195,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -82535,9 +82571,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -82734,7 +82770,7 @@
"validation_mode": ""
},
"R-29765": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -82764,7 +82800,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -82839,7 +82875,7 @@
"validation_mode": ""
},
"R-30005": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and more than one network\n(internal and/or external) Resource ID **MAY**\nuse the naming convention\n\n* ``shared_security_group``\n\nor\n\n* ``{vnf-type}_security_group``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and more than one network\n(internal and/or external), the ``OS::Neutron::SecurityGroup`` Resource ID\n**MAY**\nuse the naming convention\n\n* ``shared_security_group``\n\nor\n\n* ``{vnf-type}_security_group``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -82870,7 +82906,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -83086,7 +83122,7 @@
"validation_mode": ""
},
"R-30753": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID\n**MUST**\ncontain the ``{network-role}``.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID\n**MUST**\ncontain the ``{network-role}`` of the ONAP internal network (per the ONAP\ndefinition, see Requirements R-52425 and R-46461 and R-35666) that the\nresource is associated with.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -83117,7 +83153,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -84437,7 +84473,7 @@
"validation_mode": ""
},
"R-35666": {
- "description": "If a VNF has an internal network, the VNF Heat Orchestration Template\n**MUST** include the heat resources to create the internal network.\n\nA VNF's Internal Network is created using Neutron Heat Resources\n(i.e., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``) and/or\nContrail Heat Resources (i.e., ``OS::ContrailV2::VirtualNetwork``,\n``ContrailV2::NetworkIpam``).",
+ "description": "If a VNF has an ONAP internal network, the VNF's Heat Orchestration\nTemplate **MUST** include the heat resources to create the\nONAP internal network.\n\nA VNF's ONAP internal network is created using Neutron Heat Resources\n(e.g., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``,\n``OS::Neutron::ProviderNet``) and/or\nContrail Heat Resources (e.g., ``OS::ContrailV2::VirtualNetwork``,\n``OS::ContrailV2::NetworkIpam``).",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -84467,12 +84503,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-35735": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv6 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv6 VIP address.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv6 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_v6_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv6 VIP address.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -84487,9 +84523,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -84503,7 +84539,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -85671,7 +85707,7 @@
"validation_mode": ""
},
"R-40820": {
- "description": "The VNF or PNF TOSCA PACKAGE **MUST** enumerate all of the open source\nlicenses their VNF(s) incorporate. CSAR License directory as per ETSI\nSOL004.\n\nfor example ROOT\\\\Licenses\\\\ **License_term.txt**",
+ "description": "The VNF or PNF CSAR PACKAGE **MUST** enumerate all of the open source\nlicenses their VNF(s) incorporate. CSAR License directory as per ETSI\nSOL004.\n\nfor example ROOT\\\\Licenses\\\\ **License_term.txt**",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -85686,14 +85722,14 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF or PNF TOSCA PACKAGE",
+ "target": "VNF or PNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -85701,7 +85737,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -85777,7 +85813,7 @@
"validation_mode": "none"
},
"R-40971": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -85807,7 +85843,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -85953,7 +85989,7 @@
"validation_mode": ""
},
"R-41492": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv4 VIP address.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP is required to be supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\nparameter name **MUST** follow the naming convention\n\n* ``{vm-type}_{network-role}_floating_ip``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n\nAnd the parameter **MUST** be declared as type ``string``.\n\nAs noted in the introduction to this section, the ONAP data model\ncan only support one IPv4 VIP address.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -85968,9 +86004,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -85984,12 +86020,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-41493": {
- "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network\n(per the ONAP definition, see Requirement R-57424),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::Neutron::Port`` resource **MUST** contain\nresource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all\n``allowed_address_pairs`` map property ``ip_address`` parameters\n**not** supported by the ONAP data model.",
+ "description": "When the VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968),\nand the IPv4 VIP address and/or IPv6 VIP address\nis **not** supported by the ONAP data model,\nthe property ``allowed_address_pairs`` map property ``ip_address``\n\n* Parameter name **MAY** use any naming convention. That is, there is no\n ONAP mandatory parameter naming convention.\n* Parameter **MAY** be declared as type ``string`` or type\n``comma_delimited_list``.\n\nAnd the ``OS::Neutron::Port`` resource **MUST** contain\nresource-level ``metadata`` (not property-level).\n\nAnd the ``metadata`` format **MUST** must contain the\nkey value ``aap_exempt`` with a list of all\n``allowed_address_pairs`` map property ``ip_address`` parameters\n**not** supported by the ONAP data model.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -86004,9 +86040,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -86020,7 +86056,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -87345,7 +87381,7 @@
"validation_mode": ""
},
"R-46128": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -87376,7 +87412,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -87417,7 +87453,7 @@
"validation_mode": ""
},
"R-46461": {
- "description": "A VNF's port connected to an internal network **MUST NOT** use the port\nfor the purpose of reaching VMs in another VNF and/or an\nexternal gateway and/or\nexternal router.",
+ "description": "A VNF's port connected to an ONAP internal network **MUST NOT**\nuse the port\nfor the purpose of reaching VMs in another VNF and/or an\nexternal gateway and/or\nexternal router.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -87447,7 +87483,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -88405,7 +88441,7 @@
"validation_mode": ""
},
"R-48880": {
- "description": "If a VNF's Port is attached to an external network and the port's\nIP addresses are assigned by ONAP's SDN-Controller,\nthe ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used",
+ "description": "If a VNF's Port is attached to an ONAP external network (per the ONAP\ndefinition, see Requirement R-57424 and R-16968) and the port's\nIP addresses are assigned by ONAP's SDN-Controller,\nthe ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -88436,7 +88472,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -88947,7 +88983,7 @@
"validation_mode": "static"
},
"R-50468": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -88978,12 +89014,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-506221": {
- "description": "The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension.",
+ "description": "The VNF or PNF CSAR file **MUST** be a zip file with .csar extension.",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -88998,9 +89034,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Structure and Format",
+ "section_name": "VNF or PNF Package Structure and Format",
"sections": [
- "VNF Package Structure and Format",
+ "VNF or PNF Package Structure and Format",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -89013,7 +89049,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -89103,14 +89139,14 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Structure and Format",
+ "section_name": "VNF or PNF Package Structure and Format",
"sections": [
- "VNF Package Structure and Format",
+ "VNF or PNF Package Structure and Format",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF or PNF",
+ "target": "VNF or PNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -89118,7 +89154,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -89265,7 +89301,7 @@
"validation_mode": "static"
},
"R-52425": {
- "description": "A VNF's port connected to an internal network **MUST**\nuse the port for the purpose of reaching VMs in the same VNF.",
+ "description": "A VNF's port connected to an ONAP internal network **MUST**\nuse the port for the purpose of reaching VMs in the same VNF.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -89295,7 +89331,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -89479,7 +89515,7 @@
"validation_mode": ""
},
"R-53310": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network that the\n virtual machine interface is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external\n network that the virtual machine interface is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -89510,7 +89546,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -90150,6 +90186,41 @@
"validated_by": "",
"validation_mode": "static"
},
+ "R-55307": {
+ "description": "A VNF's Heat Orchestration Template's parameter ``vf_module_index``\n**MUST NOT** be used for indexing an:\n\n- ``OS::Nova::Server`` property ``name`` parameter (when defined as a\n ``comma_delimited_list``).\n- ``OS::Neutron::Port`` property ``fixed_ips`` map property ``ip_address``\n parameter (when defined as a ``comma_delimited_list``) when the port is\n attaching to an ONAP external network (per the ONAP\n definition, see Requirement R-57424 and R-16968)",
+ "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters",
+ "full_title": "",
+ "hide_links": "",
+ "id": "R-55307",
+ "id_complete": "R-55307",
+ "id_parent": "R-55307",
+ "impacts": "",
+ "introduced": "frankfurt",
+ "is_need": true,
+ "is_part": false,
+ "keyword": "MUST NOT",
+ "links": [],
+ "notes": "",
+ "parts": {},
+ "section_name": "vf_module_index",
+ "sections": [
+ "vf_module_index",
+ "Resource: OS::Nova::Server Metadata Parameters"
+ ],
+ "status": null,
+ "tags": [],
+ "target": "VNF",
+ "test": "",
+ "test_case": "",
+ "test_file": "",
+ "title": "",
+ "title_from_content": "",
+ "type": "req",
+ "type_name": "Requirement",
+ "updated": "",
+ "validated_by": "",
+ "validation_mode": "static"
+ },
"R-55345": {
"description": "The VNF **SHOULD** use techniques such as \"lazy loading\" when\ninitialization includes loading catalogues and/or lists which can grow\nover time, so that the VNF startup time does not grow at a rate\nproportional to that of the list.",
"docname": "Chapter4/Resiliency",
@@ -90714,7 +90785,7 @@
"validation_mode": "in_service"
},
"R-57019": {
- "description": "The PNF TOSCA CSAR PACKAGE Manifest file **MUST** start with the PNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - pnfd_provider\n\n - pnfd_name\n\n - pnfd_release_date_time\n\n - pnfd_archive_version",
+ "description": "The PNF CSAR PACKAGE Manifest file **MUST** start with the PNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - pnfd_provider\n\n - pnfd_name\n\n - pnfd_release_date_time\n\n - pnfd_archive_version",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -90729,9 +90800,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -90744,7 +90815,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -90784,7 +90855,7 @@
"validation_mode": "static"
},
"R-57424": {
- "description": "A VNF's port connected to an external network **MUST**\nuse the port for the purpose of reaching\nVMs in another VNF and/or an external gateway and/or external router.\nA VNF's port connected to an external network **MAY**\nuse the port for the purpose of reaching VMs in the same VNF.",
+ "description": "A VNF's port connected to an ONAP external network **MAY**\nuse the port for the purpose of\n\n- Connecting a VM in the VNF to VMs in another VNF and/or\n- Connecting a VM in the VNF to an external gateway or external router\n and/or\n- Connecting a VM in the VNF to other VMs in the same VNF",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -90795,7 +90866,7 @@
"introduced": "",
"is_need": true,
"is_part": false,
- "keyword": "MUST",
+ "keyword": "MAY",
"links": [],
"notes": "",
"parts": {},
@@ -90814,7 +90885,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -91277,7 +91348,7 @@
"validation_mode": ""
},
"R-59434": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet``\nResource ID **SHOULD** use the naming convention\n\n* ``int_{network-role}_subnet_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``{index}`` is the ``{index}`` of the subnet of the network.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet``\nResource ID **SHOULD** use the naming convention\n\n* ``int_{network-role}_subnet_{index}``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP internal network\n (per the ONAP definition, see Requirements R-52425 and R-46461 and\n R-35666).\n* ``{index}`` is the ``{index}`` of the subnet of the ONAP internal network.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -91308,7 +91379,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -91910,7 +91981,7 @@
"validation_mode": ""
},
"R-62187": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv4 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``IP`` signifies that an IPv4 address is being configured\n* ``{index}`` references the instance of the IPv4 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv4 address is configured on the\n virtual machine interface.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -91941,7 +92012,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -92053,7 +92124,7 @@
"validation_mode": ""
},
"R-62590": {
- "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.",
+ "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an ONAP external network, i.e.,\n\n * ``{vm-type}_{network-role}_ip_{index}``\n * ``{vm-type}_{network-role}_v6_ip_{index}``\n * ``{vm-type}_{network-role}_ips``\n * ``{vm-type}_{network-role}_v6_ips``\n\n\n**MUST NOT** be enumerated in the Heat Orchestration\nTemplate's Environment File. ONAP provides the IP address\nassignments at orchestration time.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -92083,12 +92154,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-62802": {
- "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an external network (per the ONAP definition, see\nRequirement R-57424),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the external network IPv4 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the network.",
+ "description": "When the VNF's Heat Orchestration Template's\nresource ``OS::Neutron::Port`` is attaching\nto an ONAP external network (per the ONAP definition, see\nRequirement R-57424 and R-16968),\nand an IPv4 address is being cloud assigned by OpenStack's DHCP Service\nand the ONAP external network IPv4 subnet is to be specified\nusing the property ``fixed_ips``\nmap property ``subnet``, the parameter\n**MUST** follow the naming convention\n\n * ``{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP external network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -92118,7 +92189,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -92158,7 +92229,7 @@
"validation_mode": ""
},
"R-62983": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\n``network`` parameter name **MUST**\n\n * follow the naming convention ``{network-role}_net_id`` if the Neutron\n network UUID value is used to reference the network\n * follow the naming convention ``{network-role}_net_name`` if the\n OpenStack network name is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the external network\nand a ``get_param`` **MUST** be used as the intrinsic function.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\n``network`` parameter name **MUST**\n\n * follow the naming convention ``{network-role}_net_id`` if the Neutron\n network UUID value is used to reference the network\n * follow the naming convention ``{network-role}_net_name`` if the\n OpenStack network name is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the ONAP external network\nand a ``get_param`` **MUST** be used as the intrinsic function.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -92188,7 +92259,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -92480,7 +92551,7 @@
"validation_mode": ""
},
"R-63956": {
- "description": "If the VNF's ports connected to a unique external network\nand the port's IP addresses are ONAP SDN-C assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the IPv6\naddresses **MAY** be from different subnets.",
+ "description": "If the VNF's ports connected to a unique ONAP external network\n(per the ONAP definition, see Requirement R-57424 and R-16968)\nand the port's IP addresses are ONAP SDN-C assigned IP addresses,\nthe IPv4 addresses **MAY** be from different subnets and the IPv6\naddresses **MAY** be from different subnets.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -92511,7 +92582,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -92758,7 +92829,7 @@
"validation_mode": ""
},
"R-65516": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to\nall Virtual Machines in the VNF, the Resource ID **SHOULD** use the naming\nconvention\n\n* ``{vnf-type}_keypair``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair``\napplies to all Virtual Machines in the VNF, the\n``OS::Nova::Keypair`` Resource ID **SHOULD** use the naming\nconvention\n\n* ``{vnf-type}_keypair``\n\nwhere\n\n* ``{vnf-type}`` describes the VNF",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -92789,7 +92860,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -93262,7 +93333,7 @@
"validation_mode": ""
},
"R-67793": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith more than one ``{vm-type}`` and/or more than one internal and/or\nexternal network, the Resource ID **MUST NOT** contain the ``{vm-type}``\nand/or ``{network-role}``/``int_{network-role}``. It also should contain the\nterm ``shared`` and/or contain text that identifies the VNF.",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith more than one ``{vm-type}`` and/or more than one ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand/or\nONAP external network (per the ONAP definition, see Requirement R-57424\nand R-16968), the Resource ID **MUST NOT** contain the\n``{vm-type}`` and/or ``{network-role}``/``int_{network-role}``.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -93291,7 +93362,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -93580,7 +93651,7 @@
"validation_mode": ""
},
"R-68520": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv6 address Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{index}`` is the instance of the IPv6 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
+ "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nthat is creating a *Reserve Port* with an IPv6 address, the\n``OS::Neutron::Port`` Resource ID\n**SHOULD** use the naming convention\n\n* ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port is attached to\n* ``{index}`` is the instance of the IPv6 *Reserve Port*\n for the vm-type attached to the network of ``{network-role}``.\n The ``{index}`` starts at zero and increments by one\n (as described in R-11690).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -93611,7 +93682,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -93688,7 +93759,7 @@
"validation_mode": ""
},
"R-69014": {
- "description": "When a VNF's port connects to an internal network or external network,\na network role, referred to\nas the ``{network-role}`` **MUST** be assigned to the network for\nuse in the VNF's Heat Orchestration Template. The ``{network-role}``\nis used in the VNF's Heat Orchestration Template resource IDs\nand resource property parameter names.",
+ "description": "When a VNF's port connects to an ONAP internal network or ONAP\nexternal network,\na network role, referred to\nas the ``{network-role}`` **MUST** be assigned to the network for\nuse in the VNF's Heat Orchestration Template. The ``{network-role}``\nis used in the VNF's Heat Orchestration Template's resource IDs\nand resource property parameter names.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}",
"full_title": "",
"hide_links": "",
@@ -93717,7 +93788,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -94323,7 +94394,7 @@
"validation_mode": ""
},
"R-70964": {
- "description": "If a VNF's Port is attached to an internal network and the port's\nIP addresses are statically assigned by the VNF's Heat Orchestration\\\nTemplate (i.e., enumerated in the Heat Orchestration Template's\nenvironment file), the ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used",
+ "description": "If a VNF's Port is attached to an ONAP internal network\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666)\nand the port's\nIP addresses are statically assigned by the VNF's Heat Orchestration\nTemplate (i.e., enumerated in the Heat Orchestration Template's\nenvironment file), the ``OS::Neutron::Port`` Resource's\n\n* property ``fixed_ips`` map property ``ip_address`` **MUST** be used\n* property ``fixed_ips`` map property ``subnet``\n **MUST NOT** be used",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -94354,7 +94425,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -94429,7 +94500,7 @@
"validation_mode": "static"
},
"R-71577": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968),\nand an IPv6 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a string,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_{network-role}_v6_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP external network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -94459,7 +94530,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -94501,7 +94572,7 @@
"validation_mode": "static"
},
"R-717227": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 Virtual IP (VIP)\naddress is assigned using the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_ip``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file.\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_ips``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -94516,9 +94587,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, Internal Networks",
+ "section_name": "VIP Assignment, ONAP Internal Networks",
"sections": [
- "VIP Assignment, Internal Networks",
+ "VIP Assignment, ONAP Internal Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -94532,7 +94603,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -94749,7 +94820,7 @@
"validation_mode": ""
},
"R-73213": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one internal network Resource ID\n**SHOULD** use the naming convention\n\n* ``int_{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::Neutron::SecurityGroup`` that\nis applicable to more than one ``{vm-type}`` and one ONAP internal network,\n(per the ONAP definition, see Requirements R-52425 and R-46461 and\nR-35666), the ``OS::Neutron::SecurityGroup`` Resource ID\n**SHOULD** use the naming convention\n\n* ``int_{network-role}_security_group``\n\nwhere\n\n* ``{network-role}`` is the network-role of the ONAP internal network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -94780,7 +94851,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -95529,7 +95600,7 @@
"validation_mode": "static"
},
"R-76160": {
- "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an internal network (per the ONAP definition, see Requirements\n R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv6 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n``int_{network-role}_v6_subnet_id``,\nwhere ``{network-role}`` is the network role of the internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
+ "description": "When\n\n* the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an ONAP internal network (per the ONAP definition, see Requirements\n R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n* an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND\n* the ONAP internal network IPv6 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n* ``int_{network-role}_v6_subnet_id``\n\nwhere ``{network-role}`` is the network role of the ONAP internal network.\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -95614,9 +95685,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -95919,7 +95990,7 @@
"validation_mode": ""
},
"R-78380": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is\ndefined as a ``string``,\nthe parameter name **MUST** follow the\nnaming convention\n\n* ``{vm-type}_int_{network-role}_ip_{index}``\n\nwhere\n\n* ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n* ``{network-role}`` is the {network-role} of the ONAP internal network\n* ``{index}`` is a numeric value that **MUST** start at zero in a\n VNF's Heat Orchestration Template and **MUST** increment by one",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -95949,7 +96020,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -96169,7 +96240,7 @@
"validation_mode": ""
},
"R-795126": {
- "description": "The VNF TOSCA CSAR package Manifest file **MUST** start with the VNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - vnf_provider_id\n\n - vnf_product_name\n\n - vnf_release_date_time\n\n - vnf_package_version",
+ "description": "The VNF CSAR package Manifest file **MUST** start with the VNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - vnf_provider_id\n\n - vnf_product_name\n\n - vnf_release_date_time\n\n - vnf_package_version",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -96184,9 +96255,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -96199,7 +96270,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -96416,7 +96487,7 @@
"validation_mode": "static"
},
"R-805572": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n * ``{network-role}`` is the {network-role} of the external\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv6 Virtual IP (VIP)\naddress is assigned\nusing the property ``allowed_address_pairs``\nmap property ``ip_address``,\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_v6_ip``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: string``\nand **MUST** be enumerated in the environment file\n\nOR\n\nthe parameter name **MUST** follow the\nnaming convention\n\n- ``{vm-type}_int_{network-role}_floating_v6_ips``\n\nwhere\n\n- ``{vm-type}`` is the {vm-type} associated with the\n OS::Nova::Server\n- ``{network-role}`` is the {network-role} of the ONAP internal\n network\n\nAnd the parameter **MUST** be declared as ``type: comma_delimited_list``\nand **MUST** be enumerated in the environment file.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -96431,9 +96502,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, Internal Networks",
+ "section_name": "VIP Assignment, ONAP Internal Networks",
"sections": [
- "VIP Assignment, Internal Networks",
+ "VIP Assignment, ONAP Internal Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -96447,7 +96518,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -96843,7 +96914,7 @@
"validation_mode": ""
},
"R-81979": {
- "description": "A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::NetworkIpam``\nResource ID **MAY** use the naming convention\n\n* ``{network-role}_RNI``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``RNI`` signifies that it is the Resource Network IPAM",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::NetworkIpam``\nResource ID **MAY** use the naming convention\n\n* ``{network-role}_RNI``\n\nwhere\n\n* ``{network-role}`` is the network-role\n* ``RNI`` signifies that it is the Resource Network IPAM",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -96916,7 +96987,7 @@
"validation_mode": ""
},
"R-82115": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}``\nand a single external network, the Resource ID text **MUST** contain both\nthe ``{vm-type}``\nand the ``{network-role}``\n\n- the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n\n - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}``\n\n\n- note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the\n ``{network-role}`` and when this occurs underscores **MUST** separate the\n three values. (e.g., ``{vm-type}_{index}_{network-role}``).",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}``\nand a single ONAP\nexternal network, the Resource ID text **MUST** contain both\nthe ``{vm-type}``\nand the ``{network-role}``\n\n- the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n\n - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}``\n\n\n- note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the\n ``{network-role}`` and when this occurs underscores **MUST** separate the\n three values. (e.g., ``{vm-type}_{index}_{network-role}``).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -96945,7 +97016,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -97090,7 +97161,7 @@
"validation_mode": ""
},
"R-82551": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}`` and a single internal network, the Resource ID **MUST**\ncontain both the ``{vm-type}`` and the ``int_{network-role}`` and\n\n- the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n - (e.g., ``{vm-type}_int_{network-role}``,\n ``{vm-type}_{index}_int_{network-role}``)\n\n- note that an ``{index}`` value **MAY** separate the\n ``{vm-type}`` and the ``int_{network-role}`` and when this occurs\n underscores **MUST** separate the three values.\n (e.g., ``{vm-type}_{index}_int_{network-role}``).",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ``{vm-type}`` and a single ONAP internal network (per the ONAP\ndefinition, see Requirements R-52425 and R-46461 and R-35666),\nthe Resource ID **MUST**\ncontain both the ``{vm-type}`` and the ``int_{network-role}`` and\n\n- the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and\n **MUST** be separated by an underscore '_'\n\n - (e.g., ``{vm-type}_int_{network-role}``,\n ``{vm-type}_{index}_int_{network-role}``)\n\n- note that an ``{index}`` value **MAY** separate the\n ``{vm-type}`` and the ``int_{network-role}`` and when this occurs\n underscores **MUST** separate the three values.\n (e.g., ``{vm-type}_{index}_int_{network-role}``).",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -97119,7 +97190,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -97267,7 +97338,7 @@
"validation_mode": ""
},
"R-83412": {
- "description": "If a VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an external network (per the\nONAP definition, see Requirement R-57424), the\nproperty ``allowed_address_pairs``\nmap property ``ip_address`` parameter(s)\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.",
+ "description": "If a VNF's Heat Orchestration Template's resource\n``OS::Neutron::Port`` is attaching to an ONAP external network (per the\nONAP definition, see Requirement R-57424 and R-16968), the\nproperty ``allowed_address_pairs``\nmap property ``ip_address`` parameter(s)\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -97282,9 +97353,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VIP Assignment, External Networks",
+ "section_name": "VIP Assignment, ONAP External Networks",
"sections": [
- "VIP Assignment, External Networks",
+ "VIP Assignment, ONAP External Networks",
"Property: allowed_address_pairs, Map Property: ip_address",
"Resource: OS::Neutron::Port - Parameters"
],
@@ -97298,7 +97369,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -97482,7 +97553,7 @@
"validation_mode": ""
},
"R-84123": {
- "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
+ "description": "When\n\n * the VNF's Heat Orchestration Template's\n resource ``OS::Neutron::Port`` in an Incremental Module is attaching\n to an ONAP internal network (per the ONAP definition, see\n Requirements R-52425 and R-46461 and R-35666)\n that is created in the Base Module, AND\n * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND\n * the internal network IPv4 subnet is to be specified\n using the property ``fixed_ips`` map property ``subnet``,\n\nthe parameter **MUST** follow the naming convention\n\n * ``int_{network-role}_subnet_id``\n\nwhere\n\n * ``{network-role}`` is the network role of the ONAP internal network\n\nNote that the parameter **MUST** be defined as an ``output`` parameter in\nthe base module.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -97512,7 +97583,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -97623,7 +97694,7 @@
"validation_mode": ""
},
"R-84322": {
- "description": "A VNF's Heat Orchestration Template's Resource property parameter that\nis associated with an internal network **MUST** include\n``int_{network-role}`` as part of the parameter name,\nwhere ``int_`` is a hard coded string.",
+ "description": "A VNF's Heat Orchestration Template's Resource property parameter that\nis associated with an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** include\n``int_{network-role}`` as part of the parameter name,\nwhere ``int_`` is a hard coded string.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}",
"full_title": "",
"hide_links": "",
@@ -97652,7 +97723,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -97868,7 +97939,7 @@
"validation_mode": ""
},
"R-85235": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the internal\n network",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` is attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nand an IPv4 address is assigned\nusing the property ``fixed_ips``\nmap property ``ip_address`` and the parameter type is defined as a\n``comma_delimited_list``,\nthe parameter name **MUST** follow the\nnaming convention\n\n * ``{vm-type}_int_{network-role}_ips``\n\nwhere\n\n * ``{vm-type}`` is the {vm-type} associated with the\n ``OS::Nova::Server``\n * ``{network-role}`` is the {network-role} of the ONAP internal\n network",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -97898,7 +97969,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -98147,7 +98218,7 @@
"validation_mode": ""
},
"R-86182": {
- "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port``\nis in an incremental module and\nis attaching to an internal network (per the\nONAP definition, see Requirements R-52425 and R-46461),\nthe ``network`` parameter name **MUST**\n\n * follow the naming convention ``int_{network-role}_net_id`` if the\n network UUID value is used to reference the network\n * follow the naming convention ``int_{network-role}_net_name`` if the\n network name in is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the internal network and\na ``get_param`` **MUST** be used as the intrinsic function.",
+ "description": "When the VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port``\nis in an incremental module and\nis attaching to an ONAP internal network (per the\nONAP definition, see Requirements R-52425 and R-46461 and R-35666),\nthe ``network`` parameter name **MUST**\n\n * follow the naming convention ``int_{network-role}_net_id`` if the\n network UUID value is used to reference the network\n * follow the naming convention ``int_{network-role}_net_name`` if the\n network name in is used to reference the network.\n\nwhere ``{network-role}`` is the network-role of the ONAP internal network\nand a ``get_param`` **MUST** be used as the intrinsic function.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -98566,7 +98637,7 @@
"validation_mode": ""
},
"R-86972": {
- "description": "A VNF **SHOULD** create the internal network in the VNF's Heat\nOrchestration Template Base Module.",
+ "description": "A VNF **SHOULD** create the ONAP internal network in the VNF's Heat\nOrchestration Template's Base Module.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -98637,7 +98708,7 @@
"validation_mode": ""
},
"R-87096": {
- "description": "A VNF **MAY** contain zero, one or more than one internal network.",
+ "description": "A VNF **MAY** contain zero, one or more than one ONAP internal network.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -98667,7 +98738,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -98707,7 +98778,7 @@
"validation_mode": "static"
},
"R-87234": {
- "description": "The VNF or PNF package provided by a VNF or PNF vendor **MUST** be with\nTOSCA-Metadata directory (CSAR Option 1) as specified in\nETSI GS NFV-SOL004.\n\n**Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2\nwill be considered in future ONAP releases.",
+ "description": "The VNF or PNF CSAR package provided by a VNF or PNF vendor **MUST** be with\nTOSCA-Metadata directory (CSAR Option 1) as specified in\nETSI GS NFV-SOL004.\n\n**Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2\nwill be considered in future ONAP releases.",
"docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package",
"full_title": "",
"hide_links": "",
@@ -98722,14 +98793,14 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Structure and Format",
+ "section_name": "VNF or PNF Package Structure and Format",
"sections": [
- "VNF Package Structure and Format",
+ "VNF or PNF Package Structure and Format",
"VNF or PNF CSAR Package"
],
"status": null,
"tags": [],
- "target": "VNF or PNF",
+ "target": "VNF or PNF CSAR PACKAGE",
"test": "",
"test_case": "",
"test_file": "",
@@ -98737,7 +98808,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": ""
},
@@ -98883,7 +98954,7 @@
"validation_mode": "static"
},
"R-87563": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an internal network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::InstanceIp`` Resource ID\nthat is configuring an IPv6 Address on a virtual machine interface\n(i.e., OS::ContrailV2::VirtualMachineInterface)\nattached to an ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP internal network\n that the port is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.\n* ``v6_IP`` signifies that an IPv6 address is being configured\n* ``{index}`` references the instance of the IPv6 address configured\n on the virtual machine interface. The ``{index}`` is a numeric value\n that **MUST** start at zero on an\n instance of a virtual machine interface and **MUST** increment by one\n each time a new IPv6 address is configured on the\n virtual machine interface.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -98914,7 +98985,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -100042,9 +100113,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "External Networks",
+ "section_name": "ONAP External Networks",
"sections": [
- "External Networks",
+ "ONAP External Networks",
"Contrail Network Parameters",
"Contrail Resource Parameters"
],
@@ -100381,7 +100452,7 @@
"validation_mode": ""
},
"R-93496": {
- "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.",
+ "description": "The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port``\nproperty ``fixed_ips``\nmap property ``ip_address``\nparameter associated with an ONAP internal network, i.e.,\n\n * ``{vm-type}_int_{network-role}_ip_{index}``\n * ``{vm-type}_int_{network-role}_v6_ip_{index}``\n * ``{vm-type}_int_{network-role}_ips``\n * ``{vm-type}_int_{network-role}_v6_ips``\n\n\n**MUST** be enumerated in the Heat Orchestration\nTemplate's Environment File and IP addresses **MUST** be\nassigned.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters",
"full_title": "",
"hide_links": "",
@@ -100411,7 +100482,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -100915,7 +100986,7 @@
"validation_mode": ""
},
"R-96253": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an external network\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualMachineInterface`` Resource ID\nthat is attaching to an ONAP external network (per the ONAP definition,\nsee Requirement R-57424 and R-16968)\n**MUST** use the naming convention\n\n* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}``\n\nwhere\n\n* ``{vm-type}`` is the vm-type\n* ``{vm-type_index}`` references the instance of the ``{vm-type}`` in\n the VNF. The\n ``{vm-type_index}`` is a numeric value that **MUST** start at zero\n in the VNF and\n **MUST** increment by one each time a new instance of a ``{vm-type}``\n is referenced.\n* ``{network-role}`` is the network-role of the ONAP external network\n that the port (i.e. virtual machine interface) is attached to\n* ``{vmi_index}`` references the instance of the virtual machine interface\n on the ``{vm-type}`` attached to ``{network-role}`` network. The\n ``{vmi_index}`` is a numeric value that **MUST** start at zero on an\n instance of a ``{vm-type}`` and **MUST** increment by one each time a\n new virtual machine interface is defined on the instance of the\n ``{vm-type}`` attached to ``{network-role}`` network.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -100946,12 +101017,12 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
"R-96482": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith a single external network, the Resource ID **MUST** contain the text\n``{network-role}``.",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated\nwith a single ONAP external network, the Resource ID **MUST** contain the\ntext ``{network-role}``.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -100980,7 +101051,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -101057,7 +101128,7 @@
"validation_mode": ""
},
"R-96983": {
- "description": "A VNF's Heat Orchestration Template's Resource ID that is associated\nwith an internal network **MUST** include ``int_{network-role}`` as part\nof the Resource ID, where ``int_`` is a hard coded string.",
+ "description": "A VNF's Heat Orchestration Template's Resource ID that is associated\nwith an ONAP internal network (per the ONAP definition, see Requirements\nR-52425 and R-46461 and R-35666)\n**MUST** include ``int_{network-role}`` as part\nof the Resource ID, where ``int_`` is a hard coded string.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}",
"full_title": "",
"hide_links": "",
@@ -101086,7 +101157,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -101176,9 +101247,9 @@
"links": [],
"notes": "",
"parts": {},
- "section_name": "VNF Package Contents",
+ "section_name": "VNF or PNF Package Contents",
"sections": [
- "VNF Package Contents",
+ "VNF or PNF Package Contents",
"VNF or PNF CSAR Package"
],
"status": null,
@@ -101519,7 +101590,7 @@
"validation_mode": ""
},
"R-98138": {
- "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle internal network, the Resource ID **MUST** contain the text\n``int_{network-role}``.",
+ "description": "When a VNF's Heat Orchestration Template's resource is associated with a\nsingle ONAP internal network (per the ONAP definition, see\nRequirements R-52425 and R-46461 and R-35666), the Resource ID **MUST**\ncontain the text\n``int_{network-role}``.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -101548,7 +101619,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "casablanca",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "none"
},
@@ -101905,7 +101976,7 @@
"validation_mode": ""
},
"R-99110": {
- "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming\nconvention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create internal networks.\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.",
+ "description": "A VNF's Heat Orchestration Template's Resource\n``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming\nconvention\n\n* ``int_{network-role}_network``\n\nVNF Heat Orchestration Templates can only create ONAP internal networks\n(per the ONAP definition, see Requirements R-52425 and R-46461 and R-35666).\nThere is no ``{index}`` after ``{network-role}`` because ``{network-role}``\n**MUST** be unique in the scope of the VNF's\nHeat Orchestration Template.",
"docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs",
"full_title": "",
"hide_links": "",
@@ -101936,7 +102007,7 @@
"title_from_content": "",
"type": "req",
"type_name": "Requirement",
- "updated": "dublin",
+ "updated": "frankfurt",
"validated_by": "",
"validation_mode": "static"
},
@@ -102187,7 +102258,7 @@
"validation_mode": ""
},
"R-99794": {
- "description": "An external network **MUST** have one subnet. An external network\n**MAY** have more than one subnet.",
+ "description": "An ONAP external network **MUST** have one subnet. An external network\n**MAY** have more than one subnet.",
"docname": "Chapter5/Heat/ONAP Heat Networking",
"full_title": "",
"hide_links": "",
@@ -102291,7 +102362,7 @@
"validation_mode": "static"
}
},
- "needs_amount": 821
+ "needs_amount": 823
}
}
} \ No newline at end of file
diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml
deleted file mode 100644
index 3e93c1a..0000000
--- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level0.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-resources:
- server_0:
- type: bad-level1.yaml
- properties:
- name: { get_param: server_name_0 }
- my_resource_group_1:
- type: OS::Heat::ResourceGroup
- properties:
- count: 5
- resource_def: { type: bad-level2.yaml }
diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml
deleted file mode 100644
index bdd6131..0000000
--- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level3.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-heat_template_version: '2013-05-23'
-
-resources:
- volume:
- type: OS::Cinder::Volume
- properties:
- size: 1
-
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: volume }
- instance_uuid: { get_resource: instance }
-
- instance:
- type: OS::Nova::Server
- properties:
- image: myimage
- flavor: m1.small
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_0.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level0.yaml
index 95d0b77..669cce7 100644
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_0.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level0.yaml
@@ -40,10 +40,11 @@
---
resources:
server_0:
- type: 17528_1.yaml
+ type: level1.yaml
properties:
name: { get_param: server_name_0 }
my_resource_group_1:
type: OS::Heat::ResourceGroup
properties:
count: 5
+ resource_def: { type: level2.yaml }
diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level1.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level1.yaml
index e30d89e..821eb13 100644
--- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level1.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level1.yaml
@@ -36,7 +36,7 @@
# ============LICENSE_END============================================
#
#
-# VERSION: '1.0.0'
+# VERSION: '1.0.1'
---
nested_template_description: base
@@ -48,14 +48,14 @@ parameters:
resources:
server_0:
- type: bad-level2.yaml
+ type: level3.yaml
properties:
name: {get_param: server_name_0}
my_resource_group_1:
- type: OS::Nova::Server
+ type: OS::Heat::ResourceGroup
properties:
count: 5
- resource_def: { type: bad-level3.yaml }
+ resource_def: { type: level2.yaml }
outputs:
vm_type_volume_id_0:
diff --git a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level2.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level2.yaml
index 7f56a12..c2f109d 100644
--- a/ice_validator/tests/fixtures/test_nesting_level/fail/bad-level2.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level2.yaml
@@ -36,7 +36,7 @@
# ============LICENSE_END============================================
#
#
-# VERSION: '1.0.0'
+# VERSION: '1.0.1'
---
nested_template_description: base
@@ -55,7 +55,7 @@ resources:
type: OS::Heat::ResourceGroup
properties:
count: 5
- resource_def: { type: bad-level3.yaml }
+ resource_def: { type: level3.yaml }
outputs:
vm_type_volume_id_0:
diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level3.yaml b/ice_validator/tests/fixtures/test_nesting_level/fail/level3.yaml
index bdd6131..bdd6131 100644
--- a/ice_validator/tests/fixtures/test_nesting_level/pass/level3.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/fail/level3.yaml
diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml b/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml
index 1ca1659..0213649 100644
--- a/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/pass/level1.yaml
@@ -47,12 +47,8 @@ parameters:
type: number
resources:
- server_0:
- type: level3.yaml
- properties:
- name: {get_param: server_name_0}
my_resource_group_1:
- type: OS::Nova::Server
+ type: OS::Heat::ResourceGroup
properties:
count: 5
resource_def: { type: level2.yaml }
diff --git a/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml b/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml
index c2f109d..fce358a 100644
--- a/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml
+++ b/ice_validator/tests/fixtures/test_nesting_level/pass/level2.yaml
@@ -35,8 +35,6 @@
#
# ============LICENSE_END============================================
#
-#
-# VERSION: '1.0.1'
---
nested_template_description: base
@@ -46,17 +44,6 @@ parameters:
vm_type_volume_size_0:
type: number
-resources:
- server_0:
- type: not_a_template_file
- properties:
- name: {get_param: server_name_0}
- my_resource_group_1:
- type: OS::Heat::ResourceGroup
- properties:
- count: 5
- resource_def: { type: level3.yaml }
-
outputs:
- vm_type_volume_id_0:
- value: {get_resource: vm_type_volume_0}
+ vm_type_volume_name_0:
+ value: {get_param: vm_type_volume_name_0}
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml
deleted file mode 100644
index c5ab87c..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_0.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-resources:
- server_0:
- type: bad-17528_1.yaml
- properties:
- name: { get_param: server_name_0 }
- my_resource_group_1:
- type: OS::Heat::ResourceGroup
- properties:
- count: 5
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml
deleted file mode 100644
index c00e1e3..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_1.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.1'
----
-nested_template_description: base
-
-parameters:
- vm_type_volume_name_0:
- type: string
- vm_type_volume_size_0:
- type: number
-
-resources:
- server_0:
- type: not_a_template_file
- properties:
- name: {get_param: server_name_0}
- my_resource_group_1:
- type: OS::Nova::Server
- properties:
- count: 5
- resource_def: { type: bad-17528_2.yaml }
- my_resource_group_2:
- type: OS::Nova::Server
-
-outputs:
- vm_type_volume_id_0:
- value: {get_resource: vm_type_volume_0}
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml
deleted file mode 100644
index 7dd2f64..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/fail/bad-17528_2.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.1'
----
-heat_template_version: '2013-05-23'
-
-resources:
- volume:
- type: OS::Cinder::Volume
- properties:
- size: 1
-
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: volume }
- instance_uuid: { get_resource: instance }
-
- instance:
- type: OS::Nova::NotServer
- properties:
- image: myimage
- flavor: m1.small
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml
deleted file mode 100644
index 3e2546f..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_1.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-nested_template_description: base
-
-parameters:
- vm_type_volume_name_0:
- type: string
- vm_type_volume_size_0:
- type: number
-
-resources:
- server_0:
- type: not_a_template_file
- properties:
- name: {get_param: server_name_0}
- my_resource_group_1:
- type: OS::Nova::Server
- properties:
- count: 5
- #resource_def: { type: 17528_3.yaml }
- resource_def: { type: 17528_2.yaml }
-
-outputs:
- vm_type_volume_id_0:
- value: {get_resource: vm_type_volume_0}
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml
deleted file mode 100644
index 1d17164..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_2.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-heat_template_version: '2013-05-23'
-
-resources:
- volume:
- type: OS::Cinder::Volume
- properties:
- size: 1
-
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: volume }
- instance_uuid: { get_resource: instance }
-
- instance:
- type: OS::Nova::NotServer
- properties:
- image: myimage
- flavor: m1.small
diff --git a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml b/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml
deleted file mode 100644
index a38fd9c..0000000
--- a/ice_validator/tests/fixtures/test_nesting_nova_server/pass/17528_3.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-# VERSION: '1.0.0'
----
-nested_template_description: base
-
-parameters:
- vm_type_volume_name_0:
- type: string
- vm_type_volume_size_0:
- type: number
-
-resources:
- server_0:
- type: not_a_template_file
- properties:
- name: {get_param: server_name_0}
- my_resource_group_1:
- type: OS::Nova::Server
- properties:
- count: 5
- resource_def: { type: 17528_2.yaml }
-
-outputs:
- vm_type_volume_id_0:
- value: {get_resource: vm_type_volume_0}
diff --git a/ice_validator/tests/structures.py b/ice_validator/tests/structures.py
index 09dd222..aaed8d1 100644
--- a/ice_validator/tests/structures.py
+++ b/ice_validator/tests/structures.py
@@ -36,8 +36,6 @@
# ============LICENSE_END============================================
#
#
-"""structures
-"""
import collections
import inspect
import os
@@ -732,6 +730,31 @@ class Heat(object):
re.search("(^(%(x)s)_)|(_(%(x)s)_)|(_(%(x)s)$)" % dict(x=part), name)
)
+ def iter_nested_heat(self):
+ """
+ Returns an iterable of tuples (int, heat) where the first parameter is the
+ depth of the nested file and the second item is an instance of Heat
+ """
+
+ def walk_nested(heat, level=1):
+ resources = [Resource(r_id, data) for r_id, data in heat.resources.items()]
+ for resource in resources:
+ if resource.is_nested():
+ nested_path = os.path.join(
+ self.dirname, resource.get_nested_filename()
+ )
+ nested_heat = Heat(nested_path)
+ yield level, nested_heat
+ yield from walk_nested(nested_heat, level + 1)
+
+ yield from walk_nested(self)
+
+ def __str__(self):
+ return "Heat({})".format(self.filepath)
+
+ def __repr__(self):
+ return str(self)
+
class Env(Heat):
"""An Environment file
@@ -832,6 +855,12 @@ class Resource(object):
else:
return {}
+ def __str__(self):
+ return "Resource(id={}, type={})".format(self.resource_id, self.resource_type)
+
+ def __repr__(self):
+ return str(self)
+
def get_all_resources(yaml_files):
"""Return a dict, resource id: resource
diff --git a/ice_validator/tests/test_environment_file_parameters.py b/ice_validator/tests/test_environment_file_parameters.py
index 41a2aa1..84c5c34 100644
--- a/ice_validator/tests/test_environment_file_parameters.py
+++ b/ice_validator/tests/test_environment_file_parameters.py
@@ -234,8 +234,11 @@ def get_preload_excluded_parameters(yaml_file, persistent_only=False, env_spec=N
for spec in specs:
if persistent_only and not spec.get("persistent"):
continue
- results.extend(get_template_parameters(yaml_file, resource_type,
- spec, all_resources, nested_resources=True))
+ results.extend(
+ get_template_parameters(
+ yaml_file, resource_type, spec, all_resources, nested_resources=True
+ )
+ )
results = {item["param"] for item in results}
for param in Heat(yaml_file).parameters:
# AZs often are manipulated and passed into nested templates making
@@ -246,14 +249,18 @@ def get_preload_excluded_parameters(yaml_file, persistent_only=False, env_spec=N
return results
-def get_template_parameters(yaml_file, resource_type, spec, all_resources=False, nested_resources=False):
+def get_template_parameters(
+ yaml_file, resource_type, spec, all_resources=False, nested_resources=False
+):
parameters = []
heat = Heat(yaml_file)
if all_resources:
resources = heat.resources if not nested_resources else heat.get_all_resources()
else:
- resources = heat.get_resource_by_type(resource_type, all_resources=nested_resources)
+ resources = heat.get_resource_by_type(
+ resource_type, all_resources=nested_resources
+ )
for rid, resource_props in resources.items():
for param in prop_iterator(resource_props, *spec.get("property")):
if param and get_param(param) and param_helper(spec, get_param(param), rid):
diff --git a/ice_validator/tests/test_nesting_level.py b/ice_validator/tests/test_nesting_level.py
index 6c31dbb..bb8c704 100644
--- a/ice_validator/tests/test_nesting_level.py
+++ b/ice_validator/tests/test_nesting_level.py
@@ -34,30 +34,33 @@
# limitations under the License.
#
# ============LICENSE_END============================================
-#
-#
-
-"""
-test nesting level
-0 -> 1 -> 2 -> too many levels.
-"""
+from .structures import Heat
from .utils import nested_files
from .helpers import validates
-VERSION = "1.1.0"
-
-# pylint: disable=invalid-name
-
-@validates("R-60011")
+@validates("R-60011", "R-17528")
def test_nesting_level(yaml_files):
- """
- A VNF's Heat Orchestration Template **MUST** have no more than two
- levels of nesting.
- """
- bad, __, __, __ = nested_files.get_nesting(yaml_files)
- assert not bad, "nesting depth of %d exceeded: %s" % (
- nested_files.MAX_DEPTH,
- ", ".join(bad),
- )
+ errors = set()
+ non_nested_files = [
+ f for f in yaml_files if not nested_files.file_is_a_nested_template(f)
+ ]
+ heats = [Heat(f) for f in non_nested_files]
+ for heat in heats:
+ for depth, nested_heat in heat.iter_nested_heat():
+ if depth >= 3:
+ errors.add(
+ (
+ "{} is nested {} levels deep, but a maximum of {} levels are "
+ "supported."
+ ).format(nested_heat.basename, depth, nested_files.MAX_DEPTH)
+ )
+ if depth == 2 and nested_heat.resources:
+ errors.add(
+ (
+ "{} is a second level nested file, but it includes "
+ "resources. Remove all Heat resources from this file."
+ ).format(nested_heat.basename)
+ )
+ assert not errors, "\n\n".join(errors)
diff --git a/ice_validator/tests/test_nesting_nova_server.py b/ice_validator/tests/test_nesting_nova_server.py
deleted file mode 100644
index cce4c98..0000000
--- a/ice_validator/tests/test_nesting_nova_server.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- coding: utf8 -*-
-# ============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");
-# you may not use this software except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# 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
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# ============LICENSE_END============================================
-#
-#
-
-"""
-test nesting level
-0 -> 1 -> 2 -> too many levels.
-"""
-
-import pytest
-
-from .utils import nested_files
-from .helpers import validates
-
-VERSION = "1.0.0"
-
-
-def get_nova_server_count(heat):
- """return the number of OS::Nova::Server
- resources in heat
- """
- return len(heat.get_resource_by_type("OS::Nova::Server"))
-
-
-# pylint: disable=invalid-name
-
-
-@validates("R-17528")
-def test_nesting_nova_server(yaml_files):
- """
- A VNF's Heat Orchestration Template's first level Nested YAML file
- **MUST NOT** contain more than one ``OS::Nova::Server`` resource.
- A VNF's Heat Orchestration Template's second level Nested YAML file
- **MUST NOT** contain an ``OS::Nova::Server`` resource.
-
- level: 0 1 2 3
- template -> nested -> nested -> too many levels
- """
- bad, __, heat, depths = nested_files.get_nesting(yaml_files)
- if bad:
- pytest.skip("nesting depth exceeded")
- for parent, depth in depths.items():
- for depth_tuple in depth:
- depth, context = depth_tuple
- if depth > 1:
- fname = context[0]
- nservers = get_nova_server_count(heat[fname])
- if nservers > 1:
- bad.append(
- "nested template %s must have only have 1 "
- "OS::Nova::Server defined, but %s were found"
- % (fname, nservers)
- )
- if depth > 2:
- fname = context[1]
- nservers = get_nova_server_count(heat[fname])
- if nservers > 0:
- bad.append(
- "nested template %s must not have an "
- "OS::Nova::Server defined, but %s were found"
- % (fname, nservers)
- )
- assert not bad, "; ".join(bad)
diff --git a/ice_validator/tests/utils/nested_files.py b/ice_validator/tests/utils/nested_files.py
index e5f5941..e1918ad 100644
--- a/ice_validator/tests/utils/nested_files.py
+++ b/ice_validator/tests/utils/nested_files.py
@@ -34,26 +34,15 @@
# limitations under the License.
#
# ============LICENSE_END============================================
-#
-#
-"""nested files
-"""
from functools import lru_cache
from os import path, listdir
import re
from tests import cached_yaml as yaml
-from tests.structures import Heat
from tests.helpers import load_yaml
-VERSION = "1.4.0"
-
-"""
-test nesting depth
-0 -> 1 -> 2 -> too deep.
-"""
-MAX_DEPTH = 3
+MAX_DEPTH = 2
def check_for_invalid_nesting( # pylint: disable=too-many-branches
@@ -70,7 +59,7 @@ def check_for_invalid_nesting( # pylint: disable=too-many-branches
for v in yml.values():
if isinstance(v, dict) and "type" in v:
t = v["type"]
- if t.endswith(".yml") or t.endswith(".yaml"):
+ if t.lower().endswith(".yml") or t.lower().endswith(".yaml"):
filepath = path.join(dirpath, t)
elif t == "OS::Heat::ResourceGroup":
rd = v["properties"]["resource_def"]
@@ -98,18 +87,6 @@ def check_for_invalid_nesting( # pylint: disable=too-many-branches
return invalid_nesting
-def get_dict_of_nested_files(yml, dirpath):
- """Return dict.
- key: resource id in yml which references a nested file.
- value: the nested file name.
- Nested files are either referenced through "type", or
- for OS::Heat::ResourceGroup, through "resource_def type".
- """
- nested_files = get_type_nested_files(yml, dirpath)
- nested_files.update(get_resourcegroup_nested_files(yml, dirpath))
- return nested_files
-
-
@lru_cache(maxsize=None)
def get_list_of_nested_files(yml_path, dirpath):
"""
@@ -138,62 +115,6 @@ def get_list_of_nested_files(yml_path, dirpath):
return nested_files
-def get_nesting(yaml_files):
- """return bad, files, heat, depths
- bad - list of error messages.
- files - dict: key is filename, value is dict of nested files.
- This is the tree.
- heat - dict,: key is filename, value is Heat instance.
- depths - dict: key is filename, value is a depth tuple
-
- level: 0 1 2 3
- file: template -> nested -> nested -> nested
- depth: 3 2 1 0
- """
- bad = []
- files = {}
- heat = {}
- depths = {}
- for yaml_file in yaml_files:
- dirname, basename = path.split(yaml_file)
- h = Heat(filepath=yaml_file)
- heat[basename] = h
- files[basename] = get_dict_of_nested_files(h.yml, dirname)
- for filename in files:
- depths[filename] = _get_nesting_depth_start(0, filename, files, [])
- for depth in depths[filename]:
- if depth[0] > MAX_DEPTH:
- bad.append("{} {}".format(filename, str(depth[1])))
- return bad, files, heat, depths
-
-
-def _get_nesting_depth_start(depth, filename, files, context):
- depths = []
- for rid, nf in files[filename].items():
- depths.append(_get_nesting_depth(1, nf, files, context))
- return depths
-
-
-def _get_nesting_depth(depth, filename, files, context):
- """Return a depth tuple (max_depth, current_context).
- `context` is the list of filenames.
- `depth` is the length of `context`.
- Finds the max_depth of all the resources of `filename`.
- current_context is the updated list of filenames
- and max_depth is its length.
- """
- max_depth = depth + 1
- current_context = context + [filename]
- if depth <= MAX_DEPTH:
- nested_filenames = files.get(filename, {})
- if nested_filenames:
- max_depth, current_context = max(
- _get_nesting_depth(depth + 1, nested_filename, files, current_context)
- for nested_filename in nested_filenames.values()
- )
- return max_depth, current_context
-
-
def get_resourcegroup_nested_files(yml, dirpath):
"""
return a dict.