Commit b3d06550 authored by uihassan's avatar uihassan
Browse files

bug fix and optional check added

parent 6685f794
......@@ -332,10 +332,9 @@ POST Change VNF deployment flavour
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get key for VNF Descriptor
${flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to Change VNF Flavour
${template}= Get File jsons/changeVnfFlavourRequest.json
${body}= Format String ${template} newFlavourId=${flavour_id}
${body}= Format String ${template} newFlavourId=${newFlavourId}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/change_flavour ${body}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
......@@ -372,15 +371,9 @@ POST Create a new vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
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}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to VNF Instance
${template}= Get File jsons/createVnfRequest.json
${body}= Format String ${template} vnfdId=${descriptor_id} vnfProvider=${provider} vnfProductName=${product_name} vnfSoftwareVersion=${software_version} vnfdVersion= ${descriptor_version} flavourId=${flavour_id}
${body}= Format String ${template} vnfdId=${descriptor_id} vnfProvider=${provider} vnfProductName=${product_name} vnfSoftwareVersion=${software_version} vnfdVersion= ${descriptor_version}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances ${body}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
......@@ -510,9 +503,7 @@ PATCH individual vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get key for VNF Descriptor
${descriptor_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_id}
${descriptor_version}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.descriptor_version}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to VNF Instance
${template}= Get File jsons/patchBodyRequest.json
${body}= Format String ${template} vnfdId=${descriptor_id} vnfdVersion= ${descriptor_version}
Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} ${body}
......@@ -1206,6 +1197,9 @@ Check HTTP Response Header Contain Link
Should Not Be Empty ${linkURL}
Check HTTP Response Body vnfInstance content against VNF Descriptor
Run Keyword If ${check_descriptors} == 1 Check Individual VNF Instance Content
Check Individual VNF Instance Content
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 ELSE Parse SOL006
Parse SOL001
......@@ -1247,6 +1241,9 @@ Get key for VNF Descriptor
END
Check HTTP Response Body of Individual VNF LCM Operation occurrences content against VNF Descriptor
Run Keyword If ${check_descriptors} == 1 Check Individual VNF LCM Operation Occurence Content
Check Individual VNF LCM Operation Occurence Content
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 VNF LCM ELSE Parse SOL006 VNF LCM
Parse SOL001 Individual VNF LCM
......@@ -1262,4 +1259,31 @@ Parse SOL006 Individual VNF LCM
${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version}
Should Be Equal As Strings ${response['body']['changedInfo']['vnfdId']} ${descriptor_id}
Should Be Equal As Strings ${response['body']['changedInfo']['vnfdVersion']} ${descriptor_version}
\ No newline at end of file
Add VNF Descriptor Content to VNF Instance
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 VNF Instance ELSE Parse SOL006 VNF Instance
Parse SOL001 VNF Instance
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 Instance
${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}
Add VNF Descriptor Content to Change VNF Flavour
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 Change VNF Flavour ELSE Parse SOL006 Change VNF Flavour
Parse SOL001 Change VNF Flavour
Get key for VNF Descriptor
${newFlavourId}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Parse SOL006 Change VNF Flavour
Log flavour id is not present in SOL006 descriptors
\ No newline at end of file
......@@ -100,4 +100,11 @@ ${scaleOutResponse}
${callbackResp} localhost
${descriptorType} SOL001
${vnfKey} {}
\ No newline at end of file
${vnfKey} {}
${check_descriptors} 1
${descriptor_id}
${provider}
${product_name}
${software_version}
${descriptor_version}
\ No newline at end of file
......@@ -5,10 +5,5 @@
"vnfProvider":"{vnfProvider}",
"vnfProductName":"{vnfProductName}",
"vnfSoftwareVersion":"{vnfSoftwareVersion}",
"vnfdVersion":"{vnfdVersion}",
"instantiatedVnfInfo":{{
"flavourId":"{flavourId}",
"vnfState":"STARTED"
}}
"metadata":{{}}
"vnfdVersion":"{vnfdVersion}"
}}
\ No newline at end of file
......@@ -115,10 +115,9 @@ Send Request Grant Request in Synchronous mode
Set Headers {"Accept": "${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
Get key for VNF Descriptor
${vnf_flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to Grant Request
${template}= Get File jsons/grantRequest.json
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${vnf_flavour_id}
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${flavourId}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/grants ${body}
${body}= Output response
Set Suite Variable ${response} ${body}
......@@ -129,10 +128,9 @@ Send Request Grant Request in Asynchronous mode
Set Headers {"Accept": "${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
Get key for VNF Descriptor
${vnf_flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to Grant Request
${template}= Get File jsons/grantRequest.json
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${vnf_flavour_id}
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${flavourId}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/grants ${body}
${body}= Output response
Set Suite Variable ${response} ${body}
......@@ -143,10 +141,9 @@ Send Request for a new Grant Forbiden Operation
Set Headers {"Accept": "${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
Get key for VNF Descriptor
${vnf_flavour_id}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Run Keyword If ${check_descriptors} == 1 Add VNF Descriptor Content to Grant Request
${template}= Get File jsons/grantRejectedRequest.json
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${vnf_flavour_id}
${body}= Format String ${template} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} vnfdId=${vnfdId} flavourId=${flavourId}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/grants ${body}
${body}= Output response
Set Suite Variable ${response} ${body}
......@@ -211,4 +208,13 @@ Delete Grants
${body}= Output response
Set Suite Variable ${response} ${body}
Add VNF Descriptor Content to Grant Request
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 Grant Request ELSE Parse SOL006 Grant Request
Parse SOL001 Grant Request
Get key for VNF Descriptor
${flavourId}= Get Variable Value ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
Parse SOL006 Grant Request
Log flavour id is not present in SOL006 descriptors
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
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'
......@@ -41,4 +41,8 @@ ${VrQuotaAvailNotification} {}
${vnfInstanceId} myVnfInstanceId
${vnfLcmOpOccId} myLcmOccId
${vnfdId} myVnF
${flavourId} string
\ No newline at end of file
${flavourId} string
${descriptorType} SOL001
${vnfKey} {}
${check_descriptors} 1
\ No newline at end of file
......@@ -1527,6 +1527,9 @@ Check Postcondition VNF Package Subscription is Deleted
Check HTTP Response Status Code Is 404
Check HTTP Response Body of Individual VNF Package content against VNF Descriptor
Run Keyword If ${check_descriptors} == 1 Check Individual VNF Package Content
Check Individual VNF Package Content
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 VNF Package ELSE Parse SOL006 VNF Package
Parse SOL001 VNF Package
......@@ -1565,6 +1568,9 @@ Parse SOL006 VNF Package
Should Be Equal As Strings ${response['body']['vnfdVersion']} ${descriptor_version}
Check HTTP Response Body of Individual Subscription content against VNF Descriptor
Run Keyword If ${check_descriptors} == 1 Check Individual VNF Subscription Content
Check Individual VNF Subscription Content
Run Keyword If '${descriptorType}'=='SOL001' Parse SOL001 Package Subscription ELSE Parse SOL006 Package Subscription
Parse SOL001 Package Subscription
......
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