Loading SOL005/NSLifecycleManagement-API/descriptors/SOL001/vnf-b-1_VNF.yaml 0 → 100644 +168 −0 Original line number Diff line number Diff line tosca_definitions_version: tosca_simple_yaml_1_2 description: "TST010 reference VNF-B" metadata: descriptor_id: "VNF-B" vendor: "ETSI TST WG" version: "2.0" topology_template: substitution_mappings: node_type: "tosca.nodes.nfv.VNF" requirements: virtual_link_management: [management, virtual_link_management] virtual_link_left: [left, virtual_link_left] virtual_link_right: [right, virtual_link_right] node_templates: VDU-B-1: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-1-vcd" descriptor: "Description of VDU-B-1" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 2 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 4096 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-1-vsd" VDU-B-2: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-2-vcd" descriptor: "Description of VDU-B-2" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 4 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 6144 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-2-vsd" right: type: "tosca.nodes.nfv.VduCp" properties: order: 1 requirements: virtual_link_right: virtual_binding: VDU-B-2 management: type: "tosca.nodes.nfv.VduCp" properties: order: 0 requirements: virtual_link_management: virtual_binding: VDU-B-1 left: type: "tosca.nodes.nfv.VduCp" properties: order: 2 requirements: virtual_link_left: virtual_binding: VDU-B-1 internal_vl: type: tosca.nodes.nfv.VnfVirtualLink properties: connectivity_type: layer_protocols: [ ipv4 ] description: Internal Virtual link in the VNF vl_profile: max_bitrate_requirements: root: 100000 leaf: 20000 min_bitrate_requirements: root: 10000 leaf: 10000 internal_vdu_b_1_cp: type: tosca.nodes.nfv.VduCp properties: order: 2 requirements: - virtual_binding: VDU-B-1 - virtual_link: internal_vl internal_vdu_b_2_cp: type: tosca.nodes.nfv.VduCp properties: order: 0 requirements: - virtual_binding: VDU-B-2 - virtual_link: internal_vl vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-1.qcow2 vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-2.qcow2 vnf_b_1_VNF: type: "tosca.nodes.nfv.VNF" properties: descriptor_id: "VNF-B-2VDUs" descriptor_version: "2.0" provider: "ETSI TST WG" product_name: "VNF-B-2VDUs" software_version: "2.0" product_info_name: "VNF-B-2VDUs" product_info_description: "TST010 reference VNF-B with 2 VDUs" flavour_id: "VNF-B-2VDU_flavor" flavour_description: "VNF-B with 2 VDUs flavor" vnfm_info: etsivnfm: - v2.3.1 interfaces: Vnflcm: scale: implementation: scale-example.yaml terminate: implementation: terminate-example.yaml operate: implementation: operate-example.yaml SOL005/NSLifecycleManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2df_SOL006.yaml 0 → 100644 +105 −0 Original line number Diff line number Diff line nfv: vnfd: - id: VNF-B-2df provider: ETSI TST WG product-name: TST010 reference VNF-B with 2 DFs software-version: '2.1' version: '2.1' vnfm-info: ETSI VNFM vdu: id: vdu-b-1 name: VNF-B VDU 1 int-cpd: - id: left layer-protocol: ethernet - id: management layer-protocol: ethernet - id: right layer-protocol: ethernet virtual-compute-desc: vdu-b-1-vcd virtual-storage-desc: vdu-b-1-vsd sw-image-desc: vdu-b-1-image virtual-compute-desc: id: vdu-b-1-vcd virtual-memory: size: '4.0' virtual-cpu: num-virtual-cpu: '2' virtual-storage-desc: id: vdu-b-1-vsd type-of-storage: root-storage size-of-storage: '0' sw-image-desc: id: vdu-b-1-image name: VNF-B image version: '1.1' checksum: algorithm: sha-224 hash: somehashfortst010 container-format: bare disk-format: qcow2 min-disk: '1' min-ram: '2.0' size: '1' image: 'http://someurl.com/VNF-B.qcow2' ext-cpd: - id: ext-b-left int-cpd: vdu-id: vdu-b-1 cpd: left layer-protocol: ethernet - id: management int-cpd: vdu-id: vdu-b-1 cpd: management layer-protocol: ethernet - id: ext-b-right int-cpd: vdu-id: vdu-b-1 cpd: right layer-protocol: ethernet df: - id: small vdu-profile: id: vdu-b-1 min-number-of-instances: '1' max-number-of-instances: '2' instantiation-level: - id: double vdu-level: vdu-id: vdu-b-1 number-of-instances: '2' - id: single vdu-level: vdu-id: vdu-b-1 number-of-instances: '1' default-instantiation-level: single lcm-operations-configuration: scale-vnf-to-level-op-config: arbitrary-target-levels-supported: 'true' terminate-vnf-op-config: min-graceful-termination: '1' operate-vnf-op-config: min-graceful-stop-timeout: '1' - id: big vdu-profile: id: vdu-b-1 min-number-of-instances: '1' max-number-of-instances: '4' instantiation-level: - id: double vdu-level: vdu-id: vdu-b-1 number-of-instances: '2' - id: triple vdu-level: vdu-id: vdu-b-1 number-of-instances: '3' default-instantiation-level: double lcm-operations-configuration: scale-vnf-to-level-op-config: arbitrary-target-levels-supported: 'true' terminate-vnf-op-config: min-graceful-termination: '1' operate-vnf-op-config: min-graceful-stop-timeout: '1' SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot +65 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_veri Library Process Library MockServerLibrary Library String Variables descriptors/SOL001/vnf-b-1_VNF.yaml *** Keywords *** Loading Loading @@ -174,12 +175,75 @@ Send Post Request to create new VNF Package Resource Log Creating a new VNF Package Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to VNF Package ${body} = Get File jsons/CreateVnfPkgInfoRequest.json Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} POST ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_packages ${body} ${output}= Output response Set Suite Variable ${response} ${output} Get key for VNF Descriptor FOR ${key} IN @{topology_template.node_templates.keys()} Log ${key} ${check1}= Run Keyword And Return Status Should End With ${key} VNF Run Keyword If ${check1} Set Global Variable ${vnfKey} ${key} END Add VNF Descriptor Content to VNF Package Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 VNF Package ELSE Parse SOL006 VNF Package Parse SOL001 VNF Package Get key for VNF Descriptor ${descriptor_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_id} ${provider}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.provider} ${product_name}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.product_name} ${software_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.software_version} ${descriptor_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_version} Parse SOL006 VNF Package ${descriptor_id}= Get Variable Value ${nfv.vnfd[0].id} ${provider}= Get Variable Value ${nfv.vnfd[0].provider} ${product_name}= Get Variable Value ${nfv.vnfd[0].product-name} ${software_version}= Get Variable Value ${nfv.vnfd[0].software-version} ${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version} Check HTTP Response Body vnfPkginfo content against VNF Descriptor #${check_descriptors} flag, 1 to check descriptors Run Keyword If ${check_descriptors} == 1 Check Individual VNFPkgInfo Content Check Individual VNFPkgInfo Content Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 ELSE Parse SOL006 Parse SOL001 Get key for VNF Descriptor ${descriptor_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_id} ${provider}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.provider} ${product_name}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.product_name} ${software_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.software_version} ${descriptor_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_version} #${flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id} Should Be Equal As Strings ${response['body']['vnfdId']} ${descriptor_id} Should Be Equal As Strings ${response['body']['vnfProvider']} ${provider} Should Be Equal As Strings ${response['body']['vnfProductName']} ${product_name} Should Be Equal As Strings ${response['body']['vnfSoftwareVesion']} ${software_version} Should Be Equal As Strings ${response['body']['vnfdVersion']} ${descriptor_version} #Should Be Equal As Strings ${response['body']['instantiatedVnfInfo']['flavourId']} ${flavour_id} Parse SOL006 ${descriptor_id}= Get Variable Value ${nfv.vnfd[0].id} ${provider}= Get Variable Value ${nfv.vnfd[0].provider} ${product_name}= Get Variable Value ${nfv.vnfd[0].product-name} ${software_version}= Get Variable Value ${nfv.vnfd[0].software-version} ${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version} Should Be Equal As Strings ${response['body']['vnfdId']} ${descriptor_id} Should Be Equal As Strings ${response['body']['vnfProvider']} ${provider} Should Be Equal As Strings ${response['body']['vnfProductName']} ${product_name} Should Be Equal As Strings ${response['body']['vnfSoftwareVesion']} ${software_version} Should Be Equal As Strings ${response['body']['vnfdVersion']} ${descriptor_version} Check Postcondition VNF Package Resource Exists Log Checking that nsd info exists Set Headers {"Accept": "${ACCEPT_JSON}"} Loading SOL005/VNFPackageManagement-API/VNFPackages.robot +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ Create new VNF Package Resource Check HTTP Response Body Json Schema Is vnfPkgInfo Check HTTP Response Header Contains Location Check Postcondition VNF Package Resource Exists Check HTTP Response Body vnfPkgInfo content against VNF Descriptor PUT all VNF Packages - Method not implemented [Documentation] Test ID: 5.3.5.1.12 Loading SOL005/VNFPackageManagement-API/descriptors/SOL001/vnf-b-1_VNF.yaml 0 → 100644 +168 −0 Original line number Diff line number Diff line tosca_definitions_version: tosca_simple_yaml_1_2 description: "TST010 reference VNF-B" metadata: descriptor_id: "VNF-B" vendor: "ETSI TST WG" version: "2.0" topology_template: substitution_mappings: node_type: "tosca.nodes.nfv.VNF" requirements: virtual_link_management: [management, virtual_link_management] virtual_link_left: [left, virtual_link_left] virtual_link_right: [right, virtual_link_right] node_templates: VDU-B-1: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-1-vcd" descriptor: "Description of VDU-B-1" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 2 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 4096 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-1-vsd" VDU-B-2: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-2-vcd" descriptor: "Description of VDU-B-2" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 4 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 6144 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-2-vsd" right: type: "tosca.nodes.nfv.VduCp" properties: order: 1 requirements: virtual_link_right: virtual_binding: VDU-B-2 management: type: "tosca.nodes.nfv.VduCp" properties: order: 0 requirements: virtual_link_management: virtual_binding: VDU-B-1 left: type: "tosca.nodes.nfv.VduCp" properties: order: 2 requirements: virtual_link_left: virtual_binding: VDU-B-1 internal_vl: type: tosca.nodes.nfv.VnfVirtualLink properties: connectivity_type: layer_protocols: [ ipv4 ] description: Internal Virtual link in the VNF vl_profile: max_bitrate_requirements: root: 100000 leaf: 20000 min_bitrate_requirements: root: 10000 leaf: 10000 internal_vdu_b_1_cp: type: tosca.nodes.nfv.VduCp properties: order: 2 requirements: - virtual_binding: VDU-B-1 - virtual_link: internal_vl internal_vdu_b_2_cp: type: tosca.nodes.nfv.VduCp properties: order: 0 requirements: - virtual_binding: VDU-B-2 - virtual_link: internal_vl vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-1.qcow2 vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-2.qcow2 vnf_b_1_VNF: type: "tosca.nodes.nfv.VNF" properties: descriptor_id: "VNF-B-2VDUs" descriptor_version: "2.0" provider: "ETSI TST WG" product_name: "VNF-B-2VDUs" software_version: "2.0" product_info_name: "VNF-B-2VDUs" product_info_description: "TST010 reference VNF-B with 2 VDUs" flavour_id: "VNF-B-2VDU_flavor" flavour_description: "VNF-B with 2 VDUs flavor" vnfm_info: etsivnfm: - v2.3.1 interfaces: Vnflcm: scale: implementation: scale-example.yaml terminate: implementation: terminate-example.yaml operate: implementation: operate-example.yaml Loading
SOL005/NSLifecycleManagement-API/descriptors/SOL001/vnf-b-1_VNF.yaml 0 → 100644 +168 −0 Original line number Diff line number Diff line tosca_definitions_version: tosca_simple_yaml_1_2 description: "TST010 reference VNF-B" metadata: descriptor_id: "VNF-B" vendor: "ETSI TST WG" version: "2.0" topology_template: substitution_mappings: node_type: "tosca.nodes.nfv.VNF" requirements: virtual_link_management: [management, virtual_link_management] virtual_link_left: [left, virtual_link_left] virtual_link_right: [right, virtual_link_right] node_templates: VDU-B-1: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-1-vcd" descriptor: "Description of VDU-B-1" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 2 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 4096 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-1-vsd" VDU-B-2: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-2-vcd" descriptor: "Description of VDU-B-2" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 4 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 6144 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-2-vsd" right: type: "tosca.nodes.nfv.VduCp" properties: order: 1 requirements: virtual_link_right: virtual_binding: VDU-B-2 management: type: "tosca.nodes.nfv.VduCp" properties: order: 0 requirements: virtual_link_management: virtual_binding: VDU-B-1 left: type: "tosca.nodes.nfv.VduCp" properties: order: 2 requirements: virtual_link_left: virtual_binding: VDU-B-1 internal_vl: type: tosca.nodes.nfv.VnfVirtualLink properties: connectivity_type: layer_protocols: [ ipv4 ] description: Internal Virtual link in the VNF vl_profile: max_bitrate_requirements: root: 100000 leaf: 20000 min_bitrate_requirements: root: 10000 leaf: 10000 internal_vdu_b_1_cp: type: tosca.nodes.nfv.VduCp properties: order: 2 requirements: - virtual_binding: VDU-B-1 - virtual_link: internal_vl internal_vdu_b_2_cp: type: tosca.nodes.nfv.VduCp properties: order: 0 requirements: - virtual_binding: VDU-B-2 - virtual_link: internal_vl vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-1.qcow2 vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-2.qcow2 vnf_b_1_VNF: type: "tosca.nodes.nfv.VNF" properties: descriptor_id: "VNF-B-2VDUs" descriptor_version: "2.0" provider: "ETSI TST WG" product_name: "VNF-B-2VDUs" software_version: "2.0" product_info_name: "VNF-B-2VDUs" product_info_description: "TST010 reference VNF-B with 2 VDUs" flavour_id: "VNF-B-2VDU_flavor" flavour_description: "VNF-B with 2 VDUs flavor" vnfm_info: etsivnfm: - v2.3.1 interfaces: Vnflcm: scale: implementation: scale-example.yaml terminate: implementation: terminate-example.yaml operate: implementation: operate-example.yaml
SOL005/NSLifecycleManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2df_SOL006.yaml 0 → 100644 +105 −0 Original line number Diff line number Diff line nfv: vnfd: - id: VNF-B-2df provider: ETSI TST WG product-name: TST010 reference VNF-B with 2 DFs software-version: '2.1' version: '2.1' vnfm-info: ETSI VNFM vdu: id: vdu-b-1 name: VNF-B VDU 1 int-cpd: - id: left layer-protocol: ethernet - id: management layer-protocol: ethernet - id: right layer-protocol: ethernet virtual-compute-desc: vdu-b-1-vcd virtual-storage-desc: vdu-b-1-vsd sw-image-desc: vdu-b-1-image virtual-compute-desc: id: vdu-b-1-vcd virtual-memory: size: '4.0' virtual-cpu: num-virtual-cpu: '2' virtual-storage-desc: id: vdu-b-1-vsd type-of-storage: root-storage size-of-storage: '0' sw-image-desc: id: vdu-b-1-image name: VNF-B image version: '1.1' checksum: algorithm: sha-224 hash: somehashfortst010 container-format: bare disk-format: qcow2 min-disk: '1' min-ram: '2.0' size: '1' image: 'http://someurl.com/VNF-B.qcow2' ext-cpd: - id: ext-b-left int-cpd: vdu-id: vdu-b-1 cpd: left layer-protocol: ethernet - id: management int-cpd: vdu-id: vdu-b-1 cpd: management layer-protocol: ethernet - id: ext-b-right int-cpd: vdu-id: vdu-b-1 cpd: right layer-protocol: ethernet df: - id: small vdu-profile: id: vdu-b-1 min-number-of-instances: '1' max-number-of-instances: '2' instantiation-level: - id: double vdu-level: vdu-id: vdu-b-1 number-of-instances: '2' - id: single vdu-level: vdu-id: vdu-b-1 number-of-instances: '1' default-instantiation-level: single lcm-operations-configuration: scale-vnf-to-level-op-config: arbitrary-target-levels-supported: 'true' terminate-vnf-op-config: min-graceful-termination: '1' operate-vnf-op-config: min-graceful-stop-timeout: '1' - id: big vdu-profile: id: vdu-b-1 min-number-of-instances: '1' max-number-of-instances: '4' instantiation-level: - id: double vdu-level: vdu-id: vdu-b-1 number-of-instances: '2' - id: triple vdu-level: vdu-id: vdu-b-1 number-of-instances: '3' default-instantiation-level: double lcm-operations-configuration: scale-vnf-to-level-op-config: arbitrary-target-levels-supported: 'true' terminate-vnf-op-config: min-graceful-termination: '1' operate-vnf-op-config: min-graceful-stop-timeout: '1'
SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot +65 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_veri Library Process Library MockServerLibrary Library String Variables descriptors/SOL001/vnf-b-1_VNF.yaml *** Keywords *** Loading Loading @@ -174,12 +175,75 @@ Send Post Request to create new VNF Package Resource Log Creating a new VNF Package Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to VNF Package ${body} = Get File jsons/CreateVnfPkgInfoRequest.json Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} POST ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_packages ${body} ${output}= Output response Set Suite Variable ${response} ${output} Get key for VNF Descriptor FOR ${key} IN @{topology_template.node_templates.keys()} Log ${key} ${check1}= Run Keyword And Return Status Should End With ${key} VNF Run Keyword If ${check1} Set Global Variable ${vnfKey} ${key} END Add VNF Descriptor Content to VNF Package Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 VNF Package ELSE Parse SOL006 VNF Package Parse SOL001 VNF Package Get key for VNF Descriptor ${descriptor_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_id} ${provider}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.provider} ${product_name}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.product_name} ${software_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.software_version} ${descriptor_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_version} Parse SOL006 VNF Package ${descriptor_id}= Get Variable Value ${nfv.vnfd[0].id} ${provider}= Get Variable Value ${nfv.vnfd[0].provider} ${product_name}= Get Variable Value ${nfv.vnfd[0].product-name} ${software_version}= Get Variable Value ${nfv.vnfd[0].software-version} ${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version} Check HTTP Response Body vnfPkginfo content against VNF Descriptor #${check_descriptors} flag, 1 to check descriptors Run Keyword If ${check_descriptors} == 1 Check Individual VNFPkgInfo Content Check Individual VNFPkgInfo Content Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 ELSE Parse SOL006 Parse SOL001 Get key for VNF Descriptor ${descriptor_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_id} ${provider}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.provider} ${product_name}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.product_name} ${software_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.software_version} ${descriptor_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_version} #${flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id} Should Be Equal As Strings ${response['body']['vnfdId']} ${descriptor_id} Should Be Equal As Strings ${response['body']['vnfProvider']} ${provider} Should Be Equal As Strings ${response['body']['vnfProductName']} ${product_name} Should Be Equal As Strings ${response['body']['vnfSoftwareVesion']} ${software_version} Should Be Equal As Strings ${response['body']['vnfdVersion']} ${descriptor_version} #Should Be Equal As Strings ${response['body']['instantiatedVnfInfo']['flavourId']} ${flavour_id} Parse SOL006 ${descriptor_id}= Get Variable Value ${nfv.vnfd[0].id} ${provider}= Get Variable Value ${nfv.vnfd[0].provider} ${product_name}= Get Variable Value ${nfv.vnfd[0].product-name} ${software_version}= Get Variable Value ${nfv.vnfd[0].software-version} ${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version} Should Be Equal As Strings ${response['body']['vnfdId']} ${descriptor_id} Should Be Equal As Strings ${response['body']['vnfProvider']} ${provider} Should Be Equal As Strings ${response['body']['vnfProductName']} ${product_name} Should Be Equal As Strings ${response['body']['vnfSoftwareVesion']} ${software_version} Should Be Equal As Strings ${response['body']['vnfdVersion']} ${descriptor_version} Check Postcondition VNF Package Resource Exists Log Checking that nsd info exists Set Headers {"Accept": "${ACCEPT_JSON}"} Loading
SOL005/VNFPackageManagement-API/VNFPackages.robot +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ Create new VNF Package Resource Check HTTP Response Body Json Schema Is vnfPkgInfo Check HTTP Response Header Contains Location Check Postcondition VNF Package Resource Exists Check HTTP Response Body vnfPkgInfo content against VNF Descriptor PUT all VNF Packages - Method not implemented [Documentation] Test ID: 5.3.5.1.12 Loading
SOL005/VNFPackageManagement-API/descriptors/SOL001/vnf-b-1_VNF.yaml 0 → 100644 +168 −0 Original line number Diff line number Diff line tosca_definitions_version: tosca_simple_yaml_1_2 description: "TST010 reference VNF-B" metadata: descriptor_id: "VNF-B" vendor: "ETSI TST WG" version: "2.0" topology_template: substitution_mappings: node_type: "tosca.nodes.nfv.VNF" requirements: virtual_link_management: [management, virtual_link_management] virtual_link_left: [left, virtual_link_left] virtual_link_right: [right, virtual_link_right] node_templates: VDU-B-1: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-1-vcd" descriptor: "Description of VDU-B-1" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 2 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 4096 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-1-vsd" VDU-B-2: type: "tosca.nodes.nfv.Vdu.Compute" properties: name: "vdu-b-2-vcd" descriptor: "Description of VDU-B-2" vdu_profile: min_number_of_instances: 1 max_number_of_instances: 4 capabilities: virtual_compute: properties: virtual_memory: virtual_mem_size: 6144 numa_enabled: false virtual_cpu: num_virtual_cpu: 2 requirements: virtual_storage: - "vdu-b-2-vsd" right: type: "tosca.nodes.nfv.VduCp" properties: order: 1 requirements: virtual_link_right: virtual_binding: VDU-B-2 management: type: "tosca.nodes.nfv.VduCp" properties: order: 0 requirements: virtual_link_management: virtual_binding: VDU-B-1 left: type: "tosca.nodes.nfv.VduCp" properties: order: 2 requirements: virtual_link_left: virtual_binding: VDU-B-1 internal_vl: type: tosca.nodes.nfv.VnfVirtualLink properties: connectivity_type: layer_protocols: [ ipv4 ] description: Internal Virtual link in the VNF vl_profile: max_bitrate_requirements: root: 100000 leaf: 20000 min_bitrate_requirements: root: 10000 leaf: 10000 internal_vdu_b_1_cp: type: tosca.nodes.nfv.VduCp properties: order: 2 requirements: - virtual_binding: VDU-B-1 - virtual_link: internal_vl internal_vdu_b_2_cp: type: tosca.nodes.nfv.VduCp properties: order: 0 requirements: - virtual_binding: VDU-B-2 - virtual_link: internal_vl vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-1.qcow2 vdu-b-1-vsd: type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage" properties: virtual_block_storage_data: size_of_storage: 20 rdma_enabled: false sw_image_data: name: "vdu-b-1 image" version: "1.1" checksum: algorithm: "sha-224" hash: "somehashfortst010" container_format: "bare" disk-format: qcow2 min-disk: '1' min-ram: '2' size: '1' artifacts: sw_image: type: tosca.artifacts.nfv.SwImage file: vdu-b-2.qcow2 vnf_b_1_VNF: type: "tosca.nodes.nfv.VNF" properties: descriptor_id: "VNF-B-2VDUs" descriptor_version: "2.0" provider: "ETSI TST WG" product_name: "VNF-B-2VDUs" software_version: "2.0" product_info_name: "VNF-B-2VDUs" product_info_description: "TST010 reference VNF-B with 2 VDUs" flavour_id: "VNF-B-2VDU_flavor" flavour_description: "VNF-B with 2 VDUs flavor" vnfm_info: etsivnfm: - v2.3.1 interfaces: Vnflcm: scale: implementation: scale-example.yaml terminate: implementation: terminate-example.yaml operate: implementation: operate-example.yaml