diff options
author | ikram <ikram@research.att.com> | 2020-08-07 15:49:11 -0400 |
---|---|---|
committer | Kruthi Bhat <krutbhat@att.com> | 2020-08-10 19:21:30 +0000 |
commit | 32af6479c686d217204de3a86940ac1256da4b9f (patch) | |
tree | 98eb5135887c5bf5943099a783c9cd3d7dbbd8a4 | |
parent | 09a6562a16715a2b89be11c941486be783c72364 (diff) |
Visualization of the VF Module Sequencing
Issue-ID: VID-860
More scenarios covered in VID-860 for vf-module sequencing.
Signed-off-by: ikram <ikram@research.att.com>
Change-Id: Ie138ba2616961fba7856eaaf5f17b5dc63a08e6e
21 files changed, 2962 insertions, 64 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/properties/Features.java b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java index 1b5ce8ba2..f863b3025 100644 --- a/vid-app-common/src/main/java/org/onap/vid/properties/Features.java +++ b/vid-app-common/src/main/java/org/onap/vid/properties/Features.java @@ -103,6 +103,7 @@ public enum Features implements Feature { FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP, FLAG_2008_REMOVE_PAUSE_INSTANTIATION, ; + public boolean isActive() { return FeatureContext.getFeatureManager().isActive(this); } diff --git a/vid-automation/src/main/java/vid/automation/test/infra/Features.java b/vid-automation/src/main/java/vid/automation/test/infra/Features.java index ec2422bcb..3e499de2f 100644 --- a/vid-automation/src/main/java/vid/automation/test/infra/Features.java +++ b/vid-automation/src/main/java/vid/automation/test/infra/Features.java @@ -72,7 +72,6 @@ public enum Features implements Feature { FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP, FLAG_2008_REMOVE_PAUSE_INSTANTIATION, ; - public boolean isActive() { return FeatureContext.getFeatureManager().isActive(this); } diff --git a/vid-webpack-master/cypress/integration/iFrames/instanceCreationWithOrderNumber.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/instanceCreationWithOrderNumber.e2e.ts new file mode 100644 index 000000000..358cca116 --- /dev/null +++ b/vid-webpack-master/cypress/integration/iFrames/instanceCreationWithOrderNumber.e2e.ts @@ -0,0 +1,1697 @@ +import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder"; +import {ServiceModel} from "../../support/jsonBuilders/models/service.model"; +import {AsyncInstantiationModel} from "../../support/jsonBuilders/models/asyncInstantiation.model"; + +describe('Create instance : from service instance, from drawing board, with order number', function () { + var jsonBuilderInstantiationBuilder: JsonBuilder<AsyncInstantiationModel> = new JsonBuilder<AsyncInstantiationModel>(); + var asyncRes: Array<any>; + beforeEach(() => { + cy.clearSessionStorage(); + cy.setReduxState(); + cy.preventErrorsOnLoading(); + cy.initAAIMock(); + cy.initVidMock(); + cy.initActiveNetworks(); + cy.setTestApiParamToGR(); + cy.permissionVidMock(); + jsonBuilderInstantiationBuilder.basicMock('cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json', + Cypress.config('baseUrl') + "/asyncInstantiation**", + (res: any) => { + asyncRes = res; + return res; + }); + cy.login(); + }); + + afterEach(() => { + cy.screenshot(); + }); + + describe('multiple scenario tests', () => { + + + it('should create VF modules automatically with order number as 1 for the base module,' + + 'for service instance with 1 VNF with a required VF module', () => { + cy.readFile('cypress/support/jsonBuilders/mocks/jsons/basicReduxForTestingPosition.json').then((res) => { + res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].properties['min_instances'] = 3; + cy.setReduxState(<any>res); + cy.addAlacarteService().then(() => { + cy.wait(2000); + cy.visit("welcome.htm").then(() => { + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').should('exist'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').should('have.length', 1); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find(`[data-tests-id='node-position-indicator']`).should('have.text', '1'); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0-menu-btn').click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-edit').click().then(() => { + cy.fillVnfPopup(); + }) + }) + + }); + }); + }); + }); + + it('should Add 2 more VF module instances with the order number is calculated properly', () => { + let res = getReduxWithVNFS(); + cy.setReduxState(<any>res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.wait(3000); + cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').should('exist'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').should('have.length', 1); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find(`[data-tests-id='node-position-indicator']`).should('have.text', '1'); + cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0-menu-btn') + .click({force: true}).then(() => { + cy.getElementByDataTestsId('context-menu-edit').click().then(() => { + cy.getElementByDataTestsId('form-set').click(); + }) + }) + const vnfName = "2017-488_PASQUALE-vPE 0"; + let vfModulesNames: Array<string> = [ + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1', + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2' + ]; + const uuidAndVfModuleNames: Array<string> = [ + '25284168-24bb-4698-8cb4-3f509146eca5-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1', + '0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2' + ]; + addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName, vfModulesNames[0], uuidAndVfModuleNames[0]); + cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').find(`[data-tests-id='node-position-indicator']`).should('have.text', '2'); + cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1-menu-btn') + .click({force: true}).then(() => { + cy.wait(1000); + cy.getElementByDataTestsId('context-menu-edit').click().then(() => { + cy.getElementByDataTestsId('form-set').click(); + }) + }) + addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName, vfModulesNames[1], uuidAndVfModuleNames[1]); + cy.getElementByDataTestsId('node-0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2').find(`[data-tests-id='node-position-indicator']`).should('have.text', '3'); + cy.getElementByDataTestsId('node-0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2-menu-btn') + .click({force: true}).then(() => { + cy.wait(1000); + cy.getElementByDataTestsId('context-menu-edit').click().then(() => { + cy.getElementByDataTestsId('form-set').click(); + }) + }) + }); + + it('should Add 1 more VF module instance of module 1', () => { + let res = getReduxWithVNFS(); //get with 3 module instances + (<any> res.service.serviceInstance)['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].vfModules = { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0dcclk": { + "instanceName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3" + }, + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "isMissingData": false, + "position": 1 + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1nbuwm": { + "instanceName": null, + "volumeGroupName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + { + "pasqualevpe0_bandwidth": "10", + "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6", + "2017488_pasqualevpe0_vnf_config_template_version": "17.2", + "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA", + "pasqualevpe0_bandwidth_units": "Gbps" + } + ], + "modelInfo": { + "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "modelVersion": "6", + "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401" + }, + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "isMissingData": false, + "position": 2 + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2tleon": { + "instanceName": null, + "volumeGroupName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "modelName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "modelVersion": "6", + "modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557" + }, + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "isMissingData": false, + "position": 3 + } + } + }; + cy.setReduxState(<any>res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + + const vnfName = "2017-488_PASQUALE-vPE 0"; + let vfModulesNames: Array<string> = [ + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1' + ]; + const uuidAndVfModuleNames: Array<string> = [ + '25284168-24bb-4698-8cb4-3f509146eca5-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1' + ]; + + cy.getElementByDataTestsId('node-' + vnfName).click({force: true}).then(() => { + cy.getElementByDataTestsId('node-' + vfModulesNames[0] + '-add-btn').click({force: true}) + }); + //addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName, vfModulesNames[0], uuidAndVfModuleNames[0]); + cy.getElementByDataTestsId('node-'+uuidAndVfModuleNames[0]).should('have.length', '2'); + + + }); + + + it('should not display order number on drawing board if the flag is set to false', () => { + let res = getReduxWithVNFS(); + (<any> res.global.flags)['FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE'] = false; + (<any> res.global.flags)['FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER']=false; + + cy.setReduxState(<any>res); + cy.visit("welcome.htm").then(() => { + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + cy.get('#node-position-indicator').and('not.be.visible'); + }); + + //cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find(`[data-tests-id='node-position-indicator']`).should('have.text', '1'); + + }); + + it('should click on deploy and verify the positions of all instances', () => { + let res = getReduxWithVNFS(); //get with 3 module instances + (<any> res.service.serviceInstance)['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].vfModules = { + + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0dcclk": { + "instanceName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3" + }, + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "isMissingData": false, + "position": 1 + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1nbuwm": { + "instanceName": null, + "volumeGroupName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + { + "pasqualevpe0_bandwidth": "10", + "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6", + "2017488_pasqualevpe0_vnf_config_template_version": "17.2", + "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA", + "pasqualevpe0_bandwidth_units": "Gbps" + } + ], + "modelInfo": { + "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "modelVersion": "6", + "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401" + }, + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "isMissingData": false, + "position": 2 + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1owfay": { + "isMissingData": false, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5", + "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "modelVersion": "6", + "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401" + }, + "instanceParams": [ + { + "pasqualevpe0_bandwidth": "10", + "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6", + "2017488_pasqualevpe0_vnf_config_template_version": "17.2", + "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA", + "pasqualevpe0_bandwidth_units": "Gbps" + } + ], + "trackById": "u3xrxb65ff", + "rollbackOnFailure": true, + "position": 4, + "action": "Create" + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2tleon": { + "instanceName": null, + "volumeGroupName": null, + "rollbackOnFailure": true, + "sdncPreLoad": null, + "instanceParams": [ + {} + ], + "modelInfo": { + "modelInvariantId": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "modelName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "modelVersion": "6", + "modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557" + }, + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "isMissingData": false, + "position": 3 + } + } + }; + cy.setReduxState(<any>res); + cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'); + + const vnfName = "2017-488_PASQUALE-vPE 0"; + let vfModulesNames: Array<string> = [ + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0', + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1', + '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2' + ]; + + + mockAsyncBulkResponse(); + cy.wait(1000); + cy.getDrawingBoardDeployBtn().click(); + + cy.wait('@expectedPostAsyncInstantiation') + .then(xhr => { + let vfModules = bodyOf(xhr).vnfs['2017-488_PASQUALE-vPE 0'].vfModules; + + let baseVModule = vfModules[vfModulesNames[0]]; + const baseVModuleObject = baseVModule[Object.keys(baseVModule)[0]]; + expect(baseVModuleObject.position).equals(1); + + let secondVModule = vfModules[vfModulesNames[1]]; + const secondVModuleObject = secondVModule[Object.keys(secondVModule)[0]]; + expect(secondVModuleObject.position).equals(2); + + let thirdVModule = vfModules[vfModulesNames[2]]; + const thirdVModuleObject = thirdVModule[Object.keys(thirdVModule)[0]]; + expect(thirdVModuleObject.position).equals(3); + + let secondVModuleInstance2 = vfModules[vfModulesNames[1]]; + const secondVModuleObjectInstance2 = secondVModuleInstance2[Object.keys(secondVModuleInstance2)[1]]; + expect(secondVModuleObjectInstance2.position).equals(4); + + }); + cy.openIframe('app/ui/#/instantiationStatus'); + + + }); + + function getJobIconClass(status: string) : string{ + switch(`${status}`.toUpperCase()) { + case 'PENDING' : + return "pending"; + case 'IN_PROGRESS' : + return "in_progress"; + case 'PAUSED' : + return "pause"; + case 'FAILED' : + return "x-circle-o"; + case 'COMPLETED' : + return "success-circle-o"; + case 'STOPPED' : + return "stop"; + case 'COMPLETED_WITH_ERRORS' : + return "success_with_warning"; + case 'COMPLETED_AND_PAUSED' : + return "stopped-upon-success"; + default: + return "question-mark-circle-o"; + } + } + + function bodyOf(xhr: Cypress.WaitXHR) { + return JSON.parse(JSON.stringify(xhr.request.body)); + } + + function mockAsyncBulkResponse() { + cy.server().route({ + url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk', + method: 'POST', + status: 200, + response: "[]", + }).as("expectedPostAsyncInstantiation"); + } + + function getReduxWithVNFS() { + return { + "global": { + "name": null, + "type": "UPDATE_DRAWING_BOARD_STATUS", + "flags": { + "EMPTY_DRAWING_BOARD_TEST": false, + "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false, + "FLAG_ADD_MSO_TESTAPI_FIELD": true, + "FLAG_SERVICE_MODEL_CACHE": false, + "FLAG_SHOW_ASSIGNMENTS": true, + "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true, + "FLAG_A_LA_CARTE_AUDIT_INFO": true, + "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true, + "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true, + "FLAG_1902_NEW_VIEW_EDIT": true, + "FLAG_VF_MODULE_RESUME_STATUS_CREATE": true, + "FLAG_1906_COMPONENT_INFO": true, + "FLAG_1908_RESUME_MACRO_SERVICE": true, + "FLAG_ENABLE_WEBPACK_MODERN_UI": true, + "FLAG_FLASH_REPLACE_VF_MODULE": true, + "FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT": true, + "FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE": true, + "FLAG_1911_INSTANTIATION_ORDER_BUTTON_IN_ASYNC_ALACARTE": true, + "FLAG_2002_VNF_PLATFORM_MULTI_SELECT": true, + "FLAG_2002_VFM_UPGRADE_ADDITIONAL_OPTIONS": true, + "FLAG_2004_INSTANTIATION_STATUS_FILTER": true, + "FLAG_2004_INSTANTIATION_TEMPLATES_POPUP": true, + "FLAG_2002_UNLIMITED_MAX": true, + "FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE": true, + "FLAG_2006_VFM_SDNC_PRELOAD_FILES": true, + "FLAG_2006_VFMODULE_TAKES_TENANT_AND_REGION_FROM_VNF": true, + "FLAG_2006_NETWORK_PLATFORM_MULTI_SELECT": true, + "FLAG_2006_NETWORK_LOB_MULTI_SELECT": true, + "FLAG_2006_NEW_VIEW_EDIT_BUTTON_IN_INSTANTIATION_STATUS": true, + "FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION": true, + "FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE": true, + "FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER": true + }, + "drawingBoardStatus": "CREATE" + }, + "service": { + "serviceHierarchy": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "service": { + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "true", + "instantiationType": "A-La-Carte", + "vidNotions": { + "instantiationType": "A-La-Carte" + }, + "inputs": { + "2017488_pasqualevpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-488_PASQUALE-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_PASQUALE-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_pasqualevpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:pasqualevpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5", + "min_instances": 3 + }, + "type": "VF", + "modelCustomizationName": "2017-488_PASQUALE-vPE 0", + "vfModules": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV", + "baseModule": false + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV", + "baseModule": false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV" + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResources": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV" + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "PASQUALE_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV" + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "action": "Create", + "isDirty": true, + "vnfs": { + "2017-488_PASQUALE-vPE 0": { + "action": "Create", + "inMaint": false, + "rollbackOnFailure": "true", + "originalName": "2017-488_PASQUALE-vPE 0", + "isMissingData": false, + "trackById": "v7t52jd77ve", + "vfModules": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0dcclk": { + "isMissingData": true, + "sdncPreReload": null, + "modelInfo": { + "modelType": "VFmodule", + "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "modelVersion": "5", + "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3" + }, + "instanceParams": [ + {} + ], + "trackById": "j671h5gcc89", + "rollbackOnFailure": true, + "action": "Create", + "position": 1 + } + } + }, + "vnfStoreKey": "2017-488_PASQUALE-vPE 0", + "upgradedVFMSonsCounter": 0, + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "lcpCloudRegionId": "hvf6", + "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e", + "lineOfBusiness": "zzz1", + "platformName": "xxx1", + "modelInfo": { + "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelName": "2017-488_PASQUALE-vPE", + "modelVersion": "5.0", + "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "modelCustomizationName": "2017-488_PASQUALE-vPE 0", + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45" + }, + "instanceName": null, + "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "instanceParams": [ + {} + ] + } + }, + "vrfs": {}, + "instanceParams": [ + { + "2017488_pasqualevpe0_ASN": "AV_vPE" + } + ], + "validationCounter": 0, + "existingNames": {}, + "existingVNFCounterMap": { + "1da7b585-5e61-4993-b95e-8e6606c81e45": 1 + }, + "existingVRFCounterMap": {}, + "existingVnfGroupCounterMap": {}, + "existingNetworksCounterMap": {}, + "optionalGroupMembersMap": {}, + "networks": {}, + "vnfGroups": {}, + "bulkSize": 1, + "isUpgraded": false, + "upgradedVFMSonsCounter": 0, + "instanceName": null, + "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89", + "subscriptionServiceType": "TYLER SILVIA", + "owningEntityId": "aaa1", + "projectName": "WATKINS", + "rollbackOnFailure": "true", + "aicZoneName": null, + "owningEntityName": "aaa1", + "testApi": "GR_API", + "tenantName": null, + "modelInfo": { + "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "modelVersionId": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "modelName": "action-data", + "modelVersion": "1.0", + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "modelUniqueId": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd" + }, + "isALaCarte": true, + "name": "action-data", + "version": "1.0", + "description": "", + "category": "", + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "serviceType": "", + "serviceRole": "", + "vidNotions": { + "instantiationType": "A-La-Carte" + }, + "isEcompGeneratedNaming": true, + "isMultiStepDesign": false + } + }, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "AAIAIC25", + "name": "AAIAIC25 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "hvf6", + "name": "hvf6 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "olson3", + "name": "olson3 (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "olson5a", + "name": "olson5a (AIC)", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "lcpRegionsTenantsMap": { + "AAIAIC25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "229bcdc6eaeb4ca59d55221141d01f8e", + "name": "AIN Web Tool-15-D-STTest2", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "1178612d2b394be4834ad77f567c0af2", + "name": "AIN Web Tool-15-D-SSPtestcustome", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "19c5ade915eb461e8af52fb2fd8cd1f2", + "name": "AIN Web Tool-15-D-UncheckedEcopm", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "de007636e25249238447264a988a927b", + "name": "AIN Web Tool-15-D-dfsdf", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "62f29b3613634ca6a3065cbe0e020c44", + "name": "AIN/SMS-16-D-Multiservices1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "649289e30d3244e0b48098114d63c2aa", + "name": "AIN Web Tool-15-D-SSPST66", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "3f21eeea6c2c486bba31dab816c05a32", + "name": "AIN Web Tool-15-D-ASSPST47", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f60ce21d3ee6427586cff0d22b03b773", + "name": "CESAR-100-D-sspjg67246", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "8774659e425f479895ae091bb5d46560", + "name": "CESAR-100-D-sspjg68359", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "624eb554b0d147c19ff8885341760481", + "name": "AINWebTool-15-D-iftach", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "214f55f5fc414c678059c383b03e4962", + "name": "CESAR-100-D-sspjg612401", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "c90666c291664841bb98e4d981ff1db5", + "name": "CESAR-100-D-sspjg621340", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "ce5b6bc5c7b348e1bf4b91ac9a174278", + "name": "sspjg621351cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "b386b768a3f24c8e953abbe0b3488c02", + "name": "AINWebTool-15-D-eteancomp", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "dc6c4dbfd225474e9deaadd34968646c", + "name": "AINWebTool-15-T-SPFET", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "02cb5030e9914aa4be120bd9ed1e19eb", + "name": "AINWebTool-15-X-eeweww", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f2f3830e4c984d45bcd00e1a04158a79", + "name": "CESAR-100-D-spjg61909", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "05b91bd5137f4929878edd965755c06d", + "name": "CESAR-100-D-sspjg621512cloned", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "7002fbe8482d4a989ddf445b1ce336e0", + "name": "AINWebTool-15-X-vdr", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "4008522be43741dcb1f5422022a2aa0b", + "name": "AINWebTool-15-D-ssasa", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "f44e2e96a1b6476abfda2fa407b00169", + "name": "AINWebTool-15-D-PFNPT", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "b69a52bec8a84669a37a1e8b72708be7", + "name": "AINWebTool-15-X-vdre", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "fac7d9fd56154caeb9332202dcf2969f", + "name": "AINWebTool-15-X-NONPODECOMP", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "2d34d8396e194eb49969fd61ffbff961", + "name": "DN5242-Nov16-T5", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "cb42a77ff45b48a8b8deb83bb64acc74", + "name": "ro-T11", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "4914ab0ab3a743e58f0eefdacc1dde77", + "name": "DN5242-Nov21-T1", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true, + "cloudOwner": "irma-aic" + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "olson3": [ + { + "id": "cbb99fe4ada84631b7baf046b6fd2XXX", + "name": "DN5242-Nov16-T3XXX", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ], + "olson5a": [ + { + "id": "cbb99fe4ada84631b7baf046b6fd2YYY", + "name": "DN5242-Nov16-T3YYY", + "isPermitted": true, + "cloudOwner": "irma-aic" + } + ] + } + }, + "subscribers": [ + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "ERICA", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vEsmeralda", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "vMuriel", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "JOSEFINA", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vPorfirio", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vFLORENCE", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vEsmeralda", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vWINIFRED", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP", + "index": 1 + }, + { + "id": "zzz1", + "name": "zzz1", + "index": 2 + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "UPDATE_LCP_REGIONS_AND_TENANTS" + } + } + } + + function addALaCarteVfModuleEcompGeneratedNamingTrue(vnfName: string, vfModulesName: string, uuidAndVfModuleName: string): Chainable<any> { + return cy.getElementByDataTestsId('node-' + vnfName).click({force: true}).then(() => { + cy.getElementByDataTestsId('node-' + vfModulesName + '-add-btn').click({force: true}).then(() => { + cy.getElementByDataTestsId('node-' + uuidAndVfModuleName + '-menu-btn') + .click({force: true, multiple:true}).then(() => { + cy.getElementByDataTestsId('context-menu-edit').click().then(() => { + cy.getElementByDataTestsId('form-set').click(); + }) + }) + }) + }) + } + + + + + }); +}); diff --git a/vid-webpack-master/cypress/integration/iFrames/instantiation-templates.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/instantiation-templates.e2e.ts index 76677781d..937475b30 100644 --- a/vid-webpack-master/cypress/integration/iFrames/instantiation-templates.e2e.ts +++ b/vid-webpack-master/cypress/integration/iFrames/instantiation-templates.e2e.ts @@ -195,8 +195,8 @@ describe('Drawing Board: Instantiation Templates', function () { {path: ["existingNames", `${newVfModuleName}_vol`], value: ""}, {path: latestVfModule_1Path, value: latestVfModule_1ExpectedValue}, {path: ["validationCounter"], value: null}, // side-effect - {path: [...vfModule_1, "position"], value: 2}, - {path: [...vfModule_0, "position"], value: 1}, + //{path: [...vfModule_1, "position"], value: 2}, + //{path: [...vfModule_0, "position"], value: 1}, ]); }); diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicReduxForTestingPosition.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicReduxForTestingPosition.json new file mode 100644 index 000000000..eb77c5ef9 --- /dev/null +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicReduxForTestingPosition.json @@ -0,0 +1,932 @@ +{ + "global": { + "name": null + }, + "service": { + "serviceHierarchy": { + "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": { + "service": { + "uuid": "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", + "name": "action-data", + "version": "1.0", + "toscaModelURL": null, + "category": "", + "serviceType": "", + "serviceRole": "", + "description": "", + "serviceEcompNaming": "true", + "instantiationType": "A-La-Carte", + "vidNotions": { + "instantiationType": "A-La-Carte" + }, + "inputs": { + "2017488_pasqualevpe0_ASN": { + "type": "string", + "description": "AV/PE", + "entry_schema": null, + "inputProperties": null, + "constraints": [], + "required": true, + "default": "AV_vPE" + } + } + }, + "vnfs": { + "2017-488_PASQUALE-vPE 0": { + "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09", + "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8", + "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM", + "name": "2017-488_PASQUALE-vPE", + "version": "5.0", + "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45", + "inputs": {}, + "commands": {}, + "properties": { + "vmxvre_retype": "RE-VMX", + "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version", + "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d", + "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9", + "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF", + "int_ctl_net_name": "VMX-INTXI", + "vmx_int_ctl_prefix": "10.0.0.10", + "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5", + "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279", + "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a", + "nf_type": "vPE", + "vmxvpfe_int_ctl_ip_1": "10.0.0.10", + "is_AVPN_service": "false", + "vmx_RSG_name": "vREXI-affinity", + "vmx_int_ctl_forwarding": "l2", + "vmxvre_oam_ip_0": "10.0.0.10", + "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_sriov41_0_port_vlanstrip": "false", + "vmxvpfe_sriov42_0_port_vlanfilter": "4001", + "vmxvpfe_sriov44_0_port_unknownunicastallow": "true", + "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2", + "vmxvre_instance": "0", + "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvre_flavor_name": "ns.c1r16d32.v5", + "vmxvpfe_volume_size_0": "40.0", + "vmxvpfe_sriov43_0_port_vlanfilter": "4001", + "nf_naming": "{ecomp_generated_naming=true}", + "nf_naming_code": "Navneet", + "vmxvre_name_0": "vREXI", + "vmxvpfe_sriov42_0_port_vlanstrip": "false", + "vmxvpfe_volume_name_0": "vPFEXI_FBVolume", + "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141", + "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2", + "vmxvpfe_sriov43_0_port_unknownunicastallow": "true", + "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true", + "vmxvre_console": "vidconsole", + "vmxvpfe_sriov44_0_port_vlanfilter": "4001", + "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF", + "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3", + "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true", + "vmxvpfe_sriov44_0_port_vlanstrip": "false", + "vf_module_id": "123", + "nf_function": "JAI", + "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true", + "vmxvre_int_ctl_ip_0": "10.0.0.10", + "ecomp_generated_naming": "true", + "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI", + "vnf_name": "mtnj309me6vre", + "vmxvpfe_sriov41_0_port_unknownunicastallow": "true", + "vmxvre_volume_type_1": "HITACHI", + "vmxvpfe_sriov44_0_port_broadcastallow": "true", + "vmxvre_volume_type_0": "HITACHI", + "vmxvpfe_volume_type_0": "HITACHI", + "vmxvpfe_sriov43_0_port_broadcastallow": "true", + "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units", + "vnf_id": "123", + "vmxvre_oam_prefix": "24", + "availability_zone_0": "mtpocfo-kvm-az01", + "ASN": "get_input:2017488_pasqualevpe0_ASN", + "vmxvre_chassis_i2cid": "161", + "vmxvpfe_name_0": "vPFEXI", + "bandwidth": "get_input:pasqualevpe0_bandwidth", + "availability_zone_max_count": "1", + "vmxvre_volume_size_0": "45.0", + "vmxvre_volume_size_1": "50.0", + "vmxvpfe_sriov42_0_port_broadcastallow": "true", + "vmxvre_oam_gateway": "10.0.0.10", + "vmxvre_volume_name_1": "vREXI_FAVolume", + "vmxvre_ore_present": "0", + "vmxvre_volume_name_0": "vREXI_FBVolume", + "vmxvre_type": "0", + "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name", + "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true", + "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429", + "vmx_int_ctl_len": "24", + "vmxvpfe_sriov43_0_port_vlanstrip": "false", + "vmxvpfe_sriov41_0_port_broadcastallow": "true", + "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d", + "vmxvpfe_sriov41_0_port_vlanfilter": "4001", + "nf_role": "Testing", + "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a", + "vmxvpfe_sriov42_0_port_unknownunicastallow": "true", + "vmxvpfe_flavor_name": "ns.c20r16d25.v5" + }, + "type": "VF", + "modelCustomizationName": "2017-488_PASQUALE-vPE 0", + "vfModules": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV", + "baseModule": false + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "base_vPE_BV", + "baseModule": true + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV", + "baseModule" : false + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV" + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {} + } + }, + "vfcInstanceGroups": {} + } + }, + "networks": {}, + "collectionResources": {}, + "configurations": {}, + "serviceProxies": {}, + "vfModules": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 1, + "maxCountInstances": null, + "initialCount": 1, + "vfModuleLabel": "PASQUALE_vRE_BV", + "baseModule": false + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + }, + "volumeGroupAllowed": true + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": { + "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db", + "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091", + "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "version": "5", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0", + "properties": { + "minCountInstances": 1, + "maxCountInstances": 1, + "initialCount": 1, + "vfModuleLabel": "PASQUALE_base_vPE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": false + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {}, + "volumeGroupAllowed": true + } + }, + "volumeGroups": { + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": { + "uuid": "25284168-24bb-4698-8cb4-3f509146eca5", + "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1", + "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vRE_BV" + }, + "inputs": { + "pasqualevpe0_bandwidth": { + "type": "string", + "description": "Requested VPE bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth" + }, + "constraints": null, + "required": true, + "default": "10" + }, + "2017488_pasqualevpe0_vnf_instance_name": { + "type": "string", + "description": "The hostname assigned to the vpe.", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_instance_name" + }, + "constraints": null, + "required": true, + "default": "mtnj309me6" + }, + "2017488_pasqualevpe0_vnf_config_template_version": { + "type": "string", + "description": "VPE Software Version", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "vnf_config_template_version" + }, + "constraints": null, + "required": true, + "default": "17.2" + }, + "2017488_pasqualevpe0_AIC_CLLI": { + "type": "string", + "description": "AIC Site CLLI", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "AIC_CLLI" + }, + "constraints": null, + "required": true, + "default": "ATLMY8GA" + }, + "pasqualevpe0_bandwidth_units": { + "type": "string", + "description": "Units of bandwidth", + "entry_schema": null, + "inputProperties": { + "sourceType": "HEAT", + "vfModuleLabel": "PASQUALE_vRE_BV", + "paramName": "bandwidth_units" + }, + "constraints": null, + "required": true, + "default": "Gbps" + } + } + }, + "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": { + "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a", + "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339", + "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557", + "description": null, + "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "version": "6", + "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2", + "properties": { + "minCountInstances": 0, + "maxCountInstances": null, + "initialCount": 0, + "vfModuleLabel": "PASQUALE_vPFE_BV" + }, + "inputs": {} + } + }, + "pnfs": {} + } + }, + "serviceInstance": {}, + "lcpRegionsAndTenants": { + "lcpRegionList": [ + { + "id": "AAIAIC25", + "name": "AAIAIC25 (AIC)", + "isPermitted": true + }, + { + "id": "hvf6", + "name": "hvf6 (AIC)", + "isPermitted": true + } + ], + "lcpRegionsTenantsMap": { + "AAIAIC25": [ + { + "id": "092eb9e8e4b7412e8787dd091bc58e86", + "name": "USP-SIP-IC-24335-T-01", + "isPermitted": true + } + ], + "hvf6": [ + { + "id": "bae71557c5bb4d5aac6743a4e5f1d054", + "name": "AIN Web Tool-15-D-testalexandria", + "isPermitted": true + }, + { + "id": "d0a3e3f2964542259d155a81c41aadc3", + "name": "test-hvf6-09", + "isPermitted": true + }, + { + "id": "fa45ca53c80b492fa8be5477cd84fc2b", + "name": "ro-T112", + "isPermitted": true + }, + { + "id": "cbb99fe4ada84631b7baf046b6fd2044", + "name": "DN5242-Nov16-T3", + "isPermitted": true + } + ] + } + }, + "subscribers": [ + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fc", + "name": "JULIO ERICKSON", + "isPermitted": false + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "SILVIA ROBBINS", + "isPermitted": true + } + ], + "productFamilies": [ + { + "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034", + "name": "ERICA", + "isPermitted": true + }, + { + "id": "17cc1042-527b-11e6-beb8-9e71128cae77", + "name": "IGNACIO", + "isPermitted": true + }, + { + "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e", + "name": "Christie", + "isPermitted": true + }, + { + "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7", + "name": "Enhanced Services", + "isPermitted": true + }, + { + "id": "vTerrance", + "name": "vTerrance", + "isPermitted": true + }, + { + "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f", + "name": "vEsmeralda", + "isPermitted": true + }, + { + "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "name": "Emanuel", + "isPermitted": true + }, + { + "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c", + "name": "BVOIP", + "isPermitted": true + }, + { + "id": "db171b8f-115c-4992-a2e3-ee04cae357e0", + "name": "LINDSEY", + "isPermitted": true + }, + { + "id": "LRSI-OSPF", + "name": "LRSI-OSPF", + "isPermitted": true + }, + { + "id": "vRosemarie", + "name": "HNGATEWAY", + "isPermitted": true + }, + { + "id": "vHNPaas", + "name": "WILKINS", + "isPermitted": true + }, + { + "id": "e433710f-9217-458d-a79d-1c7aff376d89", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", + "name": "VROUTER", + "isPermitted": true + }, + { + "id": "vMuriel", + "name": "vMuriel", + "isPermitted": true + }, + { + "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1", + "name": "CARA Griffin", + "isPermitted": true + }, + { + "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d", + "name": "DARREN MCGEE", + "isPermitted": true + }, + { + "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", + "name": "Transport", + "isPermitted": true + }, + { + "id": "vSalvatore", + "name": "vSalvatore", + "isPermitted": true + }, + { + "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", + "name": "JOSEFINA", + "isPermitted": true + }, + { + "id": "vHubbard", + "name": "vHubbard", + "isPermitted": true + }, + { + "id": "12a96a9d-4b4c-4349-a950-fe1159602621", + "name": "DARREN MCGEE", + "isPermitted": true + } + ], + "serviceTypes": { + "e433710f-9217-458d-a79d-1c7aff376d89": [ + { + "id": "0", + "name": "vRichardson", + "isPermitted": false + }, + { + "id": "1", + "name": "TYLER SILVIA", + "isPermitted": true + }, + { + "id": "2", + "name": "Emanuel", + "isPermitted": false + }, + { + "id": "3", + "name": "vJamie", + "isPermitted": false + }, + { + "id": "4", + "name": "vVoiceMail", + "isPermitted": false + }, + { + "id": "5", + "name": "Kennedy", + "isPermitted": false + }, + { + "id": "6", + "name": "vPorfirio", + "isPermitted": false + }, + { + "id": "7", + "name": "vVM", + "isPermitted": false + }, + { + "id": "8", + "name": "vOTA", + "isPermitted": false + }, + { + "id": "9", + "name": "vFLORENCE", + "isPermitted": false + }, + { + "id": "10", + "name": "vMNS", + "isPermitted": false + }, + { + "id": "11", + "name": "vEsmeralda", + "isPermitted": false + }, + { + "id": "12", + "name": "VPMS", + "isPermitted": false + }, + { + "id": "13", + "name": "vWINIFRED", + "isPermitted": false + }, + { + "id": "14", + "name": "SSD", + "isPermitted": false + }, + { + "id": "15", + "name": "vMOG", + "isPermitted": false + }, + { + "id": "16", + "name": "LINDSEY", + "isPermitted": false + }, + { + "id": "17", + "name": "JOHANNA_SANTOS", + "isPermitted": false + }, + { + "id": "18", + "name": "vCarroll", + "isPermitted": false + } + ] + }, + "aicZones": [ + { + "id": "NFT1", + "name": "NFTJSSSS-NFT1" + }, + { + "id": "JAG1", + "name": "YUDFJULP-JAG1" + }, + { + "id": "YYY1", + "name": "UUUAIAAI-YYY1" + }, + { + "id": "AVT1", + "name": "AVTRFLHD-AVT1" + }, + { + "id": "ATL34", + "name": "ATLSANAI-ATL34" + } + ], + "categoryParameters": { + "owningEntityList": [ + { + "id": "aaa1", + "name": "aaa1" + }, + { + "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", + "name": "WayneHolland" + }, + { + "id": "Melissa", + "name": "Melissa" + } + ], + "projectList": [ + { + "id": "WATKINS", + "name": "WATKINS" + }, + { + "id": "x1", + "name": "x1" + }, + { + "id": "yyy1", + "name": "yyy1" + } + ], + "lineOfBusinessList": [ + { + "id": "ONAP", + "name": "ONAP" + }, + { + "id": "zzz1", + "name": "zzz1" + } + ], + "platformList": [ + { + "id": "platform", + "name": "platform" + }, + { + "id": "xxx1", + "name": "xxx1" + } + ] + }, + "type": "[PRODUCT_FAMILIES] Update" + } +} diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json index 8dbf72eb9..2a4e88210 100644 --- a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json +++ b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.cypress.json @@ -30,5 +30,7 @@ "FLAG_2006_NEW_VIEW_EDIT_BUTTON_IN_INSTANTIATION_STATUS" : true, "FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION" : true, "FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP" : true, - "FLAG_2008_REMOVE_PAUSE_INSTANTIATION" : true + "FLAG_2008_REMOVE_PAUSE_INSTANTIATION" : true, + "FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE" : true, + "FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER": true } diff --git a/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts b/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts index 4595d89fc..59dfc4572 100644 --- a/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts +++ b/vid-webpack-master/cypress/support/steps/fill.service.popup.step.ts @@ -1,7 +1,8 @@ declare namespace Cypress { interface Chainable { - fillServicePopup: typeof FillServicePopup + fillServicePopup: typeof FillServicePopup, + addAlacarteService: typeof addAlacarteService; } } @@ -21,5 +22,18 @@ function FillServicePopup(): Chainable<any> { }); } +function addAlacarteService(): Chainable<any> { + cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true'); + cy.selectDropdownOptionByText('subscriberName', 'SILVIA ROBBINS'); + cy.selectDropdownOptionByText('serviceType', 'TYLER SILVIA'); + cy.selectDropdownOptionByText('project', 'WATKINS'); + cy.selectDropdownOptionByText('owningEntity', 'aaa1'); + cy.selectDropdownOptionByText('rollback', 'Rollback'); + return cy.getElementByDataTestsId('form-set').click({force : true}).then((done)=>{ + return done; + }); + +} Cypress.Commands.add('fillServicePopup', FillServicePopup); +Cypress.Commands.add('addAlacarteService', addAlacarteService); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts index 2014be99d..8790afa56 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts @@ -168,8 +168,19 @@ export class AvailableModelsTreeComponent { DrawingBoardTreeService.triggerCheckIsDirty.next(this.serviceModelId); } else { let vfModule = this._defaultDataGeneratorService.generateVFModule(this.serviceHierarchy.vnfs[node.parent.data.name].vfModules[node.data.name], dynamicInputs, isEcompGeneratedNaming, isAlaCarte); + let positionOfNextInstance = null; + if(this._sharedTreeService.isAddPositionFlagTrue()) { + let baseModule = this.serviceHierarchy.vnfs[node.parent.data.name].vfModules[node.data.name].properties.baseModule; + if(baseModule) { + //Assign Position of 1 for the instance being created & update the positions(existing position +1) for remaining instances + positionOfNextInstance = 1; + this._defaultDataGeneratorService.updatePositionForRemainingVfModules(this.serviceModelId); + } else { + positionOfNextInstance = this._defaultDataGeneratorService.calculatePositionOfVfmodule(this.serviceModelId); + } + } if (this._sharedTreeService.selectedVNF) { - this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, this._sharedTreeService.selectedVNF)); + this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, positionOfNextInstance, this._sharedTreeService.selectedVNF)); DrawingBoardTreeService.triggerCheckIsDirty.next(this.serviceModelId); } else if (this._availableModelsTreeService.getOptionalVNFs(this.serviceModelId, node.parent.data.modelUniqueId).length === 1) { let existVnf = this._store.getState().service.serviceInstance[this.serviceModelId].vnfs; @@ -177,7 +188,7 @@ export class AvailableModelsTreeComponent { for(let vnfKey in existVnf){ const modelUniqueId = this._sharedTreeService.modelUniqueId(existVnf[vnfKey]); if(modelUniqueId === node.parent.data.id){ - this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, vnfKey)); + this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, positionOfNextInstance, vnfKey)); DrawingBoardTreeService.triggerCheckIsDirty.next(this.serviceModelId); } } diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts index 425568b68..2053e6df1 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts @@ -13,10 +13,22 @@ class MockAppStore<T> { return { global: { flags: { - "FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE": true + "FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE": true, + "FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE":true } }, service: { + serviceHierarchy:{ + "serviceInstanceId":{ + vfModules: { + "vfModulesName":{ + properties:{ + baseModule:true + } + } + } + } + }, serviceInstance: { "serviceInstanceId": { vnfs: { @@ -123,6 +135,7 @@ describe('Drag and drop service', () => { index: 0, data: { instanceName: 'puwesovabe', + modelName: 'vocggrapitesting0..VocgGrapiTesting..ocgmgr..module-1' }, parent: { data: { @@ -167,6 +180,7 @@ describe('Drag and drop service', () => { index: 0, data: { instanceName: '2017-488_PASQUALE-vPE', + modelName: 'vocggrapitesting0..VocgGrapiTesting..ocgmgr..module-1' }, parent: {} }; @@ -207,4 +221,100 @@ describe('Drag and drop service', () => { expect(arr[1]).toMatchObject({instanceName: "puwesovabe", position: 2}); }); + + test('drag shouldnt execute isAllowDrop when the to index is 0 & the drop node is a base module', () => { + + let from = { + id: "04686zg11ur2", + index: 1, + data: { + instanceName: 'puwesovabe', + modelName: 'vocggrapitesting0..VocgGrapiTesting..ocgmgr..module-1' + }, + parent: { + data: { + type: 'VF', + index: 0, + trackById: 'ckfqe3sb3y8', + vnfStoreKey: '2017-488_PASQUALE-vPE 0', + } + } + }; + + let to = { + parent: { + id: "4637423092446", + index: 0, + data: { + instanceName: 'bnmgtrx', + }, + parent: { + data: { + type: 'VF', + trackById: 'ckfqe3sb3y8', + vnfStoreKey: '2017-488_PASQUALE-vPE 0', + } + } + } + }; + + + jest.spyOn(service, 'isAllowDrop'); + + service.drop(store, "serviceInstanceId", nodes, {from, to}); + + jest.clearAllMocks(); + + expect(service.isAllowDrop).not.toHaveBeenCalled(); + + }); + + test('drag shouldnt execute isAllowDrop when the from node is base module', () => { + + let from = { + id: "04686zg11ur2", + index: 0, + data: { + instanceName: 'puwesovabe', + modelName: 'vocggrapitesting0..VocgGrapiTesting..ocgmgr..module-1' + }, + parent: { + data: { + type: 'VF', + index: 0, + trackById: 'ckfqe3sb3y8', + vnfStoreKey: '2017-488_PASQUALE-vPE 0', + } + } + }; + + let to = { + parent: { + id: "4637423092446", + index: 1, + data: { + instanceName: 'bnmgtrx', + }, + parent: { + data: { + type: 'VF', + trackById: 'ckfqe3sb3y8', + vnfStoreKey: '2017-488_PASQUALE-vPE 0', + } + } + } + }; + + + jest.spyOn(service, 'isAllowDrop'); + + service.drop(store, "serviceInstanceId", nodes, {from, to}); + + jest.clearAllMocks(); + + expect(service.isAllowDrop).not.toHaveBeenCalled(); + + }); + + }); diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts index 2daaaaf71..2f86b0aa8 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.ts @@ -9,16 +9,30 @@ export class DragAndDropService { constructor(private store: NgRedux<AppState>) { } - isFlagOn(): boolean { - return FeatureFlagsService.getFlagState(Features.FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE, this.store); + checkFeatureFlag(flagValue):boolean { + let featureFlag :boolean; + featureFlag = FeatureFlagsService.getFlagState(flagValue, this.store); + return featureFlag; + } + + /*********************************************************************************************** + if the dragged node is a base module instance + ***********************************************************************************************/ + isBaseModule(serviceInstanceId, from): boolean { + try { + let baseModuleFlag = this.store.getState().service.serviceHierarchy[serviceInstanceId].vnfs[from.parent.data.vnfStoreKey].vfModules[from.data.modelName].properties.baseModule; + return (baseModuleFlag != 'undefined' ? baseModuleFlag : false); + }catch(e) { + return false; + } } /*********************************************************************************************** - if the falg is ON and nodes have same parent + if the flag is ON and nodes have same parent ***********************************************************************************************/ isAllowDrop(from: any, to: any): boolean { - return this.isFlagOn() && this.isSameParent(from, to); + return this.checkFeatureFlag(Features.FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE) && this.isSameParent(from, to); } private isSameParent(from: any, to: any): boolean { @@ -40,7 +54,11 @@ export class DragAndDropService { drop(store, instanceId: string, nodes, {from, to}): void { - if (!this.isFlagOn()) return; + if (!this.checkFeatureFlag(Features.FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE)) return; + + if(this.checkFeatureFlag(Features.FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE)) { + if ((to.parent.index == 0 && this.isBaseModule(instanceId, to.parent)) || this.isBaseModule(instanceId, from )) return; + } if (this.isAllowDrop(from, to)) { let vfModules = nodes.find((parent) => { @@ -101,4 +119,17 @@ export class DragAndDropService { return arr; }; + + drag(store, serviceModelId: string, fromObj): boolean { + if(!this.checkFeatureFlag(Features.FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE)) { + return; + } else{ + if (this.checkFeatureFlag(Features.FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE)) { + if(this.isBaseModule(serviceModelId,fromObj)) { + return; + } + } + } + + } } diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts index 837471395..7526970d3 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts @@ -126,11 +126,14 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit { nodes = []; serviceModelId: string; options = { - allowDrag: this._dragAndDropService.isFlagOn(), + allowDrag: this._dragAndDropService.checkFeatureFlag(Features.FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE), actionMapping: { mouse: { drop: (tree:TreeModel, node:TreeNode, $event:any, {from, to}) => { this._dragAndDropService.drop(this.store, this.serviceModelId, this.nodes, {from, to}); + }, + drag:(tree: TreeModel, node:TreeNode, $event:any) => { + this._dragAndDropService.drag(this.store,this.serviceModelId, node); } } }, @@ -256,6 +259,10 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit { } return optionLabel; } + + isAddPositionFlagTrue() { + return this._sharedTreeService.isAddPositionFlagTrue(); + } } diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html index 59905bd75..a1ef96a62 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html @@ -36,7 +36,7 @@ <div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf="node?.data?.isFailed">Failed </div> </custom-popover> - <div *ngIf= "node?.data?.type == 'VFmodule'" class="instance-type" style="position: relative;border: 1px solid #D2D2CD;"> + <div *ngIf= "node?.data?.type == 'VFmodule' && isAddPositionFlagTrue()" class="instance-type" style="position: relative;border: 1px solid #D2D2CD;"> <div *ngIf="node?.data?.action == 'Create' && node?.data?.type == 'VFmodule'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div> <div><span title="{{node.data.position}}" [attr.data-tests-id]="'node-position-indicator'">{{node?.data?.position}}</span></div> diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts index 33ec0804f..80b2a4b52 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts @@ -348,7 +348,9 @@ export class VFModuleModelInfo implements ILevelNodeInfo { enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node) }, remove: { - method: (node, serviceModelId) => this._store.dispatch(removeVfModuleInstance(node.data.modelName, serviceModelId, node.parent.data.modelName, node.parent.data.vnfStoreKey, node.data.dynamicModelName)), + method: (node, serviceModelId) => { + this.removeVFM(serviceModelId,node); + }, visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node), }, @@ -431,8 +433,8 @@ export class VFModuleModelInfo implements ILevelNodeInfo { } } - updatePosition(that, node, instanceId, parentStoreKey): void { - this._store.dispatch(updateVFModulePosition(node, instanceId, parentStoreKey)); + updatePosition(that, node,instanceId, parentStoreKey): void { + that.store.dispatch(updateVFModulePosition(node.modelName,node.dynamicModelName, node.position,instanceId, parentStoreKey)); } @@ -452,4 +454,39 @@ export class VFModuleModelInfo implements ILevelNodeInfo { const result = [modelInformation, instanceInfo]; return _.uniq(_.flatten(result)); } + + private removeVFM(serviceModelId, node) { + if (FeatureFlagsService.getFlagState(Features.FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER, this._store)) { + let nodeArray = node.parent.children; + let totalNumOfNodes = nodeArray.length; + let removedNodeIndex = node.index; + let remainingNodes = totalNumOfNodes - (removedNodeIndex+1); + if(!_.isNull(remainingNodes)) { + if(remainingNodes !== 0 && remainingNodes >0) { + for(let i= 0;i<remainingNodes;i++) { + let temp = nodeArray[removedNodeIndex]; + nodeArray[removedNodeIndex] = nodeArray[removedNodeIndex + 1]; + nodeArray[removedNodeIndex + 1] = temp; + removedNodeIndex= removedNodeIndex+1; + } + let removedNode = nodeArray[nodeArray.length - 1]; + this._store.dispatch(removeVfModuleInstance(removedNode.data.modelName, serviceModelId, removedNode.parent.data.modelName, removedNode.parent.data.vnfStoreKey, removedNode.data.dynamicModelName)); + nodeArray.pop(); + nodeArray.forEach((item, index) => { + if (item.position !== index + 1) { + item.position = index + 1; + this._store.dispatch(updateVFModulePosition(item.data.modelName,item.data.dynamicModelName, item.position,serviceModelId, item.parent.data.vnfStoreKey)); + } + }); + + + }else{ + this._store.dispatch(removeVfModuleInstance(node.data.modelName, serviceModelId, node.parent.data.modelName, node.parent.data.vnfStoreKey, node.data.dynamicModelName)); + + } + } + } else { + this._store.dispatch(removeVfModuleInstance(node.data.modelName, serviceModelId, node.parent.data.modelName, node.parent.data.vnfStoreKey, node.data.dynamicModelName)); + } + } } diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts index 3b00e64c3..51fcf52a1 100644 --- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts @@ -551,4 +551,8 @@ export class SharedTreeService { !_.isNil(model.max) ? String(model.max) : Constants.ModelInfo.UNLIMITED_DEFAULT ); } + + isAddPositionFlagTrue():boolean{ + return FeatureFlagsService.getFlagState(Features.FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER, this._store); + } } diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service.ts b/vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service.ts index 70b23f23b..47d3413b5 100644 --- a/vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service.ts +++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service.ts @@ -40,9 +40,10 @@ export abstract class VfModulePopupServiceBase { formValues.uuid = formValues.modelInfo.uuid; formValues.isMissingData = false; if (!that.uuidData.vFModuleStoreKey) { - this._store.dispatch(createVFModuleInstance(formValues, that.uuidData.modelName, that.uuidData.serviceId, 0, that.uuidData.vnfStoreKey)); + let positionOfNextInstance = this._defaultDataGeneratorService.calculatePositionOfVfmodule(that.uuidData.serviceId); + this._store.dispatch(createVFModuleInstance(formValues, that.uuidData.modelName, that.uuidData.serviceId, !_.isNil(positionOfNextInstance)? positionOfNextInstance : null, that.uuidData.vnfStoreKey)); } else { - this._store.dispatch(updateVFModuleInstance(formValues, that.uuidData.modelName, that.uuidData.serviceId, that.uuidData.vFModuleStoreKey, that.uuidData.vnfStoreKey)); + this._store.dispatch(updateVFModuleInstance(formValues, that.uuidData.modelName, that.uuidData.serviceId, that.uuidData.vFModuleStoreKey, that.uuidData.vnfStoreKey, this.getInstance(that.uuidData.serviceId, that.uuidData.vnfStoreKey, that.uuidData.vFModuleStoreKey).position)); } }; diff --git a/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts b/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts index 79cd0682e..e00b259a0 100644 --- a/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts +++ b/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts @@ -15,7 +15,7 @@ import {NetworkTreeNode} from "../../models/networkTreeNode"; import {createVNFInstance} from "../../storeUtil/utils/vnf/vnf.actions"; import {changeInstanceCounter} from "../../storeUtil/utils/general/general.actions"; import {createNetworkInstance} from "../../storeUtil/utils/network/network.actions"; -import {createVFModuleInstance} from "../../storeUtil/utils/vfModule/vfModule.actions"; +import {createVFModuleInstance, updateVFModulePosition} from "../../storeUtil/utils/vfModule/vfModule.actions"; import {createVnfGroupInstance} from "../../storeUtil/utils/vnfGroup/vnfGroup.actions"; import {VnfGroupTreeNode} from "../../models/vnfGroupTreeNode"; import {ModelInfo} from "../../models/modelInfo"; @@ -234,6 +234,7 @@ export class DefaultDataGeneratorService { this.addDefaultVfModulesInRedux( serviceId, vfModuleModel.properties.initialCount, + vfModuleModel.properties.baseModule, vfModule, vnfModuleUUID, vnfUUID @@ -282,9 +283,14 @@ export class DefaultDataGeneratorService { } } - addDefaultVfModulesInRedux(serviceId: string, numberOfVfModules: number, vfModuleData: any, vfModuleName: string, vnfUUID : string){ + addDefaultVfModulesInRedux(serviceId: string, numberOfVfModules: number,baseModule:boolean, vfModuleData: any, vfModuleName: string, vnfUUID : string){ for (let i = 0; i < numberOfVfModules; i++) { - this.store.dispatch(createVFModuleInstance(vfModuleData, vfModuleName, serviceId, null, vnfUUID)); + if(baseModule) { + this.store.dispatch(createVFModuleInstance(vfModuleData, vfModuleName, serviceId, 1, vnfUUID)); + } else { + this.store.dispatch(createVFModuleInstance(vfModuleData, vfModuleName, serviceId, i+1, vnfUUID)); + } + } } @@ -460,4 +466,55 @@ export class DefaultDataGeneratorService { return newVfModule; } + calculatePositionOfVfmodule(serviceModelId:string) { + const serviceInstance = this.store.getState().service.serviceInstance[serviceModelId]; + const serviceHierarchy = this.store.getState().service.serviceHierarchy[serviceModelId]; + + const vnfList = serviceInstance.vnfs; + let totalSecondListLength =1; + if (!_.isEmpty(vnfList)) { + for (let vnfStoreKey in vnfList) { + const firstVfModuleInstanceList = vnfList[vnfStoreKey].vfModules; + if (!_.isEmpty(firstVfModuleInstanceList)) { + for (let vfModuleInstanceKey in firstVfModuleInstanceList) { + let secondVfModuleInstanceList = firstVfModuleInstanceList[vfModuleInstanceKey]; + let numSecondVfModuleInstanceList = Object.keys(secondVfModuleInstanceList).length; + totalSecondListLength = totalSecondListLength + numSecondVfModuleInstanceList; + + } + } else { + //No instances added yet , hence start from 1 + totalSecondListLength = 1; + } + + } + } + + return totalSecondListLength; + } + + + updatePositionForRemainingVfModules(serviceModelId: string) { + + const serviceInstance = this.store.getState().service.serviceInstance[serviceModelId]; + const vnfList = serviceInstance.vnfs; + if (!_.isEmpty(vnfList)) { + for (let vnfStoreKey in vnfList) { + const firstVfModuleInstanceList = vnfList[vnfStoreKey].vfModules; + if (!_.isEmpty(firstVfModuleInstanceList)) { + for (let vfModuleInstanceKey in firstVfModuleInstanceList) { + let secondVfModuleInstanceList = firstVfModuleInstanceList[vfModuleInstanceKey]; + for(let secondVfModuleInstanceKey in secondVfModuleInstanceList) { + let secondVfModuleObj = secondVfModuleInstanceList[secondVfModuleInstanceKey]; + if(!_.isNil(secondVfModuleObj.position)) { + this.store.dispatch(updateVFModulePosition(vfModuleInstanceKey,secondVfModuleInstanceKey, secondVfModuleObj.position+1,serviceModelId, vnfStoreKey)); + } + } + + } + } + + } + } + } } diff --git a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts index e652be79d..758aa4b15 100644 --- a/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts +++ b/vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts @@ -25,6 +25,8 @@ export enum Features { FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION = 'FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION', FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP = 'FLAG_2008_PAUSE_INSTANTIATION_ON_VFMODULE_POPUP', FLAG_2008_REMOVE_PAUSE_INSTANTIATION = 'FLAG_2008_REMOVE_PAUSE_INSTANTIATION', + FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE ='FLAG_2008_DISABLE_DRAG_FOR_BASE_MODULE', + FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER ='FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER' } @Injectable() diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts index cc2ed4fe3..c192ece48 100644 --- a/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts @@ -28,17 +28,3 @@ function resetUpgradeStatus(newState: any, serviceUuid: string){ newState.serviceInstance[serviceUuid].upgradedVFMSonsCounter = 0; newState.serviceInstance[serviceUuid].isUpgraded = false; } - -export function calculatePosition(newState :any,serviceUuid: string, vnfStoreKey :string) { - - let totalNumOfVfModules =(Object.keys(newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules).length); - totalNumOfVfModules = 0; - _.forOwn(newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules, (vfModuleInstance) => { - _.forOwn(vfModuleInstance, (module) => { - module.position = totalNumOfVfModules +1; - totalNumOfVfModules= totalNumOfVfModules+1; - }) - }); - - -} diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts index c250993df..8096940d4 100644 --- a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts @@ -17,7 +17,9 @@ export enum VfModuleActions { export interface UpdateVFModluePosition extends Action { - node: any, + vfKey: string, + dynamicModelName?: string, + position: number, instanceId : string, vnfStoreKey ?: string; } @@ -43,7 +45,8 @@ export interface UpdateVFModuleInstanceAction extends Action { vfId: string; serviceUuid: string; dynamicModelName : string; - vnfStoreKey : string + vnfStoreKey : string, + position : number } @@ -124,13 +127,14 @@ export const createVFModuleInstance: ActionCreator<CreateVFModuleInstanceAction> vnfStoreKey : vnfStoreKey }); -export const updateVFModuleInstance: ActionCreator<UpdateVFModuleInstanceAction> = (vfInstance, vfId, serviceUuid, dynamicModelName, vnfStoreKey) => ({ +export const updateVFModuleInstance: ActionCreator<UpdateVFModuleInstanceAction> = (vfInstance, vfId, serviceUuid, dynamicModelName, vnfStoreKey, position) => ({ type: VfModuleActions.UPDATE_VF_MODULE, vfInstance: vfInstance, vfId: vfId, serviceUuid: serviceUuid, dynamicModelName : dynamicModelName, - vnfStoreKey : vnfStoreKey + vnfStoreKey : vnfStoreKey, + position : position }); export const deleteActionVfModuleInstance: ActionCreator<DeleteActionVfModuleInstanceAction> = (dynamicModelName, vnfStoreKey, serviceId, vfModuleModelName) => ({ @@ -149,12 +153,16 @@ export const undoDeleteVfModuleInstance: ActionCreator<UndoDeleteActionVfModuleI vfModuleModelName }); -export const updateVFModulePosition: ActionCreator<UpdateVFModluePosition> = (node, instanceId, vnfStoreKey) => ({ - type: VfModuleActions.UPDATE_VFMODULE_POSITION, - node: node, - instanceId: instanceId, - vnfStoreKey : vnfStoreKey -}); +export const updateVFModulePosition: ActionCreator<UpdateVFModluePosition> = (vfKey,dynamicModelName,position,instanceId, vnfStoreKey) => { + return ({ + type: VfModuleActions.UPDATE_VFMODULE_POSITION, + vfKey: vfKey, + dynamicModelName: dynamicModelName, + position: position, + instanceId: instanceId, + vnfStoreKey: vnfStoreKey + }); +}; export const upgradeVFModule: ActionCreator<UpgradeVfModuleInstanceAction> = (modelName, vnfStoreKey, serviceId, dynamicModelName) => ({ type: VfModuleActions.UPGRADE_VFMODULE, diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts index 50981e158..97e25d27e 100644 --- a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts @@ -177,9 +177,10 @@ test('#UPDATE_VFMODULE_POSITION: should update position', () => { vnfs: { 'vfName': { vfModules: { - 'modelName': { - 'dynamicModelName': { - isMissingData: true + 'vfKey': { + dynamicModelName: { + isMissingData: true, + position :1 } } } @@ -190,15 +191,13 @@ test('#UPDATE_VFMODULE_POSITION: should update position', () => { }, <UpdateVFModluePosition>{ type: VfModuleActions.UPDATE_VFMODULE_POSITION, - node: { - position: 1, - dynamicModelName: "dynamicModelName", - modelName: "modelName" - }, + vfKey: "vfKey", + dynamicModelName: "dynamicModelName", + position: 1, instanceId: "serviceModelId", vnfStoreKey: "vfName" - }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules["modelName"]["dynamicModelName"]; + }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules["vfKey"]["dynamicModelName"]; expect(vfModule.position).toEqual(1); }); diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts index f3584ebd9..d2f6bdf2b 100644 --- a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts @@ -18,7 +18,6 @@ import {VfModuleMap} from "../../../models/vfModulesMap"; import {ServiceState} from "../main.reducer"; import {PauseStatus, ServiceInstanceActions} from "../../../models/serviceInstanceActions"; import {updateServiceValidationCounter} from "../reducersHelper"; -import {calculatePosition} from "../reducersHelper"; export function vfModuleReducer(state: ServiceState , action: Action) : ServiceState{ @@ -29,6 +28,7 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS const serviceUuid = updateVFModuleInstanceAction.serviceUuid; const vfModuleId = updateVFModuleInstanceAction.vfId; const vnfStoreKey = updateVFModuleInstanceAction.vnfStoreKey; + const position = updateVFModuleInstanceAction.index; let newState = Object.assign({}, state); @@ -42,8 +42,7 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS updateServiceValidationCounter(newState, false, vfInstance['isMissingData'], serviceUuid); newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules[vfModuleId] = vfModulesMap; - //update position of newly added VF module - calculatePosition(newState,serviceUuid, vnfStoreKey); + newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules[vfModuleId][dynamicName].position = position; return newState; } case VfModuleActions.UPDATE_VF_MODULE: { @@ -51,6 +50,7 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS const vfInstance = updateVFModuleInstanceAction.vfInstance; const serviceUuid = updateVFModuleInstanceAction.serviceUuid; const vfModuleId = updateVFModuleInstanceAction.vfId; + const position = updateVFModuleInstanceAction.position; const newState = _.cloneDeep(state); const vnfs = newState.serviceHierarchy[serviceUuid].vnfs; let vnfId = getVfModuleParentVnfId(vnfs, vfModuleId); @@ -64,8 +64,8 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS updateUniqueNames(vfModulesMap[updateVFModuleInstanceAction.dynamicModelName].volumeGroupName, vfInstance.volumeGroupName, newState.serviceInstance[serviceUuid]); vfModulesMap[updateVFModuleInstanceAction.dynamicModelName] = vfInstance; newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] = vfModulesMap; - //retain the position of newly added VF module -- change logic - calculatePosition(newState,serviceUuid, vnfStoreKey); + //retain the position of newly added VF module + newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId][updateVFModuleInstanceAction.dynamicModelName].position= updateVFModuleInstanceAction.position; return newState; } case VfModuleActions.REMOVE_VNF_MODULE_INSTANCE: { @@ -130,11 +130,11 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS case VfModuleActions.UPDATE_VFMODULE_POSITION : { const updateVFModluePosition = <UpdateVFModluePosition>action; const serviceUuid = updateVFModluePosition.instanceId; - const dynamicModelName = updateVFModluePosition.node.dynamicModelName; - const modelName = updateVFModluePosition.node.modelName; + const dynamicModelName = updateVFModluePosition.dynamicModelName; + const modelName = updateVFModluePosition.vfKey; const newState = _.cloneDeep(state); - newState.serviceInstance[serviceUuid].vnfs[updateVFModluePosition.vnfStoreKey].vfModules[modelName][dynamicModelName].position = updateVFModluePosition.node.position; + newState.serviceInstance[serviceUuid].vnfs[updateVFModluePosition.vnfStoreKey].vfModules[modelName][dynamicModelName].position = updateVFModluePosition.position; return newState; } |