From cffcba907a997a3771e0d9b2e6068333aa31ba03 Mon Sep 17 00:00:00 2001 From: "Bozawglanian, Hagop (hb755d)" Date: Thu, 31 Jan 2019 19:25:20 +0000 Subject: VNFRQTS - Updating format of test case annex Issue-ID: VNFRQTS-531 Change-Id: If8ef548ba2e231280d94b238a4645fd74ae52bd5 Signed-off-by: Bozawglanian, Hagop (hb755d) --- docs/Chapter2.rst | 3 +- docs/rst.csv | 1172 +++++++++++++++++++++++++++++ docs/traceability.csv | 1988 ++++++++++++++++++++++++++++++++++++++++++++----- etc/requirements.txt | 2 +- 4 files changed, 2960 insertions(+), 205 deletions(-) create mode 100644 docs/rst.csv mode change 100755 => 100644 docs/traceability.csv diff --git a/docs/Chapter2.rst b/docs/Chapter2.rst index 7315265..5ae8ec8 100644 --- a/docs/Chapter2.rst +++ b/docs/Chapter2.rst @@ -46,7 +46,8 @@ You can download the table **Note: VVP only validates Heat for Requirements in Chapter 5.** .. csv-table:: **Test Traceability** - :file: traceability.csv + :name: traceability-matrix + :file: rst.csv :header-rows: 1 :align: center :widths: auto diff --git a/docs/rst.csv b/docs/rst.csv new file mode 100644 index 0000000..f44ff78 --- /dev/null +++ b/docs/rst.csv @@ -0,0 +1,1172 @@ +Requirement ID,Requirement,Test Module,Test Name +`R-00977 `_,"A VNF's Heat Orchestration Template's ``{network-role}`` +**MUST NOT** be a substring of ``{vm-type}``.",`test_nova_servers_vm_types `_,test_vm_type_network_role_collision +`R-01455 `_,"When a VNF's Heat Orchestration Template creates a Virtual Machine +(i.e., ``OS::Nova::Server``), +each ""class"" of VMs **MUST** be assigned a VNF unique +``{vm-type}``; where ""class"" defines VMs that +**MUST** have the following identical characteristics: + + 1.) ``OS::Nova::Server`` resource property ``flavor`` value + + 2.) ``OS::Nova::Server`` resource property ``image`` value + + 3.) Cinder Volume attachments + + - Each VM in the ""class"" **MUST** have the identical Cinder Volume + configuration + + 4.) Network attachments and IP address requirements + + - Each VM in the ""class"" **MUST** have the identical number of + ports connecting to the identical networks and requiring the identical + IP address configuration.",`test_vm_class_has_unique_type `_,test_vm_class_has_unique_type +`R-02164 `_,"When a VNF's Heat Orchestration Template's Contrail resource +has a property that +references an external network that requires the network's +Fully Qualified Domain Name (FQDN), the property parameter + +* **MUST** follow the format ``{network-role}_net_fqdn`` +* **MUST** be declared as type ``string`` +* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's + Environment File",`test_contrail_fqdn `_,test_contrail_fqdn +`R-02691 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter ``workload_context`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_workload_context_parameter_doesnt_exist_in_environment_file +`R-03324 `_,"A VNF's Heat Orchestration template's Environment File **MUST** +contain the ``parameters:`` section.",`test_environment_file_structure `_,test_environment_file_contains_required_sections +`R-04697 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_ips`` + + where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the external + network",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-04747 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig`` +Resource ID **MUST** contain the ``{vm-type}``.",`test_cloud_config_resource_id `_,test_cloud_config +`R-05257 `_,"A VNF's Heat Orchestration Template's **MUST NOT** +contain the Resource ``OS::Neutron::FloatingIP``.",`test_forbidden_resources `_,test_neutron_floating_ip_resource_type +`R-07443 `_,"A VNF's Heat Orchestration Templates' Cinder Volume Module Output +Parameter's name and type **MUST** match the input parameter name and type +in the corresponding Base Module or Incremental Module.",`test_volume_outputs_consumed `_,test_volume_outputs_consumed +`R-07507 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter +**MUST** be declared as ``vnf_id`` and the parameter **MUST** +be defined as type: ``string``.",`test_server_parameters `_,test_vnf_id_parameter_type_and_parameter_name +`R-08975 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig`` +Resource ID **MUST** contain the ``{vm-type}``.",`test_software_config_resource_id `_,test_software_config_vm_type +`R-09811 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vf_module_index_parameter_has_no_constraints +`R-10754 `_,"If a VNF has two or more ports that +attach to an external network that require a Virtual IP Address (VIP), +and the VNF requires ONAP automation to assign the IP address, +all the Virtual Machines using the VIP address **MUST** +be instantiated in the same Base Module Heat Orchestration Template +or in the same Incremental Module Heat Orchestration Template.",`test_neutron_port_addresses `_,test_neutron_port_floating +`R-10834 `_,"If a VNF's Heat Orchestration Template resource attribute +``property:`` uses a nested ``get_param``, the nested +``get_param`` **MUST** reference an index. + +That is, to obtain a property value, two ``get_param`` intrinsic +functions are used. The second ``get_param`` must be used +to obtain an index value used to reference a parameter value in +a parameter defined as ``type: comma_delimited_list``. For +example: + +* ``name: {get_param: [ name, get_param: index ] }``",`test_nested_parameter_args `_,test_nested_parameter_args +`R-11041 `_,"All parameters defined in a VNFs Nested YAML file +**MUST** be passed in as properties of the resource calling +the nested yaml file.",`test_nested_template_parameters `_,test_nested_template_parameters +`R-11200 `_,"A VNF's Cinder Volume Module, when it exists, **MUST** be 1:1 +with a Base module or Incremental module.",`test_volume_outputs_consumed `_,test_volume_outputs_consumed +`R-11441 `_,"A VNF's Heat Orchestration Template's parameter type **MUST** be one of +the following values: + +* ``string`` +* ``number`` +* ``json`` +* ``comma_delimited_list`` +* ``boolean``",`test_heat_template_structure `_,test_parameter_type +`R-11690 `_,"When a VNF's Heat Orchestration Template's Resource ID contains an +``{index}``, the ``{index}`` is a numeric value that **MUST** start at +zero and **MUST** increment by one. + +As stated in R-16447, +*a VNF's MUST be unique across all Heat +Orchestration Templates and all HEAT Orchestration Template +Nested YAML files that are used to create the VNF*. While the ``{index}`` +will start at zero in the VNF, the ``{index}`` may not start at zero +in a given Heat Orchestration Template or HEAT Orchestration Template +Nested YAML file.",`test_resource_indices `_,test_indices_start_at_0_increment +`R-13194 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``environment_context`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_environment_context_parameter_doesnt_exist_in_environment_file +`R-15287 `_,"When the VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` is attaching +to an external network (per the ONAP definition, see +Requirement R-57424), +and an IPv6 address is being cloud assigned by OpenStack's DHCP Service +and the external network IPv6 subnet is to be specified +using the property ``fixed_ips`` +map property ``subnet``, the parameter +**MUST** follow the naming convention + + * ``{network-role}_v6_subnet_id`` + +where + + * ``{network-role}`` is the network role of the network.",`test_neutron_port_fixed_ips `_,test_neutron_port_external_fixed_ips +`R-15480 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name`` +**MUST NOT** have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vf_module_name_parameter_has_no_constraints +`R-16241 `_,"A VNF's internal network **MUST** have one subnet. +A VNF's internal network **MAY** have more than one subnet.",`test_network_format `_,test_network_has_subnet +`R-16437 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate`` +Resource ID **MUST** contain the ``{vm-type}``.",`test_contrail_resource_id `_,test_contrail_servicetemplate_resource_id +`R-16447 `_,"A VNF's **MUST** be unique across all Heat +Orchestration Templates and all HEAT Orchestration Template +Nested YAML files that are used to create the VNF.",`test_unique_resources_across_all_templates `_,test_unique_resources_across_all_yaml_files +`R-16968 `_,"A VNF's Heat Orchestration Templates **MUST NOT** include heat +resources to create external networks.",`test_network_format `_,test_network_resource_id_format +`R-17528 `_,"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.",`test_nesting_nova_server `_,test_nesting_nova_server +`R-18008 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``network`` parameter **MUST** be declared as type: ``string``.",`test_neutron_port_network_parameter `_,test_neutron_port_network_param_is_string +`R-18683 `_,"If a VNF has one IPv4 OAM Management IP Address and the +IP Address needs to be inventoried in ONAP's A&AI +database, an output parameter **MUST** be declared in only one of the +VNF's Heat Orchestration Templates and the parameter **MUST** be named +``oam_management_v4_address``.",`test_oam_address_outputs `_,test_oam_address_v4_zero_or_one +`R-19756 `_,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter +``{vm-type}_{network-role}_route_prefixes`` +**MUST** be defined as type ``json``.",`test_contrail_irt_routes `_,test_contrail_irt_route_param_type +`R-20065 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::PortTuple`` +Resource ID **MUST** contain the ``{vm-type}``.",`test_contrail_resource_id `_,test_contrail_porttuple_resource_id +`R-20308 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``environment_context`` +parameter **MUST** be declared as ``environment_context`` and the +parameter type **MUST** be defined as type: ``string``.",`test_nova_servers_environment_context `_,test_environment_context +`R-20453 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is attaching to an external network Resource ID +**MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{port-index}`` is the instance of the port on the vm-type + attached to the network of ``{network-role}``",`test_port_resource_ids `_,test_port_resource_ids +`R-20856 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_vnf_id_parameter_doesnt_exist_in_environment_file +`R-20947 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a sub-interface port attached to a +sub-interface network Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_subint +`R-22288 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``int_{network-role}_v6_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +`R-22688 `_,"If a VNF's port is connected to an internal network and the port is +created in an Incremental Module and the internal network is created +in the Base Module then the UUID of the internal network **MUST** be +exposed as a parameter in the ``outputs:`` section of the Base Module +and the port resource **MUST** use a ``get_param`` to obtain the network +UUID.",`test_neutron_port_internal_network `_,test_neutron_port_internal_network +`R-22838 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``name`` parameter **MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File.",`test_environment_file_parameters `_,test_nova_server_name_parameter_doesnt_exist_in_environment_file +`R-23311 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Nova::Server`` property +``availability_zone`` parameter **MUST** be declared as type: ``string``.",`test_server_parameters `_,test_availability_zone_parameter_type +`R-23503 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_v6_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-23664 `_,"A VNF's Heat Orchestration template **MUST** +contain the section ``resources:``.",`test_heat_template_structure `_,test_heat_template_structure_contains_resources +`R-25720 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net`` +Resource ID **MUST** use the naming convention + +* ``int_{network-role}_network`` + +VNF Heat Orchestration Templates can only create internal networks. +There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` +**MUST** be unique in the scope of the VNF's +Heat Orchestration Template.",`test_neutron_net_resource_id `_,test_neutron_net_resource_id +`R-25877 `_,"A VNF's Heat Orchestration Template's parameter name +(i.e., ) **MUST** contain only alphanumeric +characters and underscores ('_').",`test_heat_parameter_section `_,test_parameter_names +`R-26351 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is attaching to an internal network Resource ID **MUST** +use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{port-index}`` is the instance of the port on the vm-type + attached to the network of ``{network-role}``",`test_port_resource_ids `_,test_port_resource_ids +`R-26506 `_,"A VNF's Heat Orchestration Template's ``{network-role}`` **MUST** contain +only alphanumeric characters and/or underscores '_' and +**MUST NOT** contain any of the following strings: +``_int`` or ``int_`` or ``_int_``.",`test_port_resource_ids `_,test_port_resource_ids +`R-270358 `_,"A VNF's Heat Orchestration Template's Cinder Volume Template **MUST** +contain either + +* An ``OS::Cinder::Volume`` resource +* An ``OS::Heat::ResourceGroup`` resource that references a Nested YAML + file that contains an ``OS::Cinder::Volume`` resource +* A resource that defines the property ``type`` as a Nested YAML file + (i.e., static nesting) and the Nested YAML contains + an ``OS::Cinder::Volume`` resource",`test_volume_templates `_,test_volume_templates_contains_cinder_or_resource_group +`R-27078 `_,"A VNF's Heat Orchestration template **MUST** contain the +section ``heat_template_version:``.",`test_heat_template_structure `_,test_heat_template_structure_contains_heat_template_version +`R-27818 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``string``, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_int_{network-role}_v6_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the internal network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-28222 `_,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter name +**MUST** follow the format + +* ``{vm-type}_{network-role}_route_prefixes``",`test_contrail_irt_routes `_,test_contrail_irt_route_param_format +`R-28795 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_ip_{index}`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +`R-29751 `_,"A VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` Resource ID +**MUST** use the naming convention + +* ``{vm-type}_server_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{index}`` is the index",`test_nova_server_resource_id `_,test_nova_server_resource_id +`R-29765 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_int_{network-role}_v6_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-29872 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``network`` +parameter **MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_network_parameter_doesnt_exist_in_environment_file +`R-304011 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource's + +* Resource ID (defined in R-29751) +* property ``image`` parameter name (defined in R-58670) +* property ``flavor`` parameter name (defined in R-45188) +* property ``name`` parameter name (defined in R-54171 & R-87817) +* property port referenced OS::Neutron::Port Resource ID + (defined in R-20453) + +**MUST** contain the identical ``{vm-type}`` +and **MUST** follow the naming conventions defined +in R-58670, R-45188, R-54171, R-87817, and R-29751. And the ``{index}`` in +the ``OS::Nova::Server`` Resource ID (defined in R-29751) **MUST** match +the ``{vm-type_index}`` defined in +the ``OS::Nova::Server`` property ``port`` +referenced ``OS::Neutron::Port`` Resource ID (defined in R-20453).",`test_server_and_port_vm_indices_match `_,test_server_and_port_vmtype_indices_match +`R-30753 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::NetworkIpam`` +Resource ID +**MUST** +contain the ``{network-role}``.",`test_contrail_resource_id `_,test_contrail_networkipam_resource_id +`R-30804 `_,"A VNF's Heat Orchestration Template's Resource +``OS::Heat::MultipartMime`` +Resource ID +**MUST** +contain the ``{vm-type}``.",`test_multipart_mime_resource_id `_,test_multipart_mime +`R-31141 `_,"VNF Heat Orchestration Template's Cinder Volume Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Cinder Volume Module with ``.y[a]ml`` replaced with ``.env``.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-32394 `_,"A VNF's Heat Orchestration Template's use of ``{vm-type}`` in all Resource +property parameter names **MUST** be the same case.",`test_vm_type_case `_,test_vm_type_case +`R-34037 `_,"The VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +**MUST** be declared as either type ``string`` or type +``comma_delimited_list``.",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-34055 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter ``workload_context`` **MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_workload_context_parameter_has_no_constraints +`R-348813 `_,"The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include +a binary image file.",`test_no_image_files `_,test_no_image_files_included +`R-35414 `_,"A VNF Heat Orchestration's template **MUST** contain the +section ``parameters:``.",`test_heat_template_structure `_,test_heat_template_structure_contains_parameters +`R-35666 `_,"If a VNF has an internal network, the VNF Heat Orchestration Template +**MUST** include the heat resources to create the internal network.",`test_network_format `_,test_network_resource_id_format +`R-35735 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 Virtual IP (VIP) +address is assigned via ONAP automation +using the property ``allowed_address_pairs`` +map property ``ip_address``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_floating_v6_ip`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + +And the parameter **MUST** be declared as type ``string``.",`test_allowed_address_pairs_include_vm_type_network_role `_,test_allowed_address_pairs_include_vm_type_network_role +`R-36542 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` parameter +``vnf_name`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_vnf_name_parameter_doesnt_exist_in_environment_file +`R-36772 `_,"A VNF's Heat Orchestration Template's parameter **MUST** include the +attribute ``type:``.",`test_heat_template_parameters_contain_required_fields `_,test_heat_template_parameters_contain_required_fields +`R-37028 `_,A VNF **MUST** be composed of one Base Module,`test_base_template_names `_,test_base_template_names +`R-37039 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_index`` parameter +``vf_module_index`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_vf_module_index_parameter_doesnt_exist_in_environment_file +`R-37437 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property ``metadata`` **MUST** +contain the key/value pair ``vnf_id`` +and the value **MUST** be obtained via a ``get_param``.",`test_servers_have_required_metadata `_,test_servers_have_required_metadata +`R-38236 `_,"The VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +**MUST** be declared type ``string``.",`test_neutron_port_fixed_ips `_,test_neutron_port_fixed_ips +`R-38474 `_,A VNF's Base Module **MUST** have a corresponding Environment File.,`test_env_and_yaml_same_name `_,test_env_and_yaml_same_name +`R-39067 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be +declared as ``vf_module_name`` and the parameter **MUST** +be defined as type: ``string``.",`test_server_parameters `_,test_vf_module_name_parameter_type_and_parameter_name +`R-39402 `_,"A VNF's Heat Orchestration Template **MUST** contain the +section ``description:``.",`test_heat_template_structure `_,test_heat_template_structure_contains_description +`R-39841 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_ip_{index}`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +`R-40499 `_,"Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** +have a unique parameter name for the ``OS::Nova::Server`` property +``flavor`` even if more than one ``{vm-type}`` shares the same flavor.",`test_nova_servers_resource_ids `_,test_nova_servers_valid_resource_ids +`R-40971 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a string, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_{network-role}_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the external network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-41492 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 Virtual IP (VIP) +address is assigned via ONAP automation +using the property ``allowed_address_pairs`` +map property ``ip_address`` and +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_floating_ip`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + +And the parameter **MUST** be declared as type ``string``.",`test_allowed_address_pairs_include_vm_type_network_role `_,test_allowed_address_pairs_include_vm_type_network_role +`R-41888 `_,"A VNF's Heat Orchestration Template intrinsic function +``get_file`` **MUST NOT** utilize URL-based file retrieval.",`test_get_file_only_reference_local_files `_,test_get_file_no_url_retrieval +`R-41956 `_,"If a VNF requires ONAP to assign a Virtual IP (VIP) Address to +ports connected an external network, the port +**MUST NOT** have more than one IPv6 VIP address.",`test_neutron_port_addresses `_,test_neutron_port_external_ipaddress_v6 +`R-44001 `_,"A VNF's Heat Orchestration Template parameter declaration **MUST** +contain the attribute ``description``.",`test_heat_template_parameters_contain_required_fields `_,test_heat_template_parameters_contain_required_fields +`R-44318 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` +parameter ``vnf_name`` **MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vnf_name_parameter_has_no_constraints +`R-45188 `_,"The VNF's Heat Orchestration Template's Resource 'OS::Nova::Server' property +``flavor`` parameter name **MUST** follow the naming convention +``{vm-type}_flavor_name``.",`test_nova_servers_vm_types `_,test_nova_server_flavor_parameter +`R-46128 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a port attached to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of {network-role} +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_external +`R-46839 `_,"A VNF's Heat Orchestration Template's use of ``{vm-type}`` +in all Resource IDs **MUST** be the same case.",`test_vm_type_resource_id `_,test_vm_type_resource_id +`R-48067 `_,"A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST NOT** be a +substring +of ``{network-role}``.",`test_nova_servers_vm_types `_,test_vm_type_network_role_collision +`R-481670 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``flavor`` value **MUST** be be obtained via a ``get_param``.",`test_nova_servers_vm_types_use_get_param `_,test_vm_type_assignments_on_nova_servers_only_use_get_param +`R-50011 `_,"A VNF's Heat Orchestration Template's ``OS::Heat::ResourceGroup`` +property ``count`` **MUST** be enumerated in the VNF's +Heat Orchestration Template's Environment File and **MUST** be +assigned a value.",`test_environment_file_parameters `_,test_heat_rg_count_parameter_exists_in_environment_file +`R-50436 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``flavor`` parameter **MUST** be declared as type: ``string``.",`test_nova_servers_vm_types `_,test_nova_server_flavor_parameter +`R-50468 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",`test_contrail_vmi_resource_id `_,test_contrail_instance_ip_resource_id_internal +`R-50816 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property ``metadata`` **MAY** +contain the key/value pair ``vf_module_index`` +and the value **MUST** be obtained via a ``get_param``.",`test_servers_metadata_use_get_param `_,test_servers_vf_module_index_metadata_use_get_param +`R-511776 `_,"When a VNF's Heat Orchestration Template is ready +to be on-boarded to ONAP, +all files composing the VNF Heat Orchestration Template +**MUST** be placed in a flat (i.e., non-hierarchical) directory and +archived using ZIP. The resulting ZIP file is uploaded into ONAP.",`test_files_in_flat_dir `_,test_files_in_flat_dir +`R-51430 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``name`` parameter **MUST** be declared as either type ``string`` +or type ``comma_delimited_list``.",`test_nova_servers_vm_types `_,test_nova_server_name_parameter +`R-53310 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a port attached to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the {vm-type} +* ``{network-role}`` is the network-role of the network that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type attached to the network of {network-role} +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_external +`R-53433 `_,A VNF's Cinder Volume Module **MUST** have a corresponding environment file,`test_env_and_yaml_same_name `_,test_env_and_yaml_same_name +`R-53952 `_,"A VNF's Heat Orchestration Template's Resource +**MUST NOT** reference a HTTP-based resource definitions.",`test_no_http_resources `_,test_no_http_resources +`R-54171 `_,"When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` parameter is defined as a ``string``, +the parameter name **MUST** follow the naming convention + +* ``{vm-type}_name_{index}`` + +where ``{index}`` is a numeric value that **MUST** start at +zero in a VNF's Heat Orchestration Template and **MUST** increment by one.",`test_nova_server_name_parameters_start_at_0 `_,test_nova_server_name_parameter_starts_at +`R-54340 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_index`` parameter **MUST** +be declared as ``vf_module_index`` and the parameter **MUST** be +defined as type: ``number``.",`test_server_parameters `_,test_vf_module_index_parameter_type_and_parameter_name +`R-54458 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to a sub-interface +network Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",`test_contrail_vmi_resource_id `_,test_contrail_instance_ip_resource_id_subint +`R-55218 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vnf_id_parameter_has_no_constraints +`R-55306 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT** +be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be +used in VNF's Volume template; +it is not supported.",`test_volume_templates `_,test_no_vf_module_index_in_cinder +`R-56183 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata``key/value pair ``environment_context`` +parameter ``environment_context`` **MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_environment_context_parameter_has_no_constraints +`R-56438 `_,"A VNF's Heat Orchestration Template's Nested YAML file extension **MUST** +be in the lower case format ``.yaml`` or ``.yml``.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-57282 `_,"Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** +have a unique parameter name for the ``OS::Nova::Server`` property +``image`` even if more than one ``{vm-type}`` shares the same image.",`test_nova_servers_resource_ids `_,test_nova_servers_valid_resource_ids +`R-58670 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter name **MUST** follow the naming convention +``{vm-type}_image_name``.",`test_nova_servers_vm_types `_,test_nova_server_image_parameter +`R-589037 `_,"A VNF Heat Orchestration Template's Cinder Volume Module resources section +**MUST** only be defined using one of the following: + +* one of more ``OS::Cinder::Volume`` resources +* one or more ``OS::Heat::ResourceGroup`` resources that call a nested YAML + file that contains only ``OS::Cinder::Volume`` resources +* a resource that calls a nested YAML file (static nesting) that contains + only ``OS::Cinder::Volume`` resources",`test_volume_module_naming `_,test_detected_volume_module_follows_naming_convention +`R-59568 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``availability_zone`` parameter **MUST NOT** be enumerated in the Heat +Orchestration +Template's Environment File.",`test_environment_file_parameters `_,test_nova_server_az_parameter_doesnt_exist_in_environment_file +`R-599443 `_,"A parameter enumerated in a +VNF's Heat Orchestration Template's environment file **MUST** be declared +in the +corresponding VNF's Heat Orchestration Template's YAML file's +``parameters:`` section.",`test_env_parameters_defined_in_template `_,test_env_params_are_defined_in_template +`R-60011 `_,"A VNF's Heat Orchestration Template **MUST** have no more than two +levels of nesting.",`test_nesting_level `_,test_nesting_level +`R-62187 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a port attached to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_internal +`R-62428 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` parameter **MUST** +be declared as ``vnf_name`` and the parameter **MUST** be defined as +type: ``string``.",`test_server_parameters `_,test_vnf_name_parameter_type_and_parameter_name +`R-62590 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``fixed_ips`` +map property ``ip_address`` +parameter associated with an external network, i.e., + + * ``{vm-type}_{network-role}_ip_{index}`` + * ``{vm-type}_{network-role}_v6_ip_{index}`` + * ``{vm-type}_{network-role}_ips`` + * ``{vm-type}_{network-role}_v6_ips`` + + +**MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File. ONAP provides the IP address +assignments at orchestration time.",`test_environment_file_parameters `_,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +`R-62802 `_,"When the VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` is attaching +to an external network (per the ONAP definition, see +Requirement R-57424), +and an IPv4 address is being cloud assigned by OpenStack's DHCP Service +and the external network IPv4 subnet is to be specified +using the property ``fixed_ips`` +map property ``subnet``, the parameter +**MUST** follow the naming convention + + * ``{network-role}_subnet_id`` + +where + + * ``{network-role}`` is the network role of the network.",`test_neutron_port_fixed_ips `_,test_neutron_port_external_fixed_ips +`R-62983 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), the +``network`` parameter name **MUST** + + * follow the naming convention ``{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``{network-role}_net_name`` if the + OpenStack network name is used to reference the network. + +where ``{network-role}`` is the network-role of the external network +and a ``get_param`` **MUST** be used as the intrinsic function.",`test_network_format `_,test_network_format +`R-663631 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` value **MUST** be be obtained via a ``get_param``.",`test_nova_servers_vm_types_use_get_param `_,test_vm_type_assignments_on_nova_servers_only_use_get_param +`R-67231 `_,"A VNF's Heat Orchestration template's Environment File's +**MUST NOT** contain the ``resource_registry:`` section.",`test_env_no_resource_registry `_,test_env_no_resource_registry +`R-67597 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role`` +**MUST NOT** have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vm_role_parameter_has_no_constraints +`R-68023 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` **SHOULD** +contain the key/value pair ``vf_module_name`` and the value **MUST** +be obtained via a ``get_param``.",`test_servers_metadata_use_get_param `_,test_servers_vf_module_name_metadata_use_get_param +`R-681859 `_,"A VNF's Heat Orchestration Template's ``OS::Neutron::Port`` resource's + +* Resource ID (defined in R-20453) +* property ``network`` parameter name (defined in R-62983 and + R-86182) +* property ``fixed_ips``, map property ``ip_address`` parameter name + (defined in R-40971, R-04697, R-71577, R-23503, R-78380, R-85235, + R-27818, and R-29765) +* property ``fixed_ips``, map property ``subnet`` parameter name + (defined in R-62802, R-15287, R-84123, R-76160) +* property ``allowed_address_pairs`` parameter name (defined in + R-41492 and R-83418) + +**MUST** contain the identical ``{network-role}``.",`test_port_resource_ids `_,test_port_resource_ids +`R-69431 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``flavor`` parameter **MUST** be enumerated in the Heat Orchestration +Template's Environment File and a value **MUST** be assigned.",`test_environment_file_parameters `_,test_nova_server_flavor_parameter_exists_in_environment_file +`R-69634 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``int_{network-role}_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +`R-70276 `_,"A VNF HEAT's Orchestration Nested Template's YAML file name **MUST NOT** +be in the format ``{vm-type}.y[a]ml`` where ``{vm-type}`` is defined +in the Heat Orchestration Template.",`test_filename_is_vmtype_dot_yaml `_,test_filename_is_vmtype_dot_yaml +`R-708564 `_,"If a VNF's Heat Orchestration Template's resource invokes a nested +YAML file, either statically or dynamically, the names of the parameters +passed into the nested YAML file **MUST NOT** change.",`test_nested_parameters `_,test_parameter_name_doesnt_change_in_nested_template +`R-71152 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter **MUST** be declared as type: ``string``.",`test_nova_servers_vm_types `_,test_nova_server_image_parameter +`R-71493 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` **MUST** +contain the key/value pair ``vf_module_id`` +and the value MUST be obtained via a ``get_param``.",`test_servers_have_required_metadata `_,test_servers_have_required_metadata +`R-71577 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a string, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_{network-role}_v6_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the external network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-71699 `_,"A VNF's Heat Orchestration Template's Resource +**MUST NOT** reference a HTTP-based Nested YAML file.",`test_no_http_resources `_,test_no_http_resources +`R-72483 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` **MUST** contain the key/value pair ``vnf_name`` and the +value **MUST** be obtained via a ``get_param``.",`test_servers_have_required_metadata `_,test_servers_have_required_metadata +`R-72871 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id`` +**MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_vf_module_id_parameter_doesnt_exist_in_environment_file +`R-74304 `_,"A VNF's Heat Orchestration Template's Environment file extension **MUST** +be in the lower case format ``.env``.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-74978 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter **MUST** +be declared as ``workload_context`` and the parameter **MUST** +be defined as type: ``string``.",`test_nova_servers_workload_context `_,test_workload_context +`R-75141 `_,"A VNF's Heat Orchestration Template's resource name +(i.e., ) **MUST** only contain alphanumeric +characters and underscores ('_').",`test_resource_ids_alphanumeric_only `_,test_alphanumeric_resource_ids_only +`R-76014 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::ServiceHealthCheck`` +Resource ID +**MUST** +contain the ``{vm-type}``.",`test_contrail_resource_id `_,test_contrail_servicehealthcheck_resource_id +`R-76057 `_,"VNF Heat Orchestration Template's Nested YAML file name **MUST** contain +only alphanumeric characters and underscores '_' and +**MUST NOT** contain the case insensitive word ``base``.",`test_base_template_names `_,test_base_template_names +`R-76160 `_,"When + + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see Requirements + R-52425 and R-46461) + that is created in the Base Module, AND + * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv6 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``, + +the parameter **MUST** follow the naming convention +``int_{network-role}_v6_subnet_id``, +where ``{network-role}`` is the network role of the internal network. + +Note that the parameter **MUST** be defined as an ``output`` parameter in +the base module.",`test_neutron_port_fixed_ips `_,test_neutron_port_internal_fixed_ips +`R-76449 `_,"A VNF's Heat Orchestration Template's **MUST NOT** +contain the Resource ``OS::Neutron::FloatingIPAssociation``.",`test_forbidden_resources `_,test_neutron_floating_ip_association_resource_type +`R-76682 `_,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter +``{vm-type}_{network-role}_route_prefixes`` +**MUST NOT** be enumerated in the VNF's Heat Orchestration Template's +Environment File.",`test_environment_file_parameters `_,test_contrail_route_prefixes_parameter_doesnt_exist_in_environment_file +`R-76718 `_,"If a VNF's Heat Orchestration Template uses the intrinsic function +``get_file``, the ``get_file`` target **MUST** be referenced in +the Heat Orchestration Template by file name.",`test_get_file_only_reference_local_files `_,test_get_file_only_reference_local_files +`R-78380 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is +defined as a ``string``, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_int_{network-role}_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the internal network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-80374 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_name`` +parameter ``vf_module_name`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",`test_environment_file_parameters `_,test_nova_server_vf_module_name_parameter_doesnt_exist_in_environment_file +`R-80829 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``{network-role}_v6_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +`R-81214 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::InterfaceRouteTable`` +Resource ID +**MUST** +contain the ``{network-role}``.",`test_contrail_resource_id `_,test_contrail_interfaceroutetable_resource_id +`R-81339 `_,"A VNF Heat Orchestration Template's Base Module file name **MUST** include +case insensitive 'base' in the filename and +**MUST** match one of the following four +formats: + + 1.) ``base_.y[a]ml`` + + 2.) ``_base.y[a]ml`` + + 3.) ``base.y[a]ml`` + + 4.) ``_base_``.y[a]ml + +where ```` **MUST** contain only alphanumeric characters and +underscores '_' and **MUST NOT** contain the case insensitive word ``base``.",`test_base_template_names `_,test_base_template_names +`R-81725 `_,A VNF's Incremental Module **MUST** have a corresponding Environment File,`test_env_and_yaml_same_name `_,test_env_and_yaml_same_name +`R-82134 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter **MUST** +be declared as ``vf_module_id`` and the parameter **MUST** +be defined as type: ``string``.",`test_server_parameters `_,test_vf_module_id_parameter_type_and_parameter_name +`R-82732 `_,"A VNF Heat Orchestration Template's Cinder Volume Module **MUST** +be named identical to the base or incremental module it is supporting with +``_volume`` appended.",`test_volume_outputs_consumed `_,test_volume_module_name_matches_incremental_or_base_module +`R-83412 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_floating_ip`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file +`R-83418 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_floating_v6_ip`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file +`R-83677 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``{network-role}_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +`R-84123 `_,"When + + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see + Requirements R-52425 and R-46461) + that is created in the Base Module, AND + * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv4 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``, + +the parameter **MUST** follow the naming convention + + * ``int_{network-role}_subnet_id`` + +where + + * ``{network-role}`` is the network role of the internal network + +Note that the parameter **MUST** be defined as an ``output`` parameter in +the base module.",`test_neutron_port_fixed_ips `_,test_neutron_port_internal_fixed_ips +`R-85235 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_int_{network-role}_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network",`test_fixed_ips_include_vm_type_network_role `_,test_fixed_ips_include_vm_type_network_role +`R-85734 `_,"If a VNF's Heat Orchestration Template contains the property ``name`` +for a non ``OS::Nova::Server`` resource, the intrinsic function +``str_replace`` **MUST** be used in conjunction with the ONAP +supplied metadata parameter ``vnf_name`` to generate a unique value. +Additional data **MAY** be used in the ``str_replace`` construct +to generate a unique value.",`test_non_server_name `_,test_non_server_name +`R-86182 `_,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and the internal network is created in a +different Heat Orchestration Template than the ``OS::Neutron::Port``, +the ``network`` parameter name **MUST** + + * follow the naming convention ``int_{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``int_{network-role}_net_name`` if the + OpenStack network name in is used to reference the network. + +where ``{network-role}`` is the network-role of the internal network and +a ``get_param`` **MUST** be used as the intrinsic function.",`test_network_format `_,test_network_format +`R-86285 `_,"A VNF's Heat Orchestration template **MUST** have a +corresponding environment file.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-86476 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vm_role`` value **MUST** +only contain alphanumeric characters and underscores (i.e., '_').",`test_vm_role_value `_,test_vm_role_hardcoded +`R-87123 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_v6_ip_{index}`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +`R-87247 `_,"VNF Heat Orchestration Template's Incremental Module file name +**MUST** contain only alphanumeric characters and underscores +'_' and **MUST NOT** contain the case insensitive word ``base``.",`test_base_template_names `_,test_base_template_names +`R-87485 `_,"A VNF's Heat Orchestration Template's file extension **MUST** +be in the lower case format ``.yaml`` or ``.yml``.",`test_base_template_names `_,test_base_template_names +`R-87563 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a port attached to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_internal +`R-87817 `_,"When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` parameter is defined as a ``comma_delimited_list``, +the parameter name **MUST** follow the naming convention +``{vm-type}_names``.",`test_nova_servers_vm_types `_,test_nova_server_name_parameter +`R-88540 `_,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a sub-interface port attached to a +sub-interface network Resource ID **MUST** +use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",`test_contrail_instance_ip_resource_id `_,test_contrail_instance_ip_resource_id_subint +`R-89913 `_,"A VNF's Heat Orchestration Template's Cinder Volume Module Output +Parameter(s) +**MUST** include the +UUID(s) of the Cinder Volumes created in template.",`test_volume_templates_outputs `_,test_volume_templates_contains_outputs +`R-901331 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``image`` value **MUST** be be obtained via a ``get_param``.",`test_nova_servers_vm_types_use_get_param `_,test_vm_type_assignments_on_nova_servers_only_use_get_param +`R-90152 `_,"A VNF's Heat Orchestration Template's +``resources:`` section **MUST** contain the declaration of at +least one resource.",`test_initial_configuration `_,test_06_heat_template_resource_section_has_resources +`R-90206 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_int_ips`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +`R-90279 `_,"A VNF Heat Orchestration's template's parameter **MUST** be used +in a resource with the exception of the parameters for the +``OS::Nova::Server`` resource property ``availability_zone``.",`test_all_parameters_used_in_template `_,test_all_parameters_used_in_template +`R-90526 `_,"A VNF Heat Orchestration Template parameter declaration **MUST NOT** +contain the ``default`` attribute.",`test_heat_parameter_section `_,test_default_values +`R-91125 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter **MUST** be enumerated in the Heat Orchestration +Template's Environment File and a value **MUST** be assigned.",`test_environment_file_parameters `_,test_nova_server_image_parameter_exists_in_environment_file +`R-91342 `_,"A VNF Heat Orchestration Template's Base Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Base Module with ``.y[a]ml`` replaced with ``.env``.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-91810 `_,"If a VNF requires ONAP to assign a Virtual IP (VIP) Address to +ports connected an external network, the port +**MUST NOT** have more than one IPv4 VIP address.",`test_neutron_port_addresses `_,test_neutron_port_external_ipaddress +`R-92193 `_,"A VNF's Heat Orchestration Template's parameter +``{network-role}_net_fqdn`` +**MUST NOT** be enumerated in the VNF's Heat Orchestration Template's +Environment File.",`test_environment_file_parameters `_,test_network_fqdn_parameter_doesnt_exist_in_environment_file +`R-92635 `_,"A VNF's Heat Orchestration Template **MUST** be compliant with the +OpenStack Template Guide.",`test_initial_configuration `_,test_02_no_duplicate_keys_in_file +`R-93030 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_v6_ips`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +`R-93177 `_,"When the VNF's Heat Orchestration Template's resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and the internal network is created in the +same Heat Orchestration Template as the ``OS::Neutron::Port``, +the ``network`` property value **MUST** obtain the UUID +of the internal network by using the intrinsic function +``get_resource`` +and referencing the Resource ID of the internal network.",`test_network_format_use_get_param_or_get_resource `_,test_network_format_use_get_param_or_get_resource +`R-93496 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``fixed_ips`` +map property ``ip_address`` +parameter associated with an internal network, i.e., + + * ``{vm-type}_int_{network-role}_ip_{index}`` + * ``{vm-type}_int_{network-role}_v6_ip_{index}`` + * ``{vm-type}_int_{network-role}_ips`` + * ``{vm-type}_int_{network-role}_v6_ips`` + + +**MUST** be enumerated in the Heat Orchestration +Template's Environment File and IP addresses **MUST** be +assigned.",`test_environment_file_parameters `_,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +`R-94509 `_,"A VNF Heat Orchestration Template's Incremental Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Incremental Module with ``.y[a]ml`` replaced with ``.env``.",`test_heat_pairs_provided `_,test_heat_pairs_provided +`R-94669 `_,"If a VNF has one IPv6 OAM Management IP Address and the +IP Address needs to be inventoried in ONAP's A&AI +database, an output parameter **MUST** be declared in only one of the +VNF's Heat Orchestration Templates and the parameter **MUST** be named +``oam_management_v6_address``.",`test_oam_address_outputs `_,test_oam_address_v6_zero_or_one +`R-95303 `_,A VNF's Heat Orchestration Template **MUST** be defined using valid YAML.,`test_get_attr_usage `_,test_08_validate_get_attr_usage +`R-95430 `_,"If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vm_role`` value is obtained via +``get_param``, the parameter **MUST** be declared as ``vm_role`` +and the parameter **MUST** be defined as type: ``string``.",`test_server_parameters `_,test_vm_role_parameter_type_and_parameter_name +`R-96253 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",`test_contrail_vmi_resource_id `_,test_contrail_instance_ip_resource_id_external +`R-97201 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_v6_ip_{index}`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +`R-98374 `_,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id`` +**MUST NOT** +have parameter constraints defined.",`test_required_parameters_no_constraints `_,test_vf_module_id_parameter_has_no_constraints +`R-98407 `_,"A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** contain only +alphanumeric characters and/or underscores '_' and **MUST NOT** +contain any of the following strings: +``_int`` or ``int_`` or ``_int_``.",`test_vm_type_syntax `_,test_vm_type_syntax +`R-98450 `_,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``availability_zone`` parameter name +**MUST** follow the naming convention + +* ``availability_zone_{index}`` + +where ``{index}`` is a numeric value that **MUST** start at zero +in a VNF's Heat Orchestration Templates and **MUST** +increment by one.",`test_availability_zone `_,test_availability_zone_naming +`R-98569 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_v6_ips`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +`R-98748 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +**MUST** be declared as type ``string``.",`test_allowed_address_pairs_include_vm_type_network_role `_,test_allowed_address_pairs_include_vm_type_network_role +`R-98905 `_,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_ips`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +`R-99110 `_,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming convention + +1) ``int_{network-role}_network`` + +or + +2) ``int_{network-role}_RVN`` where RVN represents Resource Virtual + Network + +VNF Heat Orchestration Templates can only create internal networks. +There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` +**MUST** be unique in the scope of the VNF's +Heat Orchestration Template. + +Note that option 1 is preferred.",`test_contrail_vn_resource_id `_,test_neutron_net_resource_id +`R-99646 `_,"A VNF's YAML files (i.e, Heat Orchestration Template files and +Nested files) **MUST** have a unique name in the scope of the VNF.",`test_files_in_flat_dir `_,test_files_in_flat_dir +`R-99812 `_,"A value for VNF's Heat Orchestration Template's property ``name`` +for a non ``OS::Nova::Server`` resource **MUST NOT** be declared +in the VNF's Heat Orchestration Template's Environment File.",`test_environment_file_parameters `_,test_non_nova_server_name_parameter_doesnt_exist_in_environment_file diff --git a/docs/traceability.csv b/docs/traceability.csv old mode 100755 new mode 100644 index e482167..cf2c22e --- a/docs/traceability.csv +++ b/docs/traceability.csv @@ -1,203 +1,1785 @@ -Requirement ID,Section,Test Module,Test Name -R-00977,{network-role},tests.test_nova_servers_vm_types,test_vm_type_network_role_collision -R-01896,Scope of a Heat Orchestration Template,tests.test_no_unused_parameters_between_env_and_templates,test_no_unused_parameters_between_env_and_templates -R-02164,External Networks,tests.test_contrail_fqdn,test_contrail_fqdn -R-02691,workload_context,tests.test_environment_file_parameters,test_nova_server_workload_context_parameter_doesnt_exist_in_environment_file -R-03324,Environment File Format,tests.test_environment_file_structure,test_environment_file_contains_required_sections -R-04697,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-04747,OS::Heat::CloudConfig,tests.test_cloud_config_resource_id,test_cloud_config -R-05257,"VIP Assignment, External Networks, Supported by Automation",tests.test_forbidden_resources,test_neutron_floating_ip_resource_type -R-07443,ONAP Volume Module Output Parameters,tests.test_volume_outputs_consumed,test_volume_outputs_consumed -R-07507,vnf_id,tests.test_server_parameters,test_vnf_id_parameter_type_and_parameter_name -R-08975,OS::Heat::SoftwareConfig,tests.test_software_config_resource_id,test_software_config_vm_type -R-09811,vf_module_index,tests.test_required_parameters_no_constraints,test_vf_module_index_parameter_has_no_constraints -R-10754,"VIP Assignment, External Networks, Supported by Automation",tests.test_neutron_port_addresses,test_neutron_port_floating -R-10834,properties,tests.test_nested_parameter_args,test_nested_parameter_args -R-11041,Nested Heat Template Requirements,tests.test_nested_template_parameters,test_nested_template_parameters -R-11200,ONAP VNF Modularity Overview,tests.test_volume_outputs_consumed,test_volume_outputs_consumed -R-11441,type,tests.test_heat_template_structure,test_parameter_type -R-11690,Resource IDs,tests.test_resource_indices,test_indices_start_at_0_increment -R-13194,environment_context,tests.test_environment_file_parameters,test_nova_server_environment_context_parameter_doesnt_exist_in_environment_file -R-15287,"Property: fixed_ips, Map Property: subnet",tests.test_neutron_port_fixed_ips,test_neutron_port_external_fixed_ips -R-15480,vf_module_name,tests.test_required_parameters_no_constraints,test_vf_module_name_parameter_has_no_constraints -R-16241,Internal Networks,tests.test_network_format,test_network_has_subnet -R-16437,OS::ContrailV2::ServiceTemplate,tests.test_contrail_resource_id,test_contrail_servicetemplate_resource_id -R-16447,resource ID,tests.test_unique_resources_across_all_templates,test_unique_resources_across_all_yaml_files -R-16968,External Networks,tests.test_network_format,test_network_resource_id_format -R-17528,Nested Heat Template Requirements,tests.test_nesting_nova_server,test_nesting_nova_server -R-18008,Property: network,tests.test_neutron_port_network_parameter,test_neutron_port_network_param_is_string -R-19756,Interface Route Table Prefixes for Contrail InterfaceRoute Table,tests.test_contrail_irt_routes,test_contrail_irt_route_param_type -R-20065,OS::ContrailV2::PortTuple,tests.test_contrail_resource_id,test_contrail_porttuple_resource_id -R-20308,environment_context,tests.test_nova_servers_environment_context,test_environment_context -R-20453,OS::Neutron::Port,tests.test_port_resource_ids,test_port_resource_ids -R-20856,vnf_id,tests.test_environment_file_parameters,test_nova_server_vnf_id_parameter_doesnt_exist_in_environment_file -R-20947,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_subint -R-22288,"Property: fixed_ips, Map Property: subnet",tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file -R-22688,Internal Networks,tests.test_neutron_port_internal_network,test_neutron_port_internal_network -R-22838,Property: Name,tests.test_environment_file_parameters,test_nova_server_name_parameter_doesnt_exist_in_environment_file -R-23311,Property: availability_zone,tests.test_server_parameters,test_availability_zone_parameter_type -R-23503,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-23664,resources,tests.test_heat_template_structure,test_heat_template_structure_contains_resources -R-25720,OS::Neutron::Net,tests.test_neutron_net_resource_id,test_neutron_net_resource_id -R-25877,,tests.test_heat_parameter_section,test_parameter_names -R-26124,default,tests.test_no_unused_parameters_between_env_and_templates,test_no_unused_parameters_between_env_and_templates -R-26351,OS::Neutron::Port,tests.test_port_resource_ids,test_port_resource_ids -R-270358,ONAP Heat Cinder Volumes,tests.test_volume_templates,test_volume_templates_contains_cinder_or_resource_group -R-27078,heat_template_version,tests.test_heat_template_structure,test_heat_template_structure_contains_heat_template_version -R-27818,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-28222,Interface Route Table Prefixes for Contrail InterfaceRoute Table,tests.test_contrail_irt_routes,test_contrail_irt_route_param_format -R-28795,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file -R-29751,OS::Nova::Server,tests.test_nova_server_resource_id,test_nova_server_resource_id -R-29765,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-29872,Property: network,tests.test_environment_file_parameters,test_nova_server_network_parameter_doesnt_exist_in_environment_file -R-30753,OS::ContrailV2::NetworkIpam,tests.test_contrail_resource_id,test_contrail_networkipam_resource_id -R-30804,OS::Heat::MultipartMime,tests.test_multipart_mime_resource_id,test_multipart_mime -R-31141,Cinder Volume Modules,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-32394,{vm-type},tests.test_vm_type_case,test_vm_type_case -R-34037,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-34055,workload_context,tests.test_required_parameters_no_constraints,test_workload_context_parameter_has_no_constraints -R-348813,ONAP VNF On-Boarding,tests.test_no_image_files,test_no_image_files_included -R-35414,parameters,tests.test_heat_template_structure,test_heat_template_structure_contains_parameters -R-35666,Internal Networks,tests.test_network_format,test_network_resource_id_format -R-35735,"VIP Assignment, External Networks, Supported by Automation",tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role -R-36542,vnf_name,tests.test_environment_file_parameters,test_nova_server_vnf_name_parameter_doesnt_exist_in_environment_file -R-36772,type,tests.test_heat_template_parameters_contain_required_fields,test_heat_template_parameters_contain_required_fields -R-37028,ONAP VNF Modularity Overview,tests.test_base_template_names,test_base_template_names -R-37039,vf_module_index,tests.test_environment_file_parameters,test_nova_server_vf_module_index_parameter_doesnt_exist_in_environment_file -R-37437,vnf_id,tests.test_servers_have_required_metadata,test_servers_have_required_metadata -R-38236,"Property: fixed_ips, Map Property: subnet",tests.test_neutron_port_fixed_ips,test_neutron_port_fixed_ips -R-38474,ONAP VNF Modularity Overview,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name -R-39067,vf_module_name,tests.test_server_parameters,test_vf_module_name_parameter_type_and_parameter_name -R-39402,description,tests.test_heat_template_structure,test_heat_template_structure_contains_description -R-39841,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file -R-40499,Property: flavor,tests.test_nova_servers_resource_ids,test_nova_servers_valid_resource_ids -R-40971,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-41492,"VIP Assignment, External Networks, Supported by Automation",tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role -R-41888,Heat Files Support (get_file),tests.test_get_file_only_reference_local_files,test_get_file_no_url_retrieval -R-41956,"VIP Assignment, External Networks, Supported by Automation",tests.test_neutron_port_addresses,test_neutron_port_external_ipaddress_v6 -R-44001,description,tests.test_heat_template_parameters_contain_required_fields,test_heat_template_parameters_contain_required_fields -R-44318,vnf_name,tests.test_required_parameters_no_constraints,test_vnf_name_parameter_has_no_constraints -R-45188,Property: flavor,tests.test_nova_servers_vm_types,test_nova_server_flavor_parameter -R-46128,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_external -R-46839,{vm-type},tests.test_vm_type_resource_id,test_vm_type_resource_id -R-48067,{vm-type},tests.test_nova_servers_vm_types,test_vm_type_network_role_collision -R-481670,Property: flavor,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param -R-50011,OS::Heat::ResourceGroup Property count,tests.test_environment_file_parameters,test_heat_rg_count_parameter_exists_in_environment_file -R-50436,Property: flavor,tests.test_nova_servers_vm_types,test_nova_server_flavor_parameter -R-50468,OS::ContrailV2::VirtualMachineInterface,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_internal -R-50816,vf_module_index,tests.test_servers_metadata_use_get_param,test_servers_vf_module_index_metadata_use_get_param -R-511776,ONAP VNF On-Boarding,tests.test_files_in_flat_dir,test_files_in_flat_dir -R-51430,Property: Name,tests.test_nova_servers_vm_types,test_nova_server_name_parameter -R-53310,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_external -R-53433,ONAP VNF Modularity Overview,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name -R-53952,type,tests.test_no_http_resources,test_no_http_resources -R-54171,Property: Name,tests.test_nova_server_name_parameters_start_at_0,test_nova_server_name_parameter_starts_at -R-54340,vf_module_index,tests.test_server_parameters,test_vf_module_index_parameter_type_and_parameter_name -R-54458,OS::ContrailV2::VirtualMachineInterface,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_subint -R-55218,vnf_id,tests.test_required_parameters_no_constraints,test_vnf_id_parameter_has_no_constraints -R-55306,vf_module_index,tests.test_volume_templates,test_no_vf_module_index_in_cinder -R-56183,environment_context,tests.test_required_parameters_no_constraints,test_environment_context_parameter_has_no_constraints -R-56438,ONAP Heat Orchestration Template Filenames,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-57282,Property: image,tests.test_nova_servers_resource_ids,test_nova_servers_valid_resource_ids -R-58670,Property: image,tests.test_nova_servers_vm_types,test_nova_server_image_parameter -R-59568,Property: availability_zone,tests.test_environment_file_parameters,test_nova_server_az_parameter_doesnt_exist_in_environment_file -R-599443,ONAP Heat Support of Environment Files,tests.test_env_parameters_defined_in_template,test_env_params_are_defined_in_template -R-60011,Nested Heat Template Requirements,tests.test_nesting_level,test_nesting_level -R-62187,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_internal -R-62428,vnf_name,tests.test_server_parameters,test_vnf_name_parameter_type_and_parameter_name -R-62590,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file -R-62802,"Property: fixed_ips, Map Property: subnet",tests.test_neutron_port_fixed_ips,test_neutron_port_external_fixed_ips -R-62983,Property: network,tests.test_network_format,test_network_format -R-663631,Property: Name,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param -R-67231,Environment File Format,tests.test_env_no_resource_registry,test_env_no_resource_registry -R-67597,vm_role,tests.test_required_parameters_no_constraints,test_vm_role_parameter_has_no_constraints -R-68023,vf_module_name,tests.test_servers_metadata_use_get_param,test_servers_vf_module_name_metadata_use_get_param -R-69431,Property: flavor,tests.test_environment_file_parameters,test_nova_server_flavor_parameter_exists_in_environment_file -R-69634,"Property: fixed_ips, Map Property: subnet",tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file -R-70276,Nested Heat file,tests.test_filename_is_vmtype_dot_yaml,test_filename_is_vmtype_dot_yaml -R-71152,Property: image,tests.test_nova_servers_vm_types,test_nova_server_image_parameter -R-71493,vf_module_id,tests.test_servers_have_required_metadata,test_servers_have_required_metadata -R-71577,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-71699,type,tests.test_no_http_resources,test_no_http_resources -R-72483,vnf_name,tests.test_servers_have_required_metadata,test_servers_have_required_metadata -R-72871,vf_module_id,tests.test_environment_file_parameters,test_nova_server_vf_module_id_parameter_doesnt_exist_in_environment_file -R-74304,ONAP Heat Orchestration Template Filenames,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-74978,workload_context,tests.test_nova_servers_workload_context,test_workload_context -R-75141,resource ID,tests.test_resource_ids_alphanumeric_only,test_alphanumeric_resource_ids_only -R-76014,OS::ContrailV2::ServiceHealthCheck,tests.test_contrail_resource_id,test_contrail_servicehealthcheck_resource_id -R-76057,Nested Heat file,tests.test_base_template_names,test_base_template_names -R-76160,"Property: fixed_ips, Map Property: subnet",tests.test_neutron_port_fixed_ips,test_neutron_port_internal_fixed_ips -R-76449,"VIP Assignment, External Networks, Supported by Automation",tests.test_forbidden_resources,test_neutron_floating_ip_association_resource_type -R-76682,Interface Route Table Prefixes for Contrail InterfaceRoute Table,tests.test_environment_file_parameters,test_contrail_route_prefixes_parameter_doesnt_exist_in_environment_file -R-76718,Heat Files Support (get_file),tests.test_get_file_only_reference_local_files,test_get_file_only_reference_local_files -R-78380,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-80374,vf_module_name,tests.test_environment_file_parameters,test_nova_server_vf_module_name_parameter_doesnt_exist_in_environment_file -R-80829,"Property: fixed_ips, Map Property: subnet",tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file -R-81214,OS::ContrailV2::InterfaceRouteTable,tests.test_contrail_resource_id,test_contrail_interfaceroutetable_resource_id -R-81339,Base Modules,tests.test_base_template_names,test_base_template_names -R-81725,ONAP VNF Modularity Overview,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name -R-82134,vf_module_id,tests.test_server_parameters,test_vf_module_id_parameter_type_and_parameter_name -R-82732,Cinder Volume Modules,tests.test_volume_outputs_consumed,test_volume_module_name_matches_incremental_or_base_module -R-83412,"VIP Assignment, External Networks, Supported by Automation",tests.test_environment_file_parameters,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file -R-83418,"VIP Assignment, External Networks, Supported by Automation",tests.test_environment_file_parameters,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file -R-83677,"Property: fixed_ips, Map Property: subnet",tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file -R-84123,"Property: fixed_ips, Map Property: subnet",tests.test_neutron_port_fixed_ips,test_neutron_port_internal_fixed_ips -R-85235,"Property: fixed_ips, Map Property: ip_address",tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role -R-85734,Resource Property “name”,tests.test_non_server_name,test_non_server_name -R-86182,Property: network,tests.test_network_format,test_network_format -R-86285,Environment File Format,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-87123,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file -R-87247,Incremental Modules,tests.test_base_template_names,test_base_template_names -R-87485,ONAP Heat Orchestration Template Filenames,tests.test_base_template_names,test_base_template_names -R-87563,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_internal -R-87817,Property: Name,tests.test_nova_servers_vm_types,test_nova_server_name_parameter -R-88540,OS::ContrailV2::InstanceIp,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_subint -R-89913,ONAP Volume Module Output Parameters,tests.test_volume_templates_outputs,test_volume_templates_contains_outputs -R-901331,Property: image,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param -R-90152,resources,tests.test_initial_configuration,test_06_heat_template_resource_section_has_resources -R-90206,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file -R-90279,parameters,tests.test_all_parameters_used_in_template,test_all_parameters_used_in_template -R-90526,default,tests.test_heat_parameter_section,test_default_values -R-91125,Property: image,tests.test_environment_file_parameters,test_nova_server_image_parameter_exists_in_environment_file -R-91342,Base Modules,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-91810,"VIP Assignment, External Networks, Supported by Automation",tests.test_neutron_port_addresses,test_neutron_port_external_ipaddress -R-92193,External Networks,tests.test_environment_file_parameters,test_network_fqdn_parameter_doesnt_exist_in_environment_file -R-92635,ONAP Heat Orchestration Template Format,tests.test_initial_configuration,test_02_no_duplicate_keys_in_file -R-93030,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file -R-93177,Property: network,tests.test_network_format_use_get_param_or_get_resource,test_network_format_use_get_param_or_get_resource -R-93496,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file -R-94509,Incremental Modules,tests.test_heat_pairs_provided,test_heat_pairs_provided -R-95303,YAML Format,tests.test_get_attr_usage,test_08_validate_get_attr_usage -R-95430,vm_role,tests.test_server_parameters,test_vm_role_parameter_type_and_parameter_name -R-96253,OS::ContrailV2::VirtualMachineInterface,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_external -R-97201,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file -R-98374,vf_module_id,tests.test_required_parameters_no_constraints,test_vf_module_id_parameter_has_no_constraints -R-98407,{vm-type},tests.test_vm_type_syntax,test_vm_type_syntax -R-98450,Property: availability_zone,tests.test_availability_zone,test_availability_zone_naming -R-98569,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file -R-98748,"VIP Assignment, External Networks, Supported by Automation",tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role -R-98905,"Property: fixed_ips, Map Property: ip_address",tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file -R-99110,OS::ContrailV2::VirtualNetwork,tests.test_contrail_vn_resource_id,test_neutron_net_resource_id -R-99646,ONAP Heat Orchestration Template Filenames,tests.test_files_in_flat_dir,test_files_in_flat_dir -R-99812,Resource Property “name”,tests.test_environment_file_parameters,test_non_nova_server_name_parameter_doesnt_exist_in_environment_file -,,tests.test_initial_configuration,test_03_all_referenced_resources_exists -,,tests.test_initial_configuration,test_03_all_referenced_resources_exists -,,tests.test_initial_configuration,test_04_valid_nesting -,,tests.test_initial_configuration,test_04_valid_nesting -,,tests.test_initial_configuration,test_05_all_get_param_have_defined_parameter -,,tests.test_initial_configuration,test_05_all_get_param_have_defined_parameter -,,tests.test_nova_servergroup_policies,test_nova_servergroup_policies -,,tests.test_nova_servergroup_policies,test_nova_servergroup_policies -,,tests.test_volume_module_naming,test_detected_volume_module_follows_naming_convention -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids -,,tests.test_volume_resource_ids,test_volume_resource_ids +Requirement ID,Requirement,Section,Keyword,Validation Mode,Is Testable,Test Module,Test Name +R-00011,"A VNF's Heat Orchestration Template's parameter defined +in a nested YAML file +**SHOULD NOT** have a parameter constraint defined.",constraints,SHOULD NOT,static,FALSE,, +R-00228,"A VNF's Heat Orchestration Template **MAY** +reference the nested heat statically by repeated definition.",Nested Heat Template Requirements,MAY,,FALSE,, +R-00606,"A VNF **MAY** be connected to zero, one or more than one external +network.",External Networks,MAY,,FALSE,, +R-00977,"A VNF's Heat Orchestration Template's ``{network-role}`` +**MUST NOT** be a substring of ``{vm-type}``.",{network-role},MUST NOT,static,TRUE,tests.test_nova_servers_vm_types,test_vm_type_network_role_collision +R-01101,"A VNF's Heat Orchestration Template **MAY** +reference the nested heat dynamically using the resource +``OS::Heat::ResourceGroup``.",Nested Heat Template Requirements,MAY,,FALSE,, +R-01359,"A VNF's Heat Orchestration Template that contains an ``OS::Nova:Server`` +Resource **MAY** define a parameter for the property +``availability_zone`` that is not utilized in any ``OS::Nova::Server`` +resources in the Heat Orchestration Template.",Property: availability_zone,MAY,,FALSE,, +R-01455,"When a VNF's Heat Orchestration Template creates a Virtual Machine +(i.e., ``OS::Nova::Server``), +each ""class"" of VMs **MUST** be assigned a VNF unique +``{vm-type}``; where ""class"" defines VMs that +**MUST** have the following identical characteristics: + + 1.) ``OS::Nova::Server`` resource property ``flavor`` value + + 2.) ``OS::Nova::Server`` resource property ``image`` value + + 3.) Cinder Volume attachments + + - Each VM in the ""class"" **MUST** have the identical Cinder Volume + configuration + + 4.) Network attachments and IP address requirements + + - Each VM in the ""class"" **MUST** have the identical number of + ports connecting to the identical networks and requiring the identical + IP address configuration.",{vm-type},MUST,static,TRUE,tests.test_vm_class_has_unique_type,test_vm_class_has_unique_type +R-01896,"A VNF's Heat Orchestration Template's parameter values that are constant +across all deployments **MUST** be declared in a Heat Orchestration +Template Environment File.",Scope of a Heat Orchestration Template,MUST,static,TRUE,, +R-02164,"When a VNF's Heat Orchestration Template's Contrail resource +has a property that +references an external network that requires the network's +Fully Qualified Domain Name (FQDN), the property parameter + +* **MUST** follow the format ``{network-role}_net_fqdn`` +* **MUST** be declared as type ``string`` +* **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's + Environment File",External Networks,MUST,static,TRUE,tests.test_contrail_fqdn,test_contrail_fqdn +R-02691,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter ``workload_context`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",workload_context,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_workload_context_parameter_doesnt_exist_in_environment_file +R-03251,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume`` +**MAY** be defined in a Cinder Volume Module.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-03324,"A VNF's Heat Orchestration template's Environment File **MUST** +contain the ``parameters:`` section.",Environment File Format,MUST,static,TRUE,tests.test_environment_file_structure,test_environment_file_contains_required_sections +R-03595,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that +is applicable to more than one ``{vm-type}`` and one external network Resource ID +**SHOULD** use the naming convention + +* ``{network-role}_security_group`` + +where + +* ``{network-role}`` is the network-role",OS::Neutron::SecurityGroup,SHOULD,,FALSE,, +R-03656,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig`` +Resource ID **MAY** use the naming convention + +* ``{vm-type}_RSC`` + +where + +* ``{vm-type}`` is the vm-type +* ``RSC`` signifies that it is the Resource Software Config",OS::Heat::SoftwareConfig,MAY,,FALSE,, +R-04344,"A VNF's Nested YAML file **MAY** be invoked by more than one of +a VNF's Heat Orchestration Templates (when the VNF is composed of two +or more Heat Orchestration Templates).",Nested Heat Template Requirements,MAY,,FALSE,, +R-04697,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_ips`` + + where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the external + network","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-04747,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig`` +Resource ID **MUST** contain the ``{vm-type}``.",OS::Heat::CloudConfig,MUST,static,TRUE,tests.test_cloud_config_resource_id,test_cloud_config +R-05050,"A VNF's Heat Orchestration Templates intrinsic function +``get_file`` **MAY** be used: + + * more than once in a VNF's Heat Orchestration Template + * in two or more of a VNF's Heat Orchestration Templates + * in a VNF's Heat Orchestration Templates nested YAML file",Heat Files Support (get_file),MAY,,FALSE,, +R-05201,"When a VNF connects to two or more unique networks, each +network **MUST** be assigned a unique ``{network-role}`` +in the context of the VNF for use in the VNF's Heat Orchestration +Template.",{network-role},MUST,none,FALSE,, +R-05257,"A VNF's Heat Orchestration Template's **MUST NOT** +contain the Resource ``OS::Neutron::FloatingIP``.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_forbidden_resources,test_neutron_floating_ip_resource_type +R-06613,"A VNF's Heat Orchestration Template's parameter defined +in a non-nested YAML file as type +``boolean`` **MAY** have a parameter constraint defined.",constraints,MAY,,FALSE,, +R-07443,"A VNF's Heat Orchestration Templates' Cinder Volume Module Output +Parameter's name and type **MUST** match the input parameter name and type +in the corresponding Base Module or Incremental Module.",ONAP Volume Module Output Parameters,MUST,static,TRUE,tests.test_volume_outputs_consumed,test_volume_outputs_consumed +R-07507,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter +**MUST** be declared as ``vnf_id`` and the parameter **MUST** +be defined as type: ``string``.",vnf_id,MUST,static,TRUE,tests.test_server_parameters,test_vnf_id_parameter_type_and_parameter_name +R-08775,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` +that is applicable to one ``{vm-type}`` and more than one network (internal +and/or external) Resource ID **SHOULD** use the naming convention + +* ``{vm-type}_security_group`` + +where + +* ``{vm-type}`` is the vm-type",OS::Neutron::SecurityGroup,SHOULD,,FALSE,, +R-08975,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig`` +Resource ID **MUST** contain the ``{vm-type}``.",OS::Heat::SoftwareConfig,MUST,static,TRUE,tests.test_software_config_resource_id,test_software_config_vm_type +R-09811,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT** +have parameter constraints defined.",vf_module_index,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vf_module_index_parameter_has_no_constraints +R-10754,"If a VNF has two or more ports that +attach to an external network that require a Virtual IP Address (VIP), +and the VNF requires ONAP automation to assign the IP address, +all the Virtual Machines using the VIP address **MUST** +be instantiated in the same Base Module Heat Orchestration Template +or in the same Incremental Module Heat Orchestration Template.","VIP Assignment, External Networks, Supported by Automation",MUST,static,TRUE,tests.test_neutron_port_addresses,test_neutron_port_floating +R-10834,"If a VNF's Heat Orchestration Template resource attribute +``property:`` uses a nested ``get_param``, the nested +``get_param`` **MUST** reference an index. + +That is, to obtain a property value, two ``get_param`` intrinsic +functions are used. The second ``get_param`` must be used +to obtain an index value used to reference a parameter value in +a parameter defined as ``type: comma_delimited_list``. For +example: + +* ``name: {get_param: [ name, get_param: index ] }``",properties,MUST,static,TRUE,tests.test_nested_parameter_args,test_nested_parameter_args +R-11041,"All parameters defined in a VNFs Nested YAML file +**MUST** be passed in as properties of the resource calling +the nested yaml file.",Nested Heat Template Requirements,MUST,,TRUE,tests.test_nested_template_parameters,test_nested_template_parameters +R-11168,"A VNF's Heat Orchestration Template's Resource ID that is associated with +an external network **MUST** include the ``{network-role}`` as part +of the resource ID.",{network-role},MUST,none,FALSE,, +R-11200,"A VNF's Cinder Volume Module, when it exists, **MUST** be 1:1 +with a Base module or Incremental module.",ONAP VNF Modularity Overview,MUST,static,TRUE,tests.test_volume_outputs_consumed,test_volume_outputs_consumed +R-11441,"A VNF's Heat Orchestration Template's parameter type **MUST** be one of +the following values: + +* ``string`` +* ``number`` +* ``json`` +* ``comma_delimited_list`` +* ``boolean``",type,MUST,static,TRUE,tests.test_heat_template_structure,test_parameter_type +R-11690,"When a VNF's Heat Orchestration Template's Resource ID contains an +``{index}``, the ``{index}`` is a numeric value that **MUST** start at +zero and **MUST** increment by one. + +As stated in R-16447, +*a VNF's MUST be unique across all Heat +Orchestration Templates and all HEAT Orchestration Template +Nested YAML files that are used to create the VNF*. While the ``{index}`` +will start at zero in the VNF, the ``{index}`` may not start at zero +in a given Heat Orchestration Template or HEAT Orchestration Template +Nested YAML file.",Resource IDs,MUST,static,TRUE,tests.test_resource_indices,test_indices_start_at_0_increment +R-13194,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``environment_context`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",environment_context,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_environment_context_parameter_doesnt_exist_in_environment_file +R-13196,A VNF **MAY** be composed of zero to many Incremental Modules.,ONAP VNF Modularity Overview,MAY,,FALSE,, +R-14198,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that +is applicable to one {vm-type} and one internal network Resource ID **SHOULD** +use the naming convention + +* ``{vm-type}_int_{network-role}_security_group`` + +where + +* ``{vm-type}`` is the vm-type +* ``{network-role}`` is the network-role",OS::Neutron::SecurityGroup,SHOULD,,FALSE,, +R-14447,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate`` +Resource ID **MAY** use the naming convention + +* ``{vm-type}_RST_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``RST`` signifies that it is the Resource Service Template +* ``{index}`` is the index",OS::ContrailV2::ServiceTemplate,MAY,,FALSE,, +R-15189,"A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup`` Resource ID +**MAY** use the naming convention + +* ``{vm-type}_RSG`` + +or + +* ``{vm-type}_Server_Grp`` + +or + +* ``{vm-type}_ServerGroup`` + +or + +* ``{vm-type}_servergroup``",OS::Nova::ServerGroup,MAY,,FALSE,, +R-15287,"When the VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` is attaching +to an external network (per the ONAP definition, see +Requirement R-57424), +and an IPv6 address is being cloud assigned by OpenStack's DHCP Service +and the external network IPv6 subnet is to be specified +using the property ``fixed_ips`` +map property ``subnet``, the parameter +**MUST** follow the naming convention + + * ``{network-role}_v6_subnet_id`` + +where + + * ``{network-role}`` is the network role of the network.","Property: fixed_ips, Map Property: subnet",MUST,static,TRUE,tests.test_neutron_port_fixed_ips,test_neutron_port_external_fixed_ips +R-15480,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name`` +**MUST NOT** have parameter constraints defined.",vf_module_name,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vf_module_name_parameter_has_no_constraints +R-16241,"A VNF's internal network **MUST** have one subnet. +A VNF's internal network **MAY** have more than one subnet.",Internal Networks,MUST,static,TRUE,tests.test_network_format,test_network_has_subnet +R-16437,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate`` +Resource ID **MUST** contain the ``{vm-type}``.",OS::ContrailV2::ServiceTemplate,MUST,static,TRUE,tests.test_contrail_resource_id,test_contrail_servicetemplate_resource_id +R-16447,"A VNF's **MUST** be unique across all Heat +Orchestration Templates and all HEAT Orchestration Template +Nested YAML files that are used to create the VNF.",resource ID,MUST,static,TRUE,tests.test_unique_resources_across_all_templates,test_unique_resources_across_all_yaml_files +R-16968,"A VNF's Heat Orchestration Templates **MUST NOT** include heat +resources to create external networks.",External Networks,MUST NOT,static,TRUE,tests.test_network_format,test_network_resource_id_format +R-17334,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` +that is applicable to one ``{vm-type}`` and one external network Resource ID +**SHOULD** use the naming convention + +* ``{vm-type}_{network-role}_security_group`` + +where + +* ``{vm-type}`` is the vm-type +* ``{network-role}`` is the network-role",OS::Neutron::SecurityGroup,SHOULD,,FALSE,, +R-17528,"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.",Nested Heat Template Requirements,MUST,,TRUE,tests.test_nesting_nova_server,test_nesting_nova_server +R-18001,"If the VNF's ports connected to a unique internal network +and the port's IP addresses are statically assigned IP Addresses, +the IPv4 Addresses **MAY** be from different subnets and the +IPv6 Addresses **MAY** be from different subnets.",Items to Note,MAY,,FALSE,, +R-18008,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``network`` parameter **MUST** be declared as type: ``string``.",Property: network,MUST,static,TRUE,tests.test_neutron_port_network_parameter,test_neutron_port_network_param_is_string +R-18202,"A VNF's Heat Orchestration Template's Resource +``OS::Heat::MultipartMime`` +Resource ID +**MAY** +use the naming convention + +* ``{vm-type}_RMM`` + +where + +* ``{vm-type}`` is the vm-type +* ``RMM`` signifies that it is the Resource Multipart Mime",OS::Heat::MultipartMime,MAY,,FALSE,, +R-18683,"If a VNF has one IPv4 OAM Management IP Address and the +IP Address needs to be inventoried in ONAP's A&AI +database, an output parameter **MUST** be declared in only one of the +VNF's Heat Orchestration Templates and the parameter **MUST** be named +``oam_management_v4_address``.",OAM Management IP Addresses,MUST,static,TRUE,tests.test_oam_address_outputs,test_oam_address_v4_zero_or_one +R-19756,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter +``{vm-type}_{network-role}_route_prefixes`` +**MUST** be defined as type ``json``.",Interface Route Table Prefixes for Contrail InterfaceRoute Table,MUST,static,TRUE,tests.test_contrail_irt_routes,test_contrail_irt_route_param_type +R-20065,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::PortTuple`` +Resource ID **MUST** contain the ``{vm-type}``.",OS::ContrailV2::PortTuple,MUST,static,TRUE,tests.test_contrail_resource_id,test_contrail_porttuple_resource_id +R-20308,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``environment_context`` +parameter **MUST** be declared as ``environment_context`` and the +parameter type **MUST** be defined as type: ``string``.",environment_context,MUST,static,TRUE,tests.test_nova_servers_environment_context,test_environment_context +R-20319,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig`` +Resource ID **MAY** use the naming convention + +* ``{vm-type}_RCC`` + +where + +* ``{vm-type}`` is the vm-type +* ``RCC`` signifies that it is the Resource Cloud Config",OS::Heat::CloudConfig,MAY,,FALSE,, +R-20453,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is attaching to an external network Resource ID +**MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{port-index}`` is the instance of the port on the vm-type + attached to the network of ``{network-role}``",OS::Neutron::Port,MUST,static,TRUE,tests.test_port_resource_ids,test_port_resource_ids +R-20547,"When an ONAP Volume Module Output Parameter is declared as an input +parameter in a base or an incremental module Heat Orchestration +Template, parameter constraints **SHOULD NOT** be declared.",ONAP Volume Module Output Parameters,SHOULD NOT,static,FALSE,, +R-20856,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",vnf_id,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_vnf_id_parameter_doesnt_exist_in_environment_file +R-20947,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a sub-interface port attached to a +sub-interface network Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_subint +R-21330,"A VNF's Heat Orchestration Template's Resource property parameter that is +associated with external network **MUST** include the ``{network-role}`` +as part of the parameter name.",{network-role},MUST,none,FALSE,, +R-21511,"A VNF's Heat Orchestration Template's use of ``{network-role}`` +in all Resource IDs **MUST** be the same case.",{network-role},MUST,none,FALSE,, +R-22288,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``int_{network-role}_v6_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: subnet",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +R-22589,"A VNF's Heat Orchestration Template parameter declaration +**MAY** contain the attribute ``immutable:``.",immutable,MAY,,FALSE,, +R-22608,"When a VNF's Heat Orchestration Template's Base Module's output +parameter is declared as an input parameter in an Incremental Module, +the parameter attribute ``constraints:`` **SHOULD NOT** be declared.",ONAP Base Module Output Parameters,SHOULD NOT,static,FALSE,, +R-22688,"If a VNF's port is connected to an internal network and the port is +created in an Incremental Module and the internal network is created +in the Base Module then the UUID of the internal network **MUST** be +exposed as a parameter in the ``outputs:`` section of the Base Module +and the port resource **MUST** use a ``get_param`` to obtain the network +UUID.",Internal Networks,MUST,static,TRUE,tests.test_neutron_port_internal_network,test_neutron_port_internal_network +R-22838,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``name`` parameter **MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File.",Property: Name,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_name_parameter_doesnt_exist_in_environment_file +R-23311,"The VNF's Heat Orchestration Template's Resource +``OS::Nova::Server`` property +``availability_zone`` parameter **MUST** be declared as type: ``string``.",Property: availability_zone,MUST,static,TRUE,tests.test_server_parameters,test_availability_zone_parameter_type +R-23503,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_v6_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-23664,"A VNF's Heat Orchestration template **MUST** +contain the section ``resources:``.",resources,MUST,static,TRUE,tests.test_heat_template_structure,test_heat_template_structure_contains_resources +R-24893,"A VNF's Heat Orchestration template's Environment File's +**MAY** contain the ``event_sinks:`` section.",Environment File Format,MAY,,FALSE,, +R-24997,"A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to +one ``{vm-type}`` Resource ID **SHOULD** use the naming convention + +* ``{vm-type}_keypair_{index}`` + +where + +* ``{network-role}`` is the network-role +* ``{index}`` is the ``{index}`` of the keypair",OS::Nova::Keypair,SHOULD,,FALSE,, +R-25190,"A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume`` +**SHOULD NOT** declare the property ``availability_zone``.",Optional Property availability_zone,SHOULD NOT,,FALSE,, +R-25720,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net`` +Resource ID **MUST** use the naming convention + +* ``int_{network-role}_network`` + +VNF Heat Orchestration Templates can only create internal networks. +There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` +**MUST** be unique in the scope of the VNF's +Heat Orchestration Template.",OS::Neutron::Net,MUST,static,TRUE,tests.test_neutron_net_resource_id,test_neutron_net_resource_id +R-25877,"A VNF's Heat Orchestration Template's parameter name +(i.e., ) **MUST** contain only alphanumeric +characters and underscores ('_').",,MUST,static,TRUE,tests.test_heat_parameter_section,test_parameter_names +R-26124,"If a VNF Heat Orchestration Template parameter has a default value, +it **MUST** be enumerated in the environment file.",default,MUST,static,TRUE,, +R-26351,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is attaching to an internal network Resource ID **MUST** +use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{port-index}`` is the instance of the port on the vm-type + attached to the network of ``{network-role}``",OS::Neutron::Port,MUST,static,TRUE,tests.test_port_resource_ids,test_port_resource_ids +R-26506,"A VNF's Heat Orchestration Template's ``{network-role}`` **MUST** contain +only alphanumeric characters and/or underscores '_' and +**MUST NOT** contain any of the following strings: +``_int`` or ``int_`` or ``_int_``.",{network-role},MUST,static,TRUE,tests.test_port_resource_ids,test_port_resource_ids +R-270358,"A VNF's Heat Orchestration Template's Cinder Volume Template **MUST** +contain either + +* An ``OS::Cinder::Volume`` resource +* An ``OS::Heat::ResourceGroup`` resource that references a Nested YAML + file that contains an ``OS::Cinder::Volume`` resource +* A resource that defines the property ``type`` as a Nested YAML file + (i.e., static nesting) and the Nested YAML contains + an ``OS::Cinder::Volume`` resource",ONAP Heat Cinder Volumes,MUST,static,TRUE,tests.test_volume_templates,test_volume_templates_contains_cinder_or_resource_group +R-27078,"A VNF's Heat Orchestration template **MUST** contain the +section ``heat_template_version:``.",heat_template_version,MUST,static,TRUE,tests.test_heat_template_structure,test_heat_template_structure_contains_heat_template_version +R-27469,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is creating a *Reserve Port* with an IPv4 address Resource ID +**SHOULD** use the naming convention + +* ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{index}`` is the instance of the IPv4 *Reserve Port* + for the vm-type attached to the network of ``{network-role}``",OS::Neutron::Port,SHOULD,none,FALSE,, +R-27818,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``string``, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_int_{network-role}_v6_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the internal network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-27970,"When a VNF's Heat Orchestration Template's resource is associated with +more than one ``{vm-type}`` and/or more than one internal and/or external +network, the Resource ID **MAY** contain the term ``shared`` and/or **MAY** +contain text that identifies the VNF.",Resource IDs,MAY,,FALSE,, +R-28189,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::InterfaceRouteTable`` +Resource ID **MAY** use the naming convention + +* ``{network-role}_RIRT`` + +where + +* ``{network-role}`` is the network-role +* ``RIRT`` signifies that it is the Resource Interface Route Table",OS::ContrailV2::InterfaceRouteTable,MAY,,FALSE,, +R-28222,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter name +**MUST** follow the format + +* ``{vm-type}_{network-role}_route_prefixes``",Interface Route Table Prefixes for Contrail InterfaceRoute Table,MUST,static,TRUE,tests.test_contrail_irt_routes,test_contrail_irt_route_param_format +R-28795,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_ip_{index}`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +R-28980,A VNF's incremental module **MAY** be used for initial VNF deployment only.,ONAP VNF Modularity Overview,MAY,,FALSE,, +R-29751,"A VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` Resource ID +**MUST** use the naming convention + +* ``{vm-type}_server_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{index}`` is the index",OS::Nova::Server,MUST,static,TRUE,tests.test_nova_server_resource_id,test_nova_server_resource_id +R-29765,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_int_{network-role}_v6_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-29872,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``network`` +parameter **MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File.",Property: network,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_network_parameter_doesnt_exist_in_environment_file +R-30005,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that +is applicable to more than one ``{vm-type}`` and more than one network +(internal and/or external) Resource ID **MAY** +use the naming convention + +* ``shared_security_group`` + +or + +* ``{vnf-type}_security_group`` + +where + +* ``{vnf-type}`` describes the VNF",OS::Neutron::SecurityGroup,MAY,,FALSE,, +R-30395,A VNF's Cinder Volume Module **MAY** utilize nested heat.,Nested Heat Orchestration Templates Overview,MAY,,FALSE,, +R-304011,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource's + +* Resource ID (defined in R-29751) +* property ``image`` parameter name (defined in R-58670) +* property ``flavor`` parameter name (defined in R-45188) +* property ``name`` parameter name (defined in R-54171 & R-87817) +* property port referenced OS::Neutron::Port Resource ID + (defined in R-20453) + +**MUST** contain the identical ``{vm-type}`` +and **MUST** follow the naming conventions defined +in R-58670, R-45188, R-54171, R-87817, and R-29751. And the ``{index}`` in +the ``OS::Nova::Server`` Resource ID (defined in R-29751) **MUST** match +the ``{vm-type_index}`` defined in +the ``OS::Nova::Server`` property ``port`` +referenced ``OS::Neutron::Port`` Resource ID (defined in R-20453).",Resource: OS::Nova::Server - Parameters,MUST,static,TRUE,tests.test_server_and_port_vm_indices_match,test_server_and_port_vmtype_indices_match +R-30753,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::NetworkIpam`` +Resource ID +**MUST** +contain the ``{network-role}``.",OS::ContrailV2::NetworkIpam,MUST,static,TRUE,tests.test_contrail_resource_id,test_contrail_networkipam_resource_id +R-30804,"A VNF's Heat Orchestration Template's Resource +``OS::Heat::MultipartMime`` +Resource ID +**MUST** +contain the ``{vm-type}``.",OS::Heat::MultipartMime,MUST,static,TRUE,tests.test_multipart_mime_resource_id,test_multipart_mime +R-31141,"VNF Heat Orchestration Template's Cinder Volume Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Cinder Volume Module with ``.y[a]ml`` replaced with ``.env``.",Cinder Volume Modules,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-32094,"A VNF's Heat Orchestration Template parameter declaration **MAY** +contain the attribute ``label:``.",label,MAY,,FALSE,, +R-32394,"A VNF's Heat Orchestration Template's use of ``{vm-type}`` in all Resource +property parameter names **MUST** be the same case.",{vm-type},MUST,static,TRUE,tests.test_vm_type_case,test_vm_type_case +R-32557,"A VNF's Heat Orchestration Template parameter declaration **MAY** +contain the attribute ``hidden:``.",hidden,MAY,,FALSE,, +R-33132,"A VNF's Heat Orchestration Template **MAY** be + 1.) Base Module Heat Orchestration Template (also referred to as a + Base Module), + 2.) Incremental Module Heat Orchestration Template (referred to as + an Incremental Module), or + 3.) a Cinder Volume Module Heat Orchestration Template (referred to as + Cinder Volume Module).",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-34037,"The VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +**MUST** be declared as either type ``string`` or type +``comma_delimited_list``.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-34055,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter ``workload_context`` **MUST NOT** +have parameter constraints defined.",workload_context,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_workload_context_parameter_has_no_constraints +R-348813,"The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include +a binary image file.",ONAP VNF On-Boarding,MUST,,TRUE,tests.test_no_image_files,test_no_image_files_included +R-35414,"A VNF Heat Orchestration's template **MUST** contain the +section ``parameters:``.",parameters,MUST,static,TRUE,tests.test_heat_template_structure,test_heat_template_structure_contains_parameters +R-35666,"If a VNF has an internal network, the VNF Heat Orchestration Template +**MUST** include the heat resources to create the internal network.",Internal Networks,MUST,static,TRUE,tests.test_network_format,test_network_resource_id_format +R-35735,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 Virtual IP (VIP) +address is assigned via ONAP automation +using the property ``allowed_address_pairs`` +map property ``ip_address``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_floating_v6_ip`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + +And the parameter **MUST** be declared as type ``string``.","VIP Assignment, External Networks, Supported by Automation",MUST,static,TRUE,tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role +R-36542,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` parameter +``vnf_name`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",vnf_name,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_vnf_name_parameter_doesnt_exist_in_environment_file +R-36582,A VNF's Base Module **MAY** utilize nested heat.,Nested Heat Orchestration Templates Overview,MAY,,FALSE,, +R-36687,"A VNF's Heat Orchestration Template's ``{vm-type}`` case in Resource +property parameter names **SHOULD** match the case of ``{vm-type}`` +in Resource IDs and vice versa.",{vm-type},SHOULD,,FALSE,, +R-36772,"A VNF's Heat Orchestration Template's parameter **MUST** include the +attribute ``type:``.",type,MUST,static,TRUE,tests.test_heat_template_parameters_contain_required_fields,test_heat_template_parameters_contain_required_fields +R-36982,"A VNF's Heat Orchestration template **MAY** contain the ``outputs:`` +section.",outputs,MAY,,FALSE,, +R-37028,A VNF **MUST** be composed of one Base Module,ONAP VNF Modularity Overview,MUST,,TRUE,tests.test_base_template_names,test_base_template_names +R-37039,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_index`` parameter +``vf_module_index`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",vf_module_index,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_vf_module_index_parameter_doesnt_exist_in_environment_file +R-37437,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property ``metadata`` **MUST** +contain the key/value pair ``vnf_id`` +and the value **MUST** be obtained via a ``get_param``.",vnf_id,MUST,static,TRUE,tests.test_servers_have_required_metadata,test_servers_have_required_metadata +R-38236,"The VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +**MUST** be declared type ``string``.","Property: fixed_ips, Map Property: subnet",MUST,static,TRUE,tests.test_neutron_port_fixed_ips,test_neutron_port_fixed_ips +R-38474,A VNF's Base Module **MUST** have a corresponding Environment File.,ONAP VNF Modularity Overview,MUST,static,TRUE,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name +R-39067,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be +declared as ``vf_module_name`` and the parameter **MUST** +be defined as type: ``string``.",vf_module_name,MUST,static,TRUE,tests.test_server_parameters,test_vf_module_name_parameter_type_and_parameter_name +R-39349,"A VNF Heat Orchestration Template **MUST NOT** be designed to utilize the +OpenStack ``heat stack-update`` command for scaling (growth/de-growth).",Support of heat stack update,MUST NOT,static,TRUE,, +R-39402,"A VNF's Heat Orchestration Template **MUST** contain the +section ``description:``.",description,MUST,static,TRUE,tests.test_heat_template_structure,test_heat_template_structure_contains_description +R-39841,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_ip_{index}`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +R-40499,"Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** +have a unique parameter name for the ``OS::Nova::Server`` property +``flavor`` even if more than one ``{vm-type}`` shares the same flavor.",Property: flavor,MUST,static,TRUE,tests.test_nova_servers_resource_ids,test_nova_servers_valid_resource_ids +R-40518,"A VNF's Heat Orchestration Template's parameter defined +in a non-nested YAML file as type +``string`` **MAY** have a parameter constraint defined.",constraints,MAY,,FALSE,, +R-40551,"A VNF's Heat Orchestration Template's Nested YAML files **MAY** +(or **MAY NOT**) contain the section ``resources:``.",resources,MAY,,FALSE,, +R-40971,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a string, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_{network-role}_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the external network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-41492,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv4 Virtual IP (VIP) +address is assigned via ONAP automation +using the property ``allowed_address_pairs`` +map property ``ip_address`` and +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_{network-role}_floating_ip`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + +And the parameter **MUST** be declared as type ``string``.","VIP Assignment, External Networks, Supported by Automation",MUST,static,TRUE,tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role +R-41888,"A VNF's Heat Orchestration Template intrinsic function +``get_file`` **MUST NOT** utilize URL-based file retrieval.",Heat Files Support (get_file),MUST NOT,static,TRUE,tests.test_get_file_only_reference_local_files,test_get_file_no_url_retrieval +R-41956,"If a VNF requires ONAP to assign a Virtual IP (VIP) Address to +ports connected an external network, the port +**MUST NOT** have more than one IPv6 VIP address.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_neutron_port_addresses,test_neutron_port_external_ipaddress_v6 +R-42685,"A VNF's Heat Orchestration template's Environment File's +**MAY** contain the ``parameter_merge_strategies:`` section.",Environment File Format,MAY,,FALSE,, +R-43413,"A VNF **MUST** utilize a modular Heat Orchestration Template design to +support scaling (growth/de-growth).",Support of heat stack update,MUST,none,FALSE,, +R-43740,"VNF's Heat Orchestration Template's Resource **MAY** declare the +attribute ``deletion_policy:``.",deletion_policy,MAY,,FALSE,, +R-44001,"A VNF's Heat Orchestration Template parameter declaration **MUST** +contain the attribute ``description``.",description,MUST,static,TRUE,tests.test_heat_template_parameters_contain_required_fields,test_heat_template_parameters_contain_required_fields +R-44271,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``name`` parameter value **SHOULD NOT** contain special characters +since the Contrail GUI has a limitation displaying special characters. + +However, if special characters must be used, the only special characters +supported are: --- \"" ! $ ' (\ \ ) = ~ ^ | @ ` { } [ ] > , . _",Contrail Issue with Values for OS::Nova::Server Property Name,SHOULD NOT,,FALSE,, +R-44318,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` +parameter ``vnf_name`` **MUST NOT** +have parameter constraints defined.",vnf_name,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vnf_name_parameter_has_no_constraints +R-45188,"The VNF's Heat Orchestration Template's Resource 'OS::Nova::Server' property +``flavor`` parameter name **MUST** follow the naming convention +``{vm-type}_flavor_name``.",Property: flavor,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_flavor_parameter +R-45602,"If a VNF's Port is attached to a network (internal or external) +and the port's IP addresses are cloud assigned by OpenStack's DHCP +Service, the ``OS::Neutron::Port`` Resource's + +* property ``fixed_ips`` map property ``ip_address`` **MUST NOT** be used +* property ``fixed_ips`` map property ``subnet`` + **MAY** be used",Items to Note,MUST NOT,none,FALSE,, +R-46096,"A VNF's Heat Orchestration template's Environment File's +**MAY** contain the ``encrypted_parameters:`` section.",Environment File Format,MAY,,FALSE,, +R-46119,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume`` +**MAY** be defined in a Base Module.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-46128,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a port attached to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of {network-role} +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_external +R-46461,"A VNF's port connected to an internal network **MUST NOT** use the port +for the purpose of reaching VMs in another VNF and/or an +external gateway and/or +external router.",Internal Networks,MUST NOT,none,FALSE,, +R-46839,"A VNF's Heat Orchestration Template's use of ``{vm-type}`` +in all Resource IDs **MUST** be the same case.",{vm-type},MUST,static,TRUE,tests.test_vm_type_resource_id,test_vm_type_resource_id +R-46968,"VNF's Heat Orchestration Template's Resource **MAY** declare the +attribute ``depends_on:``.",depends_on,MAY,,FALSE,, +R-47061,"A VNF's Heat Orchestration Template's OS::Nova::Server +Resource **SHOULD** contain the metadata map value parameter +'workload_context'.",workload_context,SHOULD,,FALSE,, +R-47874,"A VNF **MAY** have + * Only an IPv4 OAM Management IP Address + * Only an IPv6 OAM Management IP Address + * Both a IPv4 and IPv6 OAM Management IP Addresses",OAM Management IP Addresses,MAY,,FALSE,, +R-48067,"A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST NOT** be a +substring +of ``{network-role}``.",{vm-type},MUST NOT,static,TRUE,tests.test_nova_servers_vm_types,test_vm_type_network_role_collision +R-481670,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``flavor`` value **MUST** be be obtained via a ``get_param``.",Property: flavor,MUST,static,TRUE,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param +R-48880,"If a VNF's Port is attached to an external network and the port's +IP addresses are assigned by ONAP's SDN-Controller, +the ``OS::Neutron::Port`` Resource's + +* property ``fixed_ips`` map property ``ip_address`` **MUST** be used +* property ``fixed_ips`` map property ``subnet`` + **MUST NOT** be used",Items to Note,MUST,none,FALSE,, +R-48987,"If the VNF's OAM Management IP Address is cloud assigned and +and the OAM IP Address is required to be inventoried in ONAP A&AI, +then the parameter **MUST** be obtained by the +resource ``OS::Neutron::Port`` +attribute ``ip_address``.",OAM Management IP Addresses,MUST,none,FALSE,, +R-50011,"A VNF's Heat Orchestration Template's ``OS::Heat::ResourceGroup`` +property ``count`` **MUST** be enumerated in the VNF's +Heat Orchestration Template's Environment File and **MUST** be +assigned a value.",OS::Heat::ResourceGroup Property count,MUST,static,TRUE,tests.test_environment_file_parameters,test_heat_rg_count_parameter_exists_in_environment_file +R-50436,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``flavor`` parameter **MUST** be declared as type: ``string``.",Property: flavor,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_flavor_parameter +R-50468,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",OS::ContrailV2::VirtualMachineInterface,MUST,static,TRUE,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_internal +R-50816,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property ``metadata`` **MAY** +contain the key/value pair ``vf_module_index`` +and the value **MUST** be obtained via a ``get_param``.",vf_module_index,MUST,,TRUE,tests.test_servers_metadata_use_get_param,test_servers_vf_module_index_metadata_use_get_param +R-511776,"When a VNF's Heat Orchestration Template is ready +to be on-boarded to ONAP, +all files composing the VNF Heat Orchestration Template +**MUST** be placed in a flat (i.e., non-hierarchical) directory and +archived using ZIP. The resulting ZIP file is uploaded into ONAP.",ONAP VNF On-Boarding,MUST,,TRUE,tests.test_files_in_flat_dir,test_files_in_flat_dir +R-51430,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``name`` parameter **MUST** be declared as either type ``string`` +or type ``comma_delimited_list``.",Property: Name,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_name_parameter +R-52425,"A VNF's port connected to an internal network **MUST** +use the port for the purpose of reaching VMs in the same VNF.",Internal Networks,MUST,none,FALSE,, +R-52753,"VNF's Heat Orchestration Template's Base Module's output parameter's +name and type **MUST** match the VNF's Heat Orchestration Template's +incremental Module's name and type.",ONAP Base Module Output Parameters,MUST,static,TRUE,, +R-53310,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a port attached to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the {vm-type} +* ``{network-role}`` is the network-role of the network that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type attached to the network of {network-role} +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_external +R-53433,A VNF's Cinder Volume Module **MUST** have a corresponding environment file,ONAP VNF Modularity Overview,MUST,static,TRUE,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name +R-53952,"A VNF's Heat Orchestration Template's Resource +**MUST NOT** reference a HTTP-based resource definitions.",type,MUST NOT,static,TRUE,tests.test_no_http_resources,test_no_http_resources +R-54171,"When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` parameter is defined as a ``string``, +the parameter name **MUST** follow the naming convention + +* ``{vm-type}_name_{index}`` + +where ``{index}`` is a numeric value that **MUST** start at +zero in a VNF's Heat Orchestration Template and **MUST** increment by one.",Property: Name,MUST,static,TRUE,tests.test_nova_server_name_parameters_start_at_0,test_nova_server_name_parameter_starts_at +R-54340,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property +``metadata`` key/value pair ``vf_module_index`` parameter **MUST** +be declared as ``vf_module_index`` and the parameter **MUST** be +defined as type: ``number``.",vf_module_index,MUST,static,TRUE,tests.test_server_parameters,test_vf_module_index_parameter_type_and_parameter_name +R-54458,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to a sub-interface +network Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",OS::ContrailV2::VirtualMachineInterface,MUST,static,TRUE,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_subint +R-54517,"When a VNF's Heat Orchestration Template's resource is associated with +a single ``{vm-type}``, the Resource ID **MUST** contain the +``{vm-type}``.",Resource IDs,MUST,none,FALSE,, +R-55218,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** +have parameter constraints defined.",vnf_id,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vnf_id_parameter_has_no_constraints +R-55306,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT** +be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be +used in VNF's Volume template; +it is not supported.",vf_module_index,MUST NOT,static,TRUE,tests.test_volume_templates,test_no_vf_module_index_in_cinder +R-56183,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata``key/value pair ``environment_context`` +parameter ``environment_context`` **MUST NOT** +have parameter constraints defined.",environment_context,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_environment_context_parameter_has_no_constraints +R-56287,"If the VNF's OAM Management IP Address is assigned by ONAP SDN-C and +assigned in the VNF's Heat Orchestration Template's via a heat resource +``OS::Neutron::Port`` property ``fixed_ips`` map property +``ip_adress`` parameter (e.g., ``{vm-type}_{network-role}_ip_{index}``, +``{vm-type}_{network-role}_v6_ip_{index}``) +and the OAM IP Address is required to be inventoried in ONAP A&AI, +then the parameter **MUST** be echoed in an output statement. + +.. code-block:: yaml + + outputs: + oam_management_v4_address: + value: {get_param: {vm-type}_{network-role}_ip_{index} } + oam_management_v6_address: + value: {get_param: {vm-type}_{network-role}_v6_ip_{index} }",OAM Management IP Addresses,MUST,none,FALSE,, +R-56438,"A VNF's Heat Orchestration Template's Nested YAML file extension **MUST** +be in the lower case format ``.yaml`` or ``.yml``.",ONAP Heat Orchestration Template Filenames,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-56721,A VNF's Incremental Module **MAY** utilize nested heat.,Nested Heat Orchestration Templates Overview,MAY,,FALSE,, +R-57282,"Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** +have a unique parameter name for the ``OS::Nova::Server`` property +``image`` even if more than one ``{vm-type}`` shares the same image.",Property: image,MUST,static,TRUE,tests.test_nova_servers_resource_ids,test_nova_servers_valid_resource_ids +R-57424,"A VNF's port connected to an external network **MUST** +use the port for the purpose of reaching +VMs in another VNF and/or an external gateway and/or external router. +A VNF's port connected to an external network **MAY** +use the port for the purpose of reaching VMs in the same VNF.",External Networks,MUST,none,FALSE,, +R-58424,"A VNF's Heat Orchestration Template's use of ``{network-role}`` +in all Resource property parameter names **MUST** be the same case.",{network-role},MUST,none,FALSE,, +R-58670,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter name **MUST** follow the naming convention +``{vm-type}_image_name``.",Property: image,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_image_parameter +R-589037,"A VNF Heat Orchestration Template's Cinder Volume Module resources section +**MUST** only be defined using one of the following: + +* one of more ``OS::Cinder::Volume`` resources +* one or more ``OS::Heat::ResourceGroup`` resources that call a nested YAML + file that contains only ``OS::Cinder::Volume`` resources +* a resource that calls a nested YAML file (static nesting) that contains + only ``OS::Cinder::Volume`` resources",Cinder Volume Modules,MUST,static,TRUE,tests.test_volume_module_naming,test_detected_volume_module_follows_naming_convention +R-59434,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet`` +Resource ID **SHOULD** use the naming convention + +* ``int_{network-role}_subnet_{index}`` + +where + +* ``{network-role}`` is the network-role +* ``{index}`` is the ``{index}`` of the subnet of the network",OS::Neutron::Subnet,SHOULD,,FALSE,, +R-59482,"A VNF's Heat Orchestration Template **MUST NOT** be VNF instance +specific or cloud site specific.",Scope of a Heat Orchestration Template,MUST NOT,none,FALSE,, +R-59568,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``availability_zone`` parameter **MUST NOT** be enumerated in the Heat +Orchestration +Template's Environment File.",Property: availability_zone,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_az_parameter_doesnt_exist_in_environment_file +R-59930,"A VNF's Heat Orchestration template's Environment File's +**MAY** contain the ``parameter_defaults:`` section.",Environment File Format,MAY,,FALSE,, +R-599443,"A parameter enumerated in a +VNF's Heat Orchestration Template's environment file **MUST** be declared +in the +corresponding VNF's Heat Orchestration Template's YAML file's +``parameters:`` section.",ONAP Heat Support of Environment Files,MUST,static,TRUE,tests.test_env_parameters_defined_in_template,test_env_params_are_defined_in_template +R-60011,"A VNF's Heat Orchestration Template **MUST** have no more than two +levels of nesting.",Nested Heat Template Requirements,MUST,,TRUE,tests.test_nesting_level,test_nesting_level +R-61001,"A shared Heat Orchestration Template resource is a resource that **MUST** +be defined in the base module and will be referenced by one or +more resources in one or more incremental modules. + +The UUID of the shared resource (created in the base module) **MUST** be +exposed by declaring a parameter in the +``outputs`` section of the base module. + +For ONAP to provided the UUID value of the shared resource to the +incremental module, the parameter name defined in the ``outputs`` +section of the base module **MUST** be defined as a parameter +in the ``parameters`` section of the incremental module. + +ONAP will capture the output parameter name and value in the base module +and provide the value to the corresponding parameter(s) in the +incremental module(s).",ONAP Heat VNF Modularity,MUST,none,FALSE,, +R-62187,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv4 Address on a port attached to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``IP`` signifies that an IPv4 address is being configured +* ``{index}`` is the index of the IPv4 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_internal +R-62428,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vnf_name`` parameter **MUST** +be declared as ``vnf_name`` and the parameter **MUST** be defined as +type: ``string``.",vnf_name,MUST,static,TRUE,tests.test_server_parameters,test_vnf_name_parameter_type_and_parameter_name +R-62590,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``fixed_ips`` +map property ``ip_address`` +parameter associated with an external network, i.e., + + * ``{vm-type}_{network-role}_ip_{index}`` + * ``{vm-type}_{network-role}_v6_ip_{index}`` + * ``{vm-type}_{network-role}_ips`` + * ``{vm-type}_{network-role}_v6_ips`` + + +**MUST NOT** be enumerated in the Heat Orchestration +Template's Environment File. ONAP provides the IP address +assignments at orchestration time.","Property: fixed_ips, Map Property: ip_address",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +R-62802,"When the VNF's Heat Orchestration Template's +resource ``OS::Neutron::Port`` is attaching +to an external network (per the ONAP definition, see +Requirement R-57424), +and an IPv4 address is being cloud assigned by OpenStack's DHCP Service +and the external network IPv4 subnet is to be specified +using the property ``fixed_ips`` +map property ``subnet``, the parameter +**MUST** follow the naming convention + + * ``{network-role}_subnet_id`` + +where + + * ``{network-role}`` is the network role of the network.","Property: fixed_ips, Map Property: subnet",MUST,static,TRUE,tests.test_neutron_port_fixed_ips,test_neutron_port_external_fixed_ips +R-62983,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), the +``network`` parameter name **MUST** + + * follow the naming convention ``{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``{network-role}_net_name`` if the + OpenStack network name is used to reference the network. + +where ``{network-role}`` is the network-role of the external network +and a ``get_param`` **MUST** be used as the intrinsic function.",Property: network,MUST,static,TRUE,tests.test_network_format,test_network_format +R-63137,"VNF's Heat Orchestration Template's Resource **MAY** declare the +attribute ``update_policy:``.",update_policy,MAY,,FALSE,, +R-63956,"If the VNF's ports connected to a unique external network +and the port's IP addresses are ONAP SDN-C assigned IP Addresses, +the IPv4 Addresses **MAY** be from different subnets and the IPv6 +Addresses **MAY** be from different subnets.",Items to Note,MAY,,FALSE,, +R-64197,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::ResourceGroup`` +Resource ID that creates sub-interfaces **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_port_{port-index}_subinterfaces`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the networks + that the sub-interfaces attach to +* ``{port-index}`` is the instance of the port on the vm-type + attached to the network of ``{network-role}``",OS::Heat::ResourceGroup,MUST,static,TRUE,, +R-65516,"A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to +all Virtual Machines in the VNF, the Resource ID **SHOULD** use the naming +convention + +* ``{vnf-type}_keypair`` + +where + +* ``{vnf-type}`` describes the VNF",OS::Nova::Keypair,SHOULD,,FALSE,, +R-65618,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::ServiceHealthCheck`` Resource ID **MAY** use the naming convention + +* ``{vm-type}_RSHC_{LEFT|RIGHT}`` + +where + +* ``{vm-type}`` is the vm-type +* ``RSHC`` signifies that it is the Resource Service Health Check +* ``LEFT`` is used if the Service Health Check is on the left interface +* ``RIGHT`` is used if the Service Health Check is on the right interface",OS::ContrailV2::ServiceHealthCheck,MAY,,FALSE,, +R-663631,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` value **MUST** be be obtained via a ``get_param``.",Property: Name,MUST,static,TRUE,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param +R-67231,"A VNF's Heat Orchestration template's Environment File's +**MUST NOT** contain the ``resource_registry:`` section.",Environment File Format,MUST NOT,static,TRUE,tests.test_env_no_resource_registry,test_env_no_resource_registry +R-67386,"A VNF's Heat Orchestration Template's Resource **MAY** declare the +attribute ``metadata``.",metadata,MAY,static,FALSE,, +R-67597,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role`` +**MUST NOT** have parameter constraints defined.",vm_role,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vm_role_parameter_has_no_constraints +R-67793,"When a VNF's Heat Orchestration Template's resource is associated +with more than one ``{vm-type}`` and/or more than one internal and/or +external network, the Resource ID **MUST** not contain the ``{vm-type}`` +and/or ``{network-role}``/``int_{network-role}``. It also should contain the +term ``shared`` and/or contain text that identifies the VNF.",Resource IDs,MUST NOT,none,FALSE,, +R-68023,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` **SHOULD** +contain the key/value pair ``vf_module_name`` and the value **MUST** +be obtained via a ``get_param``.",vf_module_name,MUST,,TRUE,tests.test_servers_metadata_use_get_param,test_servers_vf_module_name_metadata_use_get_param +R-68122,"A VNF's incremental module **MAY** be deployed more than once, +either during initial VNF deployment and/or scale out.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-681859,"A VNF's Heat Orchestration Template's ``OS::Neutron::Port`` resource's + +* Resource ID (defined in R-20453) +* property ``network`` parameter name (defined in R-62983 and + R-86182) +* property ``fixed_ips``, map property ``ip_address`` parameter name + (defined in R-40971, R-04697, R-71577, R-23503, R-78380, R-85235, + R-27818, and R-29765) +* property ``fixed_ips``, map property ``subnet`` parameter name + (defined in R-62802, R-15287, R-84123, R-76160) +* property ``allowed_address_pairs`` parameter name (defined in + R-41492 and R-83418) + +**MUST** contain the identical ``{network-role}``.",Items to Note,MUST,,TRUE,tests.test_port_resource_ids,test_port_resource_ids +R-68198,"A VNF's Heat Orchestration template's Environment File's +``parameters:`` section **MAY** (or **MAY NOT**) enumerate parameters.",Environment File Format,MAY,,FALSE,, +R-68520,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +that is creating a *Reserve Port* with an IPv6 address Resource ID +**SHOULD** use the naming convention + +* ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{index}`` is the instance of the IPv6 *Reserve Port* + for the vm-type attached to the network of ``{network-role}``",OS::Neutron::Port,SHOULD,none,FALSE,, +R-69014,"When a VNF's port connects to an internal network or external network, +a network role, referred to +as the ``{network-role}`` **MUST** be assigned to the network for +use in the VNF's Heat Orchestration Template. The ``{network-role}`` +is used in the VNF's Heat Orchestration Template resource IDs +and resource property parameter names.",{network-role},MUST,none,FALSE,, +R-69431,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``flavor`` parameter **MUST** be enumerated in the Heat Orchestration +Template's Environment File and a value **MUST** be assigned.",Property: flavor,MUST,static,TRUE,tests.test_environment_file_parameters,test_nova_server_flavor_parameter_exists_in_environment_file +R-69588,"When a VNF's Heat Orchestration Template's Virtual Machine +(i.e., ``OS::Nova::Server`` Resource) boots from Cinder Volume, the +``OS::Nova::Server`` resource property +``block_device_mapping`` or ``block_device_mapping_v2`` +**MUST** be used.",Boot Options,MUST,none,FALSE,, +R-69634,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``int_{network-role}_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: subnet",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +R-69663,"A VNF **MAY** be composed from one or more Heat Orchestration +Templates, each of which represents a subset of the overall VNF.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-70276,"A VNF HEAT's Orchestration Nested Template's YAML file name **MUST NOT** +be in the format ``{vm-type}.y[a]ml`` where ``{vm-type}`` is defined +in the Heat Orchestration Template.",Nested Heat file,MUST NOT,static,TRUE,tests.test_filename_is_vmtype_dot_yaml,test_filename_is_vmtype_dot_yaml +R-708564,"If a VNF's Heat Orchestration Template's resource invokes a nested +YAML file, either statically or dynamically, the names of the parameters +passed into the nested YAML file **MUST NOT** change.",Nested Heat Template Requirements,MUST,,TRUE,tests.test_nested_parameters,test_parameter_name_doesnt_change_in_nested_template +R-70964,"If a VNF's Port is attached to an internal network and the port's +IP addresses are statically assigned by the VNF's Heat Orchestration\ +Template (i.e., enumerated in the Heat Orchestration Template's +environment file), the ``OS::Neutron::Port`` Resource's + +* property ``fixed_ips`` map property ``ip_address`` **MUST** be used +* property ``fixed_ips`` map property ``subnet`` + **MUST NOT** be used",Items to Note,MUST NOT,none,FALSE,, +R-71152,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter **MUST** be declared as type: ``string``.",Property: image,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_image_parameter +R-71493,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` **MUST** +contain the key/value pair ``vf_module_id`` +and the value MUST be obtained via a ``get_param``.",vf_module_id,MUST,static,TRUE,tests.test_servers_have_required_metadata,test_servers_have_required_metadata +R-71577,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an external network (per the +ONAP definition, see Requirement R-57424), +and an IPv6 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a string, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_{network-role}_v6_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the external network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-71699,"A VNF's Heat Orchestration Template's Resource +**MUST NOT** reference a HTTP-based Nested YAML file.",type,MUST NOT,static,TRUE,tests.test_no_http_resources,test_no_http_resources +R-72483,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` **MUST** contain the key/value pair ``vnf_name`` and the +value **MUST** be obtained via a ``get_param``.",vnf_name,MUST,static,TRUE,tests.test_servers_have_required_metadata,test_servers_have_required_metadata +R-72871,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id`` +**MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",vf_module_id,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_vf_module_id_parameter_doesnt_exist_in_environment_file +R-73213,"A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that +is applicable to more than one ``{vm-type}`` and one internal network Resource ID +**SHOULD** use the naming convention + +* ``int_{network-role}_security_group`` + +where + +* ``{network-role}`` is the network-role",OS::Neutron::SecurityGroup,SHOULD,,FALSE,, +R-74304,"A VNF's Heat Orchestration Template's Environment file extension **MUST** +be in the lower case format ``.env``.",ONAP Heat Orchestration Template Filenames,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-74978,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``workload_context`` +parameter **MUST** +be declared as ``workload_context`` and the parameter **MUST** +be defined as type: ``string``.",workload_context,MUST,static,TRUE,tests.test_nova_servers_workload_context,test_workload_context +R-75141,"A VNF's Heat Orchestration Template's resource name +(i.e., ) **MUST** only contain alphanumeric +characters and underscores ('_').",resource ID,MUST,static,TRUE,tests.test_resource_ids_alphanumeric_only,test_alphanumeric_resource_ids_only +R-76014,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::ServiceHealthCheck`` +Resource ID +**MUST** +contain the ``{vm-type}``.",OS::ContrailV2::ServiceHealthCheck,MUST,static,TRUE,tests.test_contrail_resource_id,test_contrail_servicehealthcheck_resource_id +R-76057,"VNF Heat Orchestration Template's Nested YAML file name **MUST** contain +only alphanumeric characters and underscores '_' and +**MUST NOT** contain the case insensitive word ``base``.",Nested Heat file,MUST,static,TRUE,tests.test_base_template_names,test_base_template_names +R-76160,"When + + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see Requirements + R-52425 and R-46461) + that is created in the Base Module, AND + * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv6 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``, + +the parameter **MUST** follow the naming convention +``int_{network-role}_v6_subnet_id``, +where ``{network-role}`` is the network role of the internal network. + +Note that the parameter **MUST** be defined as an ``output`` parameter in +the base module.","Property: fixed_ips, Map Property: subnet",MUST,static,TRUE,tests.test_neutron_port_fixed_ips,test_neutron_port_internal_fixed_ips +R-76449,"A VNF's Heat Orchestration Template's **MUST NOT** +contain the Resource ``OS::Neutron::FloatingIPAssociation``.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_forbidden_resources,test_neutron_floating_ip_association_resource_type +R-76682,"If a VNF's Heat Orchestration Template +``OS::ContrailV2::InterfaceRouteTable`` resource +``interface_route_table_routes`` property +``interface_route_table_routes_route`` map property parameter +``{vm-type}_{network-role}_route_prefixes`` +**MUST NOT** be enumerated in the VNF's Heat Orchestration Template's +Environment File.",Interface Route Table Prefixes for Contrail InterfaceRoute Table,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_contrail_route_prefixes_parameter_doesnt_exist_in_environment_file +R-76718,"If a VNF's Heat Orchestration Template uses the intrinsic function +``get_file``, the ``get_file`` target **MUST** be referenced in +the Heat Orchestration Template by file name.",Heat Files Support (get_file),MUST,static,TRUE,tests.test_get_file_only_reference_local_files,test_get_file_only_reference_local_files +R-78380,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is +defined as a ``string``, +the parameter name **MUST** follow the +naming convention + +* ``{vm-type}_int_{network-role}_ip_{index}`` + +where + +* ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` +* ``{network-role}`` is the {network-role} of the internal network +* ``{index}`` is a numeric value that **MUST** start at zero in a + VNF's Heat Orchestration Template and **MUST** increment by one","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-78569,"VNF's Heat Orchestration Template's Resource **MAY** declare the +attribute ``external_id:``.",external_id,MAY,,FALSE,, +R-79817,"A VNF's Heat Orchestration Template's parameter defined +in a non-nested YAML file as +type ``comma_delimited_list`` **MAY** have a parameter constraint defined.",constraints,MAY,,FALSE,, +R-80374,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vf_module_name`` +parameter ``vf_module_name`` **MUST NOT** +be enumerated in the Heat Orchestration Template's environment file.",vf_module_name,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_nova_server_vf_module_name_parameter_doesnt_exist_in_environment_file +R-80829,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``{network-role}_v6_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: subnet",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +R-81214,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::InterfaceRouteTable`` +Resource ID +**MUST** +contain the ``{network-role}``.",OS::ContrailV2::InterfaceRouteTable,MUST,static,TRUE,tests.test_contrail_resource_id,test_contrail_interfaceroutetable_resource_id +R-81339,"A VNF Heat Orchestration Template's Base Module file name **MUST** include +case insensitive 'base' in the filename and +**MUST** match one of the following four +formats: + + 1.) ``base_.y[a]ml`` + + 2.) ``_base.y[a]ml`` + + 3.) ``base.y[a]ml`` + + 4.) ``_base_``.y[a]ml + +where ```` **MUST** contain only alphanumeric characters and +underscores '_' and **MUST NOT** contain the case insensitive word ``base``.",Base Modules,MUST,static,TRUE,tests.test_base_template_names,test_base_template_names +R-81725,A VNF's Incremental Module **MUST** have a corresponding Environment File,ONAP VNF Modularity Overview,MUST,static,TRUE,tests.test_env_and_yaml_same_name,test_env_and_yaml_same_name +R-81979,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::NetworkIpam`` +Resource ID **MAY** use the naming convention + +* ``{network-role}_RNI`` + +where + +* ``{network-role}`` is the network-role +* ``RNI`` signifies that it is the Resource Network IPAM",OS::ContrailV2::NetworkIpam,MAY,,FALSE,, +R-82115,"When a VNF's Heat Orchestration Template's resource is associated with a +single ``{vm-type}`` +and a single external network, the Resource ID text **MUST** contain both +the ``{vm-type}`` +and the ``{network-role}`` + +- the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and + **MUST** be separated by an underscore '_' + + + - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}`` + + +- note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the + ``{network-role}`` and when this occurs underscores **MUST** separate the + three values. (e.g., ``{vm-type}_{index}_{network-role}``).",Resource IDs,MUST,none,FALSE,, +R-82134,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter **MUST** +be declared as ``vf_module_id`` and the parameter **MUST** +be defined as type: ``string``.",vf_module_id,MUST,static,TRUE,tests.test_server_parameters,test_vf_module_id_parameter_type_and_parameter_name +R-82481,"A VNF's Heat Orchestration Template's Resource property parameter that is +associated with a unique Virtual Machine type **MUST** include +``{vm-type}`` as part of the parameter name with two exceptions: + + 1.) The Resource ``OS::Nova::Server`` property ``availability_zone`` + parameter **MUST NOT** be prefixed with a common ``{vm-type}`` identifier, + + 2.) The Resource ``OS::Nova::Server`` eight mandatory and optional + ``metadata`` + parameters (i.e., ``vnf_name``, ``vnf_id``, ``vf_module_id``, + ``vf_module_name``, ``vm_role``, + ``vf_module_index``, ``environment_context``, ``workload_context``) + **MUST NOT** be prefixed with a common ``{vm-type}`` identifier.",{vm-type},MUST,static,TRUE,, +R-82551,"When a VNF's Heat Orchestration Template's resource is associated with a +single ``{vm-type}`` and a single internal network, the Resource ID **MUST** +contain both the ``{vm-type}`` and the ``int_{network-role}`` and + +- the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and + **MUST** be separated by an underscore '_' + + - (e.g., ``{vm-type}_int_{network-role}``, + ``{vm-type}_{index}_int_{network-role}``) + +- note that an ``{index}`` value **MAY** separate the + ``{vm-type}`` and the ``int_{network-role}`` and when this occurs + underscores **MUST** separate the three values. + (e.g., ``{vm-type}_{index}_int_{network-role}``).",Resource IDs,MUST,none,FALSE,, +R-82732,"A VNF Heat Orchestration Template's Cinder Volume Module **MUST** +be named identical to the base or incremental module it is supporting with +``_volume`` appended.",Cinder Volume Modules,MUST,static,TRUE,tests.test_volume_outputs_consumed,test_volume_module_name_matches_incremental_or_base_module +R-83412,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_floating_ip`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file +R-83418,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_floating_v6_ip`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_aap_ip_parameter_doesnt_exist_in_environment_file +R-83677,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``subnet`` parameter +``{network-role}_subnet_id`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: subnet",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_fixedips_subnet_parameter_doesnt_exist_in_environment_file +R-83706,"When a VNF's Heat Orchestration Template's Virtual Machine +(i.e., ``OS::Nova::Server`` resource) boots from an image, the +``OS::Nova::Server`` resource property ``image`` **MUST** be used.",Boot Options,MUST,none,FALSE,, +R-84123,"When + + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see + Requirements R-52425 and R-46461) + that is created in the Base Module, AND + * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv4 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``, + +the parameter **MUST** follow the naming convention + + * ``int_{network-role}_subnet_id`` + +where + + * ``{network-role}`` is the network role of the internal network + +Note that the parameter **MUST** be defined as an ``output`` parameter in +the base module.","Property: fixed_ips, Map Property: subnet",MUST,static,TRUE,tests.test_neutron_port_fixed_ips,test_neutron_port_internal_fixed_ips +R-84322,"A VNF's Heat Orchestration Template's Resource property parameter that +is associated with an internal network **MUST** include +``int_{network-role}`` as part of the parameter name, +where ``int_`` is a hard coded string.",{network-role},MUST,none,FALSE,, +R-84457,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::PortTuple`` +Resource ID **MAY** use the naming convention + +* ``{vm-type}_RPT`` + +where + +* ``{vm-type}`` is the vm-type +* ``RPT`` signifies that it is the Resource Port Tuple",OS::ContrailV2::PortTuple,MAY,,FALSE,, +R-84517,"The Contrail GUI has a limitation displaying special characters. +The issue is documented in +https://bugs.launchpad.net/juniperopenstack/+bug/1590710. +It is recommended that special **SHOULD** characters be avoided. +However, if special characters must be used, note that for +the following resources: + +* Virtual Machine +* Virtual Network +* Port +* Security Group +* Policies +* IPAM Creation + +the only special characters supported +are - \"" ! $\ \ ' ( ) = ~ ^ | @ ` { } [ ] > , . _""",Contrail Issue with Values for the Property Name,SHOULD,,FALSE,, +R-85235,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and an IPv4 address is assigned +using the property ``fixed_ips`` +map property ``ip_address`` and the parameter type is defined as a +``comma_delimited_list``, +the parameter name **MUST** follow the +naming convention + + * ``{vm-type}_int_{network-role}_ips`` + +where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_fixed_ips_include_vm_type_network_role,test_fixed_ips_include_vm_type_network_role +R-85328,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` **MAY** +contain the key/value pair ``vm_role`` and the value **MUST** be +obtained either via + +- ``get_param`` +- hard coded in the key/value pair ``vm_role``.",vm_role,MAY,,FALSE,, +R-85734,"If a VNF's Heat Orchestration Template contains the property ``name`` +for a non ``OS::Nova::Server`` resource, the intrinsic function +``str_replace`` **MUST** be used in conjunction with the ONAP +supplied metadata parameter ``vnf_name`` to generate a unique value. +Additional data **MAY** be used in the ``str_replace`` construct +to generate a unique value.",Resource Property “name”,MUST,static,TRUE,tests.test_non_server_name,test_non_server_name +R-86182,"When the VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and the internal network is created in a +different Heat Orchestration Template than the ``OS::Neutron::Port``, +the ``network`` parameter name **MUST** + + * follow the naming convention ``int_{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``int_{network-role}_net_name`` if the + OpenStack network name in is used to reference the network. + +where ``{network-role}`` is the network-role of the internal network and +a ``get_param`` **MUST** be used as the intrinsic function.",Property: network,MUST,static,TRUE,tests.test_network_format,test_network_format +R-86285,"A VNF's Heat Orchestration template **MUST** have a +corresponding environment file.",Environment File Format,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-86476,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource +property ``metadata`` key/value pair ``vm_role`` value **MUST** +only contain alphanumeric characters and underscores (i.e., '_').",vm_role,MUST,static,TRUE,tests.test_vm_role_value,test_vm_role_hardcoded +R-86497,"A VNF's Heat Orchestration Template's Resource +``OS::Cinder::VolumeAttachment`` +Resource ID +**SHOULD** +use the naming convention + +* ``{vm-type}_volume_attachment_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{index}`` starts at zero and increments by one",OS::Cinder::VolumeAttachment,SHOULD,,FALSE,, +R-86588,"A VNF's Heat Orchestration Template's ``{network-role}`` case in Resource +property parameter names **SHOULD** match the case of ``{network-role}`` +in Resource IDs and vice versa.",{network-role},SHOULD,,FALSE,, +R-86926,A VNF's incremental module **MAY** be used for scale out only.,ONAP VNF Modularity Overview,MAY,,FALSE,, +R-86972,"A VNF **SHOULD** create the internal network in the VNF's Heat +Orchestration Template Base Module.",Internal Networks,SHOULD,,FALSE,, +R-87004,"A VNF's Heat Orchestration Template's Resource +``OS::Cinder::Volume`` +Resource ID +**SHOULD** +use the naming convention + +* ``{vm-type}_volume_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{index}`` starts at zero and increments by one",OS::Cinder::Volume,SHOULD,,FALSE,, +R-87096,"A VNF **MAY** contain zero, one or more than one internal network.",Internal Networks,MAY,,FALSE,, +R-87123,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_v6_ip_{index}`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +R-87247,"VNF Heat Orchestration Template's Incremental Module file name +**MUST** contain only alphanumeric characters and underscores +'_' and **MUST NOT** contain the case insensitive word ``base``.",Incremental Modules,MUST,static,TRUE,tests.test_base_template_names,test_base_template_names +R-87485,"A VNF's Heat Orchestration Template's file extension **MUST** +be in the lower case format ``.yaml`` or ``.yml``.",ONAP Heat Orchestration Template Filenames,MUST,static,TRUE,tests.test_base_template_names,test_base_template_names +R-87563,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a port attached to an internal network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_internal +R-87817,"When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``name`` parameter is defined as a ``comma_delimited_list``, +the parameter name **MUST** follow the naming convention +``{vm-type}_names``.",Property: Name,MUST,static,TRUE,tests.test_nova_servers_vm_types,test_nova_server_name_parameter +R-88524,"A VNF's Heat Orchestration Template's Volume Template +Output Parameter names +**MUST** contain ``{vm-type}`` when appropriate.",ONAP Volume Template Output Parameters:,MUST,none,FALSE,, +R-88536,"A VNF's Heat Orchestration Template's OS::Nova::Server +Resource **SHOULD** contain the metadata map value parameter +'environment_context'.",environment_context,SHOULD,,FALSE,, +R-88540,"A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` +that is configuring an IPv6 Address on a sub-interface port attached to a +sub-interface network Resource ID **MUST** +use the naming convention + +* ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port is attached to +* ``{vmi_index}`` is the instance of the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` +* ``v6_IP`` signifies that an IPv6 address is being configured +* ``{index}`` is the index of the IPv6 address",OS::ContrailV2::InstanceIp,MUST,static,TRUE,tests.test_contrail_instance_ip_resource_id,test_contrail_instance_ip_resource_id_subint +R-88863,"A VNF's Heat Orchestration Template's parameter defined +in a non-nested YAML file as type +``number`` **MAY** have a parameter constraint defined.",constraints,MAY,static,FALSE,, +R-89913,"A VNF's Heat Orchestration Template's Cinder Volume Module Output +Parameter(s) +**MUST** include the +UUID(s) of the Cinder Volumes created in template.",ONAP Volume Module Output Parameters,MUST,static,TRUE,tests.test_volume_templates_outputs,test_volume_templates_contains_outputs +R-90022,"A VNF's Nested YAML file **MAY** be invoked more than once by +a VNF's Heat Orchestration Template.",Nested Heat Template Requirements,MAY,,FALSE,, +R-901331,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``image`` value **MUST** be be obtained via a ``get_param``.",Property: image,MUST,static,TRUE,tests.test_nova_servers_vm_types_use_get_param,test_vm_type_assignments_on_nova_servers_only_use_get_param +R-90152,"A VNF's Heat Orchestration Template's +``resources:`` section **MUST** contain the declaration of at +least one resource.",resources,MUST,static,TRUE,tests.test_initial_configuration,test_06_heat_template_resource_section_has_resources +R-90206,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_int_ips`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +R-90279,"A VNF Heat Orchestration's template's parameter **MUST** be used +in a resource with the exception of the parameters for the +``OS::Nova::Server`` resource property ``availability_zone``.",parameters,MUST,static,TRUE,tests.test_all_parameters_used_in_template,test_all_parameters_used_in_template +R-90526,"A VNF Heat Orchestration Template parameter declaration **MUST NOT** +contain the ``default`` attribute.",default,MUST,static,TRUE,tests.test_heat_parameter_section,test_default_values +R-90748,"A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume`` +**MAY** be defined in an Incremental Module.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-91125,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property +``image`` parameter **MUST** be enumerated in the Heat Orchestration +Template's Environment File and a value **MUST** be assigned.",Property: image,MUST,static,TRUE,tests.test_environment_file_parameters,test_nova_server_image_parameter_exists_in_environment_file +R-91273,"A VNF Heat Orchestration's template's parameter for the +``OS::Nova::Server`` resource property ``availability_zone`` +**MAY NOT** be used in any ``OS::Nova::Server``.",parameters,MAY NOT,,FALSE,, +R-91342,"A VNF Heat Orchestration Template's Base Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Base Module with ``.y[a]ml`` replaced with ``.env``.",Base Modules,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-91497,"A VNF's incremental module **MAY** be used for both deployment and +scale out.",ONAP VNF Modularity Overview,MAY,,FALSE,, +R-91810,"If a VNF requires ONAP to assign a Virtual IP (VIP) Address to +ports connected an external network, the port +**MUST NOT** have more than one IPv4 VIP address.","VIP Assignment, External Networks, Supported by Automation",MUST NOT,static,TRUE,tests.test_neutron_port_addresses,test_neutron_port_external_ipaddress +R-92193,"A VNF's Heat Orchestration Template's parameter +``{network-role}_net_fqdn`` +**MUST NOT** be enumerated in the VNF's Heat Orchestration Template's +Environment File.",External Networks,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_network_fqdn_parameter_doesnt_exist_in_environment_file +R-92635,"A VNF's Heat Orchestration Template **MUST** be compliant with the +OpenStack Template Guide.",ONAP Heat Orchestration Template Format,MUST,static,TRUE,tests.test_initial_configuration,test_02_no_duplicate_keys_in_file +R-93030,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_v6_ips`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +R-93177,"When the VNF's Heat Orchestration Template's resource +``OS::Neutron::Port`` is attaching to an internal network (per the +ONAP definition, see Requirements R-52425 and R-46461), +and the internal network is created in the +same Heat Orchestration Template as the ``OS::Neutron::Port``, +the ``network`` property value **MUST** obtain the UUID +of the internal network by using the intrinsic function +``get_resource`` +and referencing the Resource ID of the internal network.",Property: network,MUST,static,TRUE,tests.test_network_format_use_get_param_or_get_resource,test_network_format_use_get_param_or_get_resource +R-93496,"The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` +property ``fixed_ips`` +map property ``ip_address`` +parameter associated with an internal network, i.e., + + * ``{vm-type}_int_{network-role}_ip_{index}`` + * ``{vm-type}_int_{network-role}_v6_ip_{index}`` + * ``{vm-type}_int_{network-role}_ips`` + * ``{vm-type}_int_{network-role}_v6_ips`` + + +**MUST** be enumerated in the Heat Orchestration +Template's Environment File and IP addresses **MUST** be +assigned.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +R-94509,"A VNF Heat Orchestration Template's Incremental Module's Environment File +**MUST** be named identical to the VNF Heat Orchestration Template's +Incremental Module with ``.y[a]ml`` replaced with ``.env``.",Incremental Modules,MUST,static,TRUE,tests.test_heat_pairs_provided,test_heat_pairs_provided +R-94669,"If a VNF has one IPv6 OAM Management IP Address and the +IP Address needs to be inventoried in ONAP's A&AI +database, an output parameter **MUST** be declared in only one of the +VNF's Heat Orchestration Templates and the parameter **MUST** be named +``oam_management_v6_address``.",OAM Management IP Addresses,MUST,static,TRUE,tests.test_oam_address_outputs,test_oam_address_v6_zero_or_one +R-95303,A VNF's Heat Orchestration Template **MUST** be defined using valid YAML.,YAML Format,MUST,static,TRUE,tests.test_get_attr_usage,test_08_validate_get_attr_usage +R-95430,"If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` +resource property +``metadata`` key/value pair ``vm_role`` value is obtained via +``get_param``, the parameter **MUST** be declared as ``vm_role`` +and the parameter **MUST** be defined as type: ``string``.",vm_role,MUST,static,TRUE,tests.test_server_parameters,test_vm_role_parameter_type_and_parameter_name +R-96227,"A VNF's Heat Orchestration Template's parameter defined +in a non-nested YAML file as type +``json`` **MAY** have a parameter constraint defined.",constraints,MAY,,FALSE,, +R-96253,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an external network +Resource ID **MUST** use the naming convention + +* ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}`` + +where + +* ``{vm-type}`` is the vm-type +* ``{vm-type_index}`` is the instance of the ``{vm-type}`` +* ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to +* ``{vmi_index}`` is the instance of the vmi on the vm-type + attached to the network of ``{network-role}``",OS::ContrailV2::VirtualMachineInterface,MUST,static,TRUE,tests.test_contrail_vmi_resource_id,test_contrail_instance_ip_resource_id_external +R-96482,"When a VNF's Heat Orchestration Template's resource is associated +with a single external network, the Resource ID **MUST** contain the text +``{network-role}``.",Resource IDs,MUST,none,FALSE,, +R-96983,"A VNF's Heat Orchestration Template's Resource ID that is associated +with an internal network **MUST** include ``int_{network-role}`` as part +of the Resource ID, where ``int_`` is a hard coded string.",{network-role},MUST,none,FALSE,, +R-97201,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_v6_ip_{index}`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +R-97726,"A VNF's Heat Orchestration Template's Base Module Output Parameter names +**MUST** contain ``{vm-type}`` and/or ``{network-role}`` when appropriate.",ONAP Base Module Output Parameters:,MUST,none,FALSE,, +R-98138,"When a VNF's Heat Orchestration Template's resource is associated with a +single internal network, the Resource ID **MUST** contain the text +``int_{network-role}``.",Resource IDs,MUST,none,FALSE,, +R-98374,"A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property +``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id`` +**MUST NOT** +have parameter constraints defined.",vf_module_id,MUST NOT,static,TRUE,tests.test_required_parameters_no_constraints,test_vf_module_id_parameter_has_no_constraints +R-98407,"A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** contain only +alphanumeric characters and/or underscores '_' and **MUST NOT** +contain any of the following strings: +``_int`` or ``int_`` or ``_int_``.",{vm-type},MUST NOT,static,TRUE,tests.test_vm_type_syntax,test_vm_type_syntax +R-98450,"The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` +property ``availability_zone`` parameter name +**MUST** follow the naming convention + +* ``availability_zone_{index}`` + +where ``{index}`` is a numeric value that **MUST** start at zero +in a VNF's Heat Orchestration Templates and **MUST** +increment by one.",Property: availability_zone,MUST,static,TRUE,tests.test_availability_zone,test_availability_zone_naming +R-98569,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_int_{network-role}_v6_ips`` +**MUST** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_internal_fixedips_ipaddress_parameter_exists_in_environment_file +R-98748,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``allowed_address_pairs`` +map property ``ip_address`` parameter +**MUST** be declared as type ``string``.","VIP Assignment, External Networks, Supported by Automation",MUST,static,TRUE,tests.test_allowed_address_pairs_include_vm_type_network_role,test_allowed_address_pairs_include_vm_type_network_role +R-98905,"The VNF's Heat Orchestration Template's Resource +``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` parameter +``{vm-type}_{network-role}_ips`` +**MUST NOT** be enumerated in the +VNF's Heat Orchestration Template's Environment File.","Property: fixed_ips, Map Property: ip_address",MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_neutron_port_external_fixedips_ipaddress_parameter_doesnt_exist_in_environment_file +R-99110,"A VNF's Heat Orchestration Template's Resource +``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming convention + +1) ``int_{network-role}_network`` + +or + +2) ``int_{network-role}_RVN`` where RVN represents Resource Virtual + Network + +VNF Heat Orchestration Templates can only create internal networks. +There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` +**MUST** be unique in the scope of the VNF's +Heat Orchestration Template. + +Note that option 1 is preferred.",OS::ContrailV2::VirtualNetwork,MUST,static,TRUE,tests.test_contrail_vn_resource_id,test_neutron_net_resource_id +R-99646,"A VNF's YAML files (i.e, Heat Orchestration Template files and +Nested files) **MUST** have a unique name in the scope of the VNF.",ONAP Heat Orchestration Template Filenames,MUST,static,TRUE,tests.test_files_in_flat_dir,test_files_in_flat_dir +R-99794,"An external network **MUST** have one subnet. An external network +**MAY** have more than one subnet.",External Networks,MUST,none,FALSE,, +R-99798,"A VNF's Heat Orchestration Template's Virtual Machine +(i.e., ``OS::Nova::Server`` resource) **MAY** boot from an image or +**MAY** boot from a Cinder Volume.",Boot Options,MAY,,FALSE,, +R-99812,"A value for VNF's Heat Orchestration Template's property ``name`` +for a non ``OS::Nova::Server`` resource **MUST NOT** be declared +in the VNF's Heat Orchestration Template's Environment File.",Resource Property “name”,MUST NOT,static,TRUE,tests.test_environment_file_parameters,test_non_nova_server_name_parameter_doesnt_exist_in_environment_file +,,,,static,TRUE,app_tests.test_app_config,test_default_output_format +,,,,static,TRUE,app_tests.test_app_config,test_queues +,,,,static,TRUE,tests.test_nova_servergroup_policies,test_nova_servergroup_policies +,,,,static,TRUE,app_tests.test_app_config,test_input_formats +,,,,static,TRUE,app_tests.test_app_config,test_category_names +,,,,static,TRUE,app_tests.test_app_config,test_app_name +,,,,static,TRUE,app_tests.test_app_config,test_get_category_when_other +,,,,static,TRUE,app_tests.test_app_config,test_default_input_format +,,,,static,TRUE,app_tests.test_app,test_app_starts +,,,,static,TRUE,app_tests.test_app_config,test_polling_frequency +,,,,static,TRUE,app_tests.test_app_config,test_missing_category_fields +,,,,static,TRUE,app_tests.test_app_config,test_categories_names_length +,,,,static,TRUE,app_tests.test_app_config,test_default_verbosity +,,,,static,TRUE,app_tests.test_app_config,test_output_formats +,,,,static,TRUE,tests.test_volume_resource_ids,test_volume_resource_ids diff --git a/etc/requirements.txt b/etc/requirements.txt index 29b5d98..92bad32 100644 --- a/etc/requirements.txt +++ b/etc/requirements.txt @@ -15,7 +15,7 @@ ############################################################################# tox -Sphinx==1.6.7 +Sphinx==1.8.1 doc8 docutils setuptools -- cgit 1.2.3-korg