Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
Log Creating mock request and response to handle vnfLcmOperationOccurrenceNotification
&{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${BODY}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
POST Id deletion
log The POST method delivers a notification from the server to the client.
${json}= Get File schemas/vnfIdentifierCreationNotification.schema.json
${BODY}= evaluate json.loads('''${json}''') json
Log Creating mock request and response to handle vnfLcmOperationOccurrenceNotification
&{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${BODY}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
GET test endpoint
log The GET method allows the server to test the notification endpoint
&{req}= Create Mock Request Matcher GET ${callback_endpoint}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Verify Mock Expectation ${req}
Giacomo Bernini
committed
Clear Requests ${callback_endpoint}
Check Subscription resource exist
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId}
Integer response status 200
Get VNF LCM Operation occurrences with all_fields attribute selector
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs?all_fields
${output}= Output response
Set Suite Variable ${response} ${output}
Giacomo Bernini
committed
Get VNF LCM Operation occurrences with exclude_default attribute selector
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs?exclude_default
${output}= Output response
Set Suite Variable ${response} ${output}
Get VNF LCM Operation occurrences with fields attribute selector
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs?fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
Get VNF LCM Operation occurrences with exclude_default and fields attribute selector
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs?fields=${fields}&exclude_default
${output}= Output response
Set Suite Variable ${response} ${output}
Get VNF LCM Operation occurrences with exclude_fields attribute selector
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs?exclude_fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Header Contain Link
${linkURL}= Get Value From Json ${response['headers']} $..Link
Check HTTP Response Body vnfInstances content against VNF Descriptor
#{check_multiple_instances} flag, set to 1 to check multiple instances against descriptors
Run Keyword If ${check_multiple_instances} == 1 Check Multiple VNF Instances Content
Check Multiple VNF Instances Content
#${number_of_instances}= Get Length ${response['body']}
#FOR ${i} IN RANGE ${number_of_instances}
${response['body']}= Get Variable Value ${response['body'][0]} #Gets the first instance at index 0
Check Individual VNF Instance Content
#END
Check HTTP Response Body vnfInstance content against VNF Descriptor
#${check_descriptors} flag, 1 to check descriptors
Run Keyword If ${check_descriptors} == 1 Check Individual VNF Instance Content
Check Individual VNF Instance Content
PARSE the Descriptor File
Match the VNF Instance Response Attributes with Descriptors
PARSE the Descriptor File
Run Keyword If '${descriptorType}'=='SOL001' Fetch Information from SOL001 descriptor file ELSE Fetch Information from SOL006 descriptor file
Fetch Information from SOL001 descriptor file
Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
@{VDU_labels}= Create List
@{VNF_labels}= Create List
@{VirtualLink_labels}= Create List
@{CP_labels}= Create List
@{Storage_labels}= Create List
FOR ${key} IN @{topology_template.node_templates.keys()}
${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}
${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}
${VDUcp_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VDU_cp}
${Storage_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_storage}
Run Keyword If ${VDU_check} Append To List ${VDU_labels} ${key}
Run Keyword If ${VNF_check} Append To List ${VNF_labels} ${key}
Run Keyword If ${VNF_check} Get VNF Attributes from SOL001 ${key}
Run Keyword If ${Link_check} Append To List ${VirtualLink_labels} ${key}
Run Keyword If ${VDUcp_check} Append To List ${CP_labels} ${key}
Run Keyword If ${Storage_check} Append To List ${Storage_labels} ${key}
END
Set Global Variable @{VDU_IDs} @{VDU_labels}
Set Global Variable @{VNF_IDs} @{VNF_labels}
Set Global Variable @{VirtualLink_IDs} @{VirtualLink_labels}
Set Global Variable @{CP_IDs} @{CP_labels}
Set Global Variable @{Storage_IDs} @{Storage_labels}
Get VNF Attributes from SOL001
Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
[Arguments] ${VNF_label}
${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}
${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}
${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}
Set Global Variable ${Descriptor_ID} ${descriptor_id}
Set Global Variable ${Provider} ${provider}
Set Global Variable ${Product_Name} ${product_name}
Set Global Variable ${Software_Version} ${software_version}
Set Global Variable ${Descriptor_Version} ${descriptor_version}
Set Global Variable ${Flavour_ID} ${flavour_id}
Fetch Information from SOL006 descriptor file
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
${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}
${VDUcount}= Get Length ${nfv.vnfd[0].vdu}
${extCP_count}= Get Length ${nfv.vnfd[0]['ext-cpd']}
${virtualLink_count}= Get length ${nfv.vnfd[0]['int-virtual-link-desc']}
${instantiation_levels}= Get Length ${nfv.vnfd[0].df['instantiation-level']}
FOR ${key} IN @{nfv.vnfd[0].keys()}
${VDU_check}= Run Keyword And Return Status Should Be Equal As Strings ${key} vdu
Run Keyword If ${VDU_check} Get VDU IDs ${VDUcount}
${extCP_check}= Run Keyword And Return Status Should Be Equal As Strings ${key} ext-cpd
Run Keyword If ${extCP_check} Get External CP IDs ${extCP_count}
${virtualLink_check}= Run Keyword And Return Status Should Be Equal As Strings ${key} int-virtual-link-desc
Run Keyword If ${virtualLink_check} Get Virtual Link IDs ${virtualLink_count}
${DF_check}= Run Keyword And Return Status Should Be Equal As Strings ${key} df
Run Keyword If ${DF_check} Get Instantiation Levels ${instantiation_levels}
END
Set Global Variable ${Descriptor_ID} ${descriptor_id}
Set Global Variable ${Provider} ${provider}
Set Global Variable ${Product_Name} ${product_name}
Set Global Variable ${Software_Version} ${software_version}
Set Global Variable ${Descriptor_Version} ${descriptor_version}
Get VDU IDs
[Arguments] ${count}
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
@{VDU_labels}= Create List
${Storage_labels}= Create List
FOR ${i} IN RANGE ${count}
Append To List ${VDU_labels} ${nfv.vnfd[0].vdu[${i}]['id']}
Append To List ${Storage_labels} ${nfv.vnfd[0].vdu[${i}]['virtual-storage-desc']}
Get Internal CPs for each VDU ${i}
END
Set Global Variable ${VDU_IDs} ${VDU_labels}
Set Global Variable ${Storage_IDs} ${Storage_labels}
Get Internal CPs for each VDU
[Arguments] ${vdu}
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
${count}= Get Length ${nfv.vnfd[0].vdu[${vdu}]['int-cpd']}
${internal_CPs}= Create List
FOR ${i} IN RANGE ${count}
Append To List ${internal_CPs} ${nfv.vnfd[0].vdu[${vdu}]['int-cpd'][${i}]['id']}
END
Set Global Variable ${internalCP_IDs} ${internal_CPs}
Get External CP IDs
[Arguments] ${count}
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
@{external_CPs}= Create List
FOR ${i} IN RANGE ${count}
Append To List ${external_CPs} ${nfv.vnfd[0]['ext-cpd'][${i}]['id']}
END
Set Global Variable ${externalCP_IDs} ${external_CPs}
Get Virtual Link IDs
[Arguments] ${count}
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
${VirtualLink_labels}= Create List
FOR ${i} IN RANGE ${count}
Append To List ${VirtualLink_labels} ${nfv.vnfd[0]['int-virtual-link-desc'][${i}]['id']}
END
Set Global Variable ${VirtualLink_IDs} ${VirtualLink_labels}
Get Instantiation Levels
[Arguments] ${count}
Import Variables ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
@{Instantiation_Levels}= Create List
FOR ${i} IN RANGE ${count}
Append To List ${Instantiation_Levels} ${nfv.vnfd[0].df['instantiation-level'][${i}]['id']}
END
Set Global Variable ${InstantiationLevel_IDs} ${Instantiation_Levels}
Match the VNF Instance Response Attributes with Descriptors
#Checking Response attributes with VNF Descriptors
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']['vnfSoftwareVersion']} ${Software_Version}
Should Be Equal As Strings ${response['body']['vnfdVersion']} ${Descriptor_Version}
Should Be Equal As Strings ${response['body']['instantiatedVnfInfo']['flavourId']} ${Flavour_ID}
List Should Contain Value ${VDU_IDs} ${response['body']['instantiatedVnfInfo']['vnfcResourceInfo'][0]['vduId']}
Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${externalCP_IDs} ${response['body']['instantiatedVnfInfo']['extCpInfo'][0]['cpdId']}
Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${internalCP_IDs} ${response['body']['instantiatedVnfInfo']['vnfcResourceInfo'][0]['vnfcCpInfo'][0]['cpdId']}
Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['instantiatedVnfInfo']['extCpInfo'][0]['cpdId']}
Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['instantiatedVnfInfo']['vnfcResourceInfo'][0]['vnfcCpInfo'][0]['cpdId']}
List Should Contain value ${Storage_IDs} ${response['body']['instantiatedVnfInfo']['virtualStorageResourceInfo'][0]['virtualStorageDescId']}
List Should Contain Value ${VirtualLink_IDs} ${response['body']['instantiatedVnfInfo']['extManagedVirtualLinkInfo'][0]['vnfVirtualLinkDescId']}
Check HTTP Response Body vnf LCM OpOCCs content against VNF Descriptor
#{check_multiple_instances} flag, set to 1 to check multiple instances against descriptors
Run Keyword If ${check_multiple_instances} == 1 Check Multiple VNF LCM OpOCCs Content
Check Multiple VNF LCM OpOCCs Content
#${number_of_instances}= Get Length ${response['body']}
#FOR ${i} IN RANGE ${number_of_instances}
${response['body']}= Get Variable Value ${response['body'][0]} #Gets the first instance at index 0
Check Individual VNF LCM Operation Occurence Content
#END
Check HTTP Response Body vnf LCM OpOCC content against VNF Descriptor
Run Keyword If ${check_descriptors} == 1 Check Individual VNF LCM Operation Occurence Content
Check Individual VNF LCM Operation Occurence Content
PARSE the Descriptor File
Match the VNF LCM Operation Occurence Response Attributes with Descriptors
Match the VNF LCM Operation Occurence Response Attributes with Descriptors
Should Be Equal As Strings ${response['body']['changedInfo']['vnfdId']} ${Descriptor_ID}
Should Be Equal As Strings ${response['body']['changedInfo']['vnfdVersion']} ${Descriptor_Version}
List Should Contain Value ${VDU_IDs} ${response['body']['resourceChanges']['affectedVnfcs'][0]['vduId']}
List Should Contain value ${Storage_IDs} ${response['body']['resourceChanges']['affectedVirtualStorages'][0]['virtualStorageDescId']}
List Should Contain Value ${VirtualLink_IDs} ${response['body']['resourceChanges']['affectedVirtualLinks'][0]['vnfVirtualLinkDescId']}