From 8be583aa3b50d13be25de459faa143fcedbb3fa0 Mon Sep 17 00:00:00 2001 From: zafar Date: Wed, 27 Jan 2021 15:16:34 +0500 Subject: [PATCH] minor bug fix in response body parsing & removal of redundant lines of code --- .../VnfLcmMntOperationKeywords.robot | 24 +-- .../reference_tst010_vnf_b_2vdu_SOL001.yaml} | 0 .../reference_tst010_vnf_b_2vdu_SOL006.yaml} | 0 .../Grants.robot | 37 +--- .../IndividualGrant.robot | 81 +-------- .../reference_tst010_vnf_b_2vdu_SOL001.yaml} | 0 .../reference_tst010_vnf_b_2vdu_SOL006.yaml} | 0 .../environment/variables.txt | 6 - .../VNFPackageManagementKeywords.robot | 35 +--- .../reference_tst010_vnf_b_2vdu_SOL001.yaml | 168 ++++++++++++++++++ .../reference_tst010_vnf_b_2vdu_SOL006.yaml | 137 ++++++++++++++ .../environment/variables.txt | 5 - 12 files changed, 344 insertions(+), 149 deletions(-) rename SOL003/{VNFLifecycleOperationGranting-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml => VNFLifecycleManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml} (100%) rename SOL003/{VNFLifecycleOperationGranting-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml => VNFLifecycleManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml} (100%) rename SOL003/{VNFPackageManagement-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml => VNFLifecycleOperationGranting-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml} (100%) rename SOL003/{VNFPackageManagement-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml => VNFLifecycleOperationGranting-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml} (100%) create mode 100644 SOL003/VNFPackageManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml create mode 100644 SOL003/VNFPackageManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml diff --git a/SOL003/VNFLifecycleManagement-API/VnfLcmMntOperationKeywords.robot b/SOL003/VNFLifecycleManagement-API/VnfLcmMntOperationKeywords.robot index 679fd610..6a172f1f 100644 --- a/SOL003/VNFLifecycleManagement-API/VnfLcmMntOperationKeywords.robot +++ b/SOL003/VNFLifecycleManagement-API/VnfLcmMntOperationKeywords.robot @@ -8,8 +8,8 @@ Library BuiltIn Library JSONLibrary Library Collections Library JSONSchemaLibrary schemas/ -Variables descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml -Variables descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml +Variables descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml +Variables descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml *** Keywords *** Get Vnf Instance @@ -127,7 +127,7 @@ Send VNF Instance Resource Create Request Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Run Keyword If ${check_descriptors} == 1 PARSE the Descriptor File ${template}= Get File jsons/createVnfRequest.json - ${body}= Format String ${template} vnfdId=${Descriptor_ID} vnfProvider=${Provider} vnfProductName=${Product_Name} vnfSoftwareVersion=${Software_Version} vnfdVersion= ${Descriptor_Version} vnfConfigurableProperties=${configurable_properties} flavourId=${Flavour_ID} + ${body}= Format String ${template} vnfdId=${Descriptor_ID} vnfProvider=${Provider} vnfProductName=${Product_Name} vnfSoftwareVersion=${Software_Version} vnfdVersion= ${Descriptor_Version} flavourId=${Flavour_ID} ${response}= Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances ${body} Send VNF Instance Resource Delete Request @@ -1324,12 +1324,12 @@ Match the VNF Instance Response Attributes with Descriptors 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']['vduId']} - Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${externalCP_IDs} ${response['body']['instantiatedVnfInfo']['extCpInfo']['cpdId']} - Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${internalCP_IDs} ${response['body']['instantiatedVnfInfo']['vnfcResourceInfo']['vnfcCpInfo']['cpdId']} - Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['instantiatedVnfInfo']['extCpInfo']['cpdId']} - Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['instantiatedVnfInfo']['vnfcResourceInfo']['vnfcCpInfo']['cpdId']} - List Should Contain value ${Storage_IDs} ${response['body']['instantiatedVnfInfo']['virtualStorageResourceInfo']['virtualStorageDescId']} - List Should Contain Value ${VirtualLink_IDs} ${response['body']['instantiatedVnfInfo']['extManagedVirtualLinkInfo']['vnfVirtualLinkDescId']} + 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 of Individual VNF LCM Operation occurrences content against VNF Descriptor Run Keyword If ${check_descriptors} == 1 Check Individual VNF LCM Operation Occurence Content @@ -1342,8 +1342,8 @@ Match the VNF LCM Operation Occurence Response Attributes with Descriptors #Checking Response attributes with VNF 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']['AffectedVnfc']['vduId']} - List Should Contain value ${Storage_IDs} ${response['body']['resourceChanges']['affectedVirtualStorages']['virtualStorageDescId']} - List Should Contain Value ${VirtualLink_IDs} ${response['body']['resourceChanges']['affectedVirtualLinks']['virtualStorageDescId']} + 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]['virtualStorageDescId']} \ No newline at end of file diff --git a/SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml b/SOL003/VNFLifecycleManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml similarity index 100% rename from SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml rename to SOL003/VNFLifecycleManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml diff --git a/SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml b/SOL003/VNFLifecycleManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml similarity index 100% rename from SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml rename to SOL003/VNFLifecycleManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml diff --git a/SOL003/VNFLifecycleOperationGranting-API/Grants.robot b/SOL003/VNFLifecycleOperationGranting-API/Grants.robot index 12effdd7..0121db90 100644 --- a/SOL003/VNFLifecycleOperationGranting-API/Grants.robot +++ b/SOL003/VNFLifecycleOperationGranting-API/Grants.robot @@ -6,8 +6,8 @@ Library OperatingSystem Library JSONLibrary Library JSONSchemaLibrary schemas/ Library Collections -Variables descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml -Variables descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml +Variables descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml +Variables descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml Documentation This resource represents grants. The client can use this resource to obtain permission ... from the NFVO to perform a particular VNF lifecycle operation. @@ -216,26 +216,12 @@ 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 - @{VNF_labels}= Create List - FOR ${key} IN @{topology_template.node_templates.keys()} - ${key_type}= Get Variable Value ${topology_template.node_templates.${key}.type} - ${VNF_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VNF} - - Run Keyword If ${VNF_check} Append To List ${VNF_labels} ${key} - Run Keyword If ${VNF_check} Get VNF Attributes from SOL001 ${key} - END - Set Global Variable @{VNF_IDs} @{VNF_labels} - - -Get VNF Attributes from SOL001 - [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} - + ${descriptor_id}= Get Variable Value ${topology_template.node_templates.properties.descriptor_id} + ${provider}= Get Variable Value ${topology_template.node_templates.properties.provider} + ${product_name}= Get Variable Value ${topology_template.node_templates.properties.product_name} + ${software_version}= Get Variable Value ${topology_template.node_templates.properties.software_version} + ${descriptor_version}= Get Variable Value ${topology_template.node_templates.properties.descriptor_version} + ${flavour_id}= Get Variable Value ${topology_template.node_templates.properties.flavour_id} Set Global Variable ${Descriptor_ID} ${descriptor_id} Set Global Variable ${Provider} ${provider} Set Global Variable ${Product_Name} ${product_name} @@ -248,12 +234,7 @@ Fetch Information from SOL006 descriptor file ${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']} - + ${descriptor_version}= Get Variable Value ${nfv.vnfd[0].version} Set Global Variable ${Descriptor_ID} ${descriptor_id} Set Global Variable ${Provider} ${provider} Set Global Variable ${Product_Name} ${product_name} diff --git a/SOL003/VNFLifecycleOperationGranting-API/IndividualGrant.robot b/SOL003/VNFLifecycleOperationGranting-API/IndividualGrant.robot index b0d17629..d0865365 100644 --- a/SOL003/VNFLifecycleOperationGranting-API/IndividualGrant.robot +++ b/SOL003/VNFLifecycleOperationGranting-API/IndividualGrant.robot @@ -5,8 +5,8 @@ Library JSONLibrary Library JSONSchemaLibrary schemas/ Library Collections Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false -Variables descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml -Variables descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml +Variables descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml +Variables descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml Documentation This resource represents an individual grant. The client can use this resource to read the grant. ... It is determined by means outside the scope of the present document, such as configuration or policy, ... how long an individual grant is available. @@ -177,56 +177,25 @@ PARSE the Descriptor File Fetch Information from SOL001 descriptor file @{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 - [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 - ${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} @@ -234,39 +203,19 @@ Fetch Information from SOL006 descriptor file 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} @{VDU_labels}= Create List - ${Storage_labels}= Create List - ${Compute_labels}= Create List + @{Compute_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']} Append To List ${Compute_labels} ${nfv.vnfd[0].vdu[${i}]['virtual-compute-desc']} - Get Internal CPs for each VDU ${i} END Set Global Variable ${VDU_IDs} ${VDU_labels} - Set Global Variable ${Storage_IDs} ${Storage_labels} Set Global Variable ${Compute_IDs} ${Compute_labels} - -Get Internal CPs for each VDU - [Arguments] ${vdu} - ${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} @{external_CPs}= Create List @@ -283,20 +232,8 @@ Get Virtual Link IDs END Set Global Variable ${VirtualLink_IDs} ${VirtualLink_labels} -Get Instantiation Levels - [Arguments] ${count} - @{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 grant Response Attributes with Descriptors - Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${externalCP_IDs} ${response['body']['extVirtualLinks']['extCps']['cpdId']} - Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['extVirtualLinks']['extCps']['cpdId']} - List Should Contain Value ${VirtualLink_IDs} ${response['body']['ExtManagedVirtualLinkData']['vnfVirtualLinkDescId']} - List Should Contain value ${Compute_IDs} ${response['body']['vimAssets']['computeResourceFlavours']['vnfdVirtualComputeDescId']} - - - - + Run Keyword If '${descriptorType}'=='SOL006' List Should Contain Value ${externalCP_IDs} ${response['body']['extVirtualLinks'][0]['extCps'][0]['cpdId']} + Run Keyword If '${descriptorType}'=='SOL001' List Should Contain Value @{CP_IDs} ${response['body']['extVirtualLinks'][0]['extCps'][0]['cpdId']} + List Should Contain Value ${VirtualLink_IDs} ${response['body']['extManagedVirtualLinkData'][0]['vnfVirtualLinkDescId']} + List Should Contain value ${Compute_IDs} ${response['body']['vimAssets']['computeResourceFlavours'][0]['vnfdVirtualComputeDescId']} diff --git a/SOL003/VNFPackageManagement-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml b/SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml similarity index 100% rename from SOL003/VNFPackageManagement-API/descriptors/SOL001/SOL002_VNFLifecycleManagement-API_descriptors_SOL001_reference_tst010_vnf_b_2vdu_SOL001.yaml rename to SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml diff --git a/SOL003/VNFPackageManagement-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml b/SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml similarity index 100% rename from SOL003/VNFPackageManagement-API/descriptors/SOL006/SOL002_VNFLifecycleManagement-API_descriptors_SOL006_reference_tst010_vnf_b_2vdu_SOL006.yaml rename to SOL003/VNFLifecycleOperationGranting-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml diff --git a/SOL003/VNFLifecycleOperationGranting-API/environment/variables.txt b/SOL003/VNFLifecycleOperationGranting-API/environment/variables.txt index 64dfe501..c9405aec 100644 --- a/SOL003/VNFLifecycleOperationGranting-API/environment/variables.txt +++ b/SOL003/VNFLifecycleOperationGranting-API/environment/variables.txt @@ -47,19 +47,13 @@ ${descriptorType} SOL001 ${check_descriptors} 1 ${tosca_type_VDU_compute} tosca.nodes.nfv.Vdu.Compute -${tosca_type_VNF} tosca.nodes.nfv.VNF ${tosca_type_virtual_link} tosca.nodes.nfv.VnfVirtualLink ${tosca_type_VDU_cp} tosca.nodes.nfv.VduCp -${tosca_type_storage} tosca.nodes.nfv.Vdu.VirtualBlockStorage @{VDU_IDs} -@{VNF_IDs} @{virtualLink_IDs} @{CP_IDs} -@{Storage_IDs} -@{internalCP_IDs} @{externalCP_IDs} -@{InstantiationLevel_IDs} @{Compute_IDs} ${Descriptor_ID} diff --git a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot index 2775dba4..56a36420 100644 --- a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot +++ b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot @@ -1538,32 +1538,16 @@ 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 - @{VNF_labels}= Create List - FOR ${key} IN @{topology_template.node_templates.keys()} - ${key_type}= Get Variable Value ${topology_template.node_templates.${key}.type} - - ${VNF_check}= Run Keyword And Return Status Should Be Equal As Strings ${key_type} ${tosca_type_VNF} - Run Keyword If ${VNF_check} Append To List ${VNF_labels} ${key} - Run Keyword If ${VNF_check} Get VNF Attributes from SOL001 ${key} - END - Set Global Variable @{VNF_IDs} @{VNF_labels} - - -Get VNF Attributes from SOL001 - [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} - + ${descriptor_id}= Get Variable Value ${topology_template.node_templates.properties.descriptor_id} + ${provider}= Get Variable Value ${topology_template.node_templates.properties.provider} + ${product_name}= Get Variable Value ${topology_template.node_templates.properties.product_name} + ${software_version}= Get Variable Value ${topology_template.node_templates.properties.software_version} + ${descriptor_version}= Get Variable Value ${topology_template.node_templates.properties.descriptor_version} 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 ${descriptor_id}= Get Variable Value ${nfv.vnfd[0].id} @@ -1571,7 +1555,6 @@ Fetch Information from SOL006 descriptor file ${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} - Set Global Variable ${Descriptor_ID} ${descriptor_id} Set Global Variable ${Provider} ${provider} Set Global Variable ${Product_Name} ${product_name} @@ -1597,8 +1580,8 @@ Check Individual VNF Subscription Content Match the VNF subscription Response Attributes with Descriptors #Checking Response attributes with VNF Descriptors Should Be Equal As Strings ${response['body']['filter']['vnfdId']} ${Descriptor_ID} - Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders']['vnfProvider']} ${Provider} - Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders']['vnfProducts']['vnfProductName']} ${Product_Name} - Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders']['vnfProducts']['versions']['vnfSoftwareVersion']} ${Software_Version} - Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders']['vnfProducts']['versions']['vnfdVersion']} ${Descriptor_Version} + Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders'][0]['vnfProvider']} ${Provider} + Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders'][0]['vnfProducts'][0]['vnfProductName']} ${Product_Name} + Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders'][0]['vnfProducts']['versions'][0]['vnfSoftwareVersion']} ${Software_Version} + Should Be Equal As Strings ${response['body']['filter']['vnfProductsFromProviders'][0]['vnfProducts']['versions'][0]['vnfdVersion']} ${Descriptor_Version} \ No newline at end of file diff --git a/SOL003/VNFPackageManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml b/SOL003/VNFPackageManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml new file mode 100644 index 00000000..e9159106 --- /dev/null +++ b/SOL003/VNFPackageManagement-API/descriptors/SOL001/reference_tst010_vnf_b_2vdu_SOL001.yaml @@ -0,0 +1,168 @@ +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: + 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_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" + 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" \ No newline at end of file diff --git a/SOL003/VNFPackageManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml b/SOL003/VNFPackageManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml new file mode 100644 index 00000000..d902779a --- /dev/null +++ b/SOL003/VNFPackageManagement-API/descriptors/SOL006/reference_tst010_vnf_b_2vdu_SOL006.yaml @@ -0,0 +1,137 @@ +nfv: + vnfd: + - id: VNF-B-2vdu + provider: ETSI TST WG + product-name: TST010 reference VNF-B with 2 VDUs + software-version: '2.2' + version: '2.2' + 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: internal + layer-protocol: ethernet + int-virtual-link-desc: internal-vl + virtual-compute-desc: vdu-b-1-vcd + virtual-storage-desc: vdu-b-1-vsd + sw-image-desc: vdu-b-1-image + - id: vdu-b-2 + name: VNF-B VDU 2 + int-cpd: + - id: right + layer-protocol: ethernet + - id: management + layer-protocol: ethernet + - id: internal + layer-protocol: ethernet + int-virtual-link-desc: internal-vl + virtual-compute-desc: vdu-b-2-vcd + virtual-storage-desc: vdu-b-2-vsd + sw-image-desc: vdu-b-2-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' + virtual-compute-desc: + id: vdu-b-2-vcd + virtual-memory: + size: '6.0' + virtual-cpu: + num-virtual-cpu: '2' + virtual-storage-desc: + id: vdu-b-2-vsd + type-of-storage: root-storage + size-of-storage: '0' + sw-image-desc: + id: vdu-b-2-image + name: VNF-B-2 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-2.qcow2' + int-virtual-link-desc: + - id: internal-vl + flavour: + id: internal-vl-flavour + qos: + latency: '1' + packet-delay-variation: '1' + packet-loss-ratio: '0.05' + connectivity-type: + layer-protocol: ethernet + 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-2 + cpd: right + layer-protocol: ethernet + df: + id: normal + vdu-profile: + - id: vdu-b-1 + min-number-of-instances: '1' + max-number-of-instances: '2' + - id: vdu-b-2 + 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' + - vdu-id: vdu-b-2 + number-of-instances: '2' + - id: single + vdu-level: + - vdu-id: vdu-b-1 + number-of-instances: '1' + - vdu-id: vdu-b-2 + 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' \ No newline at end of file diff --git a/SOL003/VNFPackageManagement-API/environment/variables.txt b/SOL003/VNFPackageManagement-API/environment/variables.txt index d45836b1..b5779a0e 100644 --- a/SOL003/VNFPackageManagement-API/environment/variables.txt +++ b/SOL003/VNFPackageManagement-API/environment/variables.txt @@ -21,7 +21,6 @@ ${apiName} vnfpkgm ${NFVO_CHECKS_NOTIF_ENDPOINT} 1 ## If true, during subscription, the FUT performs a get to the notification endpoint ${NFVO_ALLOWS_DUPLICATE_SUBS} 1 -${descriptorType} SOL001 ${response} httpresponse @@ -92,10 +91,6 @@ ${callbackResp} localhost ${descriptorType} SOL001 ${check_descriptors} 1 -${tosca_type_VNF} tosca.nodes.nfv.VNF - -@{VNF_IDs} - ${Descriptor_ID} ${Provider} ${Product_Name} -- GitLab