aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epsdk-app-onap/src/main/resources/db.changelog-01.sql3
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/services/LocalWorkflowsServiceImpl.java4
-rw-r--r--vid-app-common/src/main/webapp/app/vid/scripts/filters/change-managements-by-statuses.filter.js2
-rw-r--r--vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js71
-rw-r--r--vid-webpack-master/cypress/integration/iFrames/changeManagement.e2e.ts319
-rw-r--r--vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json69
6 files changed, 407 insertions, 61 deletions
diff --git a/epsdk-app-onap/src/main/resources/db.changelog-01.sql b/epsdk-app-onap/src/main/resources/db.changelog-01.sql
index 9a24692a9..bc3b383f4 100644
--- a/epsdk-app-onap/src/main/resources/db.changelog-01.sql
+++ b/epsdk-app-onap/src/main/resources/db.changelog-01.sql
@@ -323,3 +323,6 @@ UPDATE `fn_app` SET `APP_IMAGE_URL`=null,`APP_URL`=null,`APP_ALTERNATE_URL`=null
--changeset vid:service_info_request_summary
ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
ADD COLUMN `REQUEST_SUMMARY` VARCHAR(400) NULL DEFAULT NULL COLLATE 'utf8_bin';
+
+--changeset vid:add_workflow_pnf_software_upgrade
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (7, 'PNF Software Upgrade');
diff --git a/vid-app-common/src/main/java/org/onap/vid/services/LocalWorkflowsServiceImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/LocalWorkflowsServiceImpl.java
index 71d577cd4..441f80cf7 100644
--- a/vid-app-common/src/main/java/org/onap/vid/services/LocalWorkflowsServiceImpl.java
+++ b/vid-app-common/src/main/java/org/onap/vid/services/LocalWorkflowsServiceImpl.java
@@ -44,6 +44,10 @@ public class LocalWorkflowsServiceImpl implements LocalWorkflowsService {
new LocalWorkflowParameterDefinition(3, "existingSoftwareVersion", "Existing software version", true, LocalWorkflowType.text, "[-a-zA-Z0-9.]+"),
new LocalWorkflowParameterDefinition(4, "newSoftwareVersion", "New software version", true, LocalWorkflowType.text, "[-a-zA-Z0-9.]+")
)
+ )).put("PNF Software Upgrade", new LocalWorkflowParameterDefinitions(
+ ImmutableList.of(
+ new LocalWorkflowParameterDefinition(6, "targetSoftwareVersion", "Target software version", true, LocalWorkflowType.text, "[-a-zA-Z0-9.]+")
+ )
))
.put("VNF Config Update", new LocalWorkflowParameterDefinitions(
ImmutableList.of(
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/filters/change-managements-by-statuses.filter.js b/vid-app-common/src/main/webapp/app/vid/scripts/filters/change-managements-by-statuses.filter.js
index 5cff246c2..789273592 100644
--- a/vid-app-common/src/main/webapp/app/vid/scripts/filters/change-managements-by-statuses.filter.js
+++ b/vid-app-common/src/main/webapp/app/vid/scripts/filters/change-managements-by-statuses.filter.js
@@ -27,7 +27,7 @@
var result = [];
if(changeManagements && metadata && metadata.statuses) {
angular.forEach(changeManagements, function(changeManagement) {
- var found = metadata.statuses
+ var found = changeManagement.requestStatus && metadata.statuses
.map(function(c) { return c.toLowerCase(); })
.indexOf(changeManagement.requestStatus.requestState.toLowerCase()) !== -1;
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js b/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js
index 9eed4c14d..a4bdb367b 100644
--- a/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js
+++ b/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js
@@ -251,7 +251,6 @@
/***converting objects to scheduler format (taken from IST) - was altered for Scale out support ***/
function extractChangeManagementCallbackDataStr(changeManagement) {
- console.log(changeManagement);
var result = {};
result.requestType = changeManagement.workflow;
var workflowType = changeManagement.workflow;
@@ -287,6 +286,21 @@
requestParametersData = {
payload: JSON.stringify(payloadObj)
};
+ } else if (workflowType == "PNF Software Upgrade") {
+ requestParametersData = {
+ userParams: [
+ { "name":"pnfId",
+ "value":vnf.properties["vnf-id"]
+ },
+ { "name":"pnfName",
+ "value": vnf.name
+ },
+ { "name":"targetSoftwareVersion",
+ "value":vm.getInternalWorkFlowParameter(workflowType, 'text', 'Target software version').value
+ }
+ ]
+ };
+
} else if (workflowType == "VNF Config Update") {
requestParametersData = {
payload: vm.getInternalWorkFlowParameter("VNF Config Update", "FILE", "Attach configuration file").value
@@ -318,7 +332,7 @@
requestParametersData = {
payload: JSON.stringify(payloadObj)
};
- } else if (workflowType == "VNF Config Update") {
+ } else if (workflowType == "VNF Config Update") {
requestParametersData = {
payload: vm.getInternalWorkFlowParameter("VNF Config Update", "FILE", "Attach configuration file").value
};
@@ -345,24 +359,10 @@
configurationParameters: JSON.parse(vm.getInternalWorkFlowParameter("VNF Scale Out", "text", "Configuration Parameters").value)
};
requestInfoData.instanceName = vnf.name + "_" + (moduleToScale.currentCount + 1);
+ } else if (workflowType === "PNF Software Upgrade") {
+ data = nativeWorkflowRequestData('pnf', requestParametersData, vnf, requestInfoData);
} else {
- data = {
- vnfName: vnf.name,
- vnfInstanceId: vnf.id,
- modelInfo: {
- modelType: 'vnf',
- modelInvariantId: vnf.properties['model-invariant-id'],
- modelVersionId: vnf.modelVersionId,
- modelName: vnf.properties['vnf-name'],
- modelVersion: vnf.version,
- modelCustomizationName: vnf.properties['model-customization-name'],
- modelCustomizationId: vnf.properties['model-customization-id']
- },
- cloudConfiguration: vnf.cloudConfiguration,
- requestInfo: requestInfoData,
- relatedInstanceList: [],
- requestParameters: requestParametersData
- };
+ data = nativeWorkflowRequestData('vnf', requestParametersData, vnf, requestInfoData);
}
var serviceInstanceId = '';
@@ -419,6 +419,29 @@
return JSON.stringify(result);
}
+ function nativeWorkflowRequestData(modelType, requestParametersData, vnf, requestInfoData) {
+ var data = {
+ modelInfo: {
+ modelType: modelType,
+ modelInvariantId: vnf.properties['model-invariant-id'],
+ modelVersionId: vnf.modelVersionId,
+ modelName: vnf.properties['vnf-name'],
+ modelVersion: vnf.version,
+ modelCustomizationName: vnf.properties['model-customization-name'],
+ modelCustomizationId: vnf.properties['model-customization-id']
+ },
+ cloudConfiguration: vnf.cloudConfiguration,
+ requestInfo: requestInfoData,
+ requestParameters: requestParametersData
+ };
+ data[modelType + 'InstanceId'] = vnf.id;
+ if (modelType == "vnf"){
+ data[modelType + 'Name'] = vnf.name;
+ data['relatedInstanceList'] = [] ;
+ }
+ return data;
+ }
+
function getWorkflowParametersFromForm() {
let workflowParameters =
{
@@ -477,8 +500,6 @@
widgetParameter: $scope.widgetParameter
};
- console.log("vm.scheduleWorkflow data:", data);
-
if (window.parent !== window.self) {
window.parent.postMessage(data, VIDCONFIGURATION.SCHEDULER_PORTAL_URL);
} else {
@@ -492,7 +513,7 @@
vm.triggerLocalWorkflow();
} else {
let source = vm.getRemoteWorkflowSource(vm.changeManagement.workflow);
- if (source === "NATIVE") {
+ if (_.toUpper(source) === "NATIVE") {
vm.triggerLocalWorkflow();
} else {
vm.triggerRemoteWorkflow();
@@ -828,7 +849,11 @@
};
vm.loadRemoteWorkFlows = function () {
- let vnfModelIDs = vm.changeManagement.vnfNames.map(vnfName => vnfName.modelVersionId);
+ let vnfModelIDs = (vm.changeManagement.vnfNames || []).map(vnfName => vnfName.modelVersionId);
+ if (vnfModelIDs.length === 0) {
+ vm.remoteWorkflows = [];
+ return $q.resolve();
+ }
return changeManagementService.getSOWorkflows(vnfModelIDs)
.then(function (response) {
vm.remoteWorkflows = response.data || [];
diff --git a/vid-webpack-master/cypress/integration/iFrames/changeManagement.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/changeManagement.e2e.ts
index 3c2c9d80c..cb400528a 100644
--- a/vid-webpack-master/cypress/integration/iFrames/changeManagement.e2e.ts
+++ b/vid-webpack-master/cypress/integration/iFrames/changeManagement.e2e.ts
@@ -3,8 +3,30 @@
import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder";
import {AAISubDetailsModel} from "../../support/jsonBuilders/models/aaiSubDetails.model";
-describe('Change management AKA VNF changes', function () {
+function stubSubscriberDetails() {
let jsonBuilderAAISubDetailsModel: JsonBuilder<AAISubDetailsModel> = new JsonBuilder<AAISubDetailsModel>();
+ cy.readFile('cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json').then((res) => {
+ jsonBuilderAAISubDetailsModel.basicJson(
+ res,
+ Cypress.config('baseUrl') + "/aai_sub_details/e433710f-9217-458d-a79d-1c7aff376d89**",
+ 200,
+ 0,
+ "aai-sub-details")
+ });
+}
+
+function openNewVnfChangeModal() {
+ cy.visit('/serviceModels.htm#/change-management');
+ cy.getElementByDataTestsId('create-new-change-management').click();
+ cy.getElementByDataTestsId('newChangeManagementForm');
+}
+
+function fillSubscriberAndServiceType() {
+ cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS');
+ cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA');
+}
+
+describe('Change management AKA VNF changes', function () {
let jsonBuilderVnfData: JsonBuilder<any> = new JsonBuilder<any>();
let aaiGetVNFDataUrl = Cypress.config('baseUrl') + "/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA";
@@ -13,30 +35,15 @@ describe('Change management AKA VNF changes', function () {
beforeEach(() => {
cy.login();
cy.initAAIMock();
+ stubSubscriberDetails();
- cy.readFile('cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json').then((res) => {
- jsonBuilderAAISubDetailsModel.basicJson(
- res,
- Cypress.config('baseUrl') + "/aai_sub_details/e433710f-9217-458d-a79d-1c7aff376d89**",
- 200,
- 0,
- "aai-sub-details")
- });
-
- cy.readFile('cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json').then(() => {
- cy.server()
- .route({
- method: 'GET',
- delay: 0,
- status: 200,
- url: Cypress.config('baseUrl') + "/flags**",
- response: {
- "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true,
- "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": true,
- "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true
- }
- }).as('initFlags');
- });
+ cy.route(`${Cypress.config('baseUrl')}/flags`,
+ {
+ "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true,
+ "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": true,
+ "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+ })
+ .as('initFlags');
cy.readFile('cypress/support/jsonBuilders/mocks/jsons/get_vnf_data.json').then((res) => {
jsonBuilderVnfData.basicJson(
@@ -55,17 +62,6 @@ describe('Change management AKA VNF changes', function () {
cy.screenshot();
});
- function openNewVnfChangeModal() {
- cy.visit('/serviceModels.htm#/change-management');
- cy.getElementByDataTestsId('create-new-change-management').click();
- cy.getElementByDataTestsId('newChangeManagementForm');
- }
-
- function fillSubscriberAndServiceType() {
- cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS');
- cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA');
- }
-
function fillCloudRegion() {
cy.selectDropdownOptionByText('cloudRegion', 'AAIAIC25 (AIC)');
}
@@ -111,7 +107,7 @@ describe('Change management AKA VNF changes', function () {
cy.get('#searchVNF').click();
cy.wait('@aai_get_vnf_data')
- .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25")
+ .its('url').should('equal', aaiGetVNFDataUrl + "?cloudRegion=AAIAIC25")
});
it(`search vnfs by nf role`, function () {
@@ -121,6 +117,255 @@ describe('Change management AKA VNF changes', function () {
cy.get('#searchVNF').click();
cy.wait('@aai_get_vnf_data')
- .its('url').should('equal', aaiGetVNFDataUrl + "?nfRole=vMobileDNS")
+ .its('url').should('equal', aaiGetVNFDataUrl + "?nfRole=vMobileDNS")
});
});
+
+describe('Change management AKA VNF changes with SO workflows', function () {
+ beforeEach(() => {
+ cy.login();
+ cy.initAAIMock();
+ stubSubscriberDetails();
+
+ cy.route(`${Cypress.config('baseUrl')}/flags**`,
+ {
+ "FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG": true,
+ "FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH": false,
+ "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+ "FLAG_HANDLE_SO_WORKFLOWS": true,
+ "FLAG_DISABLE_HOMING": true,
+ "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+ })
+ .as('initFlags');
+
+ cy.route(`${Cypress.config('baseUrl')}/get_vnf_data_by_globalid_and_service_type/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA`,
+ 'fixture:../support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json')
+ .as('aai_get_vnf_data');
+
+ cy.route(`${Cypress.config('baseUrl')}/rest/models/services?distributionStatus=DISTRIBUTED`,
+ 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/list-services.json')
+ .as('list_services');
+
+ cy.route(`${Cypress.config('baseUrl')}/rest/models/services/74fa72dd-012b-49c3-800d-06b12bcaf1a0`,
+ 'fixture:../support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json')
+ .as('get_service_model');
+
+ cy.route('POST', `${Cypress.config('baseUrl')}/aai_get_version_by_invariant_id`,
+ {
+ "model": [
+ {
+ "model-invariant-id": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
+ "model-type": "resource",
+ "resource-version": "1507747452923",
+ "model-vers": {
+ "model-ver": [
+ {
+ "model-version-id": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
+ "model-name": "092017_VSP_GINGERby11",
+ "model-version": "1.0",
+ "model-description": "092017_VSP_GINGERby11",
+ }
+ ]
+ }
+ },
+ ]
+ }
+ )
+ .as('aai_get_version_by_invariant_id');
+
+ openNewVnfChangeModal();
+ });
+
+ afterEach(() => {
+ cy.screenshot();
+ });
+
+
+ it(`vnf software upgrade: given vnf with matching workflow -- payload is as expected`, function () {
+
+ cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`,
+ [{
+ "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
+ "workflowName": "inPlaceSoftwareUpdate",
+ "name": "VNF In Place Software Update",
+ "source": "native",
+ "workflowInputParameters": [
+ {
+ "label": "New Software Version",
+ "inputType": "text",
+ "required": true,
+ "soFieldName": "new_software_version",
+ "soPayloadLocation": "userParams",
+ "validation": []
+ }
+ ]
+ }])
+ .as('workflows_inPlaceSoftwareUpdate');
+
+ fillSubscriberAndServiceType();
+ selectNfRole();
+ selectVnf();
+
+ cy.get('#workflow').select('VNF In Place Software Update');
+
+ cy.get('#internal-workflow-parameter-text-2-operations-timeout')
+ .type("1");
+ cy.get('#internal-workflow-parameter-text-3-existing-software-version')
+ .type("1.0");
+ cy.get('#internal-workflow-parameter-text-4-new-software-version')
+ .type("3.0");
+
+ cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`)
+ .as('apply_workflow');
+
+ cy.get('#submit').click();
+
+ cy.wait('@apply_workflow').then(xhr => {
+ cy.deepCompare(xhr.request.body, {
+ "requestType": "VNF In Place Software Update",
+ "requestDetails": [
+ {
+ "vnfName": "zolson3amdns02test2",
+ "vnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
+ "modelInfo": {
+ "modelType": "vnf",
+ "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
+ "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
+ "modelName": "zolson3amdns02test2",
+ "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b"
+ },
+ "cloudConfiguration": {
+ "lcpCloudRegionId": "mdt1",
+ "tenantId": "88a6ca3ee0394ade9403f075db23167e"
+ },
+ "requestInfo": {
+ "source": "VID",
+ "suppressRollback": false,
+ "requestorId": "us16807000"
+ },
+ "relatedInstanceList": [
+ {
+ "relatedInstance": {
+ "instanceId": "97315a05-e6f3-4c47-ae7e-d850c327aa08",
+ "modelInfo": {
+ "modelType": "service",
+ "modelInvariantId": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d",
+ "modelVersionId": "74fa72dd-012b-49c3-800d-06b12bcaf1a0",
+ "modelName": "Dror_service1806_Macro1",
+ "modelVersion": "2.0"
+ }
+ }
+ }
+ ],
+ "requestParameters": {
+ "payload": "{\"existing_software_version\":\"1.0\",\"new_software_version\":\"3.0\",\"operations_timeout\":\"1\"}"
+ }
+ }
+ ]
+ });
+ });
+
+ });
+
+ it(`pnf software upgrade: given pnf with matching workflow -- payload is as expected`, function () {
+
+ cy.route(`${Cypress.config('baseUrl')}/workflows-management/workflows?vnfModelId=1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d`,
+ [{
+ "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
+ "workflowName": "PNFSoftwareUpgrade",
+ "name": "PNF Software Upgrade",
+ "source": "native",
+ "workflowInputParameters": [
+ {
+ "label": "Target Software Version",
+ "inputType": "text",
+ "required": true,
+ "soFieldName": "targetSoftwareVersion",
+ "soPayloadLocation": "userParams",
+ "validation": []
+ }
+ ]
+ }])
+ .as('workflows_PNFSoftwareUpgrade');
+
+ fillSubscriberAndServiceType();
+ selectNfRole();
+ selectPnf();
+
+ cy.get('#workflow').select('PNF Software Upgrade');
+
+ cy.get('#internal-workflow-parameter-text-6-target-software-version')
+ .type("demo-sw-ver2.0.0");
+
+ cy.route('POST', `${Cypress.config('baseUrl')}/change-management/workflow/zolson3amdns02test2`)
+ .as('apply_workflow');
+
+ cy.get('#submit').click();
+
+ cy.wait('@apply_workflow').then(xhr => {
+ cy.deepCompare(xhr.request.body, {
+ "requestType": "PNF Software Upgrade",
+ "requestDetails": [
+ {
+ "pnfInstanceId": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
+ "modelInfo": {
+ "modelType": "pnf",
+ "modelInvariantId": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
+ "modelVersionId": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
+ "modelName": "zolson3amdns02test2",
+ "modelCustomizationId": "cc40295f-a834-4f42-b634-32fff9d6489b"
+ },
+ "cloudConfiguration": {
+ "lcpCloudRegionId": "mdt1",
+ "tenantId": "88a6ca3ee0394ade9403f075db23167e"
+ },
+ "requestInfo": {
+ "source": "VID",
+ "suppressRollback": false,
+ "requestorId": "us16807000"
+ },
+ "requestParameters": {
+ "userParams":[
+ {
+ "name":"pnfId",
+ "value":"8e5e3ba1-3fe6-4d86-966e-f9f03dab4855"
+ },
+ {
+ "name":"pnfName",
+ "value":"zolson3amdns02test2"
+ },
+ {
+ "name":"targetSoftwareVersion",
+ "value":"demo-sw-ver2.0.0"
+ }
+ ]
+ }
+ }
+ ]
+ });
+ });
+
+ });
+
+ function selectNfRole() {
+ cy.get('#vnfType').select('vMobileDNS');
+ }
+
+ function selectVnf() {
+ cy.get('#fromVNFVersion').select('1.0');
+
+ cy.log("open the Available VNF list").get('#vnfName').click();
+ cy.get('li').contains('zolson3amdns02test2').click();
+ cy.log("collapse the Available VNF list").get('#vnfName').click();
+ }
+
+ function selectPnf() {
+ cy.get('#fromVNFVersion').select('1.0');
+
+ cy.log("open the Available VNF list").get('#vnfName').click();
+ cy.get('li').contains('zolson3amdns02test2').click();
+ cy.log("collapse the Available VNF list").get('#vnfName').click();
+ }
+
+
+});
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json
new file mode 100644
index 000000000..c2ff8b974
--- /dev/null
+++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/get_vnf_data_by_globalid_and_service_type.json
@@ -0,0 +1,69 @@
+{
+ "results": [
+ {
+ "id": "3008335920",
+ "node-type": "service-instance",
+ "url": "https://aai.onap.org:8443/aai/v10/business/customers/customer/a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb/service-subscriptions/service-subscription/vRichardson/service-instances/service-instance/97315a05-e6f3-4c47-ae7e-d850c327aa08",
+ "properties": {
+ "service-instance-id": "97315a05-e6f3-4c47-ae7e-d850c327aa08",
+ "service-instance-name": "Dror_service1806_Macro1",
+ "model-invariant-id": "bceeaff9-5716-42bf-8fa1-8c6f720cf61d",
+ "model-version-id": "74fa72dd-012b-49c3-800d-06b12bcaf1a0",
+ "resource-version": "1506527653053",
+ "orchestration-status": "Active"
+ },
+ "related-to": [
+ {
+ "id": "10207440",
+ "node-type": "service-subscription",
+ "url": "https://aai.onap.org:8443/aai/v10/business/customers/customer/a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb/service-subscriptions/service-subscription/vRichardson"
+ },
+ {
+ "id": "3418898432",
+ "node-type": "generic-vnf",
+ "url": "https://aai.onap.org:8443/aai/v10/network/generic-vnfs/generic-vnf/8e5e3ba1-3fe6-4d86-966e-f9f03dab4855"
+ }
+ ]
+ },
+ {
+ "id": "3418898432",
+ "node-type": "generic-vnf",
+ "url": "https://aai.onap.org:8443/aai/v10/network/generic-vnfs/generic-vnf/8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
+ "properties": {
+ "vnf-id": "8e5e3ba1-3fe6-4d86-966e-f9f03dab4855",
+ "vnf-name": "zolson3amdns02test2",
+ "vnf-type": "CHARLOTTE preload 1710 0914/CHARLOTTE preload 1710 0914 0",
+ "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+ "prov-status": "PREPROV",
+ "orchestration-status": "Created",
+ "in-maint": false,
+ "is-closed-loop-disabled": false,
+ "resource-version": "1507132024933",
+ "model-invariant-id": "e88d6582-b7e5-4dc6-ac9c-6f7130727a92",
+ "model-version-id": "1ecfa5f1-78c5-41f6-ad34-753ca1fcdc5d",
+ "model-customization-id": "cc40295f-a834-4f42-b634-32fff9d6489b",
+ "nf-type": "DNS",
+ "nf-function": "Mobile DNS",
+ "nf-role": "vMobileDNS",
+ "nf-naming-code": "null"
+ },
+ "related-to": [
+ {
+ "id": "3664617648",
+ "node-type": "vf-module",
+ "url": "https://aai.onap.org:8443/aai/v10/network/generic-vnfs/generic-vnf/8e5e3ba1-3fe6-4d86-966e-f9f03dab4855/vf-modules/vf-module/788cde64-c288-4971-8e8c-77973c5009dc"
+ },
+ {
+ "id": "3008335920",
+ "node-type": "service-instance",
+ "url": "https://aai.onap.org:8443/aai/v10/business/customers/customer/a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb/service-subscriptions/service-subscription/vRichardson/service-instances/service-instance/97315a05-e6f3-4c47-ae7e-d850c327aa08"
+ },
+ {
+ "id": "4458950808",
+ "node-type": "vserver",
+ "url": "https://aai.onap.org:8443/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/irma-aic/mdt1/tenants/tenant/88a6ca3ee0394ade9403f075db23167e/vservers/vserver/047354dc-0244-4241-b24a-7d7b00413b82"
+ }
+ ]
+ }
+ ]
+}