Commit 2e629660 authored by Muhammad Hamza's avatar Muhammad Hamza Committed by Giacomo Bernini
Browse files

fixed VNFD parsing in SOL002 VNF-LCM-API

parent e78bc6a4
...@@ -1463,8 +1463,17 @@ Fetch Information from SOL001 descriptor file ...@@ -1463,8 +1463,17 @@ Fetch Information from SOL001 descriptor file
@{VirtualLink_labels}= Create List @{VirtualLink_labels}= Create List
@{CP_labels}= Create List @{CP_labels}= Create List
@{Storage_labels}= Create List @{Storage_labels}= Create List
FOR ${key} IN @{node_types.keys()}
${node_type}= Get Variable Value ${node_types['${key}']['derived_from']}
${is_VNF}= Run Keyword And Return Status Should Be Equal As Strings ${node_type} ${tosca_type_VNF}
Run Keyword If ${is_VNF} Set Global Variable ${tosca_type_derived_from_VNF} ${key}
END
${derived_type_is_used}= Run Keyword And Return Status Should not be empty ${tosca_type_derived_from_VNF}
Run Keyword If ${derived_type_is_used} Set Global Variable ${tosca_type_VNF} ${tosca_type_derived_from_VNF}
FOR ${key} IN @{topology_template.node_templates.keys()} FOR ${key} IN @{topology_template.node_templates.keys()}
${key_type}= Get Variable Value ${topology_template.node_templates.${key}.type} ${key_type}= Get Variable Value ${topology_template.node_templates['${key}'].type}
${VDU_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VDU_compute} ${VDU_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VDU_compute}
${VNF_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VNF} ${VNF_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VNF}
${Link_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_virtual_link} ${Link_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_virtual_link}
...@@ -1486,12 +1495,12 @@ Fetch Information from SOL001 descriptor file ...@@ -1486,12 +1495,12 @@ Fetch Information from SOL001 descriptor file
Get VNF Attributes from SOL001 Get VNF Attributes from SOL001
[Arguments] ${VNF_label} [Arguments] ${VNF_label}
Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
${descriptor_id}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.descriptor_id} ${descriptor_id}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.descriptor_id}
${provider}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.provider} ${provider}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.provider}
${product_name}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.product_name} ${product_name}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.product_name}
${software_version}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.software_version} ${software_version}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.software_version}
${descriptor_version}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.descriptor_version} ${descriptor_version}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.descriptor_version}
${flavour_id}= Get Variable Value ${topology_template.node_templates.${VNF_label}.properties.flavour_id} ${flavour_id}= Get Variable Value ${topology_template.node_templates['${VNF_label}'].properties.flavour_id}
Set Global Variable ${Descriptor_ID} ${descriptor_id} Set Global Variable ${Descriptor_ID} ${descriptor_id}
Set Global Variable ${Provider} ${provider} Set Global Variable ${Provider} ${provider}
......
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: "TST010 reference VNF-B" description: "TST010 reference VNF-B"
imports:
- https://forge.etsi.org/rep/nfv/SOL001/raw/v3.3.1/etsi_nfv_sol001_vnfd_types.yaml
metadata: metadata:
descriptor_id: "VNF-B" descriptor_id: "VNF-B"
vendor: "ETSI TST WG" vendor: "ETSI TST WG"
version: "2.0" version: "2.0"
node_types:
tst010.vnf.simple:
derived_from: tosca.nodes.nfv.VNF
properties:
descriptor_id:
type: string
default: VNF-B
descriptor_version:
type: string
default: '1.0'
provider:
type: string
default: ETSI TST WG
product_name:
type: string
default: VNF-B
software_version:
type: string
default: '1.0'
product_info_name:
type: string
default: VNF-B
product_info_description:
type: string
default: TST010 reference VNF-B
flavour_id:
type: string
default: VNF-B_flavor
flavour_description:
type: string
default: "VNF-B flavor"
vnfm_info:
type: list
entry_schema:
type: string
default: [ 'etsivnfm:v2.3.1' ]
interfaces:
Vnflcm:
type: "tosca.interfaces.nfv.Vnflcm"
scale:
description: Invoked upon receipt of a Scale VNF request
terminate:
description: Invoked upon receipt Terminate VNF request
operate:
description: Invoked upon receipt of an Operate VNF request
requirements:
- virtual_link_right:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [0, 1]
- virtual_link_left:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [0, 1]
- virtual_link_management:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [0, 1]
- virtual_link:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
occurrences: [0, 0]
topology_template: topology_template:
substitution_mappings: substitution_mappings:
node_type: "tosca.nodes.nfv.VNF" node_type: "tst010.vnf.simple"
requirements: requirements:
virtual_link_right:
[right, virtual_link_right]
virtual_link_management: virtual_link_management:
[management, virtual_link_management] [management, virtual_link_management]
virtual_link_left: virtual_link_left:
[left, virtual_link_left] [left, virtual_link_left]
virtual_link_right:
[right, virtual_link_right]
node_templates: node_templates:
right: right:
type: "tosca.nodes.nfv.VduCp" type: "tosca.nodes.nfv.VduCp"
properties: properties:
layer_protocols: [ ipv4 ]
order: 1 order: 1
requirements: requirements:
virtual_link_right: - virtual_binding: VDU-B
virtual_binding: VDU-B-2
management: management:
type: "tosca.nodes.nfv.VduCp" type: "tosca.nodes.nfv.VduCp"
properties: properties:
layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
virtual_link_management: - virtual_binding: VDU-B
virtual_binding: VDU-B-1
left: left:
type: "tosca.nodes.nfv.VduCp" type: "tosca.nodes.nfv.VduCp"
properties: properties:
layer_protocols: [ ipv4 ]
order: 2 order: 2
requirements: requirements:
virtual_link_left: - virtual_binding: VDU-B
virtual_binding: VDU-B-1 vdu-b-1-vsd:
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" type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage"
properties: properties:
virtual_block_storage_data: virtual_block_storage_data:
size_of_storage: 20 size_of_storage: 20 GB
rdma_enabled: false rdma_enabled: false
sw_image_data: sw_image_data:
name: "vdu-b-1 image" name: "vdu-b-1 image"
...@@ -76,63 +117,15 @@ topology_template: ...@@ -76,63 +117,15 @@ topology_template:
algorithm: "sha-224" algorithm: "sha-224"
hash: "somehashfortst010" hash: "somehashfortst010"
container_format: "bare" container_format: "bare"
disk-format: qcow2 disk_format: qcow2
min-disk: '1' min_disk: '1'
min-ram: '2' min_ram: '2'
size: '1' size: '1'
artifacts: VDU-B:
sw_image:
type: "tosca.artifacts.nfv.SwImage"
file: vdu-b-1.qcow2
vdu_b_2_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-2 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
VDU_B_1:
type: "tosca.nodes.nfv.Vdu.Compute" type: "tosca.nodes.nfv.Vdu.Compute"
properties: properties:
name: "vdu-b-1-vcd" name: "vdu-b-1-vcd"
descriptor: "Description of VDU-B-1" description: "Description of VDU-B-1"
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 2 max_number_of_instances: 2
...@@ -140,29 +133,33 @@ topology_template: ...@@ -140,29 +133,33 @@ topology_template:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 4096 virtual_mem_size: 4096 MB
numa_enabled: false numa_enabled: false
virtual_cpu: virtual_cpu:
num_virtual_cpu: 2 num_virtual_cpu: 2
requirements: requirements:
virtual_storage: - virtual_storage: vdu-b-1-vsd
- "vdu-b-1-vsd"
VDU_B_2: vnf-b-1_VNF:
type: "tosca.nodes.nfv.Vdu.Compute" type: "tst010.vnf.simple"
properties: properties:
name: "vdu-b-2-vcd" descriptor_id: "VNF-B"
descriptor: "Description of VDU-B-2" descriptor_version: "2.0"
vdu_profile: provider: "ETSI TST WG"
min_number_of_instances: 1 product_name: "VDU_VNF-B"
max_number_of_instances: 4 software_version: "2.0"
capabilities: product_info_name: "VDU_VNF-B"
virtual_compute: product_info_description: "TST010 reference VNF-A"
properties: flavour_id: "VNF-B_flavor"
virtual_memory: flavour_description: "VNF-B flavor"
virtual_mem_size: 6144 vnfm_info:
numa_enabled: false - etsivnfm:v2.3.1
virtual_cpu: interfaces:
num_virtual_cpu: 2 Vnflcm:
requirements: type: "tosca.interfaces.nfv.Vnflcm"
virtual_storage: scale:
- "vdu-b-2-vsd" implementation: scale-example.yaml
\ No newline at end of file terminate:
implementation: terminate-example.yaml
operate:
implementation: operate-example.yaml
\ No newline at end of file
...@@ -95,11 +95,13 @@ ${check_descriptors} 1 ...@@ -95,11 +95,13 @@ ${check_descriptors} 1
${descriptorType} SOL006 ${descriptorType} SOL006
${check_multiple_instances} 0 ${check_multiple_instances} 0
#############internal variables used for descriptor parsing################
${tosca_type_VDU_compute} tosca.nodes.nfv.Vdu.Compute ${tosca_type_VDU_compute} tosca.nodes.nfv.Vdu.Compute
${tosca_type_VNF} tosca.nodes.nfv.VNF ${tosca_type_VNF} tosca.nodes.nfv.VNF
${tosca_type_virtual_link} tosca.nodes.nfv.VnfVirtualLink ${tosca_type_virtual_link} tosca.nodes.nfv.VnfVirtualLink
${tosca_type_VDU_cp} tosca.nodes.nfv.VduCp ${tosca_type_VDU_cp} tosca.nodes.nfv.VduCp
${tosca_type_storage} tosca.nodes.nfv.Vdu.VirtualBlockStorage ${tosca_type_storage} tosca.nodes.nfv.Vdu.VirtualBlockStorage
${tosca_type_derived_from_VNF}
${VDU_IDs} ${VDU_IDs}
${VNF_IDs} ${VNF_IDs}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment