diff options
Diffstat (limited to 'ice_validator')
33 files changed, 2496 insertions, 347 deletions
diff --git a/ice_validator/app_tests/preload_tests/preload_envs/env_three/service_Starkmultimodule243550_csar.csar b/ice_validator/app_tests/preload_tests/preload_envs/env_three/service_Starkmultimodule243550_csar.csar Binary files differindex 64ce556..1b7f7fe 100644 --- a/ice_validator/app_tests/preload_tests/preload_envs/env_three/service_Starkmultimodule243550_csar.csar +++ b/ice_validator/app_tests/preload_tests/preload_envs/env_three/service_Starkmultimodule243550_csar.csar diff --git a/ice_validator/app_tests/preload_tests/preload_envs/test.csar b/ice_validator/app_tests/preload_tests/preload_envs/test.csar Binary files differindex d23a746..b1563fb 100644 --- a/ice_validator/app_tests/preload_tests/preload_envs/test.csar +++ b/ice_validator/app_tests/preload_tests/preload_envs/test.csar diff --git a/ice_validator/app_tests/preload_tests/sample_env/base.env b/ice_validator/app_tests/preload_tests/sample_env/base.env index 0650c68..d72b1ea 100644 --- a/ice_validator/app_tests/preload_tests/sample_env/base.env +++ b/ice_validator/app_tests/preload_tests/sample_env/base.env @@ -37,3 +37,4 @@ parameters: availability_zone_0: az0 availability_zone_1: az1 + vnf_name: CHANGEME diff --git a/ice_validator/app_tests/preload_tests/sample_heat/base.env b/ice_validator/app_tests/preload_tests/sample_heat/base.env index 3784ea0..e3ef442 100644 --- a/ice_validator/app_tests/preload_tests/sample_heat/base.env +++ b/ice_validator/app_tests/preload_tests/sample_heat/base.env @@ -1,15 +1,10 @@ parameters: - db_image_name: db_image - db_flavor_name: db_flavor - lb_image_name: lb_image - lb_flavor_name: lb_flavor - svc_image_name: svc_image - svc_flavor_name: svc_flavor - - svc_count: 3
\ No newline at end of file + svc_count: 3 + mgmt_image_name: mgmt_image + mgmt_flavor_name: mgmt_flavor diff --git a/ice_validator/app_tests/preload_tests/sample_heat/base.yaml b/ice_validator/app_tests/preload_tests/sample_heat/base.yaml index 327d2ee..1a7dd4d 100644 --- a/ice_validator/app_tests/preload_tests/sample_heat/base.yaml +++ b/ice_validator/app_tests/preload_tests/sample_heat/base.yaml @@ -224,7 +224,7 @@ resources: properties: network: { get_param: oam_net_id } fixed_ips: - - subnet_id: { get_param: oam_subnet_id } + - subnet: { get_param: oam_subnet_id } ip_address: { get_param: db_oam_ip_0 } db_0_ha_port_0: @@ -240,14 +240,14 @@ resources: properties: network: { get_resource: int_private_network } fixed_ips: - - subnet_id: { get_resource: int_private_subnet } + - subnet: { get_resource: int_private_subnet } db_1_oam_port_0: type: OS::Neutron::Port properties: network: { get_param: oam_net_id } fixed_ips: - - subnet_id: { get_param: oam_subnet_id } + - subnet: { get_param: oam_subnet_id } ip_address: { get_param: db_oam_ip_1 } db_1_ha_port_0: @@ -263,20 +263,20 @@ resources: properties: network: { get_resource: int_private_network } fixed_ips: - - subnet_id: { get_resource: int_private_subnet } + - subnet: { get_resource: int_private_subnet } db_volume_attachment_0: type: OS::Cinder::VolumeAttachment properties: volume_id: { get_param: db_vol0_id } - server: { get_resource: db_server_0 } + instance_uuid: { get_resource: db_server_0 } db_volume_attachment_1: type: OS::Cinder::VolumeAttachment properties: volume_id: { get_param: db_vol1_id } - server: { get_resource: db_server_1 } + instance_uuid: { get_resource: db_server_1 } mgmt_server_0: type: OS::Nova::Server @@ -302,7 +302,7 @@ resources: properties: network: { get_resource: int_private_network } fixed_ips: - - subnet_id: { get_resource: int_private_subnet } + - subnet: { get_resource: int_private_subnet } mgmt_0_ctrl_port_0: type: OS::Neutron::Port @@ -345,7 +345,7 @@ resources: properties: network: { get_resource: int_private_network } fixed_ips: - - subnet_id: { get_resource: int_private_subnet } + - subnet: { get_resource: int_private_subnet } svc_resource_group_0: type: OS::Heat::ResourceGroup diff --git a/ice_validator/app_tests/preload_tests/sample_heat/base_volume.yaml b/ice_validator/app_tests/preload_tests/sample_heat/base_volume.yaml index 4d47766..e326357 100644 --- a/ice_validator/app_tests/preload_tests/sample_heat/base_volume.yaml +++ b/ice_validator/app_tests/preload_tests/sample_heat/base_volume.yaml @@ -26,7 +26,7 @@ resources: params: VNF_NAME: {get_param: vnf_name} volume_type: "solidfire" - volume_size: { get_param: volume_size } + size: { get_param: volume_size } db_vol1: type: OS::Cinder::Volume @@ -37,7 +37,7 @@ resources: params: VNF_NAME: {get_param: vnf_name} volume_type: "solidfire" - volume_size: { get_param: volume_size } + size: { get_param: volume_size } outputs: db_vol0_id: diff --git a/ice_validator/app_tests/preload_tests/sample_heat/incremental.yaml b/ice_validator/app_tests/preload_tests/sample_heat/incremental.yaml index 1460149..68da36e 100644 --- a/ice_validator/app_tests/preload_tests/sample_heat/incremental.yaml +++ b/ice_validator/app_tests/preload_tests/sample_heat/incremental.yaml @@ -130,7 +130,7 @@ resources: properties: network: { get_param: int_private_net_id } fixed_ips: - - subnet_id: { get_param: int_private_subnet_id } + - subnet: { get_param: int_private_subnet_id } svc_resource_group_1: type: OS::Heat::ResourceGroup diff --git a/ice_validator/app_tests/preload_tests/test_environment.py b/ice_validator/app_tests/preload_tests/test_environment.py index b627b4b..8d06a92 100644 --- a/ice_validator/app_tests/preload_tests/test_environment.py +++ b/ice_validator/app_tests/preload_tests/test_environment.py @@ -37,6 +37,7 @@ from pathlib import Path import pytest +from mock import mock from preload.environment import CloudServiceArchive, PreloadEnvironment @@ -55,23 +56,27 @@ def env(): def test_csar_service_name(csar): - assert csar.service_name == "stark_vccf_svc" + assert csar.service_name == "stark_0917_vlb_svc" def test_csar_str_and_repr(csar): - assert str(csar) == "CSAR (path=test.csar, name=stark_vccf_svc)" - assert repr(csar) == "CSAR (path=test.csar, name=stark_vccf_svc)" + assert str(csar) == "CSAR (path=test.csar, name=stark_0917_vlb_svc)" + assert repr(csar) == "CSAR (path=test.csar, name=stark_0917_vlb_svc)" def test_csar_vf_module_model_name(csar): assert ( - csar.get_vf_module_model_name("base_vIECCF") - == "StarkVccfVf..base_vIECCF..module-0" + csar.get_vf_module_model_name("vdns") + == "Stark0917VlbVf..vdns..module-3" ) def test_csar_get_vf_module_resource_name(csar): - assert csar.get_vf_module_resource_name("base_vIECCF") == "stark_vccf_vf" + assert csar.get_vf_module_resource_name("vdns") == "stark_0917_vlb_vf" + + +def test_csar_get_vnf_type(csar): + assert csar.get_vnf_type("vdns") == "stark_0917_vlb_svc/stark_0917_vlb_vf" def test_csar_get_vf_module_resource_name_not_found(csar): @@ -79,12 +84,12 @@ def test_csar_get_vf_module_resource_name_not_found(csar): def test_preload_environment_global_csar(env): - assert env.csar.service_name == "stark_vccf_svc" + assert env.csar.service_name == "stark_0917_vlb_svc" def test_preload_environment_nest_env_csar_inherit(env): env_two = env.get_environment("env_two") - assert env_two.csar.service_name == "stark_vccf_svc" + assert env_two.csar.service_name == "stark_0917_vlb_svc" def test_preload_environment_nest_env_csar_override(env): @@ -178,3 +183,14 @@ def test_preload_environment_defaults_in_module_env(env): "common": "ABC", "my_ip": "192.168.0.1", } + + +def test_preload_environment_uses_csar(env, monkeypatch): + csar = mock.MagicMock(spec=CloudServiceArchive) + csar.get_vnf_type = mock.Mock(return_value="stark_vccf_svc/stark_vccf_vf") + csar.get_vf_module_model_name = mock.Mock(return_value="model_name") + env = env.get_environment("env_three") + monkeypatch.setattr(env, "csar", csar) + mod = env.get_module("base") + assert mod["vnf-type"] == "stark_vccf_svc/stark_vccf_vf" + assert mod["vf-module-model-name"] == "model_name" diff --git a/ice_validator/app_tests/preload_tests/test_grapi.py b/ice_validator/app_tests/preload_tests/test_grapi.py index 7b56440..99498ec 100644 --- a/ice_validator/app_tests/preload_tests/test_grapi.py +++ b/ice_validator/app_tests/preload_tests/test_grapi.py @@ -87,12 +87,12 @@ def preload(pytestconfig, session_dir): @pytest.fixture(scope="session") def base(preload): - return load_module(preload, "base.json") + return load_module(preload, "base_incomplete.json") @pytest.fixture(scope="session") def incremental(preload): - return load_module(preload, "incremental.json") + return load_module(preload, "incremental_incomplete.json") def test_base_fields(base): @@ -211,8 +211,8 @@ def test_base_parameters(base): "vf-module-topology" ]["vf-module-parameters"]["param"] assert params == [ - {"name": "svc_image_name", "value": "svc_image"}, - {"name": "svc_flavor_name", "value": "svc_flavor"}, + {"name": "db_vol0_id", "value": "VALUE FOR: db_vol0_id"}, + {"name": "db_vol1_id", "value": "VALUE FOR: db_vol1_id"}, ] @@ -235,9 +235,18 @@ def test_incremental_networks(incremental): def test_preload_env_population(preload): - base_path = THIS_DIR / "sample_env/preloads/grapi/base.json" + base_path = THIS_DIR / "sample_env/preloads/grapi/base_incomplete.json" data = load_json(base_path) azs = data["input"]["preload-vf-module-topology-information"][ "vnf-resource-assignments" ]["availability-zones"]["availability-zone"] assert azs == ["az0", "az1"] + + +def test_preload_env_population_missing_value(preload): + base_path = THIS_DIR / "sample_env/preloads/grapi/base_incomplete.json" + data = load_json(base_path) + vnf_name = data["input"]["preload-vf-module-topology-information"][ + "vnf-topology-identifier-structure" + ]["vnf-name"] + assert vnf_name == "VALUE FOR: vnf_name" diff --git a/ice_validator/app_tests/preload_tests/test_vnfapi.py b/ice_validator/app_tests/preload_tests/test_vnfapi.py index 5732335..a49043f 100644 --- a/ice_validator/app_tests/preload_tests/test_vnfapi.py +++ b/ice_validator/app_tests/preload_tests/test_vnfapi.py @@ -82,12 +82,12 @@ def preload(pytestconfig, session_dir): @pytest.fixture(scope="session") def base(preload): - return load_module(preload, "base.json") + return load_module(preload, "base_incomplete.json") @pytest.fixture(scope="session") def incremental(preload): - return load_module(preload, "incremental.json") + return load_module(preload, "incremental_incomplete.json") def test_base_azs(base): @@ -163,8 +163,14 @@ def test_base_vm_types(base): def test_base_parameters(base): params = base["input"]["vnf-topology-information"]["vnf-parameters"] assert params == [ - {"vnf-parameter-name": "svc_image_name", "vnf-parameter-value": "svc_image"}, - {"vnf-parameter-name": "svc_flavor_name", "vnf-parameter-value": "svc_flavor"}, + { + "vnf-parameter-name": "db_vol0_id", + "vnf-parameter-value": "VALUE FOR: db_vol0_id", + }, + { + "vnf-parameter-name": "db_vol1_id", + "vnf-parameter-value": "VALUE FOR: db_vol1_id", + }, ] @@ -187,7 +193,7 @@ def test_incremental_networks(incremental): def test_preload_env_population(preload): - base_path = THIS_DIR / "sample_env/preloads/vnfapi/base.json" + base_path = THIS_DIR / "sample_env/preloads/vnfapi/base_incomplete.json" data = load_json(base_path) azs = data["input"]["vnf-topology-information"]["vnf-assignments"][ "availability-zones" diff --git a/ice_validator/config.py b/ice_validator/config.py index 5ac1cf5..fa8ec62 100644 --- a/ice_validator/config.py +++ b/ice_validator/config.py @@ -226,6 +226,10 @@ class Config: return self._user_settings.get("report_format", "HTML") @property + def default_create_preloads(self): + return self._user_settings.get("create_preloads", 0) + + @property def report_formats(self): return ["CSV", "Excel", "HTML"] diff --git a/ice_validator/heat_requirements.json b/ice_validator/heat_requirements.json index 14c3e74..3918702 100644 --- a/ice_validator/heat_requirements.json +++ b/ice_validator/heat_requirements.json @@ -1,5 +1,5 @@ { - "created": "2019-06-19T06:32:40.779928", + "created": "2019-09-19T06:31:59.844469", "current_version": "el alto", "project": "", "versions": { @@ -73163,7 +73163,7 @@ "needs_amount": 813 }, "el alto": { - "created": "2019-06-19T06:32:40.779858", + "created": "2019-09-19T06:31:59.844406", "filters": {}, "filters_amount": 0, "needs": { @@ -73173,6 +73173,8 @@ "full_title": "", "hide_links": "", "id": "R-00011", + "id_complete": "R-00011", + "id_parent": "R-00011", "impacts": "", "introduced": "", "is_need": true, @@ -73208,6 +73210,8 @@ "full_title": "", "hide_links": "", "id": "R-00068", + "id_complete": "R-00068", + "id_parent": "R-00068", "impacts": "", "introduced": "", "is_need": true, @@ -73241,6 +73245,8 @@ "full_title": "", "hide_links": "", "id": "R-00098", + "id_complete": "R-00098", + "id_parent": "R-00098", "impacts": "", "introduced": "", "is_need": true, @@ -73274,6 +73280,8 @@ "full_title": "", "hide_links": "", "id": "R-00156", + "id_complete": "R-00156", + "id_parent": "R-00156", "impacts": "", "introduced": "", "is_need": true, @@ -73307,6 +73315,8 @@ "full_title": "", "hide_links": "", "id": "R-00228", + "id_complete": "R-00228", + "id_parent": "R-00228", "impacts": "", "introduced": "", "is_need": true, @@ -73341,6 +73351,8 @@ "full_title": "", "hide_links": "", "id": "R-00606", + "id_complete": "R-00606", + "id_parent": "R-00606", "impacts": "", "introduced": "", "is_need": true, @@ -73374,6 +73386,8 @@ "full_title": "", "hide_links": "", "id": "R-00977", + "id_complete": "R-00977", + "id_parent": "R-00977", "impacts": "", "introduced": "", "is_need": true, @@ -73406,6 +73420,8 @@ "full_title": "", "hide_links": "", "id": "R-01033", + "id_complete": "R-01033", + "id_parent": "R-01033", "impacts": "", "introduced": "", "is_need": true, @@ -73440,6 +73456,8 @@ "full_title": "", "hide_links": "", "id": "R-01101", + "id_complete": "R-01101", + "id_parent": "R-01101", "impacts": "", "introduced": "", "is_need": true, @@ -73469,11 +73487,13 @@ "validation_mode": "" }, "R-01123": { - "description": "The VNF or PNF package Manifest file **MUST** contain: VNF or PNF package\nmeta-data, a list of all artifacts (both internal and external) entry's\nincluding their respected URI's, an algorithm to calculate a digest and\na digest result calculated on the content of each artifacts, as specified\nin ETSI GS NFV-SOL004.", - "docname": "Chapter5/Tosca", + "description": "The VNF or PNF package Manifest file **MUST** contain: VNF or PNF\npackage meta-data, a list of all artifacts (both internal and\nexternal) entry's including their respected URI's, as specified\nin ETSI GS NFV-SOL 004", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-01123", + "id_complete": "R-01123", + "id_parent": "R-01123", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -73485,8 +73505,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -73498,7 +73517,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -73508,6 +73527,8 @@ "full_title": "", "hide_links": "", "id": "R-01334", + "id_complete": "R-01334", + "id_parent": "R-01334", "impacts": "", "introduced": "", "is_need": true, @@ -73543,6 +73564,8 @@ "full_title": "", "hide_links": "", "id": "R-01359", + "id_complete": "R-01359", + "id_parent": "R-01359", "impacts": "", "introduced": "", "is_need": true, @@ -73576,6 +73599,8 @@ "full_title": "", "hide_links": "", "id": "R-01382", + "id_complete": "R-01382", + "id_parent": "R-01382", "impacts": "", "introduced": "", "is_need": true, @@ -73606,11 +73631,13 @@ "validation_mode": "" }, "R-01427": { - "description": "The VNF or PNF **MUST** support the provisioning of security and authentication\nparameters (HTTP username and password) in order to be able to authenticate\nwith DCAE (in ONAP).\n\nNote: In R3, a username and password are used with the DCAE VES Event\nListener which are used for HTTP Basic Authentication.\n\nNote: The configuration management and provisioning software are specific\nto a vendor architecture.", + "description": "If the VNF or PNF is using Basic Authentication, then the VNF or\nPNF **MUST** support the provisioning of security and authentication\nparameters (HTTP username and password) in order to be able to\nauthenticate with DCAE VES Event Listener.\n\nNote: The configuration management and provisioning software\nare specific to a vendor architecture.", "docname": "Chapter7/Monitoring-And-Management", "full_title": "", "hide_links": "", "id": "R-01427", + "id_complete": "R-01427", + "id_parent": "R-01427", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -73635,7 +73662,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -73645,6 +73672,8 @@ "full_title": "", "hide_links": "", "id": "R-01455", + "id_complete": "R-01455", + "id_parent": "R-01455", "impacts": "", "introduced": "", "is_need": true, @@ -73677,6 +73706,8 @@ "full_title": "", "hide_links": "", "id": "R-01478", + "id_complete": "R-01478", + "id_parent": "R-01478", "impacts": "", "introduced": "", "is_need": true, @@ -73710,6 +73741,8 @@ "full_title": "", "hide_links": "", "id": "R-01556", + "id_complete": "R-01556", + "id_parent": "R-01556", "impacts": "", "introduced": "", "is_need": true, @@ -73743,6 +73776,8 @@ "full_title": "", "hide_links": "", "id": "R-01896", + "id_complete": "R-01896", + "id_parent": "R-01896", "impacts": "", "introduced": "", "is_need": true, @@ -73776,6 +73811,8 @@ "full_title": "", "hide_links": "", "id": "R-02164", + "id_complete": "R-02164", + "id_parent": "R-02164", "impacts": "", "introduced": "", "is_need": true, @@ -73810,6 +73847,8 @@ "full_title": "", "hide_links": "", "id": "R-02170", + "id_complete": "R-02170", + "id_parent": "R-02170", "impacts": "", "introduced": "", "is_need": true, @@ -73843,6 +73882,8 @@ "full_title": "", "hide_links": "", "id": "R-02360", + "id_complete": "R-02360", + "id_parent": "R-02360", "impacts": "", "introduced": "", "is_need": true, @@ -73875,6 +73916,8 @@ "full_title": "", "hide_links": "", "id": "R-02454", + "id_complete": "R-02454", + "id_parent": "R-02454", "impacts": "", "introduced": "", "is_need": true, @@ -73908,6 +73951,8 @@ "full_title": "", "hide_links": "", "id": "R-025941", + "id_complete": "R-025941", + "id_parent": "R-025941", "impacts": "DCAE,Documentation,Integration,SDC", "introduced": "dublin", "is_need": true, @@ -73941,6 +73986,8 @@ "full_title": "", "hide_links": "", "id": "R-02597", + "id_complete": "R-02597", + "id_parent": "R-02597", "impacts": "", "introduced": "", "is_need": true, @@ -73976,6 +74023,8 @@ "full_title": "", "hide_links": "", "id": "R-02616", + "id_complete": "R-02616", + "id_parent": "R-02616", "impacts": "", "introduced": "", "is_need": true, @@ -74011,6 +74060,8 @@ "full_title": "", "hide_links": "", "id": "R-02651", + "id_complete": "R-02651", + "id_parent": "R-02651", "impacts": "", "introduced": "", "is_need": true, @@ -74046,6 +74097,8 @@ "full_title": "", "hide_links": "", "id": "R-02691", + "id_complete": "R-02691", + "id_parent": "R-02691", "impacts": "", "introduced": "", "is_need": true, @@ -74079,6 +74132,8 @@ "full_title": "", "hide_links": "", "id": "R-02997", + "id_complete": "R-02997", + "id_parent": "R-02997", "impacts": "", "introduced": "", "is_need": true, @@ -74111,6 +74166,8 @@ "full_title": "", "hide_links": "", "id": "R-03070", + "id_complete": "R-03070", + "id_parent": "R-03070", "impacts": "", "introduced": "", "is_need": true, @@ -74145,6 +74202,8 @@ "full_title": "", "hide_links": "", "id": "R-03251", + "id_complete": "R-03251", + "id_parent": "R-03251", "impacts": "", "introduced": "", "is_need": true, @@ -74178,6 +74237,8 @@ "full_title": "", "hide_links": "", "id": "R-03324", + "id_complete": "R-03324", + "id_parent": "R-03324", "impacts": "", "introduced": "", "is_need": true, @@ -74211,6 +74272,8 @@ "full_title": "", "hide_links": "", "id": "R-03465", + "id_complete": "R-03465", + "id_parent": "R-03465", "impacts": "", "introduced": "", "is_need": true, @@ -74246,6 +74309,8 @@ "full_title": "", "hide_links": "", "id": "R-03595", + "id_complete": "R-03595", + "id_parent": "R-03595", "impacts": "", "introduced": "", "is_need": true, @@ -74280,6 +74345,8 @@ "full_title": "", "hide_links": "", "id": "R-03656", + "id_complete": "R-03656", + "id_parent": "R-03656", "impacts": "", "introduced": "", "is_need": true, @@ -74314,6 +74381,8 @@ "full_title": "", "hide_links": "", "id": "R-03954", + "id_complete": "R-03954", + "id_parent": "R-03954", "impacts": "", "introduced": "", "is_need": true, @@ -74347,6 +74416,8 @@ "full_title": "", "hide_links": "", "id": "R-04158", + "id_complete": "R-04158", + "id_parent": "R-04158", "impacts": "", "introduced": "", "is_need": true, @@ -74382,6 +74453,8 @@ "full_title": "", "hide_links": "", "id": "R-04298", + "id_complete": "R-04298", + "id_parent": "R-04298", "impacts": "", "introduced": "", "is_need": true, @@ -74415,6 +74488,8 @@ "full_title": "", "hide_links": "", "id": "R-04344", + "id_complete": "R-04344", + "id_parent": "R-04344", "impacts": "", "introduced": "", "is_need": true, @@ -74449,6 +74524,8 @@ "full_title": "", "hide_links": "", "id": "R-04492", + "id_complete": "R-04492", + "id_parent": "R-04492", "impacts": "", "introduced": "", "is_need": true, @@ -74482,6 +74559,8 @@ "full_title": "", "hide_links": "", "id": "R-04697", + "id_complete": "R-04697", + "id_parent": "R-04697", "impacts": "", "introduced": "", "is_need": true, @@ -74515,6 +74594,8 @@ "full_title": "", "hide_links": "", "id": "R-04747", + "id_complete": "R-04747", + "id_parent": "R-04747", "impacts": "", "introduced": "", "is_need": true, @@ -74549,6 +74630,8 @@ "full_title": "", "hide_links": "", "id": "R-04982", + "id_complete": "R-04982", + "id_parent": "R-04982", "impacts": "", "introduced": "", "is_need": true, @@ -74582,6 +74665,8 @@ "full_title": "", "hide_links": "", "id": "R-05050", + "id_complete": "R-05050", + "id_parent": "R-05050", "impacts": "", "introduced": "", "is_need": true, @@ -74615,6 +74700,8 @@ "full_title": "", "hide_links": "", "id": "R-05201", + "id_complete": "R-05201", + "id_parent": "R-05201", "impacts": "", "introduced": "", "is_need": true, @@ -74647,6 +74734,8 @@ "full_title": "", "hide_links": "", "id": "R-05257", + "id_complete": "R-05257", + "id_parent": "R-05257", "impacts": "", "introduced": "", "is_need": true, @@ -74681,6 +74770,8 @@ "full_title": "", "hide_links": "", "id": "R-06327", + "id_complete": "R-06327", + "id_parent": "R-06327", "impacts": "", "introduced": "", "is_need": true, @@ -74713,6 +74804,8 @@ "full_title": "", "hide_links": "", "id": "R-06413", + "id_complete": "R-06413", + "id_parent": "R-06413", "impacts": "", "introduced": "", "is_need": true, @@ -74746,6 +74839,8 @@ "full_title": "", "hide_links": "", "id": "R-06613", + "id_complete": "R-06613", + "id_parent": "R-06613", "impacts": "", "introduced": "", "is_need": true, @@ -74781,6 +74876,8 @@ "full_title": "", "hide_links": "", "id": "R-06668", + "id_complete": "R-06668", + "id_parent": "R-06668", "impacts": "", "introduced": "", "is_need": true, @@ -74814,6 +74911,8 @@ "full_title": "", "hide_links": "", "id": "R-06885", + "id_complete": "R-06885", + "id_parent": "R-06885", "impacts": "", "introduced": "", "is_need": true, @@ -74847,6 +74946,8 @@ "full_title": "", "hide_links": "", "id": "R-06924", + "id_complete": "R-06924", + "id_parent": "R-06924", "impacts": "", "introduced": "", "is_need": true, @@ -74881,6 +74982,8 @@ "full_title": "", "hide_links": "", "id": "R-07251", + "id_complete": "R-07251", + "id_parent": "R-07251", "impacts": "", "introduced": "", "is_need": true, @@ -74915,6 +75018,8 @@ "full_title": "", "hide_links": "", "id": "R-07443", + "id_complete": "R-07443", + "id_parent": "R-07443", "impacts": "", "introduced": "", "is_need": true, @@ -74949,6 +75054,8 @@ "full_title": "", "hide_links": "", "id": "R-07507", + "id_complete": "R-07507", + "id_parent": "R-07507", "impacts": "", "introduced": "", "is_need": true, @@ -74982,6 +75089,8 @@ "full_title": "", "hide_links": "", "id": "R-07545", + "id_complete": "R-07545", + "id_parent": "R-07545", "impacts": "", "introduced": "", "is_need": true, @@ -75017,6 +75126,8 @@ "full_title": "", "hide_links": "", "id": "R-07617", + "id_complete": "R-07617", + "id_parent": "R-07617", "impacts": "", "introduced": "", "is_need": true, @@ -75050,6 +75161,8 @@ "full_title": "", "hide_links": "", "id": "R-08134", + "id_complete": "R-08134", + "id_parent": "R-08134", "impacts": "", "introduced": "", "is_need": true, @@ -75085,6 +75198,8 @@ "full_title": "", "hide_links": "", "id": "R-08312", + "id_complete": "R-08312", + "id_parent": "R-08312", "impacts": "", "introduced": "", "is_need": true, @@ -75119,6 +75234,8 @@ "full_title": "", "hide_links": "", "id": "R-08315", + "id_complete": "R-08315", + "id_parent": "R-08315", "impacts": "", "introduced": "", "is_need": true, @@ -75152,6 +75269,8 @@ "full_title": "", "hide_links": "", "id": "R-08775", + "id_complete": "R-08775", + "id_parent": "R-08775", "impacts": "", "introduced": "", "is_need": true, @@ -75186,6 +75305,8 @@ "full_title": "", "hide_links": "", "id": "R-08975", + "id_complete": "R-08975", + "id_parent": "R-08975", "impacts": "", "introduced": "", "is_need": true, @@ -75220,6 +75341,8 @@ "full_title": "", "hide_links": "", "id": "R-09467", + "id_complete": "R-09467", + "id_parent": "R-09467", "impacts": "", "introduced": "", "is_need": true, @@ -75252,6 +75375,8 @@ "full_title": "", "hide_links": "", "id": "R-09811", + "id_complete": "R-09811", + "id_parent": "R-09811", "impacts": "", "introduced": "", "is_need": true, @@ -75285,6 +75410,8 @@ "full_title": "", "hide_links": "", "id": "R-100000", + "id_complete": "R-100000", + "id_parent": "R-100000", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75319,6 +75446,8 @@ "full_title": "", "hide_links": "", "id": "R-100010", + "id_complete": "R-100010", + "id_parent": "R-100010", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75353,6 +75482,8 @@ "full_title": "", "hide_links": "", "id": "R-100020", + "id_complete": "R-100020", + "id_parent": "R-100020", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75387,6 +75518,8 @@ "full_title": "", "hide_links": "", "id": "R-100030", + "id_complete": "R-100030", + "id_parent": "R-100030", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75421,6 +75554,8 @@ "full_title": "", "hide_links": "", "id": "R-100040", + "id_complete": "R-100040", + "id_parent": "R-100040", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75455,6 +75590,8 @@ "full_title": "", "hide_links": "", "id": "R-100050", + "id_complete": "R-100050", + "id_parent": "R-100050", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75489,6 +75626,8 @@ "full_title": "", "hide_links": "", "id": "R-100060", + "id_complete": "R-100060", + "id_parent": "R-100060", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75523,6 +75662,8 @@ "full_title": "", "hide_links": "", "id": "R-100070", + "id_complete": "R-100070", + "id_parent": "R-100070", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75557,6 +75698,8 @@ "full_title": "", "hide_links": "", "id": "R-100080", + "id_complete": "R-100080", + "id_parent": "R-100080", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75591,6 +75734,8 @@ "full_title": "", "hide_links": "", "id": "R-100090", + "id_complete": "R-100090", + "id_parent": "R-100090", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75625,6 +75770,8 @@ "full_title": "", "hide_links": "", "id": "R-100100", + "id_complete": "R-100100", + "id_parent": "R-100100", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75659,6 +75806,8 @@ "full_title": "", "hide_links": "", "id": "R-100110", + "id_complete": "R-100110", + "id_parent": "R-100110", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75693,6 +75842,8 @@ "full_title": "", "hide_links": "", "id": "R-100120", + "id_complete": "R-100120", + "id_parent": "R-100120", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75727,6 +75878,8 @@ "full_title": "", "hide_links": "", "id": "R-100130", + "id_complete": "R-100130", + "id_parent": "R-100130", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75761,6 +75914,8 @@ "full_title": "", "hide_links": "", "id": "R-100140", + "id_complete": "R-100140", + "id_parent": "R-100140", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75795,6 +75950,8 @@ "full_title": "", "hide_links": "", "id": "R-100150", + "id_complete": "R-100150", + "id_parent": "R-100150", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75829,6 +75986,8 @@ "full_title": "", "hide_links": "", "id": "R-100160", + "id_complete": "R-100160", + "id_parent": "R-100160", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75863,6 +76022,8 @@ "full_title": "", "hide_links": "", "id": "R-100170", + "id_complete": "R-100170", + "id_parent": "R-100170", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75897,6 +76058,8 @@ "full_title": "", "hide_links": "", "id": "R-100180", + "id_complete": "R-100180", + "id_parent": "R-100180", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75931,6 +76094,8 @@ "full_title": "", "hide_links": "", "id": "R-100190", + "id_complete": "R-100190", + "id_parent": "R-100190", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75965,6 +76130,8 @@ "full_title": "", "hide_links": "", "id": "R-100200", + "id_complete": "R-100200", + "id_parent": "R-100200", "impacts": "", "introduced": "dublin", "is_need": true, @@ -75999,6 +76166,8 @@ "full_title": "", "hide_links": "", "id": "R-100210", + "id_complete": "R-100210", + "id_parent": "R-100210", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76033,6 +76202,8 @@ "full_title": "", "hide_links": "", "id": "R-100220", + "id_complete": "R-100220", + "id_parent": "R-100220", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76067,6 +76238,8 @@ "full_title": "", "hide_links": "", "id": "R-100230", + "id_complete": "R-100230", + "id_parent": "R-100230", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76101,6 +76274,8 @@ "full_title": "", "hide_links": "", "id": "R-100240", + "id_complete": "R-100240", + "id_parent": "R-100240", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76135,6 +76310,8 @@ "full_title": "", "hide_links": "", "id": "R-100250", + "id_complete": "R-100250", + "id_parent": "R-100250", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76169,6 +76346,8 @@ "full_title": "", "hide_links": "", "id": "R-100260", + "id_complete": "R-100260", + "id_parent": "R-100260", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76203,6 +76382,8 @@ "full_title": "", "hide_links": "", "id": "R-100270", + "id_complete": "R-100270", + "id_parent": "R-100270", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76237,6 +76418,8 @@ "full_title": "", "hide_links": "", "id": "R-100280", + "id_complete": "R-100280", + "id_parent": "R-100280", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76271,6 +76454,8 @@ "full_title": "", "hide_links": "", "id": "R-100310", + "id_complete": "R-100310", + "id_parent": "R-100310", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76305,6 +76490,8 @@ "full_title": "", "hide_links": "", "id": "R-100330", + "id_complete": "R-100330", + "id_parent": "R-100330", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76339,6 +76526,8 @@ "full_title": "", "hide_links": "", "id": "R-100350", + "id_complete": "R-100350", + "id_parent": "R-100350", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76373,6 +76562,8 @@ "full_title": "", "hide_links": "", "id": "R-100360", + "id_complete": "R-100360", + "id_parent": "R-100360", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76407,6 +76598,8 @@ "full_title": "", "hide_links": "", "id": "R-100370", + "id_complete": "R-100370", + "id_parent": "R-100370", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76441,6 +76634,8 @@ "full_title": "", "hide_links": "", "id": "R-100380", + "id_complete": "R-100380", + "id_parent": "R-100380", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76474,6 +76669,8 @@ "full_title": "", "hide_links": "", "id": "R-100400", + "id_complete": "R-100400", + "id_parent": "R-100400", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76507,6 +76704,8 @@ "full_title": "", "hide_links": "", "id": "R-100410", + "id_complete": "R-100410", + "id_parent": "R-100410", "impacts": "", "introduced": "dublin", "is_need": true, @@ -76536,10 +76735,12 @@ }, "R-10087": { "description": "The VNF or PNF CSAR package **MUST** include all artifacts required by\nETSI GS NFV-SOL004 including Manifest file, VNFD or PNFD (or Main\nTOSCA/YAML based Service Template) and other optional artifacts.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-10087", + "id_complete": "R-10087", + "id_parent": "R-10087", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -76551,8 +76752,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -76574,6 +76774,8 @@ "full_title": "", "hide_links": "", "id": "R-10129", + "id_complete": "R-10129", + "id_parent": "R-10129", "impacts": "", "introduced": "", "is_need": true, @@ -76609,6 +76811,8 @@ "full_title": "", "hide_links": "", "id": "R-10173", + "id_complete": "R-10173", + "id_parent": "R-10173", "impacts": "", "introduced": "", "is_need": true, @@ -76644,6 +76848,8 @@ "full_title": "", "hide_links": "", "id": "R-10353", + "id_complete": "R-10353", + "id_parent": "R-10353", "impacts": "", "introduced": "", "is_need": true, @@ -76679,6 +76885,8 @@ "full_title": "", "hide_links": "", "id": "R-106240", + "id_complete": "R-106240", + "id_parent": "R-106240", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -76712,6 +76920,8 @@ "full_title": "", "hide_links": "", "id": "R-10716", + "id_complete": "R-10716", + "id_parent": "R-10716", "impacts": "", "introduced": "", "is_need": true, @@ -76747,6 +76957,8 @@ "full_title": "", "hide_links": "", "id": "R-10834", + "id_complete": "R-10834", + "id_parent": "R-10834", "impacts": "", "introduced": "", "is_need": true, @@ -76782,6 +76994,8 @@ "full_title": "", "hide_links": "", "id": "R-11041", + "id_complete": "R-11041", + "id_parent": "R-11041", "impacts": "", "introduced": "", "is_need": true, @@ -76816,6 +77030,8 @@ "full_title": "", "hide_links": "", "id": "R-11168", + "id_complete": "R-11168", + "id_parent": "R-11168", "impacts": "", "introduced": "", "is_need": true, @@ -76848,6 +77064,8 @@ "full_title": "", "hide_links": "", "id": "R-11200", + "id_complete": "R-11200", + "id_parent": "R-11200", "impacts": "", "introduced": "", "is_need": true, @@ -76881,6 +77099,8 @@ "full_title": "", "hide_links": "", "id": "R-11235", + "id_complete": "R-11235", + "id_parent": "R-11235", "impacts": "", "introduced": "", "is_need": true, @@ -76916,6 +77136,8 @@ "full_title": "", "hide_links": "", "id": "R-11240", + "id_complete": "R-11240", + "id_parent": "R-11240", "impacts": "", "introduced": "", "is_need": true, @@ -76950,6 +77172,8 @@ "full_title": "", "hide_links": "", "id": "R-11441", + "id_complete": "R-11441", + "id_parent": "R-11441", "impacts": "", "introduced": "", "is_need": true, @@ -76985,6 +77209,8 @@ "full_title": "", "hide_links": "", "id": "R-11499", + "id_complete": "R-11499", + "id_parent": "R-11499", "impacts": "", "introduced": "", "is_need": true, @@ -77020,6 +77246,8 @@ "full_title": "", "hide_links": "", "id": "R-11690", + "id_complete": "R-11690", + "id_parent": "R-11690", "impacts": "", "introduced": "", "is_need": true, @@ -77052,6 +77280,8 @@ "full_title": "", "hide_links": "", "id": "R-11790", + "id_complete": "R-11790", + "id_parent": "R-11790", "impacts": "", "introduced": "", "is_need": true, @@ -77085,6 +77315,8 @@ "full_title": "", "hide_links": "", "id": "R-118669", + "id_complete": "R-118669", + "id_parent": "R-118669", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -77118,6 +77350,8 @@ "full_title": "", "hide_links": "", "id": "R-120182", + "id_complete": "R-120182", + "id_parent": "R-120182", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -77151,6 +77385,8 @@ "full_title": "", "hide_links": "", "id": "R-12110", + "id_complete": "R-12110", + "id_parent": "R-12110", "impacts": "", "introduced": "", "is_need": true, @@ -77184,6 +77420,8 @@ "full_title": "", "hide_links": "", "id": "R-12271", + "id_complete": "R-12271", + "id_parent": "R-12271", "impacts": "", "introduced": "", "is_need": true, @@ -77219,6 +77457,8 @@ "full_title": "", "hide_links": "", "id": "R-123044", + "id_complete": "R-123044", + "id_parent": "R-123044", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -77252,6 +77492,8 @@ "full_title": "", "hide_links": "", "id": "R-12467", + "id_complete": "R-12467", + "id_parent": "R-12467", "impacts": "", "introduced": "", "is_need": true, @@ -77285,6 +77527,8 @@ "full_title": "", "hide_links": "", "id": "R-12538", + "id_complete": "R-12538", + "id_parent": "R-12538", "impacts": "", "introduced": "", "is_need": true, @@ -77318,6 +77562,8 @@ "full_title": "", "hide_links": "", "id": "R-12678", + "id_complete": "R-12678", + "id_parent": "R-12678", "impacts": "", "introduced": "", "is_need": true, @@ -77351,6 +77597,8 @@ "full_title": "", "hide_links": "", "id": "R-12706", + "id_complete": "R-12706", + "id_parent": "R-12706", "impacts": "", "introduced": "", "is_need": true, @@ -77385,6 +77633,8 @@ "full_title": "", "hide_links": "", "id": "R-12709", + "id_complete": "R-12709", + "id_parent": "R-12709", "impacts": "", "introduced": "", "is_need": true, @@ -77412,11 +77662,13 @@ "validation_mode": "" }, "R-130206": { - "description": "If the VNF or PNF CSAR Package utilizes Option 2 for package security, then\nthe complete CSAR file **MUST** contain a Digest (a.k.a. hash) for each of\nthe components of the VNF or PNF package. The table of hashes is included\nin the package manifest file, which is signed with the VNF or PNF provider\nprivate key. In addition, the VNF or PNF provider MUST include a signing\ncertificate that includes the VNF or PNF provider public key, following a\nTOSCA pre-defined naming convention and located either at the root of the\narchive or in a predefined location specified by the TOSCA.meta file with\nthe corresponding entry named \"ETSI-Entry-Certificate\".", - "docname": "Chapter5/Tosca", + "description": "If the VNF or PNF CSAR Package utilizes Option 1 for package security, then\nthe complete CSAR file **MUST** contain a Digest (a.k.a. hash) for each of\nthe components of the VNF or PNF package. The table of hashes is included\nin the package manifest file, which is signed with the VNF or PNF provider\nprivate key. In addition, the VNF or PNF provider MUST include a signing\ncertificate that includes the VNF or PNF provider public key, following a\nTOSCA pre-defined naming convention and located either at the root of the\narchive or in a predefined location specified by the TOSCA.meta file with\nthe corresponding entry named \"ETSI-Entry-Certificate\".", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-130206", + "id_complete": "R-130206", + "id_parent": "R-130206", "impacts": "", "introduced": "dublin", "is_need": true, @@ -77428,8 +77680,7 @@ "section_name": "VNF or PNF Package Authenticity and Integrity", "sections": [ "VNF or PNF Package Authenticity and Integrity", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -77441,7 +77692,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -77451,6 +77702,8 @@ "full_title": "", "hide_links": "", "id": "R-13151", + "id_complete": "R-13151", + "id_parent": "R-13151", "impacts": "", "introduced": "", "is_need": true, @@ -77484,6 +77737,8 @@ "full_title": "", "hide_links": "", "id": "R-13194", + "id_complete": "R-13194", + "id_parent": "R-13194", "impacts": "", "introduced": "", "is_need": true, @@ -77517,6 +77772,8 @@ "full_title": "", "hide_links": "", "id": "R-13196", + "id_complete": "R-13196", + "id_parent": "R-13196", "impacts": "", "introduced": "", "is_need": true, @@ -77550,6 +77807,8 @@ "full_title": "", "hide_links": "", "id": "R-13344", + "id_complete": "R-13344", + "id_parent": "R-13344", "impacts": "", "introduced": "", "is_need": true, @@ -77583,6 +77842,8 @@ "full_title": "", "hide_links": "", "id": "R-13390", + "id_complete": "R-13390", + "id_parent": "R-13390", "impacts": "", "introduced": "", "is_need": true, @@ -77617,6 +77878,8 @@ "full_title": "", "hide_links": "", "id": "R-13613", + "id_complete": "R-13613", + "id_parent": "R-13613", "impacts": "", "introduced": "", "is_need": true, @@ -77650,6 +77913,8 @@ "full_title": "", "hide_links": "", "id": "R-13627", + "id_complete": "R-13627", + "id_parent": "R-13627", "impacts": "", "introduced": "", "is_need": true, @@ -77683,6 +77948,8 @@ "full_title": "", "hide_links": "", "id": "R-13800", + "id_complete": "R-13800", + "id_parent": "R-13800", "impacts": "", "introduced": "", "is_need": true, @@ -77718,6 +77985,8 @@ "full_title": "", "hide_links": "", "id": "R-14198", + "id_complete": "R-14198", + "id_parent": "R-14198", "impacts": "", "introduced": "", "is_need": true, @@ -77752,6 +78021,8 @@ "full_title": "", "hide_links": "", "id": "R-14447", + "id_complete": "R-14447", + "id_parent": "R-14447", "impacts": "", "introduced": "", "is_need": true, @@ -77782,10 +78053,12 @@ }, "R-146092": { "description": "If one or more non-MANO artifact(s) is included in the VNF or PNF TOSCA CSAR\npackage, the Manifest file in this CSAR package **MUST** contain: non-MANO\nartifact set which MAY contain following ONAP public tag.\n\n - onap_ves_events: contains VES registration files\n\n - onap_pm_dictionary: contains the PM dictionary files\n\n - onap_yang_modules: contains Yang module files for configurations\n\n - onap_ansible_playbooks: contains any ansible_playbooks\n\n - onap_others: contains any other non_MANO artifacts, e.g. informational\n documents", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-146092", + "id_complete": "R-146092", + "id_parent": "R-146092", "impacts": "", "introduced": "dublin", "is_need": true, @@ -77797,8 +78070,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -77820,6 +78092,8 @@ "full_title": "", "hide_links": "", "id": "R-146931", + "id_complete": "R-146931", + "id_parent": "R-146931", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -77854,6 +78128,8 @@ "full_title": "", "hide_links": "", "id": "R-14853", + "id_complete": "R-14853", + "id_parent": "R-14853", "impacts": "", "introduced": "", "is_need": true, @@ -77886,6 +78162,8 @@ "full_title": "", "hide_links": "", "id": "R-15189", + "id_complete": "R-15189", + "id_parent": "R-15189", "impacts": "", "introduced": "", "is_need": true, @@ -77920,6 +78198,8 @@ "full_title": "", "hide_links": "", "id": "R-15287", + "id_complete": "R-15287", + "id_parent": "R-15287", "impacts": "", "introduced": "", "is_need": true, @@ -77953,6 +78233,8 @@ "full_title": "", "hide_links": "", "id": "R-15325", + "id_complete": "R-15325", + "id_parent": "R-15325", "impacts": "", "introduced": "", "is_need": true, @@ -77986,6 +78268,8 @@ "full_title": "", "hide_links": "", "id": "R-15480", + "id_complete": "R-15480", + "id_parent": "R-15480", "impacts": "", "introduced": "", "is_need": true, @@ -78019,6 +78303,8 @@ "full_title": "", "hide_links": "", "id": "R-15671", + "id_complete": "R-15671", + "id_parent": "R-15671", "impacts": "", "introduced": "", "is_need": true, @@ -78048,10 +78334,12 @@ }, "R-15837": { "description": "The following table defines the major TOSCA Types specified in\nETSI NFV-SOL001 standard draft. The VNFD provided by a VNF vendor\n**MUST** comply with the below definitions:", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-15837", + "id_complete": "R-15837", + "id_parent": "R-15837", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -78063,8 +78351,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -78086,6 +78373,8 @@ "full_title": "", "hide_links": "", "id": "R-15884", + "id_complete": "R-15884", + "id_parent": "R-15884", "impacts": "", "introduced": "", "is_need": true, @@ -78119,6 +78408,8 @@ "full_title": "", "hide_links": "", "id": "R-15885", + "id_complete": "R-15885", + "id_parent": "R-15885", "impacts": "", "introduced": "", "is_need": true, @@ -78154,6 +78445,8 @@ "full_title": "", "hide_links": "", "id": "R-16039", + "id_complete": "R-16039", + "id_parent": "R-16039", "impacts": "", "introduced": "", "is_need": true, @@ -78187,6 +78480,8 @@ "full_title": "", "hide_links": "", "id": "R-16065", + "id_complete": "R-16065", + "id_parent": "R-16065", "impacts": "", "introduced": "", "is_need": true, @@ -78221,6 +78516,8 @@ "full_title": "", "hide_links": "", "id": "R-16241", + "id_complete": "R-16241", + "id_parent": "R-16241", "impacts": "", "introduced": "", "is_need": true, @@ -78254,6 +78551,8 @@ "full_title": "", "hide_links": "", "id": "R-16437", + "id_complete": "R-16437", + "id_parent": "R-16437", "impacts": "", "introduced": "", "is_need": true, @@ -78288,6 +78587,8 @@ "full_title": "", "hide_links": "", "id": "R-16447", + "id_complete": "R-16447", + "id_parent": "R-16447", "impacts": "", "introduced": "", "is_need": true, @@ -78323,6 +78624,8 @@ "full_title": "", "hide_links": "", "id": "R-16496", + "id_complete": "R-16496", + "id_parent": "R-16496", "impacts": "", "introduced": "", "is_need": true, @@ -78355,6 +78658,8 @@ "full_title": "", "hide_links": "", "id": "R-16560", + "id_complete": "R-16560", + "id_parent": "R-16560", "impacts": "", "introduced": "", "is_need": true, @@ -78388,6 +78693,8 @@ "full_title": "", "hide_links": "", "id": "R-16777", + "id_complete": "R-16777", + "id_parent": "R-16777", "impacts": "", "introduced": "", "is_need": true, @@ -78422,6 +78729,8 @@ "full_title": "", "hide_links": "", "id": "R-16875", + "id_complete": "R-16875", + "id_parent": "R-16875", "impacts": "", "introduced": "", "is_need": true, @@ -78455,6 +78764,8 @@ "full_title": "", "hide_links": "", "id": "R-16968", + "id_complete": "R-16968", + "id_parent": "R-16968", "impacts": "", "introduced": "", "is_need": true, @@ -78488,6 +78799,8 @@ "full_title": "", "hide_links": "", "id": "R-17334", + "id_complete": "R-17334", + "id_parent": "R-17334", "impacts": "", "introduced": "", "is_need": true, @@ -78522,6 +78835,8 @@ "full_title": "", "hide_links": "", "id": "R-17528", + "id_complete": "R-17528", + "id_parent": "R-17528", "impacts": "", "introduced": "", "is_need": true, @@ -78556,6 +78871,8 @@ "full_title": "", "hide_links": "", "id": "R-17624", + "id_complete": "R-17624", + "id_parent": "R-17624", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -78585,10 +78902,12 @@ }, "R-177937": { "description": "The PNFD provided by a PNF vendor\u00a0**MUST**\u00a0comply with the following\nCapabilities Types as specified in ETSI NFV-SOL001 standard:\n\n - tosca.datatypes.nfv.VirtualLinkable", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-177937", + "id_complete": "R-177937", + "id_parent": "R-177937", "impacts": "", "introduced": "dublin", "is_need": true, @@ -78600,8 +78919,7 @@ "section_name": "Capability Types", "sections": [ "Capability Types", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -78619,10 +78937,12 @@ }, "R-17852": { "description": "The VNFD **MAY** include TOSCA/YAML definitions that are not part of\nNFV Profile. If provided, these definitions MUST comply with TOSCA\nSimple Profile in YAML v.1.2.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-17852", + "id_complete": "R-17852", + "id_parent": "R-17852", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -78634,8 +78954,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -78657,6 +78976,8 @@ "full_title": "", "hide_links": "", "id": "R-18001", + "id_complete": "R-18001", + "id_parent": "R-18001", "impacts": "", "introduced": "", "is_need": true, @@ -78691,6 +79012,8 @@ "full_title": "", "hide_links": "", "id": "R-18008", + "id_complete": "R-18008", + "id_parent": "R-18008", "impacts": "", "introduced": "", "is_need": true, @@ -78724,6 +79047,8 @@ "full_title": "", "hide_links": "", "id": "R-18202", + "id_complete": "R-18202", + "id_parent": "R-18202", "impacts": "", "introduced": "", "is_need": true, @@ -78758,6 +79083,8 @@ "full_title": "", "hide_links": "", "id": "R-18525", + "id_complete": "R-18525", + "id_parent": "R-18525", "impacts": "", "introduced": "", "is_need": true, @@ -78792,6 +79119,8 @@ "full_title": "", "hide_links": "", "id": "R-18683", + "id_complete": "R-18683", + "id_parent": "R-18683", "impacts": "", "introduced": "", "is_need": true, @@ -78826,6 +79155,8 @@ "full_title": "", "hide_links": "", "id": "R-18725", + "id_complete": "R-18725", + "id_parent": "R-18725", "impacts": "", "introduced": "", "is_need": true, @@ -78859,6 +79190,8 @@ "full_title": "", "hide_links": "", "id": "R-18733", + "id_complete": "R-18733", + "id_parent": "R-18733", "impacts": "", "introduced": "", "is_need": true, @@ -78894,6 +79227,8 @@ "full_title": "", "hide_links": "", "id": "R-18864", + "id_complete": "R-18864", + "id_parent": "R-18864", "impacts": "", "introduced": "", "is_need": true, @@ -78926,6 +79261,8 @@ "full_title": "", "hide_links": "", "id": "R-19082", + "id_complete": "R-19082", + "id_parent": "R-19082", "impacts": "", "introduced": "", "is_need": true, @@ -78959,6 +79296,8 @@ "full_title": "", "hide_links": "", "id": "R-19366", + "id_complete": "R-19366", + "id_parent": "R-19366", "impacts": "", "introduced": "", "is_need": true, @@ -78993,6 +79332,8 @@ "full_title": "", "hide_links": "", "id": "R-19624", + "id_complete": "R-19624", + "id_parent": "R-19624", "impacts": "", "introduced": "", "is_need": true, @@ -79027,6 +79368,8 @@ "full_title": "", "hide_links": "", "id": "R-19756", + "id_complete": "R-19756", + "id_parent": "R-19756", "impacts": "", "introduced": "", "is_need": true, @@ -79060,6 +79403,8 @@ "full_title": "", "hide_links": "", "id": "R-19768", + "id_complete": "R-19768", + "id_parent": "R-19768", "impacts": "", "introduced": "", "is_need": true, @@ -79093,6 +79438,8 @@ "full_title": "", "hide_links": "", "id": "R-19922", + "id_complete": "R-19922", + "id_parent": "R-19922", "impacts": "", "introduced": "", "is_need": true, @@ -79127,6 +79474,8 @@ "full_title": "", "hide_links": "", "id": "R-20065", + "id_complete": "R-20065", + "id_parent": "R-20065", "impacts": "", "introduced": "", "is_need": true, @@ -79161,6 +79510,8 @@ "full_title": "", "hide_links": "", "id": "R-20204", + "id_complete": "R-20204", + "id_parent": "R-20204", "impacts": "", "introduced": "", "is_need": true, @@ -79194,6 +79545,8 @@ "full_title": "", "hide_links": "", "id": "R-20308", + "id_complete": "R-20308", + "id_parent": "R-20308", "impacts": "", "introduced": "", "is_need": true, @@ -79227,6 +79580,8 @@ "full_title": "", "hide_links": "", "id": "R-20319", + "id_complete": "R-20319", + "id_parent": "R-20319", "impacts": "", "introduced": "", "is_need": true, @@ -79261,6 +79616,8 @@ "full_title": "", "hide_links": "", "id": "R-20353", + "id_complete": "R-20353", + "id_parent": "R-20353", "impacts": "", "introduced": "", "is_need": true, @@ -79296,6 +79653,8 @@ "full_title": "", "hide_links": "", "id": "R-20453", + "id_complete": "R-20453", + "id_parent": "R-20453", "impacts": "", "introduced": "", "is_need": true, @@ -79330,6 +79689,8 @@ "full_title": "", "hide_links": "", "id": "R-20547", + "id_complete": "R-20547", + "id_parent": "R-20547", "impacts": "", "introduced": "", "is_need": true, @@ -79364,6 +79725,8 @@ "full_title": "", "hide_links": "", "id": "R-20741", + "id_complete": "R-20741", + "id_parent": "R-20741", "impacts": "", "introduced": "", "is_need": true, @@ -79398,6 +79761,8 @@ "full_title": "", "hide_links": "", "id": "R-20856", + "id_complete": "R-20856", + "id_parent": "R-20856", "impacts": "", "introduced": "", "is_need": true, @@ -79431,6 +79796,8 @@ "full_title": "", "hide_links": "", "id": "R-20860", + "id_complete": "R-20860", + "id_parent": "R-20860", "impacts": "", "introduced": "", "is_need": true, @@ -79463,6 +79830,8 @@ "full_title": "", "hide_links": "", "id": "R-21210", + "id_complete": "R-21210", + "id_parent": "R-21210", "impacts": "", "introduced": "", "is_need": true, @@ -79492,10 +79861,12 @@ }, "R-21322": { "description": "The VNF provider **MUST** provide their testing scripts to support\ntesting as specified in ETSI NFV-SOL004 - Testing directory in CSAR", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-21322", + "id_complete": "R-21322", + "id_parent": "R-21322", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -79507,8 +79878,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -79530,6 +79900,8 @@ "full_title": "", "hide_links": "", "id": "R-21330", + "id_complete": "R-21330", + "id_parent": "R-21330", "impacts": "", "introduced": "", "is_need": true, @@ -79562,6 +79934,8 @@ "full_title": "", "hide_links": "", "id": "R-21511", + "id_complete": "R-21511", + "id_parent": "R-21511", "impacts": "", "introduced": "", "is_need": true, @@ -79594,6 +79968,8 @@ "full_title": "", "hide_links": "", "id": "R-21558", + "id_complete": "R-21558", + "id_parent": "R-21558", "impacts": "", "introduced": "", "is_need": true, @@ -79627,6 +80003,8 @@ "full_title": "", "hide_links": "", "id": "R-21652", + "id_complete": "R-21652", + "id_parent": "R-21652", "impacts": "", "introduced": "", "is_need": true, @@ -79655,11 +80033,13 @@ "validation_mode": "" }, "R-21819": { - "description": "The VNF **MUST** provide functionality that enables the Operator to comply\nwith requests for information from law enforcement and government agencies.", + "description": "VNFs that are subject to regulatory requirements **MUST** provide\nfunctionality that enables the Operator to comply with ETSI TC LI\nrequirements, and, optionally, other relevant national equivalents.", "docname": "Chapter4/Security", "full_title": "", "hide_links": "", "id": "R-21819", + "id_complete": "R-21819", + "id_parent": "R-21819", "impacts": "", "introduced": "", "is_need": true, @@ -79683,7 +80063,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -79693,6 +80073,8 @@ "full_title": "", "hide_links": "", "id": "R-22059", + "id_complete": "R-22059", + "id_parent": "R-22059", "impacts": "", "introduced": "", "is_need": true, @@ -79722,10 +80104,12 @@ }, "R-221914": { "description": "The VNF or PNF package **MUST** contain a a human-readable change log text\nfile. The Change Log file keeps a history describing any changes in the VNF\nor PNF package. The Change Log file is kept up to date continuously from\nthe creation of the CSAR package.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-221914", + "id_complete": "R-221914", + "id_parent": "R-221914", "impacts": "", "introduced": "dublin", "is_need": true, @@ -79737,8 +80121,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -79754,45 +80137,14 @@ "validated_by": "", "validation_mode": "" }, - "R-22286": { - "description": "The VNF **MUST** support Integration functionality via\nAPI/Syslog/SNMP to other functional modules in the network (e.g.,\nPCRF, PCEF) that enable dynamic security control by blocking the\nmalicious traffic or malicious end users.", - "docname": "Chapter4/Security", - "full_title": "", - "hide_links": "", - "id": "R-22286", - "impacts": "", - "introduced": "", - "is_need": true, - "is_part": false, - "keyword": "MUST", - "links": [], - "notes": "", - "parts": {}, - "section_name": "VNF Security Analytics Requirements", - "sections": [ - "VNF Security Analytics Requirements", - "VNF Security" - ], - "status": null, - "tags": [], - "target": "VNF", - "test": "", - "test_case": "", - "test_file": "", - "title": "", - "title_from_content": "", - "type": "req", - "type_name": "Requirement", - "updated": "", - "validated_by": "", - "validation_mode": "" - }, "R-22288": { "description": "The VNF's Heat Orchestration Template's Resource\n``OS::Neutron::Port`` property ``fixed_ips``\nmap property ``subnet`` parameter\n``int_{network-role}_v6_subnet_id``\n**MUST NOT** be enumerated in the\nVNF's Heat Orchestration Template's Environment File.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters", "full_title": "", "hide_links": "", "id": "R-22288", + "id_complete": "R-22288", + "id_parent": "R-22288", "impacts": "", "introduced": "", "is_need": true, @@ -79826,6 +80178,8 @@ "full_title": "", "hide_links": "", "id": "R-22346", + "id_complete": "R-22346", + "id_parent": "R-22346", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -79859,6 +80213,8 @@ "full_title": "", "hide_links": "", "id": "R-22367", + "id_complete": "R-22367", + "id_parent": "R-22367", "impacts": "", "introduced": "", "is_need": true, @@ -79892,6 +80248,8 @@ "full_title": "", "hide_links": "", "id": "R-22589", + "id_complete": "R-22589", + "id_parent": "R-22589", "impacts": "", "introduced": "", "is_need": true, @@ -79927,6 +80285,8 @@ "full_title": "", "hide_links": "", "id": "R-22608", + "id_complete": "R-22608", + "id_parent": "R-22608", "impacts": "", "introduced": "", "is_need": true, @@ -79961,6 +80321,8 @@ "full_title": "", "hide_links": "", "id": "R-22680", + "id_complete": "R-22680", + "id_parent": "R-22680", "impacts": "", "introduced": "", "is_need": true, @@ -79994,6 +80356,8 @@ "full_title": "", "hide_links": "", "id": "R-22688", + "id_complete": "R-22688", + "id_parent": "R-22688", "impacts": "", "introduced": "", "is_need": true, @@ -80027,6 +80391,8 @@ "full_title": "", "hide_links": "", "id": "R-22700", + "id_complete": "R-22700", + "id_parent": "R-22700", "impacts": "", "introduced": "", "is_need": true, @@ -80062,6 +80428,8 @@ "full_title": "", "hide_links": "", "id": "R-22838", + "id_complete": "R-22838", + "id_parent": "R-22838", "impacts": "", "introduced": "", "is_need": true, @@ -80095,6 +80463,8 @@ "full_title": "", "hide_links": "", "id": "R-22888", + "id_complete": "R-22888", + "id_parent": "R-22888", "impacts": "", "introduced": "", "is_need": true, @@ -80128,6 +80498,8 @@ "full_title": "", "hide_links": "", "id": "R-22946", + "id_complete": "R-22946", + "id_parent": "R-22946", "impacts": "", "introduced": "", "is_need": true, @@ -80163,6 +80535,8 @@ "full_title": "", "hide_links": "", "id": "R-23035", + "id_complete": "R-23035", + "id_parent": "R-23035", "impacts": "", "introduced": "", "is_need": true, @@ -80195,6 +80569,8 @@ "full_title": "", "hide_links": "", "id": "R-23135", + "id_complete": "R-23135", + "id_parent": "R-23135", "impacts": "", "introduced": "", "is_need": true, @@ -80228,6 +80604,8 @@ "full_title": "", "hide_links": "", "id": "R-231402", + "id_complete": "R-231402", + "id_parent": "R-231402", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80261,6 +80639,8 @@ "full_title": "", "hide_links": "", "id": "R-23311", + "id_complete": "R-23311", + "id_parent": "R-23311", "impacts": "", "introduced": "", "is_need": true, @@ -80294,6 +80674,8 @@ "full_title": "", "hide_links": "", "id": "R-23475", + "id_complete": "R-23475", + "id_parent": "R-23475", "impacts": "", "introduced": "", "is_need": true, @@ -80326,6 +80708,8 @@ "full_title": "", "hide_links": "", "id": "R-23503", + "id_complete": "R-23503", + "id_parent": "R-23503", "impacts": "", "introduced": "", "is_need": true, @@ -80359,6 +80743,8 @@ "full_title": "", "hide_links": "", "id": "R-23664", + "id_complete": "R-23664", + "id_parent": "R-23664", "impacts": "", "introduced": "", "is_need": true, @@ -80393,6 +80779,8 @@ "full_title": "", "hide_links": "", "id": "R-23740", + "id_complete": "R-23740", + "id_parent": "R-23740", "impacts": "", "introduced": "", "is_need": true, @@ -80426,6 +80814,8 @@ "full_title": "", "hide_links": "", "id": "R-23882", + "id_complete": "R-23882", + "id_parent": "R-23882", "impacts": "", "introduced": "", "is_need": true, @@ -80459,6 +80849,8 @@ "full_title": "", "hide_links": "", "id": "R-23957", + "id_complete": "R-23957", + "id_parent": "R-23957", "impacts": "", "introduced": "", "is_need": true, @@ -80492,6 +80884,8 @@ "full_title": "", "hide_links": "", "id": "R-240760", + "id_complete": "R-240760", + "id_parent": "R-240760", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80525,6 +80919,8 @@ "full_title": "", "hide_links": "", "id": "R-24189", + "id_complete": "R-24189", + "id_parent": "R-24189", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80560,6 +80956,8 @@ "full_title": "", "hide_links": "", "id": "R-24269", + "id_complete": "R-24269", + "id_parent": "R-24269", "impacts": "", "introduced": "", "is_need": true, @@ -80595,6 +80993,8 @@ "full_title": "", "hide_links": "", "id": "R-24359", + "id_complete": "R-24359", + "id_parent": "R-24359", "impacts": "", "introduced": "", "is_need": true, @@ -80628,6 +81028,8 @@ "full_title": "", "hide_links": "", "id": "R-24482", + "id_complete": "R-24482", + "id_parent": "R-24482", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80659,10 +81061,12 @@ }, "R-24632": { "description": "The PNF Descriptor (PNFD) provided by PNF vendor **MUST** comply with\nTOSCA/YAML based Service template for PNF descriptor specified in ETSI\nNFV-SOL001.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-24632", + "id_complete": "R-24632", + "id_parent": "R-24632", "impacts": "", "introduced": "dublin", "is_need": true, @@ -80674,8 +81078,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -80697,6 +81100,8 @@ "full_title": "", "hide_links": "", "id": "R-24893", + "id_complete": "R-24893", + "id_parent": "R-24893", "impacts": "", "introduced": "", "is_need": true, @@ -80730,6 +81135,8 @@ "full_title": "", "hide_links": "", "id": "R-24997", + "id_complete": "R-24997", + "id_parent": "R-24997", "impacts": "", "introduced": "", "is_need": true, @@ -80764,6 +81171,8 @@ "full_title": "", "hide_links": "", "id": "R-25190", + "id_complete": "R-25190", + "id_parent": "R-25190", "impacts": "", "introduced": "", "is_need": true, @@ -80797,6 +81206,8 @@ "full_title": "", "hide_links": "", "id": "R-25238", + "id_complete": "R-25238", + "id_parent": "R-25238", "impacts": "", "introduced": "", "is_need": true, @@ -80832,6 +81243,8 @@ "full_title": "", "hide_links": "", "id": "R-25401", + "id_complete": "R-25401", + "id_parent": "R-25401", "impacts": "", "introduced": "", "is_need": true, @@ -80865,6 +81278,8 @@ "full_title": "", "hide_links": "", "id": "R-25547", + "id_complete": "R-25547", + "id_parent": "R-25547", "impacts": "", "introduced": "", "is_need": true, @@ -80898,6 +81313,8 @@ "full_title": "", "hide_links": "", "id": "R-256267", + "id_complete": "R-256267", + "id_parent": "R-256267", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80931,6 +81348,8 @@ "full_title": "", "hide_links": "", "id": "R-256347", + "id_complete": "R-256347", + "id_parent": "R-256347", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -80964,6 +81383,8 @@ "full_title": "", "hide_links": "", "id": "R-256790", + "id_complete": "R-256790", + "id_parent": "R-256790", "impacts": "", "introduced": "el alto", "is_need": true, @@ -80997,6 +81418,8 @@ "full_title": "", "hide_links": "", "id": "R-25720", + "id_complete": "R-25720", + "id_parent": "R-25720", "impacts": "", "introduced": "", "is_need": true, @@ -81031,6 +81454,8 @@ "full_title": "", "hide_links": "", "id": "R-257367", + "id_complete": "R-257367", + "id_parent": "R-257367", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -81065,6 +81490,8 @@ "full_title": "", "hide_links": "", "id": "R-258352", + "id_complete": "R-258352", + "id_parent": "R-258352", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -81093,16 +81520,18 @@ "validation_mode": "" }, "R-258686": { - "description": "The VNF application processes **MUST NOT** run as root.", + "description": "The VNF application processes **SHOULD NOT** run as root. If a VNF\napplication process must run as root, the technical reason must\nbe documented.", "docname": "Chapter4/Security", "full_title": "", "hide_links": "", "id": "R-258686", + "id_complete": "R-258686", + "id_parent": "R-258686", "impacts": "", "introduced": "casablanca", "is_need": true, "is_part": false, - "keyword": "MUST NOT", + "keyword": "SHOULD NOT", "links": [], "notes": "", "parts": {}, @@ -81121,7 +81550,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -81131,6 +81560,8 @@ "full_title": "", "hide_links": "", "id": "R-25877", + "id_complete": "R-25877", + "id_parent": "R-25877", "impacts": "", "introduced": "", "is_need": true, @@ -81166,6 +81597,8 @@ "full_title": "", "hide_links": "", "id": "R-26115", + "id_complete": "R-26115", + "id_parent": "R-26115", "impacts": "", "introduced": "", "is_need": true, @@ -81201,6 +81634,8 @@ "full_title": "", "hide_links": "", "id": "R-26124", + "id_complete": "R-26124", + "id_parent": "R-26124", "impacts": "", "introduced": "", "is_need": true, @@ -81236,6 +81671,8 @@ "full_title": "", "hide_links": "", "id": "R-26351", + "id_complete": "R-26351", + "id_parent": "R-26351", "impacts": "", "introduced": "", "is_need": true, @@ -81270,6 +81707,8 @@ "full_title": "", "hide_links": "", "id": "R-26371", + "id_complete": "R-26371", + "id_parent": "R-26371", "impacts": "", "introduced": "", "is_need": true, @@ -81303,6 +81742,8 @@ "full_title": "", "hide_links": "", "id": "R-26506", + "id_complete": "R-26506", + "id_parent": "R-26506", "impacts": "", "introduced": "", "is_need": true, @@ -81335,6 +81776,8 @@ "full_title": "", "hide_links": "", "id": "R-26508", + "id_complete": "R-26508", + "id_parent": "R-26508", "impacts": "", "introduced": "", "is_need": true, @@ -81370,6 +81813,8 @@ "full_title": "", "hide_links": "", "id": "R-26567", + "id_complete": "R-26567", + "id_parent": "R-26567", "impacts": "", "introduced": "", "is_need": true, @@ -81405,6 +81850,8 @@ "full_title": "", "hide_links": "", "id": "R-26881", + "id_complete": "R-26881", + "id_parent": "R-26881", "impacts": "", "introduced": "", "is_need": true, @@ -81438,6 +81885,8 @@ "full_title": "", "hide_links": "", "id": "R-270358", + "id_complete": "R-270358", + "id_parent": "R-270358", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -81470,6 +81919,8 @@ "full_title": "", "hide_links": "", "id": "R-27078", + "id_complete": "R-27078", + "id_parent": "R-27078", "impacts": "", "introduced": "", "is_need": true, @@ -81504,6 +81955,8 @@ "full_title": "", "hide_links": "", "id": "R-27310", + "id_complete": "R-27310", + "id_parent": "R-27310", "impacts": "", "introduced": "", "is_need": true, @@ -81539,6 +81992,8 @@ "full_title": "", "hide_links": "", "id": "R-27469", + "id_complete": "R-27469", + "id_parent": "R-27469", "impacts": "", "introduced": "", "is_need": true, @@ -81573,6 +82028,8 @@ "full_title": "", "hide_links": "", "id": "R-27511", + "id_complete": "R-27511", + "id_parent": "R-27511", "impacts": "", "introduced": "", "is_need": true, @@ -81606,6 +82063,8 @@ "full_title": "", "hide_links": "", "id": "R-27818", + "id_complete": "R-27818", + "id_parent": "R-27818", "impacts": "", "introduced": "", "is_need": true, @@ -81639,6 +82098,8 @@ "full_title": "", "hide_links": "", "id": "R-27970", + "id_complete": "R-27970", + "id_parent": "R-27970", "impacts": "", "introduced": "", "is_need": true, @@ -81671,6 +82132,8 @@ "full_title": "", "hide_links": "", "id": "R-27995", + "id_complete": "R-27995", + "id_parent": "R-27995", "impacts": "", "introduced": "", "is_need": true, @@ -81704,6 +82167,8 @@ "full_title": "", "hide_links": "", "id": "R-28168", + "id_complete": "R-28168", + "id_parent": "R-28168", "impacts": "", "introduced": "", "is_need": true, @@ -81737,6 +82202,8 @@ "full_title": "", "hide_links": "", "id": "R-28189", + "id_complete": "R-28189", + "id_parent": "R-28189", "impacts": "", "introduced": "", "is_need": true, @@ -81771,6 +82238,8 @@ "full_title": "", "hide_links": "", "id": "R-28222", + "id_complete": "R-28222", + "id_parent": "R-28222", "impacts": "", "introduced": "", "is_need": true, @@ -81804,6 +82273,8 @@ "full_title": "", "hide_links": "", "id": "R-283988", + "id_complete": "R-283988", + "id_parent": "R-283988", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -81838,6 +82309,8 @@ "full_title": "", "hide_links": "", "id": "R-284934", + "id_complete": "R-284934", + "id_parent": "R-284934", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -81871,6 +82344,8 @@ "full_title": "", "hide_links": "", "id": "R-28756", + "id_complete": "R-28756", + "id_parent": "R-28756", "impacts": "", "introduced": "", "is_need": true, @@ -81906,6 +82381,8 @@ "full_title": "", "hide_links": "", "id": "R-28795", + "id_complete": "R-28795", + "id_parent": "R-28795", "impacts": "", "introduced": "", "is_need": true, @@ -81939,6 +82416,8 @@ "full_title": "", "hide_links": "", "id": "R-28980", + "id_complete": "R-28980", + "id_parent": "R-28980", "impacts": "", "introduced": "", "is_need": true, @@ -81972,6 +82451,8 @@ "full_title": "", "hide_links": "", "id": "R-29324", + "id_complete": "R-29324", + "id_parent": "R-29324", "impacts": "", "introduced": "", "is_need": true, @@ -82003,10 +82484,12 @@ }, "R-293901": { "description": "The VNF or PNF CSAR PACKAGE with TOSCA-Metadata **MUST** include following\nadditional keywords pointing to TOSCA files:\n\n - ETSI-Entry-Manifest\n\n - ETSI-Entry-Change-Log\n\nNote: For a CSAR containing a TOSCA-Metadata directory, which includes\nthe TOSCA.meta metadata file. The TOSCA.meta metadata file includes block_0\nwith the Entry-Definitions keyword pointing to a TOSCA definitions YAML\nfile used as entry for parsing the contents of the overall CSAR archive.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-293901", + "id_complete": "R-293901", + "id_parent": "R-293901", "impacts": "", "introduced": "dublin", "is_need": true, @@ -82018,8 +82501,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -82041,6 +82523,8 @@ "full_title": "", "hide_links": "", "id": "R-29488", + "id_complete": "R-29488", + "id_parent": "R-29488", "impacts": "", "introduced": "", "is_need": true, @@ -82076,6 +82560,8 @@ "full_title": "", "hide_links": "", "id": "R-29495", + "id_complete": "R-29495", + "id_parent": "R-29495", "impacts": "", "introduced": "", "is_need": true, @@ -82111,6 +82597,8 @@ "full_title": "", "hide_links": "", "id": "R-29705", + "id_complete": "R-29705", + "id_parent": "R-29705", "impacts": "", "introduced": "", "is_need": true, @@ -82144,6 +82632,8 @@ "full_title": "", "hide_links": "", "id": "R-29751", + "id_complete": "R-29751", + "id_parent": "R-29751", "impacts": "", "introduced": "", "is_need": true, @@ -82178,6 +82668,8 @@ "full_title": "", "hide_links": "", "id": "R-29760", + "id_complete": "R-29760", + "id_parent": "R-29760", "impacts": "", "introduced": "", "is_need": true, @@ -82210,6 +82702,8 @@ "full_title": "", "hide_links": "", "id": "R-29765", + "id_complete": "R-29765", + "id_parent": "R-29765", "impacts": "", "introduced": "", "is_need": true, @@ -82243,6 +82737,8 @@ "full_title": "", "hide_links": "", "id": "R-29872", + "id_complete": "R-29872", + "id_parent": "R-29872", "impacts": "", "introduced": "", "is_need": true, @@ -82276,6 +82772,8 @@ "full_title": "", "hide_links": "", "id": "R-29977", + "id_complete": "R-29977", + "id_parent": "R-29977", "impacts": "", "introduced": "", "is_need": true, @@ -82309,6 +82807,8 @@ "full_title": "", "hide_links": "", "id": "R-30005", + "id_complete": "R-30005", + "id_parent": "R-30005", "impacts": "", "introduced": "", "is_need": true, @@ -82343,6 +82843,8 @@ "full_title": "", "hide_links": "", "id": "R-30278", + "id_complete": "R-30278", + "id_parent": "R-30278", "impacts": "", "introduced": "", "is_need": true, @@ -82377,6 +82879,8 @@ "full_title": "", "hide_links": "", "id": "R-303569", + "id_complete": "R-303569", + "id_parent": "R-303569", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -82410,6 +82914,8 @@ "full_title": "", "hide_links": "", "id": "R-30395", + "id_complete": "R-30395", + "id_parent": "R-30395", "impacts": "", "introduced": "", "is_need": true, @@ -82443,6 +82949,8 @@ "full_title": "", "hide_links": "", "id": "R-304011", + "id_complete": "R-304011", + "id_parent": "R-304011", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -82475,6 +82983,8 @@ "full_title": "", "hide_links": "", "id": "R-30650", + "id_complete": "R-30650", + "id_parent": "R-30650", "impacts": "", "introduced": "", "is_need": true, @@ -82507,6 +83017,8 @@ "full_title": "", "hide_links": "", "id": "R-30654", + "id_complete": "R-30654", + "id_parent": "R-30654", "impacts": "", "introduced": "", "is_need": true, @@ -82542,6 +83054,8 @@ "full_title": "", "hide_links": "", "id": "R-30753", + "id_complete": "R-30753", + "id_parent": "R-30753", "impacts": "", "introduced": "", "is_need": true, @@ -82576,6 +83090,8 @@ "full_title": "", "hide_links": "", "id": "R-30804", + "id_complete": "R-30804", + "id_parent": "R-30804", "impacts": "", "introduced": "", "is_need": true, @@ -82610,6 +83126,8 @@ "full_title": "", "hide_links": "", "id": "R-30932", + "id_complete": "R-30932", + "id_parent": "R-30932", "impacts": "", "introduced": "", "is_need": true, @@ -82643,6 +83161,8 @@ "full_title": "", "hide_links": "", "id": "R-31141", + "id_complete": "R-31141", + "id_parent": "R-31141", "impacts": "", "introduced": "", "is_need": true, @@ -82677,6 +83197,8 @@ "full_title": "", "hide_links": "", "id": "R-31614", + "id_complete": "R-31614", + "id_parent": "R-31614", "impacts": "", "introduced": "", "is_need": true, @@ -82710,6 +83232,8 @@ "full_title": "", "hide_links": "", "id": "R-31809", + "id_complete": "R-31809", + "id_parent": "R-31809", "impacts": "", "introduced": "", "is_need": true, @@ -82744,6 +83268,8 @@ "full_title": "", "hide_links": "", "id": "R-32094", + "id_complete": "R-32094", + "id_parent": "R-32094", "impacts": "", "introduced": "", "is_need": true, @@ -82775,10 +83301,12 @@ }, "R-32155": { "description": "The VNFD provided by VNF vendor may use the below described TOSCA\ninterface types. An on-boarding entity (ONAP SDC) **MUST** support them.\n\n **tosca.interfaces.nfv.vnf.lifecycle.Nfv** supports LCM operations", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-32155", + "id_complete": "R-32155", + "id_parent": "R-32155", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -82790,8 +83318,7 @@ "section_name": "Interface Types", "sections": [ "Interface Types", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -82813,6 +83340,8 @@ "full_title": "", "hide_links": "", "id": "R-32217", + "id_complete": "R-32217", + "id_parent": "R-32217", "impacts": "", "introduced": "", "is_need": true, @@ -82848,6 +83377,8 @@ "full_title": "", "hide_links": "", "id": "R-32394", + "id_complete": "R-32394", + "id_parent": "R-32394", "impacts": "", "introduced": "", "is_need": true, @@ -82880,6 +83411,8 @@ "full_title": "", "hide_links": "", "id": "R-32557", + "id_complete": "R-32557", + "id_parent": "R-32557", "impacts": "", "introduced": "", "is_need": true, @@ -82915,6 +83448,8 @@ "full_title": "", "hide_links": "", "id": "R-32636", + "id_complete": "R-32636", + "id_parent": "R-32636", "impacts": "", "introduced": "", "is_need": true, @@ -82948,6 +83483,8 @@ "full_title": "", "hide_links": "", "id": "R-32641", + "id_complete": "R-32641", + "id_parent": "R-32641", "impacts": "", "introduced": "", "is_need": true, @@ -82981,6 +83518,8 @@ "full_title": "", "hide_links": "", "id": "R-32695", + "id_complete": "R-32695", + "id_parent": "R-32695", "impacts": "", "introduced": "", "is_need": true, @@ -83014,6 +83553,8 @@ "full_title": "", "hide_links": "", "id": "R-328086", + "id_complete": "R-328086", + "id_parent": "R-328086", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -83048,6 +83589,8 @@ "full_title": "", "hide_links": "", "id": "R-32981", + "id_complete": "R-32981", + "id_parent": "R-32981", "impacts": "", "introduced": "", "is_need": true, @@ -83082,6 +83625,8 @@ "full_title": "", "hide_links": "", "id": "R-33132", + "id_complete": "R-33132", + "id_parent": "R-33132", "impacts": "", "introduced": "", "is_need": true, @@ -83115,6 +83660,8 @@ "full_title": "", "hide_links": "", "id": "R-332680", + "id_complete": "R-332680", + "id_parent": "R-332680", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -83149,6 +83696,8 @@ "full_title": "", "hide_links": "", "id": "R-33280", + "id_complete": "R-33280", + "id_parent": "R-33280", "impacts": "", "introduced": "", "is_need": true, @@ -83184,6 +83733,8 @@ "full_title": "", "hide_links": "", "id": "R-33488", + "id_complete": "R-33488", + "id_parent": "R-33488", "impacts": "", "introduced": "", "is_need": true, @@ -83217,6 +83768,8 @@ "full_title": "", "hide_links": "", "id": "R-33694", + "id_complete": "R-33694", + "id_parent": "R-33694", "impacts": "", "introduced": "", "is_need": true, @@ -83250,6 +83803,8 @@ "full_title": "", "hide_links": "", "id": "R-33846", + "id_complete": "R-33846", + "id_parent": "R-33846", "impacts": "", "introduced": "", "is_need": true, @@ -83276,12 +83831,50 @@ "validated_by": "", "validation_mode": "" }, + "R-33878": { + "description": "The VNF or PNF **MUST** support one of the following authentication\nmethods for authenticating HTTPS connections to the DCAE VES Event\nListener:\n\n- The preferred method is Certificate Authentication\n\n- The non-preferred option is Basic Authentication.", + "docname": "Chapter7/Monitoring-And-Management", + "full_title": "", + "hide_links": "", + "id": "R-33878", + "id_complete": "R-33878", + "id_parent": "R-33878", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MUST", + "links": [], + "notes": "", + "parts": {}, + "section_name": "Security", + "sections": [ + "Security", + "Monitoring & Management Requirements", + "Monitoring & Management" + ], + "status": null, + "tags": [], + "target": "VNF or PNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "" + }, "R-33904": { "description": "The VNF or PNF Package **MUST** include documentation for each KPI, provide\nlower and upper limits.", "docname": "Chapter7/VNF-On-boarding-and-package-management", "full_title": "", "hide_links": "", "id": "R-33904", + "id_complete": "R-33904", + "id_parent": "R-33904", "impacts": "", "introduced": "", "is_need": true, @@ -83315,6 +83908,8 @@ "full_title": "", "hide_links": "", "id": "R-33946", + "id_complete": "R-33946", + "id_parent": "R-33946", "impacts": "", "introduced": "", "is_need": true, @@ -83350,6 +83945,8 @@ "full_title": "", "hide_links": "", "id": "R-33955", + "id_complete": "R-33955", + "id_parent": "R-33955", "impacts": "", "introduced": "", "is_need": true, @@ -83385,6 +83982,8 @@ "full_title": "", "hide_links": "", "id": "R-34037", + "id_complete": "R-34037", + "id_parent": "R-34037", "impacts": "", "introduced": "", "is_need": true, @@ -83418,6 +84017,8 @@ "full_title": "", "hide_links": "", "id": "R-34055", + "id_complete": "R-34055", + "id_parent": "R-34055", "impacts": "", "introduced": "", "is_need": true, @@ -83451,6 +84052,8 @@ "full_title": "", "hide_links": "", "id": "R-343842", + "id_complete": "R-343842", + "id_parent": "R-343842", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -83484,6 +84087,8 @@ "full_title": "", "hide_links": "", "id": "R-34484", + "id_complete": "R-34484", + "id_parent": "R-34484", "impacts": "", "introduced": "", "is_need": true, @@ -83516,6 +84121,8 @@ "full_title": "", "hide_links": "", "id": "R-34552", + "id_complete": "R-34552", + "id_parent": "R-34552", "impacts": "", "introduced": "", "is_need": true, @@ -83549,6 +84156,8 @@ "full_title": "", "hide_links": "", "id": "R-34660", + "id_complete": "R-34660", + "id_parent": "R-34660", "impacts": "", "introduced": "", "is_need": true, @@ -83583,6 +84192,8 @@ "full_title": "", "hide_links": "", "id": "R-348813", + "id_complete": "R-348813", + "id_parent": "R-348813", "impacts": "", "introduced": "dublin", "is_need": true, @@ -83616,6 +84227,8 @@ "full_title": "", "hide_links": "", "id": "R-34957", + "id_complete": "R-34957", + "id_parent": "R-34957", "impacts": "", "introduced": "", "is_need": true, @@ -83649,6 +84262,8 @@ "full_title": "", "hide_links": "", "id": "R-35291", + "id_complete": "R-35291", + "id_parent": "R-35291", "impacts": "", "introduced": "", "is_need": true, @@ -83682,6 +84297,8 @@ "full_title": "", "hide_links": "", "id": "R-35401", + "id_complete": "R-35401", + "id_parent": "R-35401", "impacts": "", "introduced": "", "is_need": true, @@ -83717,6 +84334,8 @@ "full_title": "", "hide_links": "", "id": "R-35414", + "id_complete": "R-35414", + "id_parent": "R-35414", "impacts": "", "introduced": "", "is_need": true, @@ -83751,6 +84370,8 @@ "full_title": "", "hide_links": "", "id": "R-35532", + "id_complete": "R-35532", + "id_parent": "R-35532", "impacts": "", "introduced": "", "is_need": true, @@ -83784,6 +84405,8 @@ "full_title": "", "hide_links": "", "id": "R-35666", + "id_complete": "R-35666", + "id_parent": "R-35666", "impacts": "", "introduced": "", "is_need": true, @@ -83817,6 +84440,8 @@ "full_title": "", "hide_links": "", "id": "R-35735", + "id_complete": "R-35735", + "id_parent": "R-35735", "impacts": "", "introduced": "", "is_need": true, @@ -83851,6 +84476,8 @@ "full_title": "", "hide_links": "", "id": "R-35851", + "id_complete": "R-35851", + "id_parent": "R-35851", "impacts": "", "introduced": "", "is_need": true, @@ -83880,10 +84507,12 @@ }, "R-35854": { "description": "The VNF Descriptor (VNFD) provided by VNF vendor **MUST** comply with\nTOSCA/YAML based Service template for VNF descriptor specified in\nETSI NFV-SOL001.\n\n**Note**: As the ETSI NFV-SOL001 is work in progress the below tables\nsummarizes the TOSCA definitions agreed to be part of current version\nof NFV profile and that VNFD MUST comply with in ONAP Release 2+\nRequirements.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-35854", + "id_complete": "R-35854", + "id_parent": "R-35854", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -83895,8 +84524,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -83918,6 +84546,8 @@ "full_title": "", "hide_links": "", "id": "R-35960", + "id_complete": "R-35960", + "id_parent": "R-35960", "impacts": "", "introduced": "", "is_need": true, @@ -83951,6 +84581,8 @@ "full_title": "", "hide_links": "", "id": "R-36280", + "id_complete": "R-36280", + "id_parent": "R-36280", "impacts": "", "introduced": "", "is_need": true, @@ -83984,6 +84616,8 @@ "full_title": "", "hide_links": "", "id": "R-36542", + "id_complete": "R-36542", + "id_parent": "R-36542", "impacts": "", "introduced": "", "is_need": true, @@ -84017,6 +84651,8 @@ "full_title": "", "hide_links": "", "id": "R-36582", + "id_complete": "R-36582", + "id_parent": "R-36582", "impacts": "", "introduced": "", "is_need": true, @@ -84050,6 +84686,8 @@ "full_title": "", "hide_links": "", "id": "R-36687", + "id_complete": "R-36687", + "id_parent": "R-36687", "impacts": "", "introduced": "", "is_need": true, @@ -84082,6 +84720,8 @@ "full_title": "", "hide_links": "", "id": "R-36772", + "id_complete": "R-36772", + "id_parent": "R-36772", "impacts": "", "introduced": "", "is_need": true, @@ -84117,6 +84757,8 @@ "full_title": "", "hide_links": "", "id": "R-36792", + "id_complete": "R-36792", + "id_parent": "R-36792", "impacts": "", "introduced": "", "is_need": true, @@ -84150,6 +84792,8 @@ "full_title": "", "hide_links": "", "id": "R-36843", + "id_complete": "R-36843", + "id_parent": "R-36843", "impacts": "", "introduced": "", "is_need": true, @@ -84183,6 +84827,8 @@ "full_title": "", "hide_links": "", "id": "R-36982", + "id_complete": "R-36982", + "id_parent": "R-36982", "impacts": "", "introduced": "", "is_need": true, @@ -84217,6 +84863,8 @@ "full_title": "", "hide_links": "", "id": "R-37028", + "id_complete": "R-37028", + "id_parent": "R-37028", "impacts": "", "introduced": "", "is_need": true, @@ -84250,6 +84898,8 @@ "full_title": "", "hide_links": "", "id": "R-37039", + "id_complete": "R-37039", + "id_parent": "R-37039", "impacts": "", "introduced": "", "is_need": true, @@ -84283,6 +84933,8 @@ "full_title": "", "hide_links": "", "id": "R-37437", + "id_complete": "R-37437", + "id_parent": "R-37437", "impacts": "", "introduced": "", "is_need": true, @@ -84316,6 +84968,8 @@ "full_title": "", "hide_links": "", "id": "R-37692", + "id_complete": "R-37692", + "id_parent": "R-37692", "impacts": "", "introduced": "", "is_need": true, @@ -84348,6 +85002,8 @@ "full_title": "", "hide_links": "", "id": "R-378131", + "id_complete": "R-378131", + "id_parent": "R-378131", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -84381,6 +85037,8 @@ "full_title": "", "hide_links": "", "id": "R-37929", + "id_complete": "R-37929", + "id_parent": "R-37929", "impacts": "", "introduced": "", "is_need": true, @@ -84416,6 +85074,8 @@ "full_title": "", "hide_links": "", "id": "R-38001", + "id_complete": "R-38001", + "id_parent": "R-38001", "impacts": "", "introduced": "", "is_need": true, @@ -84449,6 +85109,8 @@ "full_title": "", "hide_links": "", "id": "R-38236", + "id_complete": "R-38236", + "id_parent": "R-38236", "impacts": "", "introduced": "", "is_need": true, @@ -84482,6 +85144,8 @@ "full_title": "", "hide_links": "", "id": "R-384337", + "id_complete": "R-384337", + "id_parent": "R-384337", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -84515,6 +85179,8 @@ "full_title": "", "hide_links": "", "id": "R-38474", + "id_complete": "R-38474", + "id_parent": "R-38474", "impacts": "", "introduced": "", "is_need": true, @@ -84548,6 +85214,8 @@ "full_title": "", "hide_links": "", "id": "R-39067", + "id_complete": "R-39067", + "id_parent": "R-39067", "impacts": "", "introduced": "", "is_need": true, @@ -84581,6 +85249,8 @@ "full_title": "", "hide_links": "", "id": "R-39349", + "id_complete": "R-39349", + "id_parent": "R-39349", "impacts": "", "introduced": "", "is_need": true, @@ -84614,6 +85284,8 @@ "full_title": "", "hide_links": "", "id": "R-39402", + "id_complete": "R-39402", + "id_parent": "R-39402", "impacts": "", "introduced": "", "is_need": true, @@ -84648,6 +85320,8 @@ "full_title": "", "hide_links": "", "id": "R-39562", + "id_complete": "R-39562", + "id_parent": "R-39562", "impacts": "", "introduced": "", "is_need": true, @@ -84681,6 +85355,8 @@ "full_title": "", "hide_links": "", "id": "R-39604", + "id_complete": "R-39604", + "id_parent": "R-39604", "impacts": "", "introduced": "", "is_need": true, @@ -84714,6 +85390,8 @@ "full_title": "", "hide_links": "", "id": "R-39650", + "id_complete": "R-39650", + "id_parent": "R-39650", "impacts": "", "introduced": "", "is_need": true, @@ -84746,6 +85424,8 @@ "full_title": "", "hide_links": "", "id": "R-39841", + "id_complete": "R-39841", + "id_parent": "R-39841", "impacts": "", "introduced": "", "is_need": true, @@ -84779,6 +85459,8 @@ "full_title": "", "hide_links": "", "id": "R-40293", + "id_complete": "R-40293", + "id_parent": "R-40293", "impacts": "", "introduced": "", "is_need": true, @@ -84814,6 +85496,8 @@ "full_title": "", "hide_links": "", "id": "R-40499", + "id_complete": "R-40499", + "id_parent": "R-40499", "impacts": "", "introduced": "", "is_need": true, @@ -84847,6 +85531,8 @@ "full_title": "", "hide_links": "", "id": "R-40518", + "id_complete": "R-40518", + "id_parent": "R-40518", "impacts": "", "introduced": "", "is_need": true, @@ -84882,6 +85568,8 @@ "full_title": "", "hide_links": "", "id": "R-40551", + "id_complete": "R-40551", + "id_parent": "R-40551", "impacts": "", "introduced": "", "is_need": true, @@ -84916,6 +85604,8 @@ "full_title": "", "hide_links": "", "id": "R-40813", + "id_complete": "R-40813", + "id_parent": "R-40813", "impacts": "", "introduced": "", "is_need": true, @@ -84945,10 +85635,12 @@ }, "R-40820": { "description": "The VNF or PNF TOSCA PACKAGE **MUST** enumerate all of the open source\nlicenses their VNF(s) incorporate. CSAR License directory as per ETSI\nSOL004.\n\nfor example ROOT\\\\Licenses\\\\ **License_term.txt**", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-40820", + "id_complete": "R-40820", + "id_parent": "R-40820", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -84960,8 +85652,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -84983,6 +85674,8 @@ "full_title": "", "hide_links": "", "id": "R-40827", + "id_complete": "R-40827", + "id_parent": "R-40827", "impacts": "", "introduced": "", "is_need": true, @@ -85016,6 +85709,8 @@ "full_title": "", "hide_links": "", "id": "R-408813", + "id_complete": "R-408813", + "id_parent": "R-408813", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -85050,6 +85745,8 @@ "full_title": "", "hide_links": "", "id": "R-40971", + "id_complete": "R-40971", + "id_parent": "R-40971", "impacts": "", "introduced": "", "is_need": true, @@ -85083,6 +85780,8 @@ "full_title": "", "hide_links": "", "id": "R-41159", + "id_complete": "R-41159", + "id_parent": "R-41159", "impacts": "", "introduced": "", "is_need": true, @@ -85116,6 +85815,8 @@ "full_title": "", "hide_links": "", "id": "R-41215", + "id_complete": "R-41215", + "id_parent": "R-41215", "impacts": "", "introduced": "", "is_need": true, @@ -85149,6 +85850,8 @@ "full_title": "", "hide_links": "", "id": "R-41252", + "id_complete": "R-41252", + "id_parent": "R-41252", "impacts": "", "introduced": "", "is_need": true, @@ -85182,6 +85885,8 @@ "full_title": "", "hide_links": "", "id": "R-41430", + "id_complete": "R-41430", + "id_parent": "R-41430", "impacts": "", "introduced": "", "is_need": true, @@ -85216,6 +85921,8 @@ "full_title": "", "hide_links": "", "id": "R-41492", + "id_complete": "R-41492", + "id_parent": "R-41492", "impacts": "", "introduced": "", "is_need": true, @@ -85250,6 +85957,8 @@ "full_title": "", "hide_links": "", "id": "R-41493", + "id_complete": "R-41493", + "id_parent": "R-41493", "impacts": "", "introduced": "dublin", "is_need": true, @@ -85284,6 +85993,8 @@ "full_title": "", "hide_links": "", "id": "R-41825", + "id_complete": "R-41825", + "id_parent": "R-41825", "impacts": "", "introduced": "", "is_need": true, @@ -85317,6 +86028,8 @@ "full_title": "", "hide_links": "", "id": "R-41829", + "id_complete": "R-41829", + "id_parent": "R-41829", "impacts": "", "introduced": "", "is_need": true, @@ -85352,6 +86065,8 @@ "full_title": "", "hide_links": "", "id": "R-41888", + "id_complete": "R-41888", + "id_parent": "R-41888", "impacts": "", "introduced": "", "is_need": true, @@ -85385,6 +86100,8 @@ "full_title": "", "hide_links": "", "id": "R-41994", + "id_complete": "R-41994", + "id_parent": "R-41994", "impacts": "", "introduced": "", "is_need": true, @@ -85418,6 +86135,8 @@ "full_title": "", "hide_links": "", "id": "R-42018", + "id_complete": "R-42018", + "id_parent": "R-42018", "impacts": "", "introduced": "", "is_need": true, @@ -85451,6 +86170,8 @@ "full_title": "", "hide_links": "", "id": "R-42140", + "id_complete": "R-42140", + "id_parent": "R-42140", "impacts": "", "introduced": "", "is_need": true, @@ -85485,6 +86206,8 @@ "full_title": "", "hide_links": "", "id": "R-42207", + "id_complete": "R-42207", + "id_parent": "R-42207", "impacts": "", "introduced": "", "is_need": true, @@ -85518,6 +86241,8 @@ "full_title": "", "hide_links": "", "id": "R-42366", + "id_complete": "R-42366", + "id_parent": "R-42366", "impacts": "", "introduced": "", "is_need": true, @@ -85552,6 +86277,8 @@ "full_title": "", "hide_links": "", "id": "R-42685", + "id_complete": "R-42685", + "id_parent": "R-42685", "impacts": "", "introduced": "", "is_need": true, @@ -85585,6 +86312,8 @@ "full_title": "", "hide_links": "", "id": "R-42874", + "id_complete": "R-42874", + "id_parent": "R-42874", "impacts": "", "introduced": "", "is_need": true, @@ -85618,6 +86347,8 @@ "full_title": "", "hide_links": "", "id": "R-43253", + "id_complete": "R-43253", + "id_parent": "R-43253", "impacts": "", "introduced": "", "is_need": true, @@ -85653,6 +86384,8 @@ "full_title": "", "hide_links": "", "id": "R-43327", + "id_complete": "R-43327", + "id_parent": "R-43327", "impacts": "", "introduced": "", "is_need": true, @@ -85687,6 +86420,8 @@ "full_title": "", "hide_links": "", "id": "R-43332", + "id_complete": "R-43332", + "id_parent": "R-43332", "impacts": "", "introduced": "", "is_need": true, @@ -85720,6 +86455,8 @@ "full_title": "", "hide_links": "", "id": "R-43353", + "id_complete": "R-43353", + "id_parent": "R-43353", "impacts": "", "introduced": "", "is_need": true, @@ -85749,12 +86486,50 @@ "validated_by": "", "validation_mode": "" }, + "R-43387": { + "description": "If the VNF or PNF is using Certificate Authentication, the\nVNF or PNF **MUST** support mutual TLS authentication and the Subject\nName in the end-entity certificate MUST be used according to\n`RFC5280 <https://tools.ietf.org/html/rfc5280>`_.\n\nNote: In mutual TLS authentication, the client (VNF or PNF) must\nauthenticate the server (DCAE) certificate and must provide its own\nX.509v3 end-entity certificate to the server for authentication.", + "docname": "Chapter7/Monitoring-And-Management", + "full_title": "", + "hide_links": "", + "id": "R-43387", + "id_complete": "R-43387", + "id_parent": "R-43387", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MUST", + "links": [], + "notes": "", + "parts": {}, + "section_name": "Security", + "sections": [ + "Security", + "Monitoring & Management Requirements", + "Monitoring & Management" + ], + "status": null, + "tags": [], + "target": "VNF or PNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "" + }, "R-43413": { "description": "A VNF **MUST** utilize a modular Heat Orchestration Template design to\nsupport scaling (growth/de-growth).", "docname": "Chapter5/Heat/ONAP Heat Orchestration Templates Overview", "full_title": "", "hide_links": "", "id": "R-43413", + "id_complete": "R-43413", + "id_parent": "R-43413", "impacts": "", "introduced": "", "is_need": true, @@ -85788,6 +86563,8 @@ "full_title": "", "hide_links": "", "id": "R-43740", + "id_complete": "R-43740", + "id_parent": "R-43740", "impacts": "", "introduced": "", "is_need": true, @@ -85823,6 +86600,8 @@ "full_title": "", "hide_links": "", "id": "R-43884", + "id_complete": "R-43884", + "id_parent": "R-43884", "impacts": "", "introduced": "", "is_need": true, @@ -85856,6 +86635,8 @@ "full_title": "", "hide_links": "", "id": "R-43958", + "id_complete": "R-43958", + "id_parent": "R-43958", "impacts": "", "introduced": "", "is_need": true, @@ -85889,6 +86670,8 @@ "full_title": "", "hide_links": "", "id": "R-44001", + "id_complete": "R-44001", + "id_parent": "R-44001", "impacts": "", "introduced": "", "is_need": true, @@ -85924,6 +86707,8 @@ "full_title": "", "hide_links": "", "id": "R-44013", + "id_complete": "R-44013", + "id_parent": "R-44013", "impacts": "", "introduced": "", "is_need": true, @@ -85959,6 +86744,8 @@ "full_title": "", "hide_links": "", "id": "R-440220", + "id_complete": "R-440220", + "id_parent": "R-440220", "impacts": "dcae, dmaap", "introduced": "casablanca", "is_need": true, @@ -85993,6 +86780,8 @@ "full_title": "", "hide_links": "", "id": "R-44125", + "id_complete": "R-44125", + "id_parent": "R-44125", "impacts": "", "introduced": "", "is_need": true, @@ -86026,6 +86815,8 @@ "full_title": "", "hide_links": "", "id": "R-44271", + "id_complete": "R-44271", + "id_parent": "R-44271", "impacts": "", "introduced": "", "is_need": true, @@ -86060,6 +86851,8 @@ "full_title": "", "hide_links": "", "id": "R-44281", + "id_complete": "R-44281", + "id_parent": "R-44281", "impacts": "", "introduced": "", "is_need": true, @@ -86095,6 +86888,8 @@ "full_title": "", "hide_links": "", "id": "R-44290", + "id_complete": "R-44290", + "id_parent": "R-44290", "impacts": "", "introduced": "", "is_need": true, @@ -86129,6 +86924,8 @@ "full_title": "", "hide_links": "", "id": "R-44318", + "id_complete": "R-44318", + "id_parent": "R-44318", "impacts": "", "introduced": "", "is_need": true, @@ -86162,6 +86959,8 @@ "full_title": "", "hide_links": "", "id": "R-44569", + "id_complete": "R-44569", + "id_parent": "R-44569", "impacts": "", "introduced": "", "is_need": true, @@ -86195,6 +86994,8 @@ "full_title": "", "hide_links": "", "id": "R-44723", + "id_complete": "R-44723", + "id_parent": "R-44723", "impacts": "", "introduced": "", "is_need": true, @@ -86228,6 +87029,8 @@ "full_title": "", "hide_links": "", "id": "R-44896", + "id_complete": "R-44896", + "id_parent": "R-44896", "impacts": "", "introduced": "", "is_need": true, @@ -86261,6 +87064,8 @@ "full_title": "", "hide_links": "", "id": "R-45188", + "id_complete": "R-45188", + "id_parent": "R-45188", "impacts": "", "introduced": "", "is_need": true, @@ -86294,6 +87099,8 @@ "full_title": "", "hide_links": "", "id": "R-45197", + "id_complete": "R-45197", + "id_parent": "R-45197", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -86329,6 +87136,8 @@ "full_title": "", "hide_links": "", "id": "R-45602", + "id_complete": "R-45602", + "id_parent": "R-45602", "impacts": "", "introduced": "", "is_need": true, @@ -86363,6 +87172,8 @@ "full_title": "", "hide_links": "", "id": "R-45719", + "id_complete": "R-45719", + "id_parent": "R-45719", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -86396,6 +87207,8 @@ "full_title": "", "hide_links": "", "id": "R-45856", + "id_complete": "R-45856", + "id_parent": "R-45856", "impacts": "", "introduced": "", "is_need": true, @@ -86430,6 +87243,8 @@ "full_title": "", "hide_links": "", "id": "R-46096", + "id_complete": "R-46096", + "id_parent": "R-46096", "impacts": "", "introduced": "", "is_need": true, @@ -86463,6 +87278,8 @@ "full_title": "", "hide_links": "", "id": "R-46119", + "id_complete": "R-46119", + "id_parent": "R-46119", "impacts": "", "introduced": "", "is_need": true, @@ -86496,6 +87313,8 @@ "full_title": "", "hide_links": "", "id": "R-46128", + "id_complete": "R-46128", + "id_parent": "R-46128", "impacts": "", "introduced": "", "is_need": true, @@ -86530,6 +87349,8 @@ "full_title": "", "hide_links": "", "id": "R-46290", + "id_complete": "R-46290", + "id_parent": "R-46290", "impacts": "", "introduced": "", "is_need": true, @@ -86564,6 +87385,8 @@ "full_title": "", "hide_links": "", "id": "R-46461", + "id_complete": "R-46461", + "id_parent": "R-46461", "impacts": "", "introduced": "", "is_need": true, @@ -86597,6 +87420,8 @@ "full_title": "", "hide_links": "", "id": "R-465236", + "id_complete": "R-465236", + "id_parent": "R-465236", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -86626,10 +87451,12 @@ }, "R-46527": { "description": "A VNFD is a deployment template which describes a VNF in terms of\ndeployment and operational behavior requirements. It contains\nvirtualized resources (nodes) requirements as well as connectivity\nand interfaces requirements and **MUST** comply with info elements\nspecified in ETSI GS NFV-IFA 011. The main parts of the VNFD are\nthe following:\n\n - VNF topology: it is modeled in a cloud agnostic way using virtualized\n containers and their connectivity. Virtual Deployment Units (VDU)\n describe the capabilities of the virtualized containers, such as\n virtual CPU, RAM, disks; their connectivity is modeled with VDU\n Connection Point Descriptors (VduCpd), Virtual Link Descriptors\n (VnfVld) and VNF External Connection Point Descriptors\n (VnfExternalCpd);\n\n - VNF deployment aspects: they are described in one or more\n deployment flavours, including configurable parameters, instantiation\n levels, placement constraints (affinity / antiaffinity), minimum and\n maximum VDU instance numbers. Horizontal scaling is modeled with\n scaling aspects and the respective scaling levels in the deployment\n flavours;\n\n**Note**: The deployment aspects (deployment flavour etc.) are postponed\nfor future ONAP releases.\n\n - VNF lifecycle management (LCM) operations: describes the LCM operations\n supported per deployment flavour, and their input parameters;\n Note, thatthe actual LCM implementation resides in a different layer,\n namely referring to additional template artifacts.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-46527", + "id_complete": "R-46527", + "id_parent": "R-46527", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -86641,8 +87468,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -86664,6 +87490,8 @@ "full_title": "", "hide_links": "", "id": "R-46567", + "id_complete": "R-46567", + "id_parent": "R-46567", "impacts": "", "introduced": "", "is_need": true, @@ -86698,6 +87526,8 @@ "full_title": "", "hide_links": "", "id": "R-46839", + "id_complete": "R-46839", + "id_parent": "R-46839", "impacts": "", "introduced": "", "is_need": true, @@ -86730,6 +87560,8 @@ "full_title": "", "hide_links": "", "id": "R-46851", + "id_complete": "R-46851", + "id_parent": "R-46851", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -86763,6 +87595,8 @@ "full_title": "", "hide_links": "", "id": "R-46908", + "id_complete": "R-46908", + "id_parent": "R-46908", "impacts": "", "introduced": "", "is_need": true, @@ -86796,6 +87630,8 @@ "full_title": "", "hide_links": "", "id": "R-46960", + "id_complete": "R-46960", + "id_parent": "R-46960", "impacts": "", "introduced": "", "is_need": true, @@ -86828,6 +87664,8 @@ "full_title": "", "hide_links": "", "id": "R-46968", + "id_complete": "R-46968", + "id_parent": "R-46968", "impacts": "", "introduced": "", "is_need": true, @@ -86863,6 +87701,8 @@ "full_title": "", "hide_links": "", "id": "R-46986", + "id_complete": "R-46986", + "id_parent": "R-46986", "impacts": "", "introduced": "", "is_need": true, @@ -86896,6 +87736,8 @@ "full_title": "", "hide_links": "", "id": "R-47061", + "id_complete": "R-47061", + "id_parent": "R-47061", "impacts": "", "introduced": "", "is_need": true, @@ -86929,6 +87771,8 @@ "full_title": "", "hide_links": "", "id": "R-47068", + "id_complete": "R-47068", + "id_parent": "R-47068", "impacts": "", "introduced": "", "is_need": true, @@ -86964,6 +87808,8 @@ "full_title": "", "hide_links": "", "id": "R-470963", + "id_complete": "R-470963", + "id_parent": "R-470963", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -86998,6 +87844,8 @@ "full_title": "", "hide_links": "", "id": "R-47204", + "id_complete": "R-47204", + "id_parent": "R-47204", "impacts": "", "introduced": "", "is_need": true, @@ -87031,6 +87879,8 @@ "full_title": "", "hide_links": "", "id": "R-47597", + "id_complete": "R-47597", + "id_parent": "R-47597", "impacts": "", "introduced": "", "is_need": true, @@ -87065,6 +87915,8 @@ "full_title": "", "hide_links": "", "id": "R-47849", + "id_complete": "R-47849", + "id_parent": "R-47849", "impacts": "", "introduced": "", "is_need": true, @@ -87098,6 +87950,8 @@ "full_title": "", "hide_links": "", "id": "R-47874", + "id_complete": "R-47874", + "id_parent": "R-47874", "impacts": "", "introduced": "", "is_need": true, @@ -87132,6 +87986,8 @@ "full_title": "", "hide_links": "", "id": "R-479386", + "id_complete": "R-479386", + "id_parent": "R-479386", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -87165,6 +88021,8 @@ "full_title": "", "hide_links": "", "id": "R-48067", + "id_complete": "R-48067", + "id_parent": "R-48067", "impacts": "", "introduced": "", "is_need": true, @@ -87197,6 +88055,8 @@ "full_title": "", "hide_links": "", "id": "R-48080", + "id_complete": "R-48080", + "id_parent": "R-48080", "impacts": "", "introduced": "", "is_need": true, @@ -87230,6 +88090,8 @@ "full_title": "", "hide_links": "", "id": "R-481670", + "id_complete": "R-481670", + "id_parent": "R-481670", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -87263,6 +88125,8 @@ "full_title": "", "hide_links": "", "id": "R-48247", + "id_complete": "R-48247", + "id_parent": "R-48247", "impacts": "", "introduced": "", "is_need": true, @@ -87297,6 +88161,8 @@ "full_title": "", "hide_links": "", "id": "R-48356", + "id_complete": "R-48356", + "id_parent": "R-48356", "impacts": "", "introduced": "", "is_need": true, @@ -87330,6 +88196,8 @@ "full_title": "", "hide_links": "", "id": "R-48470", + "id_complete": "R-48470", + "id_parent": "R-48470", "impacts": "", "introduced": "", "is_need": true, @@ -87359,10 +88227,12 @@ }, "R-484843": { "description": "The PNFD provided by a PNF vendor\u00a0**MUST**\u00a0comply with the following Data\nTypes as specified in ETSI NFV-SOL001 standard:\n\n - tosca.datatypes.nfv.CpProtocolData\n\n - tosca.datatypes.nfv.AddressData\n\n - tosca.datatypes.nfv.L2AddressData\n\n - tosca.datatypes.nfv.L3AddressData\n\n - tosca.datatypes.nfv.LocationInfo\n\n - tosca.datatypes.nfv.CivicAddressElement", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-484843", + "id_complete": "R-484843", + "id_parent": "R-484843", "impacts": "", "introduced": "dublin", "is_need": true, @@ -87374,8 +88244,7 @@ "section_name": "Data Types", "sections": [ "Data Types", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -87397,6 +88266,8 @@ "full_title": "", "hide_links": "", "id": "R-48596", + "id_complete": "R-48596", + "id_parent": "R-48596", "impacts": "", "introduced": "", "is_need": true, @@ -87430,6 +88301,8 @@ "full_title": "", "hide_links": "", "id": "R-48698", + "id_complete": "R-48698", + "id_parent": "R-48698", "impacts": "", "introduced": "", "is_need": true, @@ -87465,6 +88338,8 @@ "full_title": "", "hide_links": "", "id": "R-48761", + "id_complete": "R-48761", + "id_parent": "R-48761", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -87498,6 +88373,8 @@ "full_title": "", "hide_links": "", "id": "R-48880", + "id_complete": "R-48880", + "id_parent": "R-48880", "impacts": "", "introduced": "", "is_need": true, @@ -87532,6 +88409,8 @@ "full_title": "", "hide_links": "", "id": "R-48917", + "id_complete": "R-48917", + "id_parent": "R-48917", "impacts": "", "introduced": "", "is_need": true, @@ -87565,6 +88444,8 @@ "full_title": "", "hide_links": "", "id": "R-48987", + "id_complete": "R-48987", + "id_parent": "R-48987", "impacts": "", "introduced": "", "is_need": true, @@ -87599,6 +88480,8 @@ "full_title": "", "hide_links": "", "id": "R-49036", + "id_complete": "R-49036", + "id_parent": "R-49036", "impacts": "", "introduced": "", "is_need": true, @@ -87629,11 +88512,13 @@ "validation_mode": "" }, "R-49109": { - "description": "The VNF **MUST** support HTTP/S using TLS v1.2 or higher\nwith strong cryptographic ciphers.", + "description": "The VNF or PNF **MUST** support HTTPS using TLS v1.2 or higher\nwith strong cryptographic ciphers.", "docname": "Chapter4/Security", "full_title": "", "hide_links": "", "id": "R-49109", + "id_complete": "R-49109", + "id_parent": "R-49109", "impacts": "", "introduced": "", "is_need": true, @@ -87649,7 +88534,7 @@ ], "status": null, "tags": [], - "target": "VNF", + "target": "VNF or PNF", "test": "", "test_case": "", "test_file": "", @@ -87657,7 +88542,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "casablanca", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -87667,6 +88552,8 @@ "full_title": "", "hide_links": "", "id": "R-49145", + "id_complete": "R-49145", + "id_parent": "R-49145", "impacts": "", "introduced": "", "is_need": true, @@ -87702,6 +88589,8 @@ "full_title": "", "hide_links": "", "id": "R-49224", + "id_complete": "R-49224", + "id_parent": "R-49224", "impacts": "", "introduced": "", "is_need": true, @@ -87735,6 +88624,8 @@ "full_title": "", "hide_links": "", "id": "R-49308", + "id_complete": "R-49308", + "id_parent": "R-49308", "impacts": "", "introduced": "", "is_need": true, @@ -87768,6 +88659,8 @@ "full_title": "", "hide_links": "", "id": "R-49396", + "id_complete": "R-49396", + "id_parent": "R-49396", "impacts": "", "introduced": "", "is_need": true, @@ -87803,6 +88696,8 @@ "full_title": "", "hide_links": "", "id": "R-49466", + "id_complete": "R-49466", + "id_parent": "R-49466", "impacts": "", "introduced": "", "is_need": true, @@ -87837,6 +88732,8 @@ "full_title": "", "hide_links": "", "id": "R-49751", + "id_complete": "R-49751", + "id_parent": "R-49751", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -87872,6 +88769,8 @@ "full_title": "", "hide_links": "", "id": "R-49911", + "id_complete": "R-49911", + "id_parent": "R-49911", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -87907,6 +88806,8 @@ "full_title": "", "hide_links": "", "id": "R-50011", + "id_complete": "R-50011", + "id_parent": "R-50011", "impacts": "", "introduced": "", "is_need": true, @@ -87942,6 +88843,8 @@ "full_title": "", "hide_links": "", "id": "R-50252", + "id_complete": "R-50252", + "id_parent": "R-50252", "impacts": "", "introduced": "", "is_need": true, @@ -87977,6 +88880,8 @@ "full_title": "", "hide_links": "", "id": "R-50436", + "id_complete": "R-50436", + "id_parent": "R-50436", "impacts": "", "introduced": "", "is_need": true, @@ -88010,6 +88915,8 @@ "full_title": "", "hide_links": "", "id": "R-50468", + "id_complete": "R-50468", + "id_parent": "R-50468", "impacts": "", "introduced": "", "is_need": true, @@ -88040,10 +88947,12 @@ }, "R-506221": { "description": "The VNF or PNF TOSCA CSAR file **MUST** be a zip file with .csar extension.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-506221", + "id_complete": "R-506221", + "id_parent": "R-506221", "impacts": "", "introduced": "dublin", "is_need": true, @@ -88055,8 +88964,7 @@ "section_name": "VNF Package Structure and Format", "sections": [ "VNF Package Structure and Format", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -88078,6 +88986,8 @@ "full_title": "", "hide_links": "", "id": "R-50816", + "id_complete": "R-50816", + "id_parent": "R-50816", "impacts": "", "introduced": "", "is_need": true, @@ -88111,6 +89021,8 @@ "full_title": "", "hide_links": "", "id": "R-511776", + "id_complete": "R-511776", + "id_parent": "R-511776", "impacts": "", "introduced": "dublin", "is_need": true, @@ -88140,10 +89052,12 @@ }, "R-51347": { "description": "The VNF or PNF CSAR package **MUST** be arranged as a CSAR archive as\nspecified in TOSCA Simple Profile in YAML 1.2.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-51347", + "id_complete": "R-51347", + "id_parent": "R-51347", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -88155,8 +89069,7 @@ "section_name": "VNF Package Structure and Format", "sections": [ "VNF Package Structure and Format", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -88178,6 +89091,8 @@ "full_title": "", "hide_links": "", "id": "R-51430", + "id_complete": "R-51430", + "id_parent": "R-51430", "impacts": "", "introduced": "", "is_need": true, @@ -88211,6 +89126,8 @@ "full_title": "", "hide_links": "", "id": "R-51442", + "id_complete": "R-51442", + "id_parent": "R-51442", "impacts": "", "introduced": "", "is_need": true, @@ -88246,6 +89163,8 @@ "full_title": "", "hide_links": "", "id": "R-52060", + "id_complete": "R-52060", + "id_parent": "R-52060", "impacts": "", "introduced": "", "is_need": true, @@ -88279,6 +89198,8 @@ "full_title": "", "hide_links": "", "id": "R-520802", + "id_complete": "R-520802", + "id_parent": "R-520802", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -88312,6 +89233,8 @@ "full_title": "", "hide_links": "", "id": "R-52425", + "id_complete": "R-52425", + "id_parent": "R-52425", "impacts": "", "introduced": "", "is_need": true, @@ -88345,6 +89268,8 @@ "full_title": "", "hide_links": "", "id": "R-52499", + "id_complete": "R-52499", + "id_parent": "R-52499", "impacts": "", "introduced": "", "is_need": true, @@ -88378,6 +89303,8 @@ "full_title": "", "hide_links": "", "id": "R-52753", + "id_complete": "R-52753", + "id_parent": "R-52753", "impacts": "", "introduced": "", "is_need": true, @@ -88412,6 +89339,8 @@ "full_title": "", "hide_links": "", "id": "R-52870", + "id_complete": "R-52870", + "id_parent": "R-52870", "impacts": "", "introduced": "", "is_need": true, @@ -88445,6 +89374,8 @@ "full_title": "", "hide_links": "", "id": "R-528866", + "id_complete": "R-528866", + "id_parent": "R-528866", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -88479,6 +89410,8 @@ "full_title": "", "hide_links": "", "id": "R-53015", + "id_complete": "R-53015", + "id_parent": "R-53015", "impacts": "", "introduced": "", "is_need": true, @@ -88514,6 +89447,8 @@ "full_title": "", "hide_links": "", "id": "R-53310", + "id_complete": "R-53310", + "id_parent": "R-53310", "impacts": "", "introduced": "", "is_need": true, @@ -88548,6 +89483,8 @@ "full_title": "", "hide_links": "", "id": "R-53317", + "id_complete": "R-53317", + "id_parent": "R-53317", "impacts": "", "introduced": "", "is_need": true, @@ -88583,6 +89520,8 @@ "full_title": "", "hide_links": "", "id": "R-53433", + "id_complete": "R-53433", + "id_parent": "R-53433", "impacts": "", "introduced": "", "is_need": true, @@ -88612,10 +89551,12 @@ }, "R-535009": { "description": "The PNFD provided by a PNF vendor\u00a0**MUST**\u00a0comply with the following Node\nTypes as specified in ETSI NFV-SOL001 standard:\n\n - tosca.nodes.nfv.PNF\n\n - tosca.nodes.nfv.PnfExtCp\n\n - tosca.nodes.nfv.Cp", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-535009", + "id_complete": "R-535009", + "id_parent": "R-535009", "impacts": "", "introduced": "dublin", "is_need": true, @@ -88627,8 +89568,7 @@ "section_name": "Node Types", "sections": [ "Node Types", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -88650,6 +89590,8 @@ "full_title": "", "hide_links": "", "id": "R-53598", + "id_complete": "R-53598", + "id_parent": "R-53598", "impacts": "", "introduced": "", "is_need": true, @@ -88683,6 +89625,8 @@ "full_title": "", "hide_links": "", "id": "R-53952", + "id_complete": "R-53952", + "id_parent": "R-53952", "impacts": "", "introduced": "", "is_need": true, @@ -88718,6 +89662,8 @@ "full_title": "", "hide_links": "", "id": "R-54171", + "id_complete": "R-54171", + "id_parent": "R-54171", "impacts": "", "introduced": "", "is_need": true, @@ -88751,6 +89697,8 @@ "full_title": "", "hide_links": "", "id": "R-54190", + "id_complete": "R-54190", + "id_parent": "R-54190", "impacts": "", "introduced": "", "is_need": true, @@ -88786,6 +89734,8 @@ "full_title": "", "hide_links": "", "id": "R-54340", + "id_complete": "R-54340", + "id_parent": "R-54340", "impacts": "", "introduced": "", "is_need": true, @@ -88815,10 +89765,12 @@ }, "R-54356": { "description": "The below table includes the data types used by NFV node and is based\non TOSCA/YAML constructs specified in draft GS NFV-SOL 001. The node\ndata definitions/attributes used in VNFD **MUST** comply with the below\ntable.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-54356", + "id_complete": "R-54356", + "id_parent": "R-54356", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -88830,8 +89782,7 @@ "section_name": "Data Types", "sections": [ "Data Types", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -88853,6 +89804,8 @@ "full_title": "", "hide_links": "", "id": "R-54373", + "id_complete": "R-54373", + "id_parent": "R-54373", "impacts": "", "introduced": "", "is_need": true, @@ -88888,6 +89841,8 @@ "full_title": "", "hide_links": "", "id": "R-54430", + "id_complete": "R-54430", + "id_parent": "R-54430", "impacts": "", "introduced": "", "is_need": true, @@ -88920,6 +89875,8 @@ "full_title": "", "hide_links": "", "id": "R-54517", + "id_complete": "R-54517", + "id_parent": "R-54517", "impacts": "", "introduced": "", "is_need": true, @@ -88952,6 +89909,8 @@ "full_title": "", "hide_links": "", "id": "R-54520", + "id_complete": "R-54520", + "id_parent": "R-54520", "impacts": "", "introduced": "", "is_need": true, @@ -88985,6 +89944,8 @@ "full_title": "", "hide_links": "", "id": "R-54816", + "id_complete": "R-54816", + "id_parent": "R-54816", "impacts": "", "introduced": "", "is_need": true, @@ -89014,10 +89975,12 @@ }, "R-54876": { "description": "The below table describes the data types used for LCM configuration\nand is based on TOSCA constructs specified in draft GS NFV-SOL 001.\nThe LCM configuration data elements used in VNFD **MUST** comply\nwith the below table.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-54876", + "id_complete": "R-54876", + "id_parent": "R-54876", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -89029,8 +89992,7 @@ "section_name": "Data Types", "sections": [ "Data Types", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -89052,6 +90014,8 @@ "full_title": "", "hide_links": "", "id": "R-54930", + "id_complete": "R-54930", + "id_parent": "R-54930", "impacts": "", "introduced": "", "is_need": true, @@ -89085,6 +90049,8 @@ "full_title": "", "hide_links": "", "id": "R-55218", + "id_complete": "R-55218", + "id_parent": "R-55218", "impacts": "", "introduced": "", "is_need": true, @@ -89118,6 +90084,8 @@ "full_title": "", "hide_links": "", "id": "R-55306", + "id_complete": "R-55306", + "id_parent": "R-55306", "impacts": "", "introduced": "", "is_need": true, @@ -89151,6 +90119,8 @@ "full_title": "", "hide_links": "", "id": "R-55345", + "id_complete": "R-55345", + "id_parent": "R-55345", "impacts": "", "introduced": "", "is_need": true, @@ -89184,6 +90154,8 @@ "full_title": "", "hide_links": "", "id": "R-55478", + "id_complete": "R-55478", + "id_parent": "R-55478", "impacts": "", "introduced": "", "is_need": true, @@ -89211,12 +90183,50 @@ "validated_by": "", "validation_mode": "" }, + "R-55634": { + "description": "If VNF or PNF is using Basic Authentication, then the VNF or PNF\n**MUST** be in compliance with\n`RFC7617 <https://tools.ietf.org/html/rfc7617>`_ for authenticating HTTPS\nconnections to the DCAE VES Event Listener.", + "docname": "Chapter7/Monitoring-And-Management", + "full_title": "", + "hide_links": "", + "id": "R-55634", + "id_complete": "R-55634", + "id_parent": "R-55634", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MUST", + "links": [], + "notes": "", + "parts": {}, + "section_name": "Security", + "sections": [ + "Security", + "Monitoring & Management Requirements", + "Monitoring & Management" + ], + "status": null, + "tags": [], + "target": "VNF or PNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "" + }, "R-55802": { "description": "The VNF Package **MUST** include VM requirements via a Heat\ntemplate that provides the necessary data for scaling/growth VM\nspecifications.\n\nNote: Must comply with the *Heat requirements in 5.b*.", "docname": "Chapter7/VNF-On-boarding-and-package-management", "full_title": "", "hide_links": "", "id": "R-55802", + "id_complete": "R-55802", + "id_parent": "R-55802", "impacts": "", "introduced": "", "is_need": true, @@ -89250,6 +90260,8 @@ "full_title": "", "hide_links": "", "id": "R-56183", + "id_complete": "R-56183", + "id_parent": "R-56183", "impacts": "", "introduced": "", "is_need": true, @@ -89283,6 +90295,8 @@ "full_title": "", "hide_links": "", "id": "R-56218", + "id_complete": "R-56218", + "id_parent": "R-56218", "impacts": "", "introduced": "", "is_need": true, @@ -89316,6 +90330,8 @@ "full_title": "", "hide_links": "", "id": "R-56287", + "id_complete": "R-56287", + "id_parent": "R-56287", "impacts": "", "introduced": "", "is_need": true, @@ -89350,6 +90366,8 @@ "full_title": "", "hide_links": "", "id": "R-56385", + "id_complete": "R-56385", + "id_parent": "R-56385", "impacts": "", "introduced": "", "is_need": true, @@ -89384,6 +90402,8 @@ "full_title": "", "hide_links": "", "id": "R-56438", + "id_complete": "R-56438", + "id_parent": "R-56438", "impacts": "", "introduced": "", "is_need": true, @@ -89417,6 +90437,8 @@ "full_title": "", "hide_links": "", "id": "R-56718", + "id_complete": "R-56718", + "id_parent": "R-56718", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -89450,6 +90472,8 @@ "full_title": "", "hide_links": "", "id": "R-56721", + "id_complete": "R-56721", + "id_parent": "R-56721", "impacts": "", "introduced": "", "is_need": true, @@ -89483,6 +90507,8 @@ "full_title": "", "hide_links": "", "id": "R-56793", + "id_complete": "R-56793", + "id_parent": "R-56793", "impacts": "", "introduced": "", "is_need": true, @@ -89516,6 +90542,8 @@ "full_title": "", "hide_links": "", "id": "R-56815", + "id_complete": "R-56815", + "id_parent": "R-56815", "impacts": "", "introduced": "", "is_need": true, @@ -89549,6 +90577,8 @@ "full_title": "", "hide_links": "", "id": "R-56904", + "id_complete": "R-56904", + "id_parent": "R-56904", "impacts": "", "introduced": "", "is_need": true, @@ -89582,6 +90612,8 @@ "full_title": "", "hide_links": "", "id": "R-56920", + "id_complete": "R-56920", + "id_parent": "R-56920", "impacts": "", "introduced": "", "is_need": true, @@ -89615,6 +90647,8 @@ "full_title": "", "hide_links": "", "id": "R-570134", + "id_complete": "R-570134", + "id_parent": "R-570134", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -89644,10 +90678,12 @@ }, "R-57019": { "description": "The PNF TOSCA CSAR PACKAGE Manifest file **MUST** start with the PNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - pnfd_provider\n\n - pnfd_name\n\n - pnfd_release_date_time\n\n - pnfd_archive_version", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-57019", + "id_complete": "R-57019", + "id_parent": "R-57019", "impacts": "", "introduced": "dublin", "is_need": true, @@ -89659,8 +90695,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -89682,6 +90717,8 @@ "full_title": "", "hide_links": "", "id": "R-57282", + "id_complete": "R-57282", + "id_parent": "R-57282", "impacts": "", "introduced": "", "is_need": true, @@ -89715,6 +90752,8 @@ "full_title": "", "hide_links": "", "id": "R-57424", + "id_complete": "R-57424", + "id_parent": "R-57424", "impacts": "", "introduced": "", "is_need": true, @@ -89748,6 +90787,8 @@ "full_title": "", "hide_links": "", "id": "R-57617", + "id_complete": "R-57617", + "id_parent": "R-57617", "impacts": "", "introduced": "", "is_need": true, @@ -89781,6 +90822,8 @@ "full_title": "", "hide_links": "", "id": "R-57855", + "id_complete": "R-57855", + "id_parent": "R-57855", "impacts": "", "introduced": "", "is_need": true, @@ -89808,45 +90851,14 @@ "validated_by": "", "validation_mode": "" }, - "R-579051": { - "description": "The PNF **MAY** support a HTTP connection to the DCAE VES Event Listener.\n\nNote: HTTP is allowed but not recommended.", - "docname": "Chapter7/PNF-Plug-and-Play", - "full_title": "", - "hide_links": "", - "id": "R-579051", - "impacts": "", - "introduced": "casablanca", - "is_need": true, - "is_part": false, - "keyword": "MAY", - "links": [], - "notes": "", - "parts": {}, - "section_name": "PNF Plug and Play", - "sections": [ - "PNF Plug and Play", - "PNF Plug and Play" - ], - "status": null, - "tags": [], - "target": "PNF", - "test": "", - "test_case": "", - "test_file": "", - "title": "", - "title_from_content": "", - "type": "req", - "type_name": "Requirement", - "updated": "", - "validated_by": "", - "validation_mode": "" - }, "R-581188": { "description": "A failed authentication attempt **MUST NOT** identify the reason for the\nfailure to the user, only that the authentication failed.", "docname": "Chapter4/Security", "full_title": "", "hide_links": "", "id": "R-581188", + "id_complete": "R-581188", + "id_parent": "R-581188", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -89880,6 +90892,8 @@ "full_title": "", "hide_links": "", "id": "R-58301", + "id_complete": "R-58301", + "id_parent": "R-58301", "impacts": "", "introduced": "", "is_need": true, @@ -89915,6 +90929,8 @@ "full_title": "", "hide_links": "", "id": "R-58358", + "id_complete": "R-58358", + "id_parent": "R-58358", "impacts": "", "introduced": "", "is_need": true, @@ -89950,6 +90966,8 @@ "full_title": "", "hide_links": "", "id": "R-58370", + "id_complete": "R-58370", + "id_parent": "R-58370", "impacts": "", "introduced": "", "is_need": true, @@ -89983,6 +91001,8 @@ "full_title": "", "hide_links": "", "id": "R-58421", + "id_complete": "R-58421", + "id_parent": "R-58421", "impacts": "", "introduced": "", "is_need": true, @@ -90015,6 +91035,8 @@ "full_title": "", "hide_links": "", "id": "R-58424", + "id_complete": "R-58424", + "id_parent": "R-58424", "impacts": "", "introduced": "", "is_need": true, @@ -90047,6 +91069,8 @@ "full_title": "", "hide_links": "", "id": "R-58670", + "id_complete": "R-58670", + "id_parent": "R-58670", "impacts": "", "introduced": "", "is_need": true, @@ -90080,6 +91104,8 @@ "full_title": "", "hide_links": "", "id": "R-58775", + "id_complete": "R-58775", + "id_parent": "R-58775", "impacts": "", "introduced": "", "is_need": true, @@ -90113,6 +91139,8 @@ "full_title": "", "hide_links": "", "id": "R-589037", + "id_complete": "R-589037", + "id_parent": "R-589037", "impacts": "", "introduced": "dublin", "is_need": true, @@ -90147,6 +91175,8 @@ "full_title": "", "hide_links": "", "id": "R-58964", + "id_complete": "R-58964", + "id_parent": "R-58964", "impacts": "", "introduced": "", "is_need": true, @@ -90180,6 +91210,8 @@ "full_title": "", "hide_links": "", "id": "R-59391", + "id_complete": "R-59391", + "id_parent": "R-59391", "impacts": "", "introduced": "", "is_need": true, @@ -90213,6 +91245,8 @@ "full_title": "", "hide_links": "", "id": "R-59434", + "id_complete": "R-59434", + "id_parent": "R-59434", "impacts": "", "introduced": "", "is_need": true, @@ -90247,6 +91281,8 @@ "full_title": "", "hide_links": "", "id": "R-59482", + "id_complete": "R-59482", + "id_parent": "R-59482", "impacts": "", "introduced": "", "is_need": true, @@ -90280,6 +91316,8 @@ "full_title": "", "hide_links": "", "id": "R-59568", + "id_complete": "R-59568", + "id_parent": "R-59568", "impacts": "", "introduced": "", "is_need": true, @@ -90309,10 +91347,12 @@ }, "R-596064": { "description": "The PNFD provided by a PNF vendor **MUST** comply with the following Policy\nTypes as specified in ETSI NFV-SOL001 standard:\n\n - tosca.datatypes.nfv.SecurityGroupRule", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-596064", + "id_complete": "R-596064", + "id_parent": "R-596064", "impacts": "", "introduced": "dublin", "is_need": true, @@ -90324,8 +91364,7 @@ "section_name": "Policy Types", "sections": [ "Policy Types", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -90347,6 +91386,8 @@ "full_title": "", "hide_links": "", "id": "R-59610", + "id_complete": "R-59610", + "id_parent": "R-59610", "impacts": "", "introduced": "", "is_need": true, @@ -90382,6 +91423,8 @@ "full_title": "", "hide_links": "", "id": "R-59930", + "id_complete": "R-59930", + "id_parent": "R-59930", "impacts": "", "introduced": "", "is_need": true, @@ -90415,6 +91458,8 @@ "full_title": "", "hide_links": "", "id": "R-599443", + "id_complete": "R-599443", + "id_parent": "R-599443", "impacts": "", "introduced": "dublin", "is_need": true, @@ -90447,6 +91492,8 @@ "full_title": "", "hide_links": "", "id": "R-60011", + "id_complete": "R-60011", + "id_parent": "R-60011", "impacts": "", "introduced": "", "is_need": true, @@ -90481,6 +91528,8 @@ "full_title": "", "hide_links": "", "id": "R-60106", + "id_complete": "R-60106", + "id_parent": "R-60106", "impacts": "", "introduced": "", "is_need": true, @@ -90516,6 +91565,8 @@ "full_title": "", "hide_links": "", "id": "R-60656", + "id_complete": "R-60656", + "id_parent": "R-60656", "impacts": "", "introduced": "", "is_need": true, @@ -90551,6 +91602,8 @@ "full_title": "", "hide_links": "", "id": "R-61001", + "id_complete": "R-61001", + "id_parent": "R-61001", "impacts": "", "introduced": "", "is_need": true, @@ -90577,12 +91630,184 @@ "validated_by": "", "validation_mode": "none" }, + "R-610010": { + "description": "A VNF's Heat Orchestration Template's Base Module **MAY** declare zero, one,\nor more than one ``OS::Nova::Server`` resource.", + "docname": "Chapter5/Heat/ONAP Heat VNF Modularity", + "full_title": "", + "hide_links": "", + "id": "R-610010", + "id_complete": "R-610010", + "id_parent": "R-610010", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MAY", + "links": [], + "notes": "", + "parts": {}, + "section_name": "ONAP Heat VNF Modularity", + "sections": [ + "ONAP Heat VNF Modularity" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "none" + }, + "R-610020": { + "description": "If a VNF's Heat Orchestration Template's Base Module contains two or more\n``OS::Nova::Server`` resources, the ``OS::Nova::Server`` resources **MAY**\ndefine the same ``{vm-type}`` (as defined in R-01455) or **MAY**\ndefine different ``{vm-type}``.\n\nNote that\n\n- there is no constraint on the number of unique ``{vm-type}`` defined in\n the base module.\n- there is no constraint on the number of ``OS::Nova::Server`` resources\n that define the same ``{vm-type}`` in the base module.", + "docname": "Chapter5/Heat/ONAP Heat VNF Modularity", + "full_title": "", + "hide_links": "", + "id": "R-610020", + "id_complete": "R-610020", + "id_parent": "R-610020", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MAY", + "links": [], + "notes": "", + "parts": {}, + "section_name": "ONAP Heat VNF Modularity", + "sections": [ + "ONAP Heat VNF Modularity" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "none" + }, + "R-610030": { + "description": "A VNF's Heat Orchestration Template's Incremental Module **MUST**\ndeclare one or more ``OS::Nova::Server`` resources.", + "docname": "Chapter5/Heat/ONAP Heat VNF Modularity", + "full_title": "", + "hide_links": "", + "id": "R-610030", + "id_complete": "R-610030", + "id_parent": "R-610030", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MUST", + "links": [], + "notes": "", + "parts": {}, + "section_name": "ONAP Heat VNF Modularity", + "sections": [ + "ONAP Heat VNF Modularity" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "static" + }, + "R-610040": { + "description": "If a VNF\u2019s Heat Orchestration Template\u2019s Incremental Module contains two or\nmore ``OS::Nova::Server`` resources, the ``OS::Nova::Server`` resources\n**MAY** define the same ``{vm-type}`` (as defined in R-01455) or **MAY**\ndefine different ``{vm-type}``.\n\nNote that\n\n- there is no constraint on the number of unique ``{vm-type}`` defined in\n the incremental module.\n- there is no constraint on the number of ``OS::Nova::Server`` resources\n that define the same ``{vm-type}`` in the incremental module.", + "docname": "Chapter5/Heat/ONAP Heat VNF Modularity", + "full_title": "", + "hide_links": "", + "id": "R-610040", + "id_complete": "R-610040", + "id_parent": "R-610040", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MAY", + "links": [], + "notes": "", + "parts": {}, + "section_name": "ONAP Heat VNF Modularity", + "sections": [ + "ONAP Heat VNF Modularity" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "none" + }, + "R-610050": { + "description": "A VNF\u2019s Heat Orchestration Template's ``OS::Nova::Server`` resource unique\n``{vm-type}`` (as defined in R-01455) **MAY** exist in the VNF's\nHeat Orchestration Template's Base Module and/or one or more of the VNF's\nHeat Orchestration Template's Incremental Modules.", + "docname": "Chapter5/Heat/ONAP Heat VNF Modularity", + "full_title": "", + "hide_links": "", + "id": "R-610050", + "id_complete": "R-610050", + "id_parent": "R-610050", + "impacts": "", + "introduced": "el alto", + "is_need": true, + "is_part": false, + "keyword": "MAY", + "links": [], + "notes": "", + "parts": {}, + "section_name": "ONAP Heat VNF Modularity", + "sections": [ + "ONAP Heat VNF Modularity" + ], + "status": null, + "tags": [], + "target": "VNF", + "test": "", + "test_case": "", + "test_file": "", + "title": "", + "title_from_content": "", + "type": "req", + "type_name": "Requirement", + "updated": "", + "validated_by": "", + "validation_mode": "none" + }, "R-61354": { "description": "The VNF **MUST** provide a mechanism (e.g., access control list) to\npermit and/or restrict access to services on the VNF by source,\ndestination, protocol, and/or port.", "docname": "Chapter4/Security", "full_title": "", "hide_links": "", "id": "R-61354", + "id_complete": "R-61354", + "id_parent": "R-61354", "impacts": "", "introduced": "", "is_need": true, @@ -90616,6 +91841,8 @@ "full_title": "", "hide_links": "", "id": "R-62170", + "id_complete": "R-62170", + "id_parent": "R-62170", "impacts": "", "introduced": "", "is_need": true, @@ -90651,6 +91878,8 @@ "full_title": "", "hide_links": "", "id": "R-62187", + "id_complete": "R-62187", + "id_parent": "R-62187", "impacts": "", "introduced": "", "is_need": true, @@ -90685,6 +91914,8 @@ "full_title": "", "hide_links": "", "id": "R-62428", + "id_complete": "R-62428", + "id_parent": "R-62428", "impacts": "", "introduced": "", "is_need": true, @@ -90718,6 +91949,8 @@ "full_title": "", "hide_links": "", "id": "R-62468", + "id_complete": "R-62468", + "id_parent": "R-62468", "impacts": "", "introduced": "", "is_need": true, @@ -90753,6 +91986,8 @@ "full_title": "", "hide_links": "", "id": "R-62498", + "id_complete": "R-62498", + "id_parent": "R-62498", "impacts": "", "introduced": "", "is_need": true, @@ -90786,6 +92021,8 @@ "full_title": "", "hide_links": "", "id": "R-62590", + "id_complete": "R-62590", + "id_parent": "R-62590", "impacts": "", "introduced": "", "is_need": true, @@ -90819,6 +92056,8 @@ "full_title": "", "hide_links": "", "id": "R-62802", + "id_complete": "R-62802", + "id_parent": "R-62802", "impacts": "", "introduced": "", "is_need": true, @@ -90852,6 +92091,8 @@ "full_title": "", "hide_links": "", "id": "R-629534", + "id_complete": "R-629534", + "id_parent": "R-629534", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -90885,6 +92126,8 @@ "full_title": "", "hide_links": "", "id": "R-62983", + "id_complete": "R-62983", + "id_parent": "R-62983", "impacts": "", "introduced": "", "is_need": true, @@ -90918,6 +92161,8 @@ "full_title": "", "hide_links": "", "id": "R-63137", + "id_complete": "R-63137", + "id_parent": "R-63137", "impacts": "", "introduced": "", "is_need": true, @@ -90953,6 +92198,8 @@ "full_title": "", "hide_links": "", "id": "R-63229", + "id_complete": "R-63229", + "id_parent": "R-63229", "impacts": "", "introduced": "", "is_need": true, @@ -90987,6 +92234,8 @@ "full_title": "", "hide_links": "", "id": "R-63330", + "id_complete": "R-63330", + "id_parent": "R-63330", "impacts": "", "introduced": "", "is_need": true, @@ -91020,6 +92269,8 @@ "full_title": "", "hide_links": "", "id": "R-63473", + "id_complete": "R-63473", + "id_parent": "R-63473", "impacts": "", "introduced": "", "is_need": true, @@ -91053,6 +92304,8 @@ "full_title": "", "hide_links": "", "id": "R-638216", + "id_complete": "R-638216", + "id_parent": "R-638216", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91086,6 +92339,8 @@ "full_title": "", "hide_links": "", "id": "R-638682", + "id_complete": "R-638682", + "id_parent": "R-638682", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91119,6 +92374,8 @@ "full_title": "", "hide_links": "", "id": "R-63935", + "id_complete": "R-63935", + "id_parent": "R-63935", "impacts": "", "introduced": "", "is_need": true, @@ -91154,6 +92411,8 @@ "full_title": "", "hide_links": "", "id": "R-63953", + "id_complete": "R-63953", + "id_parent": "R-63953", "impacts": "", "introduced": "", "is_need": true, @@ -91189,6 +92448,8 @@ "full_title": "", "hide_links": "", "id": "R-63956", + "id_complete": "R-63956", + "id_parent": "R-63956", "impacts": "", "introduced": "", "is_need": true, @@ -91219,10 +92480,12 @@ }, "R-64064": { "description": "The PNFD provided by a PNF vendor **MUST** comply with the following\nRelationship Types as specified in ETSI NFV-SOL001 standard:\n\n - tosca.datatypes.nfv.VirtualLinksTo", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca PNF Descriptor", "full_title": "", "hide_links": "", "id": "R-64064", + "id_complete": "R-64064", + "id_parent": "R-64064", "impacts": "", "introduced": "dublin", "is_need": true, @@ -91234,8 +92497,7 @@ "section_name": "Relationship Types", "sections": [ "Relationship Types", - "TOSCA PNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA PNF Descriptor" ], "status": null, "tags": [], @@ -91257,6 +92519,8 @@ "full_title": "", "hide_links": "", "id": "R-64445", + "id_complete": "R-64445", + "id_parent": "R-64445", "impacts": "", "introduced": "", "is_need": true, @@ -91290,6 +92554,8 @@ "full_title": "", "hide_links": "", "id": "R-64713", + "id_complete": "R-64713", + "id_parent": "R-64713", "impacts": "", "introduced": "", "is_need": true, @@ -91322,6 +92588,8 @@ "full_title": "", "hide_links": "", "id": "R-64768", + "id_complete": "R-64768", + "id_parent": "R-64768", "impacts": "", "introduced": "", "is_need": true, @@ -91354,6 +92622,8 @@ "full_title": "", "hide_links": "", "id": "R-65134", + "id_complete": "R-65134", + "id_parent": "R-65134", "impacts": "", "introduced": "", "is_need": true, @@ -91382,10 +92652,12 @@ }, "R-65486": { "description": "The VNFD **MUST** comply with ETSI GS NFV-SOL001 specification endorsing\nthe above mentioned NFV Profile and maintaining the gaps with the\nrequirements specified in ETSI GS NFV-IFA011 standard.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-65486", + "id_complete": "R-65486", + "id_parent": "R-65486", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91397,8 +92669,7 @@ "section_name": "General", "sections": [ "General", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -91420,6 +92691,8 @@ "full_title": "", "hide_links": "", "id": "R-65515", + "id_complete": "R-65515", + "id_parent": "R-65515", "impacts": "", "introduced": "", "is_need": true, @@ -91453,6 +92726,8 @@ "full_title": "", "hide_links": "", "id": "R-65516", + "id_complete": "R-65516", + "id_parent": "R-65516", "impacts": "", "introduced": "", "is_need": true, @@ -91487,6 +92762,8 @@ "full_title": "", "hide_links": "", "id": "R-65618", + "id_complete": "R-65618", + "id_parent": "R-65618", "impacts": "", "introduced": "", "is_need": true, @@ -91521,6 +92798,8 @@ "full_title": "", "hide_links": "", "id": "R-65641", + "id_complete": "R-65641", + "id_parent": "R-65641", "impacts": "", "introduced": "", "is_need": true, @@ -91555,6 +92834,8 @@ "full_title": "", "hide_links": "", "id": "R-65755", + "id_complete": "R-65755", + "id_parent": "R-65755", "impacts": "", "introduced": "", "is_need": true, @@ -91590,6 +92871,8 @@ "full_title": "", "hide_links": "", "id": "R-659655", + "id_complete": "R-659655", + "id_parent": "R-659655", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -91624,6 +92907,8 @@ "full_title": "", "hide_links": "", "id": "R-66070", + "id_complete": "R-66070", + "id_parent": "R-66070", "impacts": "", "introduced": "", "is_need": true, @@ -91657,6 +92942,8 @@ "full_title": "", "hide_links": "", "id": "R-663631", + "id_complete": "R-663631", + "id_parent": "R-663631", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91690,6 +92977,8 @@ "full_title": "", "hide_links": "", "id": "R-66793", + "id_complete": "R-66793", + "id_parent": "R-66793", "impacts": "", "introduced": "", "is_need": true, @@ -91725,6 +93014,8 @@ "full_title": "", "hide_links": "", "id": "R-67114", + "id_complete": "R-67114", + "id_parent": "R-67114", "impacts": "", "introduced": "", "is_need": true, @@ -91760,6 +93051,8 @@ "full_title": "", "hide_links": "", "id": "R-67124", + "id_complete": "R-67124", + "id_parent": "R-67124", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91795,6 +93088,8 @@ "full_title": "", "hide_links": "", "id": "R-67231", + "id_complete": "R-67231", + "id_parent": "R-67231", "impacts": "", "introduced": "", "is_need": true, @@ -91828,6 +93123,8 @@ "full_title": "", "hide_links": "", "id": "R-67386", + "id_complete": "R-67386", + "id_parent": "R-67386", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91863,6 +93160,8 @@ "full_title": "", "hide_links": "", "id": "R-67597", + "id_complete": "R-67597", + "id_parent": "R-67597", "impacts": "", "introduced": "", "is_need": true, @@ -91896,6 +93195,8 @@ "full_title": "", "hide_links": "", "id": "R-67709", + "id_complete": "R-67709", + "id_parent": "R-67709", "impacts": "", "introduced": "", "is_need": true, @@ -91929,6 +93230,8 @@ "full_title": "", "hide_links": "", "id": "R-67793", + "id_complete": "R-67793", + "id_parent": "R-67793", "impacts": "", "introduced": "", "is_need": true, @@ -91957,10 +93260,12 @@ }, "R-67895": { "description": "The VNFD provided by VNF vendor may use the below described TOSCA\ncapabilities. An on-boarding entity (ONAP SDC) **MUST** support them.\n\n **tosca.capabilities.nfv.VirtualBindable**\n\n A node type that includes the VirtualBindable capability indicates\n that it can be pointed by **tosca.relationships.nfv.VirtualBindsTo**\n relationship type.\n\n **tosca.capabilities.nfv.VirtualLinkable**\n\n A node type that includes the VirtualLinkable capability indicates\n that it can be pointed by **tosca.relationships.nfv.VirtualLinksTo**\n relationship.\n\n **tosca.capabilities.nfv.ExtVirtualLinkable**\n\n A node type that includes the ExtVirtualLinkable capability\n indicates that it can be pointed by\n **tosca.relationships.nfv.VirtualLinksTo** relationship.\n\n **Note**: This capability type is used in Casablanca how it does\n not exist in the last SOL001 draft\n\n **tosca.capabilities.nfv.VirtualCompute** and\n **tosca.capabilities.nfv.VirtualStorage** includes flavours of VDU", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-67895", + "id_complete": "R-67895", + "id_parent": "R-67895", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -91972,8 +93277,7 @@ "section_name": "Capability Types", "sections": [ "Capability Types", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -91995,6 +93299,8 @@ "full_title": "", "hide_links": "", "id": "R-67918", + "id_complete": "R-67918", + "id_parent": "R-67918", "impacts": "", "introduced": "", "is_need": true, @@ -92028,6 +93334,8 @@ "full_title": "", "hide_links": "", "id": "R-68023", + "id_complete": "R-68023", + "id_parent": "R-68023", "impacts": "", "introduced": "", "is_need": true, @@ -92061,6 +93369,8 @@ "full_title": "", "hide_links": "", "id": "R-68122", + "id_complete": "R-68122", + "id_parent": "R-68122", "impacts": "", "introduced": "", "is_need": true, @@ -92094,6 +93404,8 @@ "full_title": "", "hide_links": "", "id": "R-68165", + "id_complete": "R-68165", + "id_parent": "R-68165", "impacts": "", "introduced": "", "is_need": true, @@ -92128,6 +93440,8 @@ "full_title": "", "hide_links": "", "id": "R-681859", + "id_complete": "R-681859", + "id_parent": "R-681859", "impacts": "", "introduced": "dublin", "is_need": true, @@ -92162,6 +93476,8 @@ "full_title": "", "hide_links": "", "id": "R-68198", + "id_complete": "R-68198", + "id_parent": "R-68198", "impacts": "", "introduced": "", "is_need": true, @@ -92195,6 +93511,8 @@ "full_title": "", "hide_links": "", "id": "R-68200", + "id_complete": "R-68200", + "id_parent": "R-68200", "impacts": "", "introduced": "", "is_need": true, @@ -92230,6 +93548,8 @@ "full_title": "", "hide_links": "", "id": "R-68520", + "id_complete": "R-68520", + "id_parent": "R-68520", "impacts": "", "introduced": "", "is_need": true, @@ -92264,6 +93584,8 @@ "full_title": "", "hide_links": "", "id": "R-686466", + "id_complete": "R-686466", + "id_parent": "R-686466", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -92297,6 +93619,8 @@ "full_title": "", "hide_links": "", "id": "R-68990", + "id_complete": "R-68990", + "id_parent": "R-68990", "impacts": "", "introduced": "", "is_need": true, @@ -92332,6 +93656,8 @@ "full_title": "", "hide_links": "", "id": "R-69014", + "id_complete": "R-69014", + "id_parent": "R-69014", "impacts": "", "introduced": "", "is_need": true, @@ -92364,6 +93690,8 @@ "full_title": "", "hide_links": "", "id": "R-69431", + "id_complete": "R-69431", + "id_parent": "R-69431", "impacts": "", "introduced": "", "is_need": true, @@ -92397,6 +93725,8 @@ "full_title": "", "hide_links": "", "id": "R-69565", + "id_complete": "R-69565", + "id_parent": "R-69565", "impacts": "", "introduced": "", "is_need": true, @@ -92430,6 +93760,8 @@ "full_title": "", "hide_links": "", "id": "R-69588", + "id_complete": "R-69588", + "id_parent": "R-69588", "impacts": "", "introduced": "", "is_need": true, @@ -92463,6 +93795,8 @@ "full_title": "", "hide_links": "", "id": "R-69610", + "id_complete": "R-69610", + "id_parent": "R-69610", "impacts": "", "introduced": "", "is_need": true, @@ -92496,6 +93830,8 @@ "full_title": "", "hide_links": "", "id": "R-69634", + "id_complete": "R-69634", + "id_parent": "R-69634", "impacts": "", "introduced": "", "is_need": true, @@ -92529,6 +93865,8 @@ "full_title": "", "hide_links": "", "id": "R-69649", + "id_complete": "R-69649", + "id_parent": "R-69649", "impacts": "", "introduced": "", "is_need": true, @@ -92562,6 +93900,8 @@ "full_title": "", "hide_links": "", "id": "R-69663", + "id_complete": "R-69663", + "id_parent": "R-69663", "impacts": "", "introduced": "", "is_need": true, @@ -92595,6 +93935,8 @@ "full_title": "", "hide_links": "", "id": "R-697654", + "id_complete": "R-697654", + "id_parent": "R-697654", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -92629,6 +93971,8 @@ "full_title": "", "hide_links": "", "id": "R-69877", + "id_complete": "R-69877", + "id_parent": "R-69877", "impacts": "", "introduced": "", "is_need": true, @@ -92662,6 +94006,8 @@ "full_title": "", "hide_links": "", "id": "R-70013", + "id_complete": "R-70013", + "id_parent": "R-70013", "impacts": "", "introduced": "", "is_need": true, @@ -92695,6 +94041,8 @@ "full_title": "", "hide_links": "", "id": "R-70266", + "id_complete": "R-70266", + "id_parent": "R-70266", "impacts": "", "introduced": "", "is_need": true, @@ -92729,6 +94077,8 @@ "full_title": "", "hide_links": "", "id": "R-70276", + "id_complete": "R-70276", + "id_parent": "R-70276", "impacts": "", "introduced": "", "is_need": true, @@ -92763,6 +94113,8 @@ "full_title": "", "hide_links": "", "id": "R-703767", + "id_complete": "R-703767", + "id_parent": "R-703767", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -92796,6 +94148,8 @@ "full_title": "", "hide_links": "", "id": "R-70496", + "id_complete": "R-70496", + "id_parent": "R-70496", "impacts": "", "introduced": "", "is_need": true, @@ -92831,6 +94185,8 @@ "full_title": "", "hide_links": "", "id": "R-707977", + "id_complete": "R-707977", + "id_parent": "R-707977", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -92864,6 +94220,8 @@ "full_title": "", "hide_links": "", "id": "R-708564", + "id_complete": "R-708564", + "id_parent": "R-708564", "impacts": "", "introduced": "dublin", "is_need": true, @@ -92898,6 +94256,8 @@ "full_title": "", "hide_links": "", "id": "R-70933", + "id_complete": "R-70933", + "id_parent": "R-70933", "impacts": "", "introduced": "", "is_need": true, @@ -92931,6 +94291,8 @@ "full_title": "", "hide_links": "", "id": "R-70964", + "id_complete": "R-70964", + "id_parent": "R-70964", "impacts": "", "introduced": "", "is_need": true, @@ -92965,6 +94327,8 @@ "full_title": "", "hide_links": "", "id": "R-71152", + "id_complete": "R-71152", + "id_parent": "R-71152", "impacts": "", "introduced": "", "is_need": true, @@ -92998,6 +94362,8 @@ "full_title": "", "hide_links": "", "id": "R-71493", + "id_complete": "R-71493", + "id_parent": "R-71493", "impacts": "", "introduced": "", "is_need": true, @@ -93031,6 +94397,8 @@ "full_title": "", "hide_links": "", "id": "R-71577", + "id_complete": "R-71577", + "id_parent": "R-71577", "impacts": "", "introduced": "", "is_need": true, @@ -93064,6 +94432,8 @@ "full_title": "", "hide_links": "", "id": "R-71699", + "id_complete": "R-71699", + "id_parent": "R-71699", "impacts": "", "introduced": "", "is_need": true, @@ -93099,6 +94469,8 @@ "full_title": "", "hide_links": "", "id": "R-717227", + "id_complete": "R-717227", + "id_parent": "R-717227", "impacts": "", "introduced": "dublin", "is_need": true, @@ -93133,6 +94505,8 @@ "full_title": "", "hide_links": "", "id": "R-71787", + "id_complete": "R-71787", + "id_parent": "R-71787", "impacts": "", "introduced": "", "is_need": true, @@ -93166,6 +94540,8 @@ "full_title": "", "hide_links": "", "id": "R-71842", + "id_complete": "R-71842", + "id_parent": "R-71842", "impacts": "", "introduced": "", "is_need": true, @@ -93199,6 +94575,8 @@ "full_title": "", "hide_links": "", "id": "R-72184", + "id_complete": "R-72184", + "id_parent": "R-72184", "impacts": "", "introduced": "", "is_need": true, @@ -93234,6 +94612,8 @@ "full_title": "", "hide_links": "", "id": "R-72483", + "id_complete": "R-72483", + "id_parent": "R-72483", "impacts": "", "introduced": "", "is_need": true, @@ -93267,6 +94647,8 @@ "full_title": "", "hide_links": "", "id": "R-72871", + "id_complete": "R-72871", + "id_parent": "R-72871", "impacts": "", "introduced": "", "is_need": true, @@ -93300,6 +94682,8 @@ "full_title": "", "hide_links": "", "id": "R-73067", + "id_complete": "R-73067", + "id_parent": "R-73067", "impacts": "", "introduced": "", "is_need": true, @@ -93333,6 +94717,8 @@ "full_title": "", "hide_links": "", "id": "R-73213", + "id_complete": "R-73213", + "id_parent": "R-73213", "impacts": "", "introduced": "", "is_need": true, @@ -93367,6 +94753,8 @@ "full_title": "", "hide_links": "", "id": "R-73223", + "id_complete": "R-73223", + "id_parent": "R-73223", "impacts": "", "introduced": "", "is_need": true, @@ -93400,6 +94788,8 @@ "full_title": "", "hide_links": "", "id": "R-73285", + "id_complete": "R-73285", + "id_parent": "R-73285", "impacts": "", "introduced": "", "is_need": true, @@ -93434,6 +94824,8 @@ "full_title": "", "hide_links": "", "id": "R-73364", + "id_complete": "R-73364", + "id_parent": "R-73364", "impacts": "", "introduced": "", "is_need": true, @@ -93467,6 +94859,8 @@ "full_title": "", "hide_links": "", "id": "R-73459", + "id_complete": "R-73459", + "id_parent": "R-73459", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -93502,6 +94896,8 @@ "full_title": "", "hide_links": "", "id": "R-73468", + "id_complete": "R-73468", + "id_parent": "R-73468", "impacts": "", "introduced": "", "is_need": true, @@ -93537,6 +94933,8 @@ "full_title": "", "hide_links": "", "id": "R-73560", + "id_complete": "R-73560", + "id_parent": "R-73560", "impacts": "", "introduced": "", "is_need": true, @@ -93570,6 +94968,8 @@ "full_title": "", "hide_links": "", "id": "R-73583", + "id_complete": "R-73583", + "id_parent": "R-73583", "impacts": "", "introduced": "", "is_need": true, @@ -93603,6 +95003,8 @@ "full_title": "", "hide_links": "", "id": "R-74304", + "id_complete": "R-74304", + "id_parent": "R-74304", "impacts": "", "introduced": "", "is_need": true, @@ -93636,6 +95038,8 @@ "full_title": "", "hide_links": "", "id": "R-74481", + "id_complete": "R-74481", + "id_parent": "R-74481", "impacts": "", "introduced": "", "is_need": true, @@ -93668,6 +95072,8 @@ "full_title": "", "hide_links": "", "id": "R-74712", + "id_complete": "R-74712", + "id_parent": "R-74712", "impacts": "", "introduced": "", "is_need": true, @@ -93701,6 +95107,8 @@ "full_title": "", "hide_links": "", "id": "R-74958", + "id_complete": "R-74958", + "id_parent": "R-74958", "impacts": "", "introduced": "", "is_need": true, @@ -93734,6 +95142,8 @@ "full_title": "", "hide_links": "", "id": "R-74978", + "id_complete": "R-74978", + "id_parent": "R-74978", "impacts": "", "introduced": "", "is_need": true, @@ -93767,6 +95177,8 @@ "full_title": "", "hide_links": "", "id": "R-75041", + "id_complete": "R-75041", + "id_parent": "R-75041", "impacts": "", "introduced": "", "is_need": true, @@ -93800,6 +95212,8 @@ "full_title": "", "hide_links": "", "id": "R-75141", + "id_complete": "R-75141", + "id_parent": "R-75141", "impacts": "", "introduced": "", "is_need": true, @@ -93835,6 +95249,8 @@ "full_title": "", "hide_links": "", "id": "R-75343", + "id_complete": "R-75343", + "id_parent": "R-75343", "impacts": "", "introduced": "", "is_need": true, @@ -93868,6 +95284,8 @@ "full_title": "", "hide_links": "", "id": "R-75608", + "id_complete": "R-75608", + "id_parent": "R-75608", "impacts": "", "introduced": "", "is_need": true, @@ -93902,6 +95320,8 @@ "full_title": "", "hide_links": "", "id": "R-756950", + "id_complete": "R-756950", + "id_parent": "R-756950", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -93935,6 +95355,8 @@ "full_title": "", "hide_links": "", "id": "R-75850", + "id_complete": "R-75850", + "id_parent": "R-75850", "impacts": "", "introduced": "", "is_need": true, @@ -93967,6 +95389,8 @@ "full_title": "", "hide_links": "", "id": "R-75943", + "id_complete": "R-75943", + "id_parent": "R-75943", "impacts": "dcae, dmaap", "introduced": "casablanca", "is_need": true, @@ -94001,6 +95425,8 @@ "full_title": "", "hide_links": "", "id": "R-76014", + "id_complete": "R-76014", + "id_parent": "R-76014", "impacts": "", "introduced": "", "is_need": true, @@ -94035,6 +95461,8 @@ "full_title": "", "hide_links": "", "id": "R-76057", + "id_complete": "R-76057", + "id_parent": "R-76057", "impacts": "", "introduced": "", "is_need": true, @@ -94069,6 +95497,8 @@ "full_title": "", "hide_links": "", "id": "R-76160", + "id_complete": "R-76160", + "id_parent": "R-76160", "impacts": "", "introduced": "", "is_need": true, @@ -94097,11 +95527,13 @@ "validation_mode": "static" }, "R-763774": { - "description": "The PNF **MUST** support a HTTPS connection to the DCAE VES Event\nListener.", + "description": "The VNF or PNF **MUST** support a HTTPS connection to the DCAE\nVES Event Listener.", "docname": "Chapter7/PNF-Plug-and-Play", "full_title": "", "hide_links": "", "id": "R-763774", + "id_complete": "R-763774", + "id_parent": "R-763774", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -94117,7 +95549,7 @@ ], "status": null, "tags": [], - "target": "PNF", + "target": "VNF or PNF", "test": "", "test_case": "", "test_file": "", @@ -94125,7 +95557,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -94135,6 +95567,8 @@ "full_title": "", "hide_links": "", "id": "R-76449", + "id_complete": "R-76449", + "id_parent": "R-76449", "impacts": "", "introduced": "", "is_need": true, @@ -94169,6 +95603,8 @@ "full_title": "", "hide_links": "", "id": "R-76682", + "id_complete": "R-76682", + "id_parent": "R-76682", "impacts": "", "introduced": "", "is_need": true, @@ -94202,6 +95638,8 @@ "full_title": "", "hide_links": "", "id": "R-76718", + "id_complete": "R-76718", + "id_parent": "R-76718", "impacts": "", "introduced": "", "is_need": true, @@ -94235,6 +95673,8 @@ "full_title": "", "hide_links": "", "id": "R-76901", + "id_complete": "R-76901", + "id_parent": "R-76901", "impacts": "", "introduced": "", "is_need": true, @@ -94268,6 +95708,8 @@ "full_title": "", "hide_links": "", "id": "R-77334", + "id_complete": "R-77334", + "id_parent": "R-77334", "impacts": "", "introduced": "", "is_need": true, @@ -94301,6 +95743,8 @@ "full_title": "", "hide_links": "", "id": "R-77667", + "id_complete": "R-77667", + "id_parent": "R-77667", "impacts": "", "introduced": "", "is_need": true, @@ -94334,6 +95778,8 @@ "full_title": "", "hide_links": "", "id": "R-78010", + "id_complete": "R-78010", + "id_parent": "R-78010", "impacts": "", "introduced": "", "is_need": true, @@ -94367,6 +95813,8 @@ "full_title": "", "hide_links": "", "id": "R-78116", + "id_complete": "R-78116", + "id_parent": "R-78116", "impacts": "", "introduced": "", "is_need": true, @@ -94402,6 +95850,8 @@ "full_title": "", "hide_links": "", "id": "R-78282", + "id_complete": "R-78282", + "id_parent": "R-78282", "impacts": "", "introduced": "", "is_need": true, @@ -94437,6 +95887,8 @@ "full_title": "", "hide_links": "", "id": "R-78380", + "id_complete": "R-78380", + "id_parent": "R-78380", "impacts": "", "introduced": "", "is_need": true, @@ -94470,6 +95922,8 @@ "full_title": "", "hide_links": "", "id": "R-78569", + "id_complete": "R-78569", + "id_parent": "R-78569", "impacts": "", "introduced": "", "is_need": true, @@ -94501,10 +95955,12 @@ }, "R-787965": { "description": "If the VNF or PNF CSAR Package utilizes Option 2 for package security, then\nthe complete CSAR file **MUST** be digitally signed with the VNF or PNF\nprovider private key. The VNF or PNF provider delivers one zip file\nconsisting of the CSAR file, a signature file and a certificate file that\nincludes the VNF or PNF provider public key. The certificate may also be\nincluded in the signature container, if the signature format allows that.\nThe VNF or PNF provider creates a zip file consisting of the CSAR file with\n.csar extension, signature and certificate files. The signature and\ncertificate files must be siblings of the CSAR file with extensions .cms\nand .cert respectively.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-787965", + "id_complete": "R-787965", + "id_parent": "R-787965", "impacts": "", "introduced": "dublin", "is_need": true, @@ -94516,8 +95972,7 @@ "section_name": "VNF or PNF Package Authenticity and Integrity", "sections": [ "VNF or PNF Package Authenticity and Integrity", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -94539,6 +95994,8 @@ "full_title": "", "hide_links": "", "id": "R-79107", + "id_complete": "R-79107", + "id_parent": "R-79107", "impacts": "", "introduced": "", "is_need": true, @@ -94572,6 +96029,8 @@ "full_title": "", "hide_links": "", "id": "R-79224", + "id_complete": "R-79224", + "id_parent": "R-79224", "impacts": "", "introduced": "", "is_need": true, @@ -94607,6 +96066,8 @@ "full_title": "", "hide_links": "", "id": "R-793716", + "id_complete": "R-793716", + "id_parent": "R-793716", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -94640,6 +96101,8 @@ "full_title": "", "hide_links": "", "id": "R-79412", + "id_complete": "R-79412", + "id_parent": "R-79412", "impacts": "", "introduced": "", "is_need": true, @@ -94670,10 +96133,12 @@ }, "R-795126": { "description": "The VNF TOSCA CSAR package Manifest file **MUST** start with the VNF\npackage metadata in the form of a name-value pairs. Each pair shall appear\non a different line. The name is specified as following:\n\n - vnf_provider_id\n\n - vnf_product_name\n\n - vnf_release_date_time\n\n - vnf_package_version", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-795126", + "id_complete": "R-795126", + "id_parent": "R-795126", "impacts": "", "introduced": "dublin", "is_need": true, @@ -94685,8 +96150,7 @@ "section_name": "VNF Package Contents", "sections": [ "VNF Package Contents", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -94708,6 +96172,8 @@ "full_title": "", "hide_links": "", "id": "R-79817", + "id_complete": "R-79817", + "id_parent": "R-79817", "impacts": "", "introduced": "", "is_need": true, @@ -94743,6 +96209,8 @@ "full_title": "", "hide_links": "", "id": "R-798933", + "id_complete": "R-798933", + "id_parent": "R-798933", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -94776,6 +96244,8 @@ "full_title": "", "hide_links": "", "id": "R-79952", + "id_complete": "R-79952", + "id_parent": "R-79952", "impacts": "", "introduced": "", "is_need": true, @@ -94809,6 +96279,8 @@ "full_title": "", "hide_links": "", "id": "R-80070", + "id_complete": "R-80070", + "id_parent": "R-80070", "impacts": "", "introduced": "", "is_need": true, @@ -94842,6 +96314,8 @@ "full_title": "", "hide_links": "", "id": "R-80335", + "id_complete": "R-80335", + "id_parent": "R-80335", "impacts": "", "introduced": "", "is_need": true, @@ -94875,6 +96349,8 @@ "full_title": "", "hide_links": "", "id": "R-80374", + "id_complete": "R-80374", + "id_parent": "R-80374", "impacts": "", "introduced": "", "is_need": true, @@ -94908,6 +96384,8 @@ "full_title": "", "hide_links": "", "id": "R-805572", + "id_complete": "R-805572", + "id_parent": "R-805572", "impacts": "", "introduced": "dublin", "is_need": true, @@ -94942,6 +96420,8 @@ "full_title": "", "hide_links": "", "id": "R-807129", + "id_complete": "R-807129", + "id_parent": "R-807129", "impacts": "dcae, dmaap", "introduced": "dublin", "is_need": true, @@ -94976,6 +96456,8 @@ "full_title": "", "hide_links": "", "id": "R-80829", + "id_complete": "R-80829", + "id_parent": "R-80829", "impacts": "", "introduced": "", "is_need": true, @@ -95009,6 +96491,8 @@ "full_title": "", "hide_links": "", "id": "R-80898", + "id_complete": "R-80898", + "id_parent": "R-80898", "impacts": "", "introduced": "", "is_need": true, @@ -95044,6 +96528,8 @@ "full_title": "", "hide_links": "", "id": "R-809261", + "id_complete": "R-809261", + "id_parent": "R-809261", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -95077,6 +96563,8 @@ "full_title": "", "hide_links": "", "id": "R-81147", + "id_complete": "R-81147", + "id_parent": "R-81147", "impacts": "", "introduced": "", "is_need": true, @@ -95110,6 +96598,8 @@ "full_title": "", "hide_links": "", "id": "R-81214", + "id_complete": "R-81214", + "id_parent": "R-81214", "impacts": "", "introduced": "", "is_need": true, @@ -95144,6 +96634,8 @@ "full_title": "", "hide_links": "", "id": "R-81339", + "id_complete": "R-81339", + "id_parent": "R-81339", "impacts": "", "introduced": "", "is_need": true, @@ -95178,6 +96670,8 @@ "full_title": "", "hide_links": "", "id": "R-814377", + "id_complete": "R-814377", + "id_parent": "R-814377", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -95211,6 +96705,8 @@ "full_title": "", "hide_links": "", "id": "R-816745", + "id_complete": "R-816745", + "id_parent": "R-816745", "impacts": "DCAE,Documentation,Integration,SDC", "introduced": "dublin", "is_need": true, @@ -95244,6 +96740,8 @@ "full_title": "", "hide_links": "", "id": "R-81725", + "id_complete": "R-81725", + "id_parent": "R-81725", "impacts": "", "introduced": "", "is_need": true, @@ -95277,6 +96775,8 @@ "full_title": "", "hide_links": "", "id": "R-81777", + "id_complete": "R-81777", + "id_parent": "R-81777", "impacts": "", "introduced": "", "is_need": true, @@ -95311,6 +96811,8 @@ "full_title": "", "hide_links": "", "id": "R-81979", + "id_complete": "R-81979", + "id_parent": "R-81979", "impacts": "", "introduced": "", "is_need": true, @@ -95345,6 +96847,8 @@ "full_title": "", "hide_links": "", "id": "R-82018", + "id_complete": "R-82018", + "id_parent": "R-82018", "impacts": "", "introduced": "", "is_need": true, @@ -95380,6 +96884,8 @@ "full_title": "", "hide_links": "", "id": "R-82115", + "id_complete": "R-82115", + "id_parent": "R-82115", "impacts": "", "introduced": "", "is_need": true, @@ -95412,6 +96918,8 @@ "full_title": "", "hide_links": "", "id": "R-82134", + "id_complete": "R-82134", + "id_parent": "R-82134", "impacts": "", "introduced": "", "is_need": true, @@ -95445,6 +96953,8 @@ "full_title": "", "hide_links": "", "id": "R-821473", + "id_complete": "R-821473", + "id_parent": "R-821473", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -95479,6 +96989,8 @@ "full_title": "", "hide_links": "", "id": "R-821839", + "id_complete": "R-821839", + "id_parent": "R-821839", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -95512,6 +97024,8 @@ "full_title": "", "hide_links": "", "id": "R-82223", + "id_complete": "R-82223", + "id_parent": "R-82223", "impacts": "", "introduced": "", "is_need": true, @@ -95544,6 +97058,8 @@ "full_title": "", "hide_links": "", "id": "R-82551", + "id_complete": "R-82551", + "id_parent": "R-82551", "impacts": "", "introduced": "", "is_need": true, @@ -95576,6 +97092,8 @@ "full_title": "", "hide_links": "", "id": "R-82732", + "id_complete": "R-82732", + "id_parent": "R-82732", "impacts": "", "introduced": "", "is_need": true, @@ -95610,6 +97128,8 @@ "full_title": "", "hide_links": "", "id": "R-82811", + "id_complete": "R-82811", + "id_parent": "R-82811", "impacts": "", "introduced": "", "is_need": true, @@ -95644,6 +97164,8 @@ "full_title": "", "hide_links": "", "id": "R-83146", + "id_complete": "R-83146", + "id_parent": "R-83146", "impacts": "", "introduced": "", "is_need": true, @@ -95678,6 +97200,8 @@ "full_title": "", "hide_links": "", "id": "R-83227", + "id_complete": "R-83227", + "id_parent": "R-83227", "impacts": "", "introduced": "", "is_need": true, @@ -95711,6 +97235,8 @@ "full_title": "", "hide_links": "", "id": "R-83412", + "id_complete": "R-83412", + "id_parent": "R-83412", "impacts": "", "introduced": "", "is_need": true, @@ -95745,6 +97271,8 @@ "full_title": "", "hide_links": "", "id": "R-83500", + "id_complete": "R-83500", + "id_parent": "R-83500", "impacts": "", "introduced": "", "is_need": true, @@ -95778,6 +97306,8 @@ "full_title": "", "hide_links": "", "id": "R-83677", + "id_complete": "R-83677", + "id_parent": "R-83677", "impacts": "", "introduced": "", "is_need": true, @@ -95811,6 +97341,8 @@ "full_title": "", "hide_links": "", "id": "R-83706", + "id_complete": "R-83706", + "id_parent": "R-83706", "impacts": "", "introduced": "", "is_need": true, @@ -95844,6 +97376,8 @@ "full_title": "", "hide_links": "", "id": "R-83790", + "id_complete": "R-83790", + "id_parent": "R-83790", "impacts": "", "introduced": "", "is_need": true, @@ -95879,6 +97413,8 @@ "full_title": "", "hide_links": "", "id": "R-83873", + "id_complete": "R-83873", + "id_parent": "R-83873", "impacts": "", "introduced": "", "is_need": true, @@ -95914,6 +97450,8 @@ "full_title": "", "hide_links": "", "id": "R-84123", + "id_complete": "R-84123", + "id_parent": "R-84123", "impacts": "", "introduced": "", "is_need": true, @@ -95947,6 +97485,8 @@ "full_title": "", "hide_links": "", "id": "R-84160", + "id_complete": "R-84160", + "id_parent": "R-84160", "impacts": "", "introduced": "", "is_need": true, @@ -95980,6 +97520,8 @@ "full_title": "", "hide_links": "", "id": "R-841740", + "id_complete": "R-841740", + "id_parent": "R-841740", "impacts": "dcae, dmaap", "introduced": "casablanca", "is_need": true, @@ -96014,6 +97556,8 @@ "full_title": "", "hide_links": "", "id": "R-842258", + "id_complete": "R-842258", + "id_parent": "R-842258", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -96047,6 +97591,8 @@ "full_title": "", "hide_links": "", "id": "R-84322", + "id_complete": "R-84322", + "id_parent": "R-84322", "impacts": "", "introduced": "", "is_need": true, @@ -96079,6 +97625,8 @@ "full_title": "", "hide_links": "", "id": "R-84366", + "id_complete": "R-84366", + "id_parent": "R-84366", "impacts": "", "introduced": "", "is_need": true, @@ -96112,6 +97660,8 @@ "full_title": "", "hide_links": "", "id": "R-844011", + "id_complete": "R-844011", + "id_parent": "R-844011", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -96145,6 +97695,8 @@ "full_title": "", "hide_links": "", "id": "R-84457", + "id_complete": "R-84457", + "id_parent": "R-84457", "impacts": "", "introduced": "", "is_need": true, @@ -96179,6 +97731,8 @@ "full_title": "", "hide_links": "", "id": "R-84473", + "id_complete": "R-84473", + "id_parent": "R-84473", "impacts": "", "introduced": "", "is_need": true, @@ -96211,6 +97765,8 @@ "full_title": "", "hide_links": "", "id": "R-84517", + "id_complete": "R-84517", + "id_parent": "R-84517", "impacts": "", "introduced": "", "is_need": true, @@ -96244,6 +97800,8 @@ "full_title": "", "hide_links": "", "id": "R-84879", + "id_complete": "R-84879", + "id_parent": "R-84879", "impacts": "", "introduced": "", "is_need": true, @@ -96278,6 +97836,8 @@ "full_title": "", "hide_links": "", "id": "R-85235", + "id_complete": "R-85235", + "id_parent": "R-85235", "impacts": "", "introduced": "", "is_need": true, @@ -96311,6 +97871,8 @@ "full_title": "", "hide_links": "", "id": "R-85328", + "id_complete": "R-85328", + "id_parent": "R-85328", "impacts": "", "introduced": "", "is_need": true, @@ -96344,6 +97906,8 @@ "full_title": "", "hide_links": "", "id": "R-85419", + "id_complete": "R-85419", + "id_parent": "R-85419", "impacts": "", "introduced": "", "is_need": true, @@ -96377,6 +97941,8 @@ "full_title": "", "hide_links": "", "id": "R-85653", + "id_complete": "R-85653", + "id_parent": "R-85653", "impacts": "", "introduced": "", "is_need": true, @@ -96410,6 +97976,8 @@ "full_title": "", "hide_links": "", "id": "R-85734", + "id_complete": "R-85734", + "id_parent": "R-85734", "impacts": "", "introduced": "", "is_need": true, @@ -96442,6 +98010,8 @@ "full_title": "", "hide_links": "", "id": "R-859208", + "id_complete": "R-859208", + "id_parent": "R-859208", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -96475,6 +98045,8 @@ "full_title": "", "hide_links": "", "id": "R-85959", + "id_complete": "R-85959", + "id_parent": "R-85959", "impacts": "", "introduced": "", "is_need": true, @@ -96508,6 +98080,8 @@ "full_title": "", "hide_links": "", "id": "R-85991", + "id_complete": "R-85991", + "id_parent": "R-85991", "impacts": "", "introduced": "", "is_need": true, @@ -96541,6 +98115,8 @@ "full_title": "", "hide_links": "", "id": "R-86182", + "id_complete": "R-86182", + "id_parent": "R-86182", "impacts": "", "introduced": "", "is_need": true, @@ -96574,6 +98150,8 @@ "full_title": "", "hide_links": "", "id": "R-86235", + "id_complete": "R-86235", + "id_parent": "R-86235", "impacts": "", "introduced": "", "is_need": true, @@ -96607,6 +98185,8 @@ "full_title": "", "hide_links": "", "id": "R-86261", + "id_complete": "R-86261", + "id_parent": "R-86261", "impacts": "", "introduced": "", "is_need": true, @@ -96640,6 +98220,8 @@ "full_title": "", "hide_links": "", "id": "R-86285", + "id_complete": "R-86285", + "id_parent": "R-86285", "impacts": "", "introduced": "", "is_need": true, @@ -96673,6 +98255,8 @@ "full_title": "", "hide_links": "", "id": "R-86476", + "id_complete": "R-86476", + "id_parent": "R-86476", "impacts": "", "introduced": "", "is_need": true, @@ -96706,6 +98290,8 @@ "full_title": "", "hide_links": "", "id": "R-86497", + "id_complete": "R-86497", + "id_parent": "R-86497", "impacts": "", "introduced": "", "is_need": true, @@ -96740,6 +98326,8 @@ "full_title": "", "hide_links": "", "id": "R-86585", + "id_complete": "R-86585", + "id_parent": "R-86585", "impacts": "", "introduced": "", "is_need": true, @@ -96772,6 +98360,8 @@ "full_title": "", "hide_links": "", "id": "R-86586", + "id_complete": "R-86586", + "id_parent": "R-86586", "impacts": "", "introduced": "", "is_need": true, @@ -96806,6 +98396,8 @@ "full_title": "", "hide_links": "", "id": "R-86588", + "id_complete": "R-86588", + "id_parent": "R-86588", "impacts": "", "introduced": "", "is_need": true, @@ -96838,6 +98430,8 @@ "full_title": "", "hide_links": "", "id": "R-86758", + "id_complete": "R-86758", + "id_parent": "R-86758", "impacts": "", "introduced": "", "is_need": true, @@ -96870,6 +98464,8 @@ "full_title": "", "hide_links": "", "id": "R-86835", + "id_complete": "R-86835", + "id_parent": "R-86835", "impacts": "", "introduced": "", "is_need": true, @@ -96903,6 +98499,8 @@ "full_title": "", "hide_links": "", "id": "R-86926", + "id_complete": "R-86926", + "id_parent": "R-86926", "impacts": "", "introduced": "", "is_need": true, @@ -96936,6 +98534,8 @@ "full_title": "", "hide_links": "", "id": "R-86972", + "id_complete": "R-86972", + "id_parent": "R-86972", "impacts": "", "introduced": "", "is_need": true, @@ -96969,6 +98569,8 @@ "full_title": "", "hide_links": "", "id": "R-87004", + "id_complete": "R-87004", + "id_parent": "R-87004", "impacts": "", "introduced": "", "is_need": true, @@ -97003,6 +98605,8 @@ "full_title": "", "hide_links": "", "id": "R-87096", + "id_complete": "R-87096", + "id_parent": "R-87096", "impacts": "", "introduced": "", "is_need": true, @@ -97036,6 +98640,8 @@ "full_title": "", "hide_links": "", "id": "R-87123", + "id_complete": "R-87123", + "id_parent": "R-87123", "impacts": "", "introduced": "", "is_need": true, @@ -97065,10 +98671,12 @@ }, "R-87234": { "description": "The VNF or PNF package provided by a VNF or PNF vendor **MUST** be with\nTOSCA-Metadata directory (CSAR Option 1) as specified in\nETSI GS NFV-SOL004.\n\n**Note:** SDC supports only the CSAR Option 1 in Dublin. The Option 2\nwill be considered in future ONAP releases.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP VNF or PNF CSAR Package", "full_title": "", "hide_links": "", "id": "R-87234", + "id_complete": "R-87234", + "id_parent": "R-87234", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -97080,8 +98688,7 @@ "section_name": "VNF Package Structure and Format", "sections": [ "VNF Package Structure and Format", - "VNF or PNF CSAR Package", - "ONAP TOSCA VNFD or PNFD Requirements" + "VNF or PNF CSAR Package" ], "status": null, "tags": [], @@ -97103,6 +98710,8 @@ "full_title": "", "hide_links": "", "id": "R-87247", + "id_complete": "R-87247", + "id_parent": "R-87247", "impacts": "", "introduced": "", "is_need": true, @@ -97137,6 +98746,8 @@ "full_title": "", "hide_links": "", "id": "R-872986", + "id_complete": "R-872986", + "id_parent": "R-872986", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -97170,6 +98781,8 @@ "full_title": "", "hide_links": "", "id": "R-87352", + "id_complete": "R-87352", + "id_parent": "R-87352", "impacts": "", "introduced": "", "is_need": true, @@ -97203,6 +98816,8 @@ "full_title": "", "hide_links": "", "id": "R-87485", + "id_complete": "R-87485", + "id_parent": "R-87485", "impacts": "", "introduced": "", "is_need": true, @@ -97236,6 +98851,8 @@ "full_title": "", "hide_links": "", "id": "R-87563", + "id_complete": "R-87563", + "id_parent": "R-87563", "impacts": "", "introduced": "", "is_need": true, @@ -97270,6 +98887,8 @@ "full_title": "", "hide_links": "", "id": "R-87564", + "id_complete": "R-87564", + "id_parent": "R-87564", "impacts": "", "introduced": "", "is_need": true, @@ -97305,6 +98924,8 @@ "full_title": "", "hide_links": "", "id": "R-87817", + "id_complete": "R-87817", + "id_parent": "R-87817", "impacts": "", "introduced": "", "is_need": true, @@ -97338,6 +98959,8 @@ "full_title": "", "hide_links": "", "id": "R-88026", + "id_complete": "R-88026", + "id_parent": "R-88026", "impacts": "", "introduced": "", "is_need": true, @@ -97373,6 +98996,8 @@ "full_title": "", "hide_links": "", "id": "R-88031", + "id_complete": "R-88031", + "id_parent": "R-88031", "impacts": "", "introduced": "", "is_need": true, @@ -97408,6 +99033,8 @@ "full_title": "", "hide_links": "", "id": "R-88199", + "id_complete": "R-88199", + "id_parent": "R-88199", "impacts": "", "introduced": "", "is_need": true, @@ -97440,6 +99067,8 @@ "full_title": "", "hide_links": "", "id": "R-88482", + "id_complete": "R-88482", + "id_parent": "R-88482", "impacts": "", "introduced": "", "is_need": true, @@ -97474,6 +99103,8 @@ "full_title": "", "hide_links": "", "id": "R-88524", + "id_complete": "R-88524", + "id_parent": "R-88524", "impacts": "", "introduced": "", "is_need": true, @@ -97507,6 +99138,8 @@ "full_title": "", "hide_links": "", "id": "R-88536", + "id_complete": "R-88536", + "id_parent": "R-88536", "impacts": "", "introduced": "", "is_need": true, @@ -97540,6 +99173,8 @@ "full_title": "", "hide_links": "", "id": "R-88863", + "id_complete": "R-88863", + "id_parent": "R-88863", "impacts": "", "introduced": "", "is_need": true, @@ -97575,6 +99210,8 @@ "full_title": "", "hide_links": "", "id": "R-88899", + "id_complete": "R-88899", + "id_parent": "R-88899", "impacts": "", "introduced": "", "is_need": true, @@ -97610,6 +99247,8 @@ "full_title": "", "hide_links": "", "id": "R-89010", + "id_complete": "R-89010", + "id_parent": "R-89010", "impacts": "", "introduced": "", "is_need": true, @@ -97638,11 +99277,13 @@ "validation_mode": "" }, "R-894004": { - "description": "When the VNF or PNF sets up a HTTP or HTTPS connection to the collector, it **MUST**\nprovide a username and password to the DCAE VES Collector for HTTP Basic\nAuthentication.\n\nNote: HTTP Basic Authentication has 4 steps: Request, Authenticate,\nAuthorization with Username/Password Credentials, and Authentication Status\nas per RFC7617 and RFC 2617.", + "description": "If the VNF or PNF is using Basic Authentication, then when the VNF\nor PNF sets up a HTTPS connection to the DCAE VES Event Listener,\nthe VNF or PNF **MUST** provide a username and password to the\nDCAE VES Event Listener in the Authorization header and the VNF\nor PNF MUST support one-way TLS authentication.\n\nNote: In one-way TLS authentication, the client (VNF or PNF)\nmust authentication the server (DCAE) certificate.", "docname": "Chapter7/Monitoring-And-Management", "full_title": "", "hide_links": "", "id": "R-894004", + "id_complete": "R-894004", + "id_parent": "R-894004", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -97667,7 +99308,7 @@ "title_from_content": "", "type": "req", "type_name": "Requirement", - "updated": "dublin", + "updated": "el alto", "validated_by": "", "validation_mode": "" }, @@ -97677,6 +99318,8 @@ "full_title": "", "hide_links": "", "id": "R-89474", + "id_complete": "R-89474", + "id_parent": "R-89474", "impacts": "", "introduced": "", "is_need": true, @@ -97710,6 +99353,8 @@ "full_title": "", "hide_links": "", "id": "R-89571", + "id_complete": "R-89571", + "id_parent": "R-89571", "impacts": "", "introduced": "", "is_need": true, @@ -97743,6 +99388,8 @@ "full_title": "", "hide_links": "", "id": "R-89800", + "id_complete": "R-89800", + "id_parent": "R-89800", "impacts": "", "introduced": "", "is_need": true, @@ -97775,6 +99422,8 @@ "full_title": "", "hide_links": "", "id": "R-89913", + "id_complete": "R-89913", + "id_parent": "R-89913", "impacts": "", "introduced": "", "is_need": true, @@ -97809,6 +99458,8 @@ "full_title": "", "hide_links": "", "id": "R-90007", + "id_complete": "R-90007", + "id_parent": "R-90007", "impacts": "", "introduced": "", "is_need": true, @@ -97844,6 +99495,8 @@ "full_title": "", "hide_links": "", "id": "R-90022", + "id_complete": "R-90022", + "id_parent": "R-90022", "impacts": "", "introduced": "", "is_need": true, @@ -97878,6 +99531,8 @@ "full_title": "", "hide_links": "", "id": "R-901331", + "id_complete": "R-901331", + "id_parent": "R-901331", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -97911,6 +99566,8 @@ "full_title": "", "hide_links": "", "id": "R-90152", + "id_complete": "R-90152", + "id_parent": "R-90152", "impacts": "", "introduced": "", "is_need": true, @@ -97945,6 +99602,8 @@ "full_title": "", "hide_links": "", "id": "R-90206", + "id_complete": "R-90206", + "id_parent": "R-90206", "impacts": "", "introduced": "", "is_need": true, @@ -97978,6 +99637,8 @@ "full_title": "", "hide_links": "", "id": "R-90279", + "id_complete": "R-90279", + "id_parent": "R-90279", "impacts": "", "introduced": "", "is_need": true, @@ -98012,6 +99673,8 @@ "full_title": "", "hide_links": "", "id": "R-90526", + "id_complete": "R-90526", + "id_parent": "R-90526", "impacts": "", "introduced": "", "is_need": true, @@ -98047,6 +99710,8 @@ "full_title": "", "hide_links": "", "id": "R-90632", + "id_complete": "R-90632", + "id_parent": "R-90632", "impacts": "", "introduced": "", "is_need": true, @@ -98080,6 +99745,8 @@ "full_title": "", "hide_links": "", "id": "R-90748", + "id_complete": "R-90748", + "id_parent": "R-90748", "impacts": "", "introduced": "", "is_need": true, @@ -98113,6 +99780,8 @@ "full_title": "", "hide_links": "", "id": "R-908291", + "id_complete": "R-908291", + "id_parent": "R-908291", "impacts": "dcae, dmaap", "introduced": "casablanca", "is_need": true, @@ -98147,6 +99816,8 @@ "full_title": "", "hide_links": "", "id": "R-91125", + "id_complete": "R-91125", + "id_parent": "R-91125", "impacts": "", "introduced": "", "is_need": true, @@ -98180,6 +99851,8 @@ "full_title": "", "hide_links": "", "id": "R-91273", + "id_complete": "R-91273", + "id_parent": "R-91273", "impacts": "", "introduced": "", "is_need": true, @@ -98214,6 +99887,8 @@ "full_title": "", "hide_links": "", "id": "R-91342", + "id_complete": "R-91342", + "id_parent": "R-91342", "impacts": "", "introduced": "", "is_need": true, @@ -98248,6 +99923,8 @@ "full_title": "", "hide_links": "", "id": "R-91497", + "id_complete": "R-91497", + "id_parent": "R-91497", "impacts": "", "introduced": "", "is_need": true, @@ -98281,6 +99958,8 @@ "full_title": "", "hide_links": "", "id": "R-91745", + "id_complete": "R-91745", + "id_parent": "R-91745", "impacts": "", "introduced": "", "is_need": true, @@ -98316,6 +99995,8 @@ "full_title": "", "hide_links": "", "id": "R-92193", + "id_complete": "R-92193", + "id_parent": "R-92193", "impacts": "", "introduced": "", "is_need": true, @@ -98350,6 +100031,8 @@ "full_title": "", "hide_links": "", "id": "R-92207", + "id_complete": "R-92207", + "id_parent": "R-92207", "impacts": "", "introduced": "", "is_need": true, @@ -98383,6 +100066,8 @@ "full_title": "", "hide_links": "", "id": "R-92571", + "id_complete": "R-92571", + "id_parent": "R-92571", "impacts": "", "introduced": "", "is_need": true, @@ -98416,6 +100101,8 @@ "full_title": "", "hide_links": "", "id": "R-92635", + "id_complete": "R-92635", + "id_parent": "R-92635", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -98448,6 +100135,8 @@ "full_title": "", "hide_links": "", "id": "R-92866", + "id_complete": "R-92866", + "id_parent": "R-92866", "impacts": "", "introduced": "", "is_need": true, @@ -98483,6 +100172,8 @@ "full_title": "", "hide_links": "", "id": "R-92935", + "id_complete": "R-92935", + "id_parent": "R-92935", "impacts": "", "introduced": "", "is_need": true, @@ -98516,6 +100207,8 @@ "full_title": "", "hide_links": "", "id": "R-93030", + "id_complete": "R-93030", + "id_parent": "R-93030", "impacts": "", "introduced": "", "is_need": true, @@ -98549,6 +100242,8 @@ "full_title": "", "hide_links": "", "id": "R-931076", + "id_complete": "R-931076", + "id_parent": "R-931076", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -98582,6 +100277,8 @@ "full_title": "", "hide_links": "", "id": "R-932071", + "id_complete": "R-932071", + "id_parent": "R-932071", "impacts": "dcae", "introduced": "casablanca", "is_need": true, @@ -98615,6 +100312,8 @@ "full_title": "", "hide_links": "", "id": "R-93443", + "id_complete": "R-93443", + "id_parent": "R-93443", "impacts": "", "introduced": "", "is_need": true, @@ -98650,6 +100349,8 @@ "full_title": "", "hide_links": "", "id": "R-93496", + "id_complete": "R-93496", + "id_parent": "R-93496", "impacts": "", "introduced": "", "is_need": true, @@ -98683,6 +100384,8 @@ "full_title": "", "hide_links": "", "id": "R-93860", + "id_complete": "R-93860", + "id_parent": "R-93860", "impacts": "", "introduced": "", "is_need": true, @@ -98716,6 +100419,8 @@ "full_title": "", "hide_links": "", "id": "R-94084", + "id_complete": "R-94084", + "id_parent": "R-94084", "impacts": "", "introduced": "", "is_need": true, @@ -98750,6 +100455,8 @@ "full_title": "", "hide_links": "", "id": "R-94509", + "id_complete": "R-94509", + "id_parent": "R-94509", "impacts": "", "introduced": "", "is_need": true, @@ -98784,6 +100491,8 @@ "full_title": "", "hide_links": "", "id": "R-94525", + "id_complete": "R-94525", + "id_parent": "R-94525", "impacts": "", "introduced": "", "is_need": true, @@ -98817,6 +100526,8 @@ "full_title": "", "hide_links": "", "id": "R-94567", + "id_complete": "R-94567", + "id_parent": "R-94567", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -98852,6 +100563,8 @@ "full_title": "", "hide_links": "", "id": "R-94669", + "id_complete": "R-94669", + "id_parent": "R-94669", "impacts": "", "introduced": "", "is_need": true, @@ -98886,6 +100599,8 @@ "full_title": "", "hide_links": "", "id": "R-94978", + "id_complete": "R-94978", + "id_parent": "R-94978", "impacts": "", "introduced": "", "is_need": true, @@ -98919,6 +100634,8 @@ "full_title": "", "hide_links": "", "id": "R-952314", + "id_complete": "R-952314", + "id_parent": "R-952314", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -98952,6 +100669,8 @@ "full_title": "", "hide_links": "", "id": "R-95303", + "id_complete": "R-95303", + "id_parent": "R-95303", "impacts": "", "introduced": "", "is_need": true, @@ -98981,10 +100700,12 @@ }, "R-95321": { "description": "The VNFD provided by VNF vendor may use the below described TOSCA\nrelationships. An on-boarding entity (ONAP SDC) **MUST** support them.\n\n **tosca.relationships.nfv.VirtualBindsTo**\n\n This relationship type represents an association relationship between\n VDU and CP node types.\n\n **tosca.relationships.nfv.VirtualLinksTo**\n\n This relationship type represents an association relationship between\n the VduCpd's and VirtualLinkDesc node types.", - "docname": "Chapter5/Tosca", + "docname": "Chapter5/Tosca/ONAP Tosca VNF Descriptor", "full_title": "", "hide_links": "", "id": "R-95321", + "id_complete": "R-95321", + "id_parent": "R-95321", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -98996,8 +100717,7 @@ "section_name": "Relationship Types", "sections": [ "Relationship Types", - "TOSCA VNF Descriptor", - "ONAP TOSCA VNFD or PNFD Requirements" + "TOSCA VNF Descriptor" ], "status": null, "tags": [], @@ -99019,6 +100739,8 @@ "full_title": "", "hide_links": "", "id": "R-95430", + "id_complete": "R-95430", + "id_parent": "R-95430", "impacts": "", "introduced": "", "is_need": true, @@ -99052,6 +100774,8 @@ "full_title": "", "hide_links": "", "id": "R-95864", + "id_complete": "R-95864", + "id_parent": "R-95864", "impacts": "", "introduced": "", "is_need": true, @@ -99085,6 +100809,8 @@ "full_title": "", "hide_links": "", "id": "R-95950", + "id_complete": "R-95950", + "id_parent": "R-95950", "impacts": "", "introduced": "", "is_need": true, @@ -99120,6 +100846,8 @@ "full_title": "", "hide_links": "", "id": "R-96227", + "id_complete": "R-96227", + "id_parent": "R-96227", "impacts": "", "introduced": "", "is_need": true, @@ -99155,6 +100883,8 @@ "full_title": "", "hide_links": "", "id": "R-96253", + "id_complete": "R-96253", + "id_parent": "R-96253", "impacts": "", "introduced": "", "is_need": true, @@ -99189,6 +100919,8 @@ "full_title": "", "hide_links": "", "id": "R-96482", + "id_complete": "R-96482", + "id_parent": "R-96482", "impacts": "", "introduced": "", "is_need": true, @@ -99221,6 +100953,8 @@ "full_title": "", "hide_links": "", "id": "R-96554", + "id_complete": "R-96554", + "id_parent": "R-96554", "impacts": "", "introduced": "", "is_need": true, @@ -99256,6 +100990,8 @@ "full_title": "", "hide_links": "", "id": "R-96634", + "id_complete": "R-96634", + "id_parent": "R-96634", "impacts": "", "introduced": "", "is_need": true, @@ -99289,6 +101025,8 @@ "full_title": "", "hide_links": "", "id": "R-96983", + "id_complete": "R-96983", + "id_parent": "R-96983", "impacts": "", "introduced": "", "is_need": true, @@ -99321,6 +101059,8 @@ "full_title": "", "hide_links": "", "id": "R-97102", + "id_complete": "R-97102", + "id_parent": "R-97102", "impacts": "", "introduced": "", "is_need": true, @@ -99354,6 +101094,8 @@ "full_title": "", "hide_links": "", "id": "R-97201", + "id_complete": "R-97201", + "id_parent": "R-97201", "impacts": "", "introduced": "", "is_need": true, @@ -99387,6 +101129,8 @@ "full_title": "", "hide_links": "", "id": "R-97293", + "id_complete": "R-97293", + "id_parent": "R-97293", "impacts": "", "introduced": "", "is_need": true, @@ -99420,6 +101164,8 @@ "full_title": "", "hide_links": "", "id": "R-97343", + "id_complete": "R-97343", + "id_parent": "R-97343", "impacts": "", "introduced": "", "is_need": true, @@ -99454,6 +101200,8 @@ "full_title": "", "hide_links": "", "id": "R-97345", + "id_complete": "R-97345", + "id_parent": "R-97345", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -99489,6 +101237,8 @@ "full_title": "", "hide_links": "", "id": "R-97445", + "id_complete": "R-97445", + "id_parent": "R-97445", "impacts": "", "introduced": "", "is_need": true, @@ -99522,6 +101272,8 @@ "full_title": "", "hide_links": "", "id": "R-97451", + "id_complete": "R-97451", + "id_parent": "R-97451", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -99557,6 +101309,8 @@ "full_title": "", "hide_links": "", "id": "R-97529", + "id_complete": "R-97529", + "id_parent": "R-97529", "impacts": "", "introduced": "", "is_need": true, @@ -99592,6 +101346,8 @@ "full_title": "", "hide_links": "", "id": "R-97726", + "id_complete": "R-97726", + "id_parent": "R-97726", "impacts": "", "introduced": "", "is_need": true, @@ -99625,6 +101381,8 @@ "full_title": "", "hide_links": "", "id": "R-978752", + "id_complete": "R-978752", + "id_parent": "R-978752", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -99659,6 +101417,8 @@ "full_title": "", "hide_links": "", "id": "R-980039", + "id_complete": "R-980039", + "id_parent": "R-980039", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -99692,6 +101452,8 @@ "full_title": "", "hide_links": "", "id": "R-98138", + "id_complete": "R-98138", + "id_parent": "R-98138", "impacts": "", "introduced": "", "is_need": true, @@ -99724,6 +101486,8 @@ "full_title": "", "hide_links": "", "id": "R-981585", + "id_complete": "R-981585", + "id_parent": "R-981585", "impacts": "", "introduced": "casablanca", "is_need": true, @@ -99757,6 +101521,8 @@ "full_title": "", "hide_links": "", "id": "R-98191", + "id_complete": "R-98191", + "id_parent": "R-98191", "impacts": "", "introduced": "", "is_need": true, @@ -99791,6 +101557,8 @@ "full_title": "", "hide_links": "", "id": "R-98374", + "id_complete": "R-98374", + "id_parent": "R-98374", "impacts": "", "introduced": "", "is_need": true, @@ -99818,45 +101586,14 @@ "validated_by": "", "validation_mode": "static" }, - "R-98391": { - "description": "The VNF **MUST**, if not integrated with the Operator's Identity and\nAccess Management system, support Role-Based Access Control to enforce\nleast privilege.", - "docname": "Chapter4/Security", - "full_title": "", - "hide_links": "", - "id": "R-98391", - "impacts": "", - "introduced": "", - "is_need": true, - "is_part": false, - "keyword": "MUST", - "links": [], - "notes": "", - "parts": {}, - "section_name": "VNF Identity and Access Management Requirements", - "sections": [ - "VNF Identity and Access Management Requirements", - "VNF Security" - ], - "status": null, - "tags": [], - "target": "VNF", - "test": "", - "test_case": "", - "test_file": "", - "title": "", - "title_from_content": "", - "type": "req", - "type_name": "Requirement", - "updated": "casablanca", - "validated_by": "", - "validation_mode": "" - }, "R-98407": { "description": "A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** contain only\nalphanumeric characters and/or underscores '_' and **MUST NOT**\ncontain any of the following strings:\n``_int`` or ``int_`` or ``_int_``.", "docname": "Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{vm-type}", "full_title": "", "hide_links": "", "id": "R-98407", + "id_complete": "R-98407", + "id_parent": "R-98407", "impacts": "", "introduced": "", "is_need": true, @@ -99889,6 +101626,8 @@ "full_title": "", "hide_links": "", "id": "R-98450", + "id_complete": "R-98450", + "id_parent": "R-98450", "impacts": "", "introduced": "", "is_need": true, @@ -99922,6 +101661,8 @@ "full_title": "", "hide_links": "", "id": "R-98569", + "id_complete": "R-98569", + "id_parent": "R-98569", "impacts": "", "introduced": "", "is_need": true, @@ -99955,6 +101696,8 @@ "full_title": "", "hide_links": "", "id": "R-98617", + "id_complete": "R-98617", + "id_parent": "R-98617", "impacts": "", "introduced": "", "is_need": true, @@ -99988,6 +101731,8 @@ "full_title": "", "hide_links": "", "id": "R-98905", + "id_complete": "R-98905", + "id_parent": "R-98905", "impacts": "", "introduced": "", "is_need": true, @@ -100021,6 +101766,8 @@ "full_title": "", "hide_links": "", "id": "R-98911", + "id_complete": "R-98911", + "id_parent": "R-98911", "impacts": "", "introduced": "", "is_need": true, @@ -100056,6 +101803,8 @@ "full_title": "", "hide_links": "", "id": "R-98989", + "id_complete": "R-98989", + "id_parent": "R-98989", "impacts": "", "introduced": "", "is_need": true, @@ -100089,6 +101838,8 @@ "full_title": "", "hide_links": "", "id": "R-99110", + "id_complete": "R-99110", + "id_parent": "R-99110", "impacts": "", "introduced": "", "is_need": true, @@ -100123,6 +101874,8 @@ "full_title": "", "hide_links": "", "id": "R-99174", + "id_complete": "R-99174", + "id_parent": "R-99174", "impacts": "", "introduced": "", "is_need": true, @@ -100156,6 +101909,8 @@ "full_title": "", "hide_links": "", "id": "R-99646", + "id_complete": "R-99646", + "id_parent": "R-99646", "impacts": "", "introduced": "", "is_need": true, @@ -100189,6 +101944,8 @@ "full_title": "", "hide_links": "", "id": "R-99656", + "id_complete": "R-99656", + "id_parent": "R-99656", "impacts": "", "introduced": "", "is_need": true, @@ -100221,6 +101978,8 @@ "full_title": "", "hide_links": "", "id": "R-99730", + "id_complete": "R-99730", + "id_parent": "R-99730", "impacts": "", "introduced": "", "is_need": true, @@ -100254,6 +102013,8 @@ "full_title": "", "hide_links": "", "id": "R-99766", + "id_complete": "R-99766", + "id_parent": "R-99766", "impacts": "", "introduced": "", "is_need": true, @@ -100287,6 +102048,8 @@ "full_title": "", "hide_links": "", "id": "R-99771", + "id_complete": "R-99771", + "id_parent": "R-99771", "impacts": "", "introduced": "", "is_need": true, @@ -100320,6 +102083,8 @@ "full_title": "", "hide_links": "", "id": "R-997907", + "id_complete": "R-997907", + "id_parent": "R-997907", "impacts": "", "introduced": "dublin", "is_need": true, @@ -100355,6 +102120,8 @@ "full_title": "", "hide_links": "", "id": "R-99794", + "id_complete": "R-99794", + "id_parent": "R-99794", "impacts": "", "introduced": "", "is_need": true, @@ -100388,6 +102155,8 @@ "full_title": "", "hide_links": "", "id": "R-99798", + "id_complete": "R-99798", + "id_parent": "R-99798", "impacts": "", "introduced": "", "is_need": true, @@ -100421,6 +102190,8 @@ "full_title": "", "hide_links": "", "id": "R-99812", + "id_complete": "R-99812", + "id_parent": "R-99812", "impacts": "", "introduced": "", "is_need": true, @@ -100448,7 +102219,7 @@ "validation_mode": "static" } }, - "needs_amount": 814 + "needs_amount": 819 } } }
\ No newline at end of file diff --git a/ice_validator/preload/environment.py b/ice_validator/preload/environment.py index c0f357a..083be9b 100644 --- a/ice_validator/preload/environment.py +++ b/ice_validator/preload/environment.py @@ -90,6 +90,15 @@ class CloudServiceArchive: if props.get("type") == "org.openecomp.groups.VfModule" } + def get_vnf_type(self, module): + """ + Concatenation of service and VF instance name + """ + service_name = self.service_name + instance_name = self.get_vf_module_resource_name(module) + if service_name and instance_name: + return "{}/{}".format(service_name, instance_name) + @property def vf_module_resource_names(self): """ @@ -125,8 +134,9 @@ class CloudServiceArchive: def_dir = csar_dir / "Definitions" check( def_dir.exists(), - f"CSAR is invalid. {csar_dir.as_posix()} does not contain a " - f"Definitions directory.", + "CSAR is invalid. {} does not contain a Definitions directory.".format( + csar_dir.as_posix() + ), ) return yaml_files(def_dir) @@ -158,17 +168,13 @@ class CloudServiceArchive: return self._service.get("metadata", {}).get("name") def __repr__(self): - return f"CSAR (path={self.csar_path.name}, name={self.service_name})" + return "CSAR (path={}, name={})".format(self.csar_path.name, self.service_name) def __str__(self): return repr(self) class PreloadEnvironment: - """ - A - """ - def __init__(self, env_dir, parent=None): self.base_dir = Path(env_dir) self.parent = parent @@ -219,7 +225,7 @@ class PreloadEnvironment: return [e for e in all_envs if e.is_leaf] def get_module(self, name): - name = name if name.lower().endswith(".env") else f"{name}.env".lower() + name = name if name.lower().endswith(".env") else "{}.env".format(name).lower() if name not in self.module_names: return {} result = {} @@ -228,6 +234,13 @@ class PreloadEnvironment: for m in (parent_module, self.defaults, module): if m: result.update(m) + if self.csar: + vnf_type = self.csar.get_vnf_type(name) + if vnf_type: + result["vnf-type"] = vnf_type + model_name = self.csar.get_vf_module_model_name(name) + if model_name: + result["vf-module-model-name"] = model_name return result @property @@ -264,4 +277,4 @@ class PreloadEnvironment: return self.base_dir.name def __repr__(self): - return f"PreloadEnvironment(name={self.name})" + return "PreloadEnvironment(name={})".format(self.name) diff --git a/ice_validator/preload/generator.py b/ice_validator/preload/generator.py index 38a051d..3da4014 100644 --- a/ice_validator/preload/generator.py +++ b/ice_validator/preload/generator.py @@ -38,10 +38,23 @@ import json import os from abc import ABC, abstractmethod +from collections import OrderedDict import yaml +def represent_ordered_dict(dumper, data): + value = [] + + for item_key, item_value in data.items(): + node_key = dumper.represent_data(item_key) + node_value = dumper.represent_data(item_value) + + value.append((node_key, node_value)) + + return yaml.nodes.MappingNode(u"tag:yaml.org,2002:map", value) + + def get_json_template(template_dir, template_name): template_name = template_name + ".json" with open(os.path.join(template_dir, template_name)) as f: @@ -109,6 +122,7 @@ class AbstractPreloadGenerator(ABC): self.current_module_env = {} self.base_output_dir = base_output_dir self.env_cache = {} + self.module_incomplete = False @classmethod @abstractmethod @@ -163,9 +177,19 @@ class AbstractPreloadGenerator(ABC): def replace(self, param_name, alt_message=None, single=False): value = self.get_param(param_name, single) + value = None if value == "CHANGEME" else value if value: return value - return alt_message or replace(param_name) + else: + self.module_incomplete = True + return alt_message or replace(param_name) + + def start_module(self, module, env): + """Initialize/reset the environment for the module""" + self.current_module = module + self.current_module_env = env + self.module_incomplete = False + self.env_cache = {} def generate_environments(self, module): """ @@ -179,9 +203,7 @@ class AbstractPreloadGenerator(ABC): print("\nGenerating Preloads for {}".format(module)) print("-" * 50) print("... generating blank template") - self.current_module = module - self.current_module_env = {} - self.env_cache = {} + self.start_module(module, {}) blank_preload_dir = self.make_preload_dir(self.base_output_dir) self.generate_module(module, blank_preload_dir) self.generate_preload_env(module, blank_preload_dir) @@ -193,12 +215,8 @@ class AbstractPreloadGenerator(ABC): env.name, output_dir ) ) - self.env_cache = {} - self.current_module = module - self.current_module_env = env.get_module(module.label) + self.start_module(module, env.get_module(module.label)) self.generate_module(module, output_dir) - self.current_module = None - self.current_module_env = None def make_preload_dir(self, base_dir): path = os.path.join(base_dir, self.output_sub_dir()) @@ -206,17 +224,23 @@ class AbstractPreloadGenerator(ABC): os.makedirs(path, exist_ok=True) return path - def generate_preload_env(self, module, blank_preload_dir): + @staticmethod + def generate_preload_env(module, blank_preload_dir): """ Create a .env template suitable for completing and using for preload generation from env files. """ + yaml.add_representer(OrderedDict, represent_ordered_dict) output_dir = os.path.join(blank_preload_dir, "preload_env") - output_file = os.path.join(output_dir, "{}.env".format(module.vnf_name)) + env_file = os.path.join(output_dir, "{}.env".format(module.vnf_name)) + defaults_file = os.path.join(output_dir, "defaults.yaml") if not os.path.exists(output_dir): os.makedirs(output_dir, exist_ok=True) - with open(output_file, "w") as f: + with open(env_file, "w") as f: yaml.dump(module.env_template, f) + if not os.path.exists(defaults_file): + with open(defaults_file, "w") as f: + yaml.dump({"vnf_name": "CHANGEME"}, f) def get_param(self, param_name, single): """ @@ -234,6 +258,7 @@ class AbstractPreloadGenerator(ABC): if not value: value = self.current_module_env.get(param_name) if isinstance(value, list): + value = value.copy() value.reverse() self.env_cache[param_name] = value if value and single and isinstance(value, list): diff --git a/ice_validator/preload/model.py b/ice_validator/preload/model.py index e37c914..c772465 100644 --- a/ice_validator/preload/model.py +++ b/ice_validator/preload/model.py @@ -37,6 +37,7 @@ import os import shutil from abc import ABC, abstractmethod +from collections import OrderedDict from preload.generator import yield_by_count from preload.environment import PreloadEnvironment @@ -55,6 +56,8 @@ from tests.utils import nested_dict from tests.utils.vm_types import get_vm_type_for_nova_server from config import Config, get_generator_plugins +from tests.test_environment_file_parameters import ENV_PARAMETER_SPEC + CHANGE = "CHANGEME" @@ -259,7 +262,8 @@ class VnfModule(FilterBaseOutputs): self.heat = Heat(filepath=template_file, envpath=env_path(template_file)) env_pair = get_environment_pair(self.template_file) env_yaml = env_pair.get("eyml") if env_pair else {} - self.parameters = env_yaml.get("parameters") or {} + self.parameters = {key: "" for key in self.heat.parameters} + self.parameters.update(env_yaml.get("parameters") or {}) self.networks = [] self.virtual_machine_types = self._create_vm_types() self._add_networks() @@ -324,7 +328,18 @@ class VnfModule(FilterBaseOutputs): @property def env_specs(self): """Return available Environment Spec definitions""" - return Config().env_specs + try: + return Config().env_specs + except FileNotFoundError: + return [ENV_PARAMETER_SPEC] + + @property + def platform_provided_params(self): + result = set() + for spec in self.env_specs: + for props in spec["PLATFORM PROVIDED"]: + result.add(props["property"][-1]) + return result @property def env_template(self): @@ -332,11 +347,12 @@ class VnfModule(FilterBaseOutputs): Returns a a template .env file that can be completed to enable preload generation. """ - params = {} - params["vnf-name"] = CHANGE + params = OrderedDict() params["vnf-type"] = CHANGE params["vf-module-model-name"] = CHANGE params["vf_module_name"] = CHANGE + for az in self.availability_zones: + params[az] = CHANGE for network in self.networks: params[network.name_param] = CHANGE for param in set(network.subnet_params): @@ -351,10 +367,11 @@ class VnfModule(FilterBaseOutputs): excluded = get_preload_excluded_parameters( self.template_file, persistent_only=True ) + excluded.update(self.platform_provided_params) for name, value in self.parameters.items(): if name in excluded: continue - params[name] = value + params[name] = value if value else CHANGE return {"parameters": params} @property @@ -367,7 +384,8 @@ class VnfModule(FilterBaseOutputs): :return: dict of parameters suitable for the preload """ excluded = get_preload_excluded_parameters(self.template_file) - return {k: v for k, v in self.parameters.items() if k not in excluded} + params = {k: v for k, v in self.parameters.items() if k not in excluded} + return params def _get_vm_type(self, vm_type): for vm in self.virtual_machine_types: diff --git a/ice_validator/preload_grapi/grapi_generator.py b/ice_validator/preload_grapi/grapi_generator.py index 2060cb4..d75fbbd 100644 --- a/ice_validator/preload_grapi/grapi_generator.py +++ b/ice_validator/preload_grapi/grapi_generator.py @@ -74,7 +74,8 @@ class GrApiPreloadGenerator(AbstractPreloadGenerator): template = get_json_template(DATA_DIR, "preload_template") self._populate(template, vnf_module) vnf_name = vnf_module.vnf_name - outfile = "{}/{}.json".format(output_dir, vnf_name) + incomplete = "_incomplete" if self.module_incomplete else "" + outfile = "{}/{}{}.json".format(output_dir, vnf_name, incomplete) with open(outfile, "w") as f: json.dump(template, f, indent=4) diff --git a/ice_validator/preload_vnfapi/vnfapi_generator.py b/ice_validator/preload_vnfapi/vnfapi_generator.py index 517c789..87a8408 100644 --- a/ice_validator/preload_vnfapi/vnfapi_generator.py +++ b/ice_validator/preload_vnfapi/vnfapi_generator.py @@ -76,10 +76,32 @@ class VnfApiPreloadGenerator(AbstractPreloadGenerator): def generate_module(self, vnf_module, output_dir): preload = get_json_template(DATA_DIR, "preload_template") self._populate(preload, vnf_module) - outfile = "{}/{}.json".format(output_dir, vnf_module.vnf_name) + incomplete = "_incomplete" if self.module_incomplete else "" + outfile = "{}/{}{}.json".format(output_dir, vnf_module.vnf_name, incomplete) with open(outfile, "w") as f: json.dump(preload, f, indent=4) + def _populate(self, preload, vnf_module): + self._add_vnf_metadata(preload) + self._add_availability_zones(preload, vnf_module) + self._add_vnf_networks(preload, vnf_module) + self._add_vms(preload, vnf_module) + self._add_parameters(preload, vnf_module) + + def _add_vnf_metadata(self, preload): + vnf_meta = preload["input"]["vnf-topology-information"][ + "vnf-topology-identifier" + ] + vnf_meta["vnf-name"] = self.replace("vnf_name") + vnf_meta["generic-vnf-type"] = self.replace( + "vnf-type", + "VALUE FOR: Concatenation of <Service Name>/" + "<VF Instance Name> MUST MATCH SDC", + ) + vnf_meta["vnf-type"] = self.replace( + "vf-module-model-name", "VALUE FOR: <vfModuleModelName> from CSAR or SDC" + ) + def add_floating_ips(self, network_template, network): # only one floating IP is really supported, in the preload model # so for now we'll just use the last one. We might revisit this @@ -102,12 +124,6 @@ class VnfApiPreloadGenerator(AbstractPreloadGenerator): ) network_template["ip-count-ipv6"] += 1 - def _populate(self, preload, vnf_module): - self._add_availability_zones(preload, vnf_module) - self._add_vnf_networks(preload, vnf_module) - self._add_vms(preload, vnf_module) - self._add_parameters(preload, vnf_module) - def _add_availability_zones(self, preload, vnf_module): zones = preload["input"]["vnf-topology-information"]["vnf-assignments"][ "availability-zones" diff --git a/ice_validator/tests/conftest.py b/ice_validator/tests/conftest.py index 9868067..ecaf662 100644 --- a/ice_validator/tests/conftest.py +++ b/ice_validator/tests/conftest.py @@ -833,7 +833,7 @@ def pytest_addoption(parser): "--env-directory", dest="env_dir", action="store", - help="optional directory of .env files for preload generation" + help="optional directory of .env files for preload generation", ) parser.addoption( @@ -843,7 +843,7 @@ def pytest_addoption(parser): help=( "Preload format to create (multiple allowed). If not provided " "then all available formats will be created: {}" - ).format(", ".join(get_generator_plugin_names())) + ).format(", ".join(get_generator_plugin_names())), ) diff --git a/ice_validator/tests/fixtures/test_incremental_module/fail/base.yaml b/ice_validator/tests/fixtures/test_incremental_module/fail/base.yaml new file mode 100644 index 0000000..5e3cafd --- /dev/null +++ b/ice_validator/tests/fixtures/test_incremental_module/fail/base.yaml @@ -0,0 +1,47 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# +# VERSION: '1.0.0' + +--- +parameters: + +resources: + + oam_network: + type: OS::Neutron::Net diff --git a/ice_validator/app_tests/test_app.py b/ice_validator/tests/fixtures/test_incremental_module/fail/incremental.yaml index fe99b0a..0a77436 100644 --- a/ice_validator/app_tests/test_app.py +++ b/ice_validator/tests/fixtures/test_incremental_module/fail/incremental.yaml @@ -36,16 +36,11 @@ # ============LICENSE_END============================================ # # +# VERSION: '1.0.0' -from threading import Thread +--- +parameters: -from vvp import ValidatorApp, VERSION +resources: -def test_app_starts(): - app = ValidatorApp() - assert "VNF Validation Tool" in app.title - assert VERSION in app.title - app_thread = Thread(target=app.start, args=()) - app_thread.daemon = True - app.config.command_queue.put("SHUTDOWN") diff --git a/ice_validator/tests/fixtures/test_incremental_module/pass/pass0.yaml b/ice_validator/tests/fixtures/test_incremental_module/pass/pass0.yaml new file mode 100644 index 0000000..3758c7a --- /dev/null +++ b/ice_validator/tests/fixtures/test_incremental_module/pass/pass0.yaml @@ -0,0 +1,50 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# +# VERSION: '1.0.0' + +--- + +resources: + + my_instance: + type: OS::Nova::Server + properties: + key_name: my_key + image: F18-x86_64-cfntools + flavor: m1.small diff --git a/ice_validator/tests/fixtures/test_incremental_module/pass/pass0_base.yaml b/ice_validator/tests/fixtures/test_incremental_module/pass/pass0_base.yaml new file mode 100644 index 0000000..420b06f --- /dev/null +++ b/ice_validator/tests/fixtures/test_incremental_module/pass/pass0_base.yaml @@ -0,0 +1,48 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# +# VERSION: '1.0.0' + +--- +parameters: + +resources: + + oam_network: + type: OS::Neutron::Net + diff --git a/ice_validator/tests/helpers.py b/ice_validator/tests/helpers.py index 291464d..764be11 100644 --- a/ice_validator/tests/helpers.py +++ b/ice_validator/tests/helpers.py @@ -393,7 +393,10 @@ def unzip(zip_path, target_dir): :param zip_path: path to valid zip file :param target_dir: directory to unzip zip_path """ - check(zipfile.is_zipfile(zip_path), "{} is not a valid zipfile or does not exist".format(zip_path)) + check( + zipfile.is_zipfile(zip_path), + "{} is not a valid zipfile or does not exist".format(zip_path), + ) archive = zipfile.ZipFile(zip_path) if not os.path.exists(target_dir): os.makedirs(target_dir, exist_ok=True) diff --git a/ice_validator/tests/structures.py b/ice_validator/tests/structures.py index 12bfc63..0223bc3 100644 --- a/ice_validator/tests/structures.py +++ b/ice_validator/tests/structures.py @@ -495,7 +495,10 @@ class NeutronPortProcessor(HeatProcessor): An OS::Nova:Port with the property binding:vnic_type """ resource_properties = nested_dict.get(resource, "properties", default={}) - if nested_dict.get(resource, "type") == cls.resource_type and resource_properties.get("binding:vnic_type", "") == "direct": + if ( + nested_dict.get(resource, "type") == cls.resource_type + and resource_properties.get("binding:vnic_type", "") == "direct" + ): return True return False @@ -785,10 +788,12 @@ class Resource(object): try: return int(count_value) except (ValueError, TypeError): - print(( - "WARNING: Invalid value for count parameter {}. Expected " - "an integer, but got {}. Defaulting to 1" - ).format(count_param, count_value)) + print( + ( + "WARNING: Invalid value for count parameter {}. Expected " + "an integer, but got {}. Defaulting to 1" + ).format(count_param, count_value) + ) return 1 @property diff --git a/ice_validator/tests/test_contrail_instance_ip_parameters.py b/ice_validator/tests/test_contrail_instance_ip_parameters.py index 312c8e9..4071f66 100644 --- a/ice_validator/tests/test_contrail_instance_ip_parameters.py +++ b/ice_validator/tests/test_contrail_instance_ip_parameters.py @@ -100,13 +100,13 @@ sid_regx_dict = { "string": { "readable": "{network-role}_subnet_id or {network-role}_v6_subnet_id", "machine": RE_EXTERNAL_PARAM_SID, - }, + } }, "internal": { "string": { "readable": "int_{network-role}_subnet_id or int_{network-role}_v6_subnet_id", "machine": RE_INTERNAL_PARAM_SID, - }, + } }, "parameter_to_resource_comparisons": ["network_role"], } @@ -114,22 +114,46 @@ sid_regx_dict = { @validates("R-100000", "R-100010", "R-100030", "R-100050", "R-100070") def test_contrail_external_instance_ip_address_parameter(yaml_file): - check_parameter_format(yaml_file, iip_regx_dict, "external", ContrailV2InstanceIpProcessor, "instance_ip_address") + check_parameter_format( + yaml_file, + iip_regx_dict, + "external", + ContrailV2InstanceIpProcessor, + "instance_ip_address", + ) @validates("R-100000", "R-100090", "R-100110", "R-100130", "R-100150") def test_contrail_internal_instance_ip_address_parameter(yaml_file): - check_parameter_format(yaml_file, iip_regx_dict, "internal", ContrailV2InstanceIpProcessor, "instance_ip_address") + check_parameter_format( + yaml_file, + iip_regx_dict, + "internal", + ContrailV2InstanceIpProcessor, + "instance_ip_address", + ) @validates("R-100190", "R-100200", "R-100220") def test_contrail_external_instance_subnet_id_parameter(yaml_file): - check_parameter_format(yaml_file, sid_regx_dict, "external", ContrailV2InstanceIpProcessor, "subnet_uuid") + check_parameter_format( + yaml_file, + sid_regx_dict, + "external", + ContrailV2InstanceIpProcessor, + "subnet_uuid", + ) @validates("R-100190", "R-100240", "R-100260") def test_contrail_internal_instance_subnet_id_parameter(yaml_file): - check_parameter_format(yaml_file, sid_regx_dict, "internal", ContrailV2InstanceIpProcessor, "subnet_uuid") + check_parameter_format( + yaml_file, + sid_regx_dict, + "internal", + ContrailV2InstanceIpProcessor, + "subnet_uuid", + ) @validates("R-100240", "R-100260") @@ -150,10 +174,12 @@ def test_contrail_incremental_module_internal_subnet_usage(yaml_files): if not subnet_param: continue if subnet_param not in base_outputs: - errors.append(( - "Resource ({}) is designated as an internal IP, but its " - "subnet_uuid parameter ({}) does not refer to subnet in " - "this template nor is it defined in the output section " - "of the base module ({})" - ).format(r_id, subnet_param, os.path.basename(base_path))) + errors.append( + ( + "Resource ({}) is designated as an internal IP, but its " + "subnet_uuid parameter ({}) does not refer to subnet in " + "this template nor is it defined in the output section " + "of the base module ({})" + ).format(r_id, subnet_param, os.path.basename(base_path)) + ) assert not errors, ". ".join(errors) diff --git a/ice_validator/tests/test_contrail_resource_id.py b/ice_validator/tests/test_contrail_resource_id.py index 06b41b4..dbbedbb 100644 --- a/ice_validator/tests/test_contrail_resource_id.py +++ b/ice_validator/tests/test_contrail_resource_id.py @@ -139,9 +139,7 @@ def test_contrail_servicehealthcheck_resource_id(yaml_file): **MUST** contain the ``{vm-type}``. """ - run_test( - yaml_file, ContrailV2ServiceHealthCheckProcessor, get_vm_types, "vm_type" - ) + run_test(yaml_file, ContrailV2ServiceHealthCheckProcessor, get_vm_types, "vm_type") @validates("R-16437") diff --git a/ice_validator/tests/test_environment_file_parameters.py b/ice_validator/tests/test_environment_file_parameters.py index 69485bc..99d76a0 100644 --- a/ice_validator/tests/test_environment_file_parameters.py +++ b/ice_validator/tests/test_environment_file_parameters.py @@ -59,13 +59,13 @@ from tests.utils.nested_files import file_is_a_nested_template # at the end of a property to make it a tuple. ENV_PARAMETER_SPEC = { "PLATFORM PROVIDED": [ - {"property": ("vnf_id",), "persistent": False, "kwargs": {}}, - {"property": ("vnf_name",), "persistent": False, "kwargs": {}}, - {"property": ("vf_module_id",), "persistent": False, "kwargs": {}}, - {"property": ("vf_module_index",), "persistent": False, "kwargs": {}}, - {"property": ("vf_module_name",), "persistent": False, "kwargs": {}}, - {"property": ("workload_context",), "persistent": False, "kwargs": {}}, - {"property": ("environment_context",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "vnf_id",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "vnf_name",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "vf_module_id",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "vf_module_index",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "vf_module_name",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "workload_context",), "persistent": False, "kwargs": {}}, + {"property": ("metadata", "environment_context",), "persistent": False, "kwargs": {}}, {"property": (r"^(.+?)_net_fqdn$",), "persistent": False, "kwargs": {}}, ], "ALL": [{"property": ("name",), "persistent": False, "kwargs": {}}], @@ -90,13 +90,13 @@ ENV_PARAMETER_SPEC = { }, {"property": ("fixed_ips", "subnet"), "persistent": False, "kwargs": {}}, { - "property": ("fixed_ips", "allowed_address_pairs"), + "property": ("allowed_address_pairs", "ip_address"), "persistent": False, "network_type": "external", "kwargs": {"exclude_parameter": re.compile(r"^(.+?)_int_(.+?)$")}, }, { - "property": ("fixed_ips", "allowed_address_pairs"), + "property": ("allowed_address_pairs", "ip_address"), "persistent": True, "network_type": "internal", "kwargs": {"exclude_parameter": re.compile(r"^((?!_int_).)*$")}, @@ -235,19 +235,25 @@ def get_preload_excluded_parameters(yaml_file, persistent_only=False, env_spec=N if persistent_only and not spec.get("persistent"): continue results.extend(get_template_parameters(yaml_file, resource_type, - spec, all_resources)) - return {item["param"] for item in results} - - -def get_template_parameters(yaml_file, resource_type, spec, all_resources=False): + spec, all_resources, nested_resources=True)) + results = {item["param"] for item in results} + for param in Heat(yaml_file).parameters: + # AZs often are manipulated and passed into nested templates making + # them difficult to detect by looking for the assignment. We'll + # just extract them from the parameters if they are there to be safe + if re.match(r"availability_zone_\d+", param): + results.add(param) + return results + + +def get_template_parameters(yaml_file, resource_type, spec, all_resources=False, nested_resources=False): parameters = [] heat = Heat(yaml_file) if all_resources: - resources = heat.resources + resources = heat.resources if not nested_resources else heat.get_all_resources() else: - resources = heat.get_resource_by_type(resource_type) - + resources = heat.get_resource_by_type(resource_type, all_resources=nested_resources) for rid, resource_props in resources.items(): for param in prop_iterator(resource_props, *spec.get("property")): if param and get_param(param) and param_helper(spec, get_param(param), rid): @@ -255,7 +261,6 @@ def get_template_parameters(yaml_file, resource_type, spec, all_resources=False) # then checking if its actually using get_param # then checking a custom helper function (mostly for internal vs external networks) parameters.append({"resource": rid, "param": get_param(param)}) - return parameters diff --git a/ice_validator/tests/test_fixed_ips_include_vm_type_network_role.py b/ice_validator/tests/test_fixed_ips_include_vm_type_network_role.py index 2ce1bcf..feb48e5 100644 --- a/ice_validator/tests/test_fixed_ips_include_vm_type_network_role.py +++ b/ice_validator/tests/test_fixed_ips_include_vm_type_network_role.py @@ -87,9 +87,23 @@ fip_regx_dict = { @validates("R-40971", "R-35735", "R-23503", "R-71577", "R-04697", "R-34037") def test_external_fip_format(yaml_file): - check_parameter_format(yaml_file, fip_regx_dict, "external", NeutronPortProcessor, "fixed_ips", "ip_address") + check_parameter_format( + yaml_file, + fip_regx_dict, + "external", + NeutronPortProcessor, + "fixed_ips", + "ip_address", + ) @validates("R-27818", "R-29765", "R-85235", "R-78380", "R-34037") def test_internal_fip_format(yaml_file): - check_parameter_format(yaml_file, fip_regx_dict, "internal", NeutronPortProcessor, "fixed_ips", "ip_address") + check_parameter_format( + yaml_file, + fip_regx_dict, + "internal", + NeutronPortProcessor, + "fixed_ips", + "ip_address", + ) diff --git a/ice_validator/tests/test_incremental_module.py b/ice_validator/tests/test_incremental_module.py new file mode 100644 index 0000000..606dfe4 --- /dev/null +++ b/ice_validator/tests/test_incremental_module.py @@ -0,0 +1,59 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START==================================================== +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +import os + +from tests.helpers import validates +from tests.utils.incrementals import is_incremental_module + +from tests.structures import Heat + + +@validates("R-610030") +def test_incremental_module_has_server(yaml_files): + modules = (f for f in yaml_files if is_incremental_module(f, yaml_files)) + errors = [] + for module in modules: + servers = Heat(filepath=module).get_resource_by_type( + "OS::Nova::Server", all_resources=True + ) + if not servers: + errors.append(os.path.basename(module)) + + assert not errors, ( + "The following incremental modules do not contain an OS::Nova::Server " + "as required: {}".format(", ".join(errors)) + ) diff --git a/ice_validator/tests/test_nested_parameters.py b/ice_validator/tests/test_nested_parameters.py index 47c4d90..97d2f76 100644 --- a/ice_validator/tests/test_nested_parameters.py +++ b/ice_validator/tests/test_nested_parameters.py @@ -81,7 +81,12 @@ def check_nested_parameter_doesnt_change(yaml_file, nresource_type, *nprops): r = Resource(resource_id=resource_id, resource=resource) properties = r.get_nested_properties() resources = r.get_nested_yaml(base_dir).get("resources", {}) - for nrid, nresource_dict in resources.items(): # iterate through nested file until found target r type + for ( + nrid, + nresource_dict, + ) in ( + resources.items() + ): # iterate through nested file until found target r type if ( nresource_dict.get("type") @@ -89,10 +94,19 @@ def check_nested_parameter_doesnt_change(yaml_file, nresource_type, *nprops): ): continue - for nparam in prop_iterator(nresource_dict, *nprops): # get iterator of all target parameters - if nparam and "get_param" in nparam: # iterator yields None if parameter isn't found + for nparam in prop_iterator( + nresource_dict, *nprops + ): # get iterator of all target parameters + if ( + nparam and "get_param" in nparam + ): # iterator yields None if parameter isn't found nparam = nparam.get("get_param") - for k1, v1 in properties.items(): # found nparam, now comparing to parent template + for ( + k1, + v1, + ) in ( + properties.items() + ): # found nparam, now comparing to parent template if isinstance(v1, dict) and "get_param" in v1: parameter = v1.get("get_param") # k1: nested resource parameter definition @@ -105,7 +119,9 @@ def check_nested_parameter_doesnt_change(yaml_file, nresource_type, *nprops): if isinstance(parameter, list): parameter = parameter[0] - if k1 != nparam: # we only care about the parameter we found in nested template + if ( + k1 != nparam + ): # we only care about the parameter we found in nested template continue if k1 != parameter: @@ -129,6 +145,7 @@ def check_nested_parameter_doesnt_change(yaml_file, nresource_type, *nprops): # def test_parameter_name_doesnt_change_in_nested_template(yaml_file): # check_nested_parameter_doesnt_change(yaml_file) + @validates("R-708564") def test_server_name_parameter_name_doesnt_change_in_nested_template(heat_template): check_nested_parameter_doesnt_change(heat_template, "OS::Nova::Server", "name") @@ -257,7 +274,7 @@ def test_vmi_aap_parameter_name_doesnt_change_in_nested_template(heat_template): "virtual_machine_interface_allowed_address_pairs", "virtual_machine_interface_allowed_address_pairs_allowed_address_pair", "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip", - "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix" + "virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix", ) diff --git a/ice_validator/tests/test_non_server_name.py b/ice_validator/tests/test_non_server_name.py index 7139c9b..9361389 100644 --- a/ice_validator/tests/test_non_server_name.py +++ b/ice_validator/tests/test_non_server_name.py @@ -151,7 +151,9 @@ def test_non_server_name(yaml_file): def test_non_server_name_unique(heat_template): """Test name has unique value """ - list_nest = nested_files.get_list_of_nested_files(heat_template, os.path.dirname(heat_template)) + list_nest = nested_files.get_list_of_nested_files( + heat_template, os.path.dirname(heat_template) + ) list_nest.append(heat_template) non_servers = {} for yaml_file in list_nest: diff --git a/ice_validator/tests/utils/vm_types.py b/ice_validator/tests/utils/vm_types.py index ae14336..ae6d7ff 100644 --- a/ice_validator/tests/utils/vm_types.py +++ b/ice_validator/tests/utils/vm_types.py @@ -83,7 +83,11 @@ def get_vm_types_for_resource(resource): def is_nova_server(resource): - return "type" in resource and "properties" in resource and resource.get("type") == "OS::Nova::Server" + return ( + "type" in resource + and "properties" in resource + and resource.get("type") == "OS::Nova::Server" + ) def get_vm_type_for_nova_server(resource): diff --git a/ice_validator/vvp.py b/ice_validator/vvp.py index cc2c66f..a998fd1 100644 --- a/ice_validator/vvp.py +++ b/ice_validator/vvp.py @@ -477,7 +477,7 @@ class ValidatorApp: settings_row += 1 self.create_preloads = BooleanVar(self._root, name="create_preloads") - self.create_preloads.set(0) + self.create_preloads.set(self.config.default_create_preloads) create_preloads_label = Label( settings_frame, text="Create Preload from Env Files:", @@ -507,8 +507,9 @@ class ValidatorApp: env_dir_label = Label(actions, text="Env Files:") env_dir_label.grid(row=5, column=1, pady=5, sticky=W) self.env_dir = StringVar(self._root, name="env_dir") + env_dir_state = NORMAL if self.create_preloads.get() else DISABLED self.env_dir_entry = Entry( - actions, width=40, textvariable=self.env_dir, state=DISABLED + actions, width=40, textvariable=self.env_dir, state=env_dir_state ) self.env_dir_entry.grid(row=5, column=2, pady=5, sticky=W) env_dir_browse = Button(actions, text="...", command=self.ask_env_dir_source) @@ -563,9 +564,9 @@ class ValidatorApp: self.input_format, self.report_format, self.halt_on_failure, + self.preload_format, + self.create_preloads, ) - if self.config.preload_formats: - self.config.watch(self.preload_format) self.schedule(self.execute_pollers) if self.config.terms_link_text and not self.config.are_terms_accepted: TermsAndConditionsDialog(parent_frame, self.config) |