From 2491c817919b68e2019f8bb5d91f8923d0fe32ed Mon Sep 17 00:00:00 2001 From: zafar Date: Tue, 26 Jan 2021 18:39:12 +0500 Subject: [PATCH] NS descriptor checks added in NSDManagement-API --- .../IndividualNSDescriptor.robot | 1 + .../IndividualSubscription.robot | 3 +- .../NSDManagementKeywords.robot | 58 +++- SOL005/NSDManagement-API/NSDescriptors.robot | 1 + .../NotificationConsumer.robot | 13 +- ...eference_tst010_nsd_simple_a_b_SOL001.yaml | 113 +++++++ ...eference_tst010_nsd_simple_a_b_SOL006.yaml | 284 ++++++++++++++++++ .../environment/variables.txt | 11 +- .../notifications/NsdChangeNotification.json | 2 +- .../NsdDeletionNotification.json | 2 +- .../NsdOnBoardingFailureNotification.json | 1 + .../NsdOnBoardingNotification.json | 2 +- .../jsons/subscriptions.json | 9 +- 13 files changed, 488 insertions(+), 12 deletions(-) create mode 100644 SOL005/NSDManagement-API/descriptors/SOL001/reference_tst010_nsd_simple_a_b_SOL001.yaml create mode 100644 SOL005/NSDManagement-API/descriptors/SOL006/reference_tst010_nsd_simple_a_b_SOL006.yaml diff --git a/SOL005/NSDManagement-API/IndividualNSDescriptor.robot b/SOL005/NSDManagement-API/IndividualNSDescriptor.robot index cde65701..4583ca02 100644 --- a/SOL005/NSDManagement-API/IndividualNSDescriptor.robot +++ b/SOL005/NSDManagement-API/IndividualNSDescriptor.robot @@ -22,6 +22,7 @@ GET Individual Network Service Descriptor Information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is NsdInfo Check HTTP Response Header Contains ETag + Check HTTP Response Body NsInstance content against NS Descriptor Check HTTP Response Body NsdInfo Identifier matches the requested Network Service Descriptor Information GET Individual Network Service Descriptor Information with invalid resource identifier diff --git a/SOL005/NSDManagement-API/IndividualSubscription.robot b/SOL005/NSDManagement-API/IndividualSubscription.robot index ec23f993..932e761c 100644 --- a/SOL005/NSDManagement-API/IndividualSubscription.robot +++ b/SOL005/NSDManagement-API/IndividualSubscription.robot @@ -18,7 +18,8 @@ GET Individual NSD Management Subscription ... Post-Conditions: none Get Individual NSD Management Subscription Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is PkgmSubscription + Check HTTP Response Body Json Schema Is NsdmSubscription + Check HTTP Response Body NsdmSubscription content against NS Descriptor Check HTTP Response Body Subscription Identifier matches the requested Subscription GET Individual NSD Management Subscription with invalid resource identifier diff --git a/SOL005/NSDManagement-API/NSDManagementKeywords.robot b/SOL005/NSDManagement-API/NSDManagementKeywords.robot index c5a26d96..ab160863 100644 --- a/SOL005/NSDManagement-API/NSDManagementKeywords.robot +++ b/SOL005/NSDManagement-API/NSDManagementKeywords.robot @@ -10,6 +10,8 @@ Library JSONSchemaLibrary schemas/ Library RequestsLibrary Library Process Library String +Variables descriptors/SOL006/reference_tst010_nsd_simple_a_b_SOL006.yaml +Variables descriptors/SOL001/reference_tst010_nsd_simple_a_b_SOL001.yaml *** Keywords *** GET all Network Service Descriptors Information @@ -784,8 +786,9 @@ Send Post Request for NSD Management Subscription Log Trying to create a new subscription Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template}= Get File jsons/subscriptions.json - ${body}= Format String ${template} notifCallbackUri=${notifCallbackUri} + ${body}= Format String ${template} notifCallbackUri=${notifCallbackUri} nsdId=${NS_DescriptorID} nsdName=${NS_Name} nsdVersion=${NS_Version} nsdDesigner=${Designer} nsdInvariantId=${NS_InvariantId} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response @@ -798,8 +801,9 @@ Send Post Request for Duplicated NSD Management Subscription Log Trying to create a subscription with an already created content Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template}= Get File jsons/subscriptions.json - ${body}= Format String ${template} notifCallbackUri=${notifCallbackUri} + ${body}= Format String ${template} notifCallbackUri=${notifCallbackUri} nsdId=${NS_DescriptorID} nsdName=${NS_Name} nsdVersion=${NS_Version} nsdDesigner=${Designer} nsdInvariantId=${NS_InvariantId} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response @@ -1313,3 +1317,53 @@ Send DELETE Request for PNFD Archive Manifest DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/ns_descriptors/${pnfdInfoId}/manifest ${output}= Output response Set Suite Variable ${response} ${output} + +Check HTTP Response Body NsInstance content against NS Descriptor + #${check_descriptors} flag, 1 to check descriptors + Run Keyword If ${check_descriptors} == 1 Check Individual NsdInfo Content for NSD + +Check Individual NsdInfo Content for NSD + PARSE the NS Descriptor File + Match the Response Attributes with NS Descriptors + +PARSE the NS Descriptor File + Run Keyword If '${descriptorType}'=='SOL001' Fetch Information from SOL001 NS descriptor file ELSE Fetch Information from SOL006 NS descriptor file + +Fetch Information from SOL001 NS descriptor file + ${ns_descriptor_id}= Get Variable Value ${topology_template.node_templates.properties.descriptorId} + ${designer}= Get Variable Value ${topology_template.node_templates.properties.designer} + ${version}= Get Variable Value ${topology_template.node_templates.properties.version} + ${name}= Get Variable Value ${topology_template.node_templates.properties.name} + ${invariantId}= Get Variable Value ${topology_template.node_templates.properties.invariantId} + + Set Global Variable ${NS_DescriptorID} ${ns_descriptor_id} + Set Global Variable ${Designer} ${designer} + Set Global Variable ${NS_Version} ${version} + Set Global Variable ${NS_Name} ${name} + Set Global Variable ${NS_InvariantID} ${invariantId} + +Fetch Information from SOL006 NS descriptor file + ${nsd_id}= Get Variable Value ${nfv.nsd[0].id} + Set Global Variable ${NS_DescriptorID} ${nsd_id} + +Match the Response Attributes with NS Descriptors + Should Be Equal As Strings ${response['body']['nsdId']} ${NSDescriptor_ID} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['nsdName']} ${NS_Name} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['nsdVersion']} ${NS_Version} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['nsdDesigner']} ${Designer} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['nsdInvariantId']} ${NS_InvariantID} + +Check HTTP Response Body NsdmSubscription content against NS Descriptor + #${check_descriptors} flag, 1 to check descriptors + Run Keyword If ${check_descriptors} == 1 Check Individual NsdmSubscription Content for NSD + +Check Individual NsdmSubscription Content for NSD + PARSE the NS Descriptor File + Match the NsdmSubscription Response Attributes with NS Descriptors + +Match the NsdmSubscription Response Attributes with NS Descriptors + Should Be Equal As Strings ${response['body']['filter']['nsdId']} ${NSDescriptor_ID} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['filter']['nsdName']} ${NS_Name} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['filter']['nsdVersion']} ${NS_Version} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['filter']['nsdDesigner']} ${Designer} + Run Keyword If '${descriptorType}'=='SOL001' Should Be Equal As Strings ${response['body']['filter']['nsdInvariantId']} ${NS_InvariantID} diff --git a/SOL005/NSDManagement-API/NSDescriptors.robot b/SOL005/NSDManagement-API/NSDescriptors.robot index 1e4c1086..c03af825 100644 --- a/SOL005/NSDManagement-API/NSDescriptors.robot +++ b/SOL005/NSDManagement-API/NSDescriptors.robot @@ -154,6 +154,7 @@ Create new Network Service Descriptor Resource Check HTTP Response Body Json Schema Is NsdInfo Check HTTP Response Header Contains Location Check Postcondition NsdInfo Exists + Check HTTP Response Body NsInstance content against NS Descriptor PUT all Network Service Descriptors - Method not implemented [Documentation] Test ID: 5.3.1.1.12 diff --git a/SOL005/NSDManagement-API/NotificationConsumer.robot b/SOL005/NSDManagement-API/NotificationConsumer.robot index c2be1b86..59492691 100644 --- a/SOL005/NSDManagement-API/NotificationConsumer.robot +++ b/SOL005/NSDManagement-API/NotificationConsumer.robot @@ -6,6 +6,7 @@ Library JSONLibrary Library String Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false Suite Setup Check resource existence and get CallbackUri +Resource NSDManagementKeywords.robot *** Test Cases *** NSD Onboarding Notification @@ -112,8 +113,9 @@ Post NSD Onboarding Notification Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template} = Get File jsons/notifications/NsdOnBoardingNotification.json - ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} + ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} nsdId=${NS_DescriptorID} Post ${callbackResp} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} @@ -123,8 +125,9 @@ Post NSD Onboarding Failure Notification Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template} = Get File jsons/notifications/NsdOnBoardingFailureNotification.json - ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} + ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} nsdId=${NS_DescriptorID} Post ${callbackResp} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} @@ -134,8 +137,9 @@ Post NSD Change Notification Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template} = Get File jsons/notifications/NsdChangeNotification.json - ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} + ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} nsdId=${NS_DescriptorID} Post ${callbackResp} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} @@ -145,8 +149,9 @@ Post NSD Deletion Notification Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Run Keyword If ${check_descriptors} == 1 PARSE the NS Descriptor File ${template} = Get File jsons/notifications/NsdDeletionNotification.json - ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} + ${body}= Format String ${template} subscriptionId=${subscriptionId} nsdInfoId=${nsdInfoId} nsdId=${NS_DescriptorID} Post ${callbackResp} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} diff --git a/SOL005/NSDManagement-API/descriptors/SOL001/reference_tst010_nsd_simple_a_b_SOL001.yaml b/SOL005/NSDManagement-API/descriptors/SOL001/reference_tst010_nsd_simple_a_b_SOL001.yaml new file mode 100644 index 00000000..a2a363b2 --- /dev/null +++ b/SOL005/NSDManagement-API/descriptors/SOL001/reference_tst010_nsd_simple_a_b_SOL001.yaml @@ -0,0 +1,113 @@ +tosca_definitions_version: "tosca_simple_yaml_1_2" +tosca_default_namespace: "toscanfv" +description: "Referenxce NSD descriptor " +metadata: + descriptor_id: "NSD_WITH_2_VNF" + vendor: "ETSI" + version: "1.0" +topology_template: + substitution_mappings: + node_type: "tosca.nodes.nfv.NS" + requirements: + right: [VNF_A, ext_a_right] + left: [VNF_B, ext_b_left] + mgmt_a: [VNF_A, management_vnf_a] + mgmt_b: [VNF_B, management_vnf_b] + node_templates: + VNF_A: + type: "tosca.nodes.nfv.VNF" + properties: + descriptor_id: "VNF-A" + descriptor_version: "1.0" + provider: "ETSI TST WG" + product_name: "VNF-A" + software_version: "1.0" + product_info_name: "VNF-A" + product_info_description: "TST010 reference VNF-A" + flavour_id: "VNF-A_flavor" + flavour_description: "VNF-A flavor" + vnfm_info: + - 'etsivnfm:v2.3.1' + requirements: + virtualLink: + ext_a_right: "vl_right" + management_vnf_a: "vl_mgmt" + int_a_data: "vl_data" + VNF_B: + type: "tosca.nodes.nfv.VNF" + properties: + descriptorId: "VNF-B" + descriptorVersion: "1.0" + provider: "ETSI TST WG" + productName: "VNF-B" + softwareVersion: "1.0" + productInfoName: "VNF-B" + productInfoDescription: "TST010 reference VNF-A" + defaultLocalizationLanguage: null + flavourId: "VNF-B_flavor" + flavourDescription: "VNF-B flavor" + vnfm_info: + - 'etsivnfm:v2.3.1' + requirements: + virtualLink: + ext_b_left: "vl_left" + management_vnf_b: "vl_mgmt" + int_b_data: "vl_data" + NS_with_2_VNF: + type: "tosca.nodes.nfv.NS" + properties: + descriptorId: "NS with 2 VNFs" + designer: "ETSI TST WG" + version: "1.0" + name: "ns_with_2_vnfs" + invariantId: "ns_with_2_vnfs" + requirements: + virtualLink: + - "vl_left" + - "vl_right" + - "vl_mgmt" + - "vl_data" + vl_left: + type: "tosca.nodes.nfv.NsVirtualLink" + properties: + description: "VNF-B external connetivity" + vlProfile: + max_bitrate_requirements: + root: 1000 + min_bitrate_requirements: + root: 1000 + connectivityType: + layer_protocols: [ipv4] + vl_right: + type: "tosca.nodes.nfv.NsVirtualLink" + properties: + description: "VNF-A external connectivity" + vlProfile: + max_bitrate_requirements: + root: 1000 + min_bitrate_requirements: + root: 1000 + connectivityType: + layer_protocols: [ipv4] + vl_mgmt: + type: "tosca.nodes.nfv.NsVirtualLink" + properties: + description: "Management network" + vlProfile: + max_bitrate_requirements: + root: 1000 + min_bitrate_requirements: + root: 1000 + connectivityType: + layer_protocols: [ipv4] + vl_data: + type: "tosca.nodes.nfv.NsVirtualLink" + properties: + description: "Internal network that interconnect VNF-A and VNF-B" + vlProfile: + max_bitrate_requirements: + root: 1000 + min_bitrate_requirements: + root: 1000 + connectivityType: + layer_protocols: [ipv4] diff --git a/SOL005/NSDManagement-API/descriptors/SOL006/reference_tst010_nsd_simple_a_b_SOL006.yaml b/SOL005/NSDManagement-API/descriptors/SOL006/reference_tst010_nsd_simple_a_b_SOL006.yaml new file mode 100644 index 00000000..b29b2dfc --- /dev/null +++ b/SOL005/NSDManagement-API/descriptors/SOL006/reference_tst010_nsd_simple_a_b_SOL006.yaml @@ -0,0 +1,284 @@ +nfv: + vnfd: + - id: VNF-A + provider: ETSI TST WG + product-name: TST010 reference VNF-A + software-version: '1.0' + version: '1.0' + vnfm-info: ETSI VNFM + vdu: + - id: vdu-a-1 + name: VNF A VDU 1 + int-cpd: + - id: right + layer-protocol: ethernet + - id: management + layer-protocol: ethernet + - id: left + layer-protocol: ethernet + virtual-compute-desc: vdu-a-1-vcd + virtual-storage-desc: vdu-a-1-vsd + sw-image-desc: asa-image + virtual-compute-desc: + id: vdu-a-1-vcd + virtual-memory: + size: '4.0' + virtual-cpu: + num-virtual-cpu: '2' + virtual-storage-desc: + id: vdu-a-1-vsd + type-of-storage: root-storage + size-of-storage: '0' + sw-image-desc: + id: vdu-a-1-image + name: vdu-a-1 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-a.qcow2' + int-virtual-link-desc: + - id: right-vl + flavour: + id: right-vl-flavour + qos: + latency: '1' + packet-delay-variation: '1' + packet-loss-ratio: '0.02' + connectivity-type: + layer-protocol: ethernet + ext-cpd: + - id: ext-a-right + int-virtual-link-desc: right-vl + layer-protocol: ethernet + - id: management + int-cpd: + vdu-id: vdu-a-1 + cpd: management + layer-protocol: ethernet + - id: ext-a-left + int-cpd: + vdu-id: vdu-a-1 + cpd: left + layer-protocol: ethernet + df: + id: normal + vdu-profile: + id: vdu-a-1 + min-number-of-instances: '1' + max-number-of-instances: '2' + virtual-link-profile: + id: right-vl + flavour: right-vl-flavour + max-bit-rate-requirements: + root: '10' + min-bit-rate-requirements: + root: '1' + virtual-link-protocol-data: + associated-layer-protocol: ipv4 + l3-protocol-data: + name: right-network + ip-version: ipv4 + cidr: 10.10.10.0/32 + gateway-ip: 10.10.10.1 + dhcp-enabled: 'true' + instantiation-level: + - id: double + vdu-level: + vdu-id: vdu-a-1 + number-of-instances: '2' + - id: single + vdu-level: + vdu-id: vdu-a-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: VNF-B + provider: ETSI TST WG + product-name: TST010 reference VNF-B + software-version: '2.0' + version: '2.0' + 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: normal + 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' + nsd: + - id: tst010-nsd + vnfd-id: + - VNF-A + - VNF-B + sapd: + - id: right-sap + vnf: + vnfd-id: VNF-A + ext-cpd-id: ext-a-right + - id: management-sap + virtual-link-desc: mgmt + - id: left-sap + vnf: + vnfd-id: VNF-B + ext-cpd-id: ext-b-left + virtual-link-desc: + - id: mgmt + connectivity-type: + layer-protocol: ipv4 + df: + id: normal + qos: + latency: '0' + packet-delay-variation: '0' + - id: A-to-B + connectivity-type: + layer-protocol: ethernet + df: + id: normal + qos: + latency: '0' + packet-delay-variation: '0' + df: + - id: normal + vnf-profile: + - id: vnf-a-profile + vnfd-id: VNF-A + flavour-id: normal + instantiation-level: single + min-number-of-instances: '1' + max-number-of-instances: '1' + virtual-link-connectivity: + - virtual-link-profile-id: mgmt + constituent-cpd-id: + constituent-base-element-id: vdu-a-1 + constituent-cpd-id: management + - virtual-link-profile-id: A-to-B + constituent-cpd-id: + constituent-base-element-id: vdu-a-1 + constituent-cpd-id: left + - id: vnf-b-profile + vnfd-id: VNF-B + flavour-id: normal + instantiation-level: single + min-number-of-instances: '1' + max-number-of-instances: '1' + virtual-link-connectivity: + - virtual-link-profile-id: mgmt + constituent-cpd-id: + constituent-base-element-id: vdu-b-1 + constituent-cpd-id: management + - virtual-link-profile-id: A-to-B + constituent-cpd-id: + constituent-base-element-id: vdu-b-1 + constituent-cpd-id: right + virtual-link-profile: + - id: mgmt + virtual-link-desc-id: mgmt + flavour-id: normal + max-bitrate-requirements: + root: '1000' + min-bitrate-requirements: + root: '0' + - id: A-to-B + virtual-link-desc-id: A-to-B + flavour-id: normal + max-bitrate-requirements: + root: '10000000' + min-bitrate-requirements: + root: '0' + ns-instantiation-level: + - id: normal + description: Single VNF-A and VNF-B + vnf-to-level-mapping: + - vnf-profile-id: vnf-a-profile + number-of-instances: '1' + - vnf-profile-id: vnf-b-profile + number-of-instances: '1' + - id: double-A + description: Single VNF-B and Double VNF-A + vnf-to-level-mapping: + - vnf-profile-id: vnf-a-profile + number-of-instances: '2' + - vnf-profile-id: vnf-b-profile + number-of-instances: '1' + default-instantiation-level: normal diff --git a/SOL005/NSDManagement-API/environment/variables.txt b/SOL005/NSDManagement-API/environment/variables.txt index b837bc7c..b1441c67 100644 --- a/SOL005/NSDManagement-API/environment/variables.txt +++ b/SOL005/NSDManagement-API/environment/variables.txt @@ -91,4 +91,13 @@ ${notifCallbackUri} http://172.22.1.7:9091/nsd/subscriptions ${filter_ok} callbackUri=${notifCallbackUri} ${filter_ko} nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d # Not existant filter attribute-based -${callbackResp} 127.0.0.1 \ No newline at end of file +${callbackResp} 127.0.0.1 + +${check_descriptors} 1 +${descriptorType} SOL001 + +${NS_DescriptorID} +${Designer} +${NS_Name} +${NS_Version} +${NS_InvariantId} diff --git a/SOL005/NSDManagement-API/jsons/notifications/NsdChangeNotification.json b/SOL005/NSDManagement-API/jsons/notifications/NsdChangeNotification.json index 349ca546..302e0852 100644 --- a/SOL005/NSDManagement-API/jsons/notifications/NsdChangeNotification.json +++ b/SOL005/NSDManagement-API/jsons/notifications/NsdChangeNotification.json @@ -4,7 +4,7 @@ "subscriptionId":"{subscriptionId}", "timeStamp":"", "nsdInfoId":"{nsdInfoId}", - "nsdId":"", + "nsdId":"{nsdId}", "nsdOperationalState":"ENABLED", "_links":"" }} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/notifications/NsdDeletionNotification.json b/SOL005/NSDManagement-API/jsons/notifications/NsdDeletionNotification.json index 6909a5c2..a96e0dd3 100644 --- a/SOL005/NSDManagement-API/jsons/notifications/NsdDeletionNotification.json +++ b/SOL005/NSDManagement-API/jsons/notifications/NsdDeletionNotification.json @@ -4,6 +4,6 @@ "subscriptionId":"{subscriptionId}", "timeStamp":"", "nsdInfoId":"{nsdInfoId}", - "nsdId":"", + "nsdId":"{nsdId}", "_links":"" }} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingFailureNotification.json b/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingFailureNotification.json index 80cb4e8b..23a4e52a 100644 --- a/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingFailureNotification.json +++ b/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingFailureNotification.json @@ -5,5 +5,6 @@ "timeStamp":"", "nsdInfoId":"{nsdInfoId}", "onboardingFailureDetails":"", + "nsdId": "{nsdId}", "_links":"" }} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingNotification.json b/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingNotification.json index 5b9b4a22..9c048110 100644 --- a/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingNotification.json +++ b/SOL005/NSDManagement-API/jsons/notifications/NsdOnBoardingNotification.json @@ -4,6 +4,6 @@ "subscriptionId":"{subscriptionId}", "timeStamp":"", "nsdInfoId":"{nsdInfoId}", - "nsdId":"", + "nsdId": "{nsdId}", "_links":"" }} \ No newline at end of file diff --git a/SOL005/NSDManagement-API/jsons/subscriptions.json b/SOL005/NSDManagement-API/jsons/subscriptions.json index 7aa8965f..a82df503 100644 --- a/SOL005/NSDManagement-API/jsons/subscriptions.json +++ b/SOL005/NSDManagement-API/jsons/subscriptions.json @@ -1,3 +1,10 @@ {{ - "callbackUri": "{notifCallbackUri}" + "callbackUri": "{notifCallbackUri}", + "filter": {{ + "nsdId": "{nsdId}", + "nsdName": "{nsdName}", + "nsdVersion": "{nsdVersion}", + "nsdDesigner": "{nsdDesigner}", + "nsdInvariantId": "{nsdInvariantId}" + }} }} \ No newline at end of file -- GitLab