c0a159142b062783e04b82661b643cffb2b995cf
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / shared.tree.service.spec.ts
1 import {HttpClientTestingModule} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {SharedTreeService} from "./shared.tree.service";
5 import {ObjectToInstanceTreeService} from "./objectToInstanceTree/objectToInstanceTree.service";
6 import {ObjectToTreeService} from "./objectToTree.service";
7 import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
8 import {DynamicInputsService} from "./dynamicInputs.service";
9 import {DialogService} from "ng2-bootstrap-modal";
10 import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
11 import {ControlGeneratorUtil} from "../../../shared/components/genericForm/formControlsServices/control.generator.util.service";
12 import {AaiService} from "../../../shared/services/aaiService/aai.service";
13 import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service";
14 import {NetworkControlGenerator} from "../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator";
15 import {VfModulePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service";
16 import {VfModuleControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
17 import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator";
18 import {FeatureFlagsService} from "../../../shared/services/featureFlag/feature-flags.service";
19 import {VnfControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator";
20 import {NgRedux} from "@angular-redux/store";
21 import {GenericFormService} from "../../../shared/components/genericForm/generic-form.service";
22 import {FormBuilder} from "@angular/forms";
23 import {SdcUiComponentsModule} from "onap-ui-angular";
24 import {LogService} from "../../../shared/utils/log/log.service";
25 import {IframeService} from "../../../shared/utils/iframe.service";
26 import {BasicPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/basic.popup.service";
27 import {VnfGroupPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service";
28 import {DuplicateService} from "../duplicate/duplicate.service";
29 import {AppState} from "../../../shared/store/reducers";
30 import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service";
31 import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
32 import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component";
33 import {ILevelNodeInfo} from "./models/basic.model.info";
34 import {VnfModelInfo} from "./models/vnf/vnf.model.info";
35 import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
36 import each from "jest-each";
37 import {DrawingBoardModes} from "../drawing-board.modes";
38 import {ComponentInfoService} from "../component-info/component-info.service";
39 import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
40 import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
41 import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
42 import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
43 import {VfModuleUpgradePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
44 import {SharedControllersService} from "../../../shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service";
45 import {ModalService} from "../../../shared/components/customModal/services/modal.service";
46 import {CreateDynamicComponentService} from "../../../shared/components/customModal/services/create-dynamic-component.service";
47 import {instance} from "ts-mockito";
48
49 class MockAppStore<T> {
50   getState() {
51     return getStore()
52   }
53
54   dispatch() {
55   }
56 }
57
58
59
60
61 function getNodeWithData(menuAction:string){
62   const nodeData = {
63     menuActions: {}
64   };
65   nodeData['menuActions'][menuAction] =  {
66     method: (node, serviceModelId) => {}
67   };
68   const node = {
69     parent: {
70       data: nodeData,
71       parent: {
72         data: nodeData
73       }
74     }
75   };
76   return node
77 }
78
79 describe('Shared Tree Service', () => {
80   let injector;
81   let service: SharedTreeService;
82   let _objectToInstanceTreeService: ObjectToInstanceTreeService;
83   let store: NgRedux<AppState>;
84
85   beforeAll(done => (async () => {
86     TestBed.configureTestingModule({
87       imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule],
88       providers: [
89         SharedTreeService,
90         SharedControllersService,
91         ObjectToTreeService,
92         DefaultDataGeneratorService,
93         DialogService,
94         VnfPopupService,
95         ControlGeneratorUtil,
96         AaiService,
97         LogService,
98         BasicPopupService,
99         VnfGroupPopupService,
100         DuplicateService,
101         IframeService,
102         DynamicInputsService,
103         NetworkPopupService,
104         NetworkControlGenerator,
105         VfModulePopupService,
106         VfModuleUpgradePopupService,
107         VfModuleControlGenerator,
108         VnfGroupControlGenerator,
109         DialogService,
110         FeatureFlagsService,
111         VnfControlGenerator,
112         AaiService,
113         DialogService,
114         GenericFormService,
115         FormBuilder,
116         ErrorMsgService,
117         ObjectToInstanceTreeService,
118         ComponentInfoService,
119         NetworkStepService,
120         VpnStepService,
121         ModalService,
122         CreateDynamicComponentService,
123         {provide: NgRedux, useClass: MockAppStore}
124       ]
125     });
126     await TestBed.compileComponents();
127     injector = getTestBed();
128     service = injector.get(SharedTreeService);
129     _objectToInstanceTreeService = injector.get(ObjectToInstanceTreeService);
130     store = injector.get(NgRedux);
131   })().then(done).catch(done.fail));
132
133   test('SharedTreeService should be defined', () => {
134     expect(service).toBeDefined();
135   });
136
137   test('SharedTreeService upgradeBottomUp should call redux actions', () => {
138     const serviceModelId = "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd";
139     const node = getNodeWithData("upgrade");
140     spyOn(node.parent.data.menuActions['upgrade'], 'method');
141     service.upgradeBottomUp(node, serviceModelId);
142     expect(node.parent.data.menuActions['upgrade'].method).toBeCalledWith(node.parent, serviceModelId);
143     expect(node.parent.data.menuActions['upgrade'].method).toBeCalledTimes(2);
144
145   });
146
147   test('SharedTreeService undoUpgradeBottomUp should call redux actions', () => {
148     const serviceModelId = "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd";
149     const node = getNodeWithData("undoUpgrade");
150     spyOn(node.parent.data.menuActions['undoUpgrade'], 'method');
151     service.undoUpgradeBottomUp(node, serviceModelId);
152     expect(node.parent.data.menuActions['undoUpgrade'].method).toBeCalledWith(node.parent, serviceModelId);
153     expect(node.parent.data.menuActions['undoUpgrade'].method).toBeCalledTimes(2);
154   });
155
156   test('shouldShowDeleteInstanceWithChildrenModal should open modal if child exist with action create', () => {
157     jest.spyOn(MessageBoxService.openModal, 'next');
158     let foo = () => {
159
160     };
161     let node = <any>{
162       children: [{action: "Create"}, {action: "None"}],
163       data: {
164         typeName: 'VNF'
165       }
166     };
167     service.shouldShowDeleteInstanceWithChildrenModal(node, "serviceModelId", foo);
168     expect(MessageBoxService.openModal.next).toHaveBeenCalled();
169   });
170
171   each([
172     ['volumeGroups by entry name', "volumeGroups",
173       "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"],
174     ['vfmodule by customizationUuid', "vfModules",
175       "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"],
176     ['vnf by customizationUuid', "vnfs",
177       "1da7b585-5e61-4993-b95e-8e6606c81e45", "2017-488_PASQUALE-vPE 0"],
178     ['vnfGroups by invariantUuid because no customizationUuid', "vnfGroups",
179       "4bb2e27e-ddab-4790-9c6d-1f731bc14a45", "groupingservicefortest..ResourceInstanceGroup..0"],
180   ]).test('modelByIdentifier should success: %s', (description, modelTypeName, modelUniqueIdOrName, expectedModelCustomizationName) => {
181     let serviceModelFromHierarchy =
182       getStore().service.serviceHierarchy["1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"];
183
184     expect(service.modelByIdentifiers(serviceModelFromHierarchy, modelTypeName, modelUniqueIdOrName))
185       .toHaveProperty("modelCustomizationName", expectedModelCustomizationName);
186   });
187
188   each([
189     ['vfmodule by invariantUuid when there is customizationUuid', "vfModules", "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1"],
190     ['network by non-existing modelUniqueIdOrName', "networks", "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1"],
191     ['collectionResource has no resource', "collectionResources", "whatever"],
192     ['non-existing model-type', "fooBar", "whatever"],
193   ]).test('modelByIdentifier should fail: %s', (description, modelTypeName, modelUniqueIdOrName) => {
194     let serviceModelFromHierarchy =
195       getStore().service.serviceHierarchy["1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"];
196
197     expect(service.modelByIdentifiers(serviceModelFromHierarchy, modelTypeName, modelUniqueIdOrName))
198       .toBeUndefined();
199   });
200
201   test('openAuditInfoModalInsideIframe should open modal for failed instance', () => {
202     jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next');
203
204     let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null,
205       null, null, null, null, null,
206       null, null, null, null,null, null);
207     const modelMock = {"a": "a"};
208     const instanceMock = {"instance": "instance", "trackById": "123456789"};
209     const instanceTypeMock = "instanceTypeMock";
210     jest.spyOn(modelInfoServiceMock, 'getModel').mockReturnValue(modelMock);
211     let node = <any>{
212       data: {
213         modelId: '6b528779-44a3-4472-bdff-9cd15ec93450',
214         trackById: '1245df21',
215         isFailed: true
216       }
217     };
218     service.openAuditInfoModal(node, "serviceModelId", instanceMock, instanceTypeMock, <any>modelInfoServiceMock);
219     expect(AuditInfoModalComponent.openInstanceAuditInfoModal.next).toHaveBeenCalledWith(
220       {
221         "instance": instanceMock,
222         "instanceId": "serviceModelId",
223         "model": modelMock,
224         "type": instanceTypeMock
225       });
226   });
227   each([
228     ['undefined', 'Unlimited (default)', {}],
229     ['null', 'Unlimited (default)', {max:null}],
230     ['3', '3', {max:3}],
231     ]).
232   test("when there is %s max instances in model , shell return %s text", (desc, expected, model) =>{
233     expect(service.createMaximumToInstantiateModelInformationItem(model).values[0]).toBe(expected);
234   });
235
236   test('shouldShowDeleteInstanceWithChildrfenModal should not open modal if all childs with action None', () => {
237     let foo = () => {
238     };
239     spyOn(MessageBoxService.openModal, 'next');
240
241     let node = <any>{
242       children: [{action: "None"}, {action: "None"}],
243       data: {
244         typeName: 'VNF'
245       }
246     };
247     service.shouldShowDeleteInstanceWithChildrenModal(node, "serviceModelId", foo);
248     expect(MessageBoxService.openModal.next).not.toHaveBeenCalled();
249   });
250
251   test ('addGeneralInfoItems should return correct info - ordered',()=>{
252     let specificNetworkInfo = [
253       ModelInformationItem.createInstance('Network role', "network role 1, network role 2")
254     ];
255     const actualInfoModel: ComponentInfoModel = service.addGeneralInfoItems(specificNetworkInfo,ComponentInfoType.NETWORK, getNetworkModelInfoFromHierarchy(),getNetworkInstance());
256
257     let expectedGeneralInfo = [
258       ModelInformationItem.createInstance('Model version', '2.0'),
259       ModelInformationItem.createInstance('Model customization ID', 'customization-id-from-hierarchy'),
260       ModelInformationItem.createInstance('Instance ID', 'NETWORK4_INSTANCE_ID'),
261       ModelInformationItem.createInstance('Instance type', 'CONTRAIL30_HIMELGUARD'),
262       ModelInformationItem.createInstance('In maintenance', false),
263       ModelInformationItem.createInstance('Network role', 'network role 1, network role 2')
264     ];
265     expect(actualInfoModel.modelInfoItems).toEqual(expectedGeneralInfo);
266   });
267
268   each([
269     ['model version from hierarchy', null, getNetworkModelInfoFromHierarchy(), '2.0'],
270     ['undefined model', null, null, undefined],
271     ['model version from instance', getSelectedModelInfo(), null, '5.0'],
272     ['model version from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(), '5.0'],
273   ]).
274   test ('getModelVersionEitherFromInstanceOrFromHierarchy should return %s ' ,
275     (description, instance, model, expectedResult) =>{
276     let actualResult = service.getModelVersionEitherFromInstanceOrFromHierarchy(instance, model);
277     expect(actualResult).toEqual(expectedResult);
278   });
279
280   each([
281     ['model CustomizationId from hierarchy', null, getNetworkModelInfoFromHierarchy(), 'customization-id-from-hierarchy'],
282     ['undefined model', null, null, undefined],
283     ['model CustomizationId from instance', getSelectedModelInfo(), null, 'model-customization-id-from-instance'],
284     ['model CustomizationId from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(), 'model-customization-id-from-instance'],
285   ]).
286   test ('getCustomizationIdEitherFromInstanceOrFromHierarchy should return %s ' ,
287     (description, instance, model, expectedResult) =>{
288       let actualResult = service.getModelCustomizationIdEitherFromInstanceOrFromHierarchy(instance, model);
289       expect(actualResult).toEqual(expectedResult);
290     });
291
292   test('statusProperties should be prop on node according to node properties', () => {
293     let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: false});
294     expect(node.statusProperties).toBeDefined();
295     expect(node.statusProperties).toEqual([Object({
296       key: 'Prov Status:',
297       value: 'inProgress',
298       testId: 'provStatus'
299     }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'})]);
300     node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: true});
301     expect(node.statusProperties).toEqual([Object({
302       key: 'Prov Status:',
303       value: 'inProgress',
304       testId: 'provStatus'
305     }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'}), Object({
306       key: 'In-maintenance',
307       value: '',
308       testId: 'inMaint'
309     })]);
310   });
311
312   each([
313     [false, 'method is not in menu actions', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {}, true],
314     [false, 'there is no action in node', null, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
315     [true, 'edit mode, action is none, method in menu action', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
316     [false, 'edit mode, action is none, method in menu action, macro service', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {someMethod: "someValue"}, false],
317     [false, 'edit mode, action is not none, method in menu action', ServiceInstanceActions.Resume, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
318     [false, 'edit mode, action is CREATE, method in menu action', ServiceInstanceActions.Resume, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true]
319   ]).test('shouldShowButtonGeneric return %s if %s ', (expected, description, action, mode, menuActions, isALaCarte) => {
320     jest.spyOn(store, 'getState').mockReturnValue(<any>{
321       global: {
322         drawingBoardStatus: mode
323       },
324       service : {
325         serviceInstance: {
326           someModelId : {
327             isALaCarte
328           }
329         }
330
331       }
332     });
333     let node = <any>{
334       data:{
335         action: action,
336         menuActions: menuActions
337       },
338     };
339
340     let res = service.shouldShowButtonGeneric(node, "someMethod", "someModelId");
341     expect(res).toBe(expected);
342   });
343
344   const enableRemoveAndEditItemsDataProvider = [
345     ['Create action CREATE mode', DrawingBoardModes.CREATE ,ServiceInstanceActions.Create, true],
346     ['Create action VIEW mode',DrawingBoardModes.VIEW , ServiceInstanceActions.Create,false],
347     ['Create action RETRY_EDIT mode',DrawingBoardModes.RETRY_EDIT,  ServiceInstanceActions.Create,  true],
348     ['Create action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.Create,  true],
349     ['Create action RETRY mode',DrawingBoardModes.RETRY, ServiceInstanceActions.Create,  false],
350     ['None action EDIT mode',DrawingBoardModes.EDIT,  ServiceInstanceActions.None, false],
351     ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
352   each(enableRemoveAndEditItemsDataProvider).test('shouldShowEditAndDelete if child exist with %s', (description, mode, action, enabled) => {
353     jest.spyOn(store, 'getState').mockReturnValue(<any>{
354         global: {
355           drawingBoardStatus: mode
356         }
357       });
358       let node = <any>{
359         data:{
360           action: action
361         },
362       };
363       let res = service.shouldShowRemoveAndEdit(node);
364       expect(res).toBe(enabled);
365     });
366
367
368   const isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDifferProvider = [
369     ['node is part of model, but vfmodule diff by customization',
370       true, 'mDNS 01222020 0', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
371
372     ['vnf model-name not found',
373       false, 'mDNS 01222020 1', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
374
375     ['vfmodule invariant-id not found',
376       false, 'mDNS 01222020 0', 'wrong invariant-id', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
377
378     ['vfmodule customization-id match',
379       false, 'mDNS 01222020 0', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', 'c9b32003-febc-44e0-a97f-7630fa7fa4a0'],
380   ];
381
382   each(isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDifferProvider).test('isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer: when  %s should return %s', (description, expected, vnfModelName, invariantUuid, customizationUuid) => {
383     const serviceModelId : string = 'a243da28-c11e-45a8-9f26-0284a9a789bc';
384     spyOn(store, 'getState').and.returnValue({
385       service : {
386         serviceHierarchy : {
387           [serviceModelId] : {
388             vnfs : {
389               [vnfModelName] : {
390                 vfModules : {
391                   vfModuleModelName : {
392                     invariantUuid : invariantUuid,
393                     customizationUuid : customizationUuid
394                   }
395                 }
396               }
397             }
398           }
399         }
400       }
401     });
402
403     const node = <any>{
404       data:{
405         modelInvariantId : '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a',
406         modelCustomizationId : 'c9b32003-febc-44e0-a97f-7630fa7fa4a0',
407         modelName : 'vfModuleModelName'
408       },
409       parent : {
410         data : {
411           modelName : "mDNS 01222020 0"
412         }
413       }
414     };
415
416     const isDiffCustomizationUuidResponse : boolean = service.isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer(node, serviceModelId);
417     expect(isDiffCustomizationUuidResponse).toEqual(expected);
418   });
419
420   each([
421     [false, true, true, false],
422     [true, true, true, true],
423     [true, true, false, true],
424     [true, false, true, true],
425     [true, false, false, false],
426   ]).
427   test('when flag is %s the UpdatedLatestVersion is %s and Vfmodule not exists on hierarchy is %s isShouldShowButtonGenericMustToBeCalled should return %s', (
428      flag: boolean,
429      isThereAnUpdatedLatestVersion: boolean,
430      isVfModuleCustomizationIdNotExistsOnModel: boolean,
431      isShouldShowButtonGenericMustToBeCalled: boolean
432      ) => {
433       let node = <any>  {};
434       let serviceModelId : string = '08c5fa17-769a-4231-bd92-aed4b0ed086d';
435       jest.spyOn(store, 'getState').mockReturnValue(<any>{
436         global: {
437           "flags": {
438             "FLAG_FLASH_REPLACE_VF_MODULE": flag,
439           },
440         }
441       });
442       spyOn(service, 'isThereAnUpdatedLatestVersion').and.returnValue(isThereAnUpdatedLatestVersion);
443       spyOn(service, 'isVfModuleCustomizationIdNotExistsOnModel').and.returnValue(isVfModuleCustomizationIdNotExistsOnModel);
444
445       expect(service.isVfMoudleCouldBeUpgraded(node, serviceModelId)).toEqual(isShouldShowButtonGenericMustToBeCalled);
446     });
447
448   each([
449     ['Vfm customization uuid not exists in model', 'not-existing-customization-uuid', 'service-model-id', true],
450     ['Vfm customization uuid exists in model', 'existing-customization-uuid', 'service-model-id', false]
451   ]).
452   test('%s when vfModuleNode is  %s and serviceModelId is %s ', (
453     description,
454     modelCustomizationId,
455     serviceModelId: string,
456     isExistsOnHierarchy: boolean,
457     ) => {
458
459     const vfModuleNode = { data: {
460         modelCustomizationId : modelCustomizationId
461       }};
462
463     jest.spyOn(store, 'getState').mockReturnValue(<any>{
464       service : {
465         "serviceHierarchy": {
466           [serviceModelId]: {
467             "vfModules": {
468               "module-1": {
469                 "customizationUuid": "3d7f41c8-333b-4fee-b50d-5687e9c2170f",
470               },
471               "module-2": {
472                 "customizationUuid": "existing-customization-uuid",
473               }
474             }
475           }
476         }
477       }
478     });
479     expect(service.isVfModuleCustomizationIdNotExistsOnModel(vfModuleNode, serviceModelId)).toEqual(isExistsOnHierarchy);
480
481
482   });
483
484 });
485
486 function getStore() {
487   return {
488     "global": {
489       "name": null,
490       "flags": {
491         "EMPTY_DRAWING_BOARD_TEST": false,
492         "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
493         "FLAG_ADD_MSO_TESTAPI_FIELD": true,
494         "FLAG_SERVICE_MODEL_CACHE": true,
495         "FLAG_SHOW_ASSIGNMENTS": true,
496         "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
497         "FLAG_A_LA_CARTE_AUDIT_INFO": true,
498         "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
499         "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true,
500         "FLAG_1902_NEW_VIEW_EDIT": true,
501         "FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false,
502         "FLAG_1902_VNF_GROUPING": true,
503         "FLAG_SHOW_VERIFY_SERVICE": true,
504         "FLAG_ASYNC_ALACARTE_VFMODULE": true,
505         "FLAG_ASYNC_ALACARTE_VNF": true,
506         "FLAG_1810_AAI_LOCAL_CACHE": true,
507         "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
508         "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false,
509         "FLAG_SUPPLEMENTARY_FILE": true,
510         "FLAG_5G_IN_NEW_INSTANTIATION_UI": true,
511         "FLAG_RESTRICTED_SELECT": false,
512         "FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY": true
513       },
514       "drawingBoardStatus": "VIEW",
515       "type": "UPDATE_DRAWING_BOARD_STATUS"
516     },
517     "service": {
518       "serviceHierarchy": {
519         "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
520           "service": {
521             "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
522             "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
523             "name": "action-data",
524             "version": "1.0",
525             "toscaModelURL": null,
526             "category": "Network L1-3",
527             "serviceType": "pnf",
528             "serviceRole": "Testing",
529             "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
530             "serviceEcompNaming": "false",
531             "instantiationType": "Macro",
532             "inputs": {},
533             "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}
534           },
535           "vnfs": {
536             "2017-388_PASQUALE-vPE 1": {
537               "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
538               "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
539               "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",
540               "name": "2017-388_PASQUALE-vPE",
541               "version": "1.0",
542               "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
543               "inputs": {},
544               "commands": {},
545               "properties": {
546                 "vmxvre_retype": "RE-VMX",
547                 "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
548                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
549                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
550                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
551                 "int_ctl_net_name": "VMX-INTXI",
552                 "vmx_int_ctl_prefix": "10.0.0.10",
553                 "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
554                 "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
555                 "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
556                 "nf_type": "vPE",
557                 "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
558                 "is_AVPN_service": "false",
559                 "vmx_RSG_name": "vREXI-affinity",
560                 "vmx_int_ctl_forwarding": "l2",
561                 "vmxvre_oam_ip_0": "10.0.0.10",
562                 "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
563                 "vmxvpfe_sriov41_0_port_vlanstrip": "false",
564                 "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
565                 "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
566                 "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
567                 "vmxvre_instance": "0",
568                 "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
569                 "vmxvre_flavor_name": "ns.c1r16d32.v5",
570                 "vmxvpfe_volume_size_0": "40.0",
571                 "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
572                 "nf_naming": "{ecomp_generated_naming=true}",
573                 "multi_stage_design": "true",
574                 "nf_naming_code": "Navneet",
575                 "vmxvre_name_0": "vREXI",
576                 "vmxvpfe_sriov42_0_port_vlanstrip": "false",
577                 "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
578                 "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
579                 "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
580                 "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
581                 "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
582                 "vmxvre_console": "vidconsole",
583                 "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
584                 "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
585                 "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
586                 "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
587                 "vmxvpfe_sriov44_0_port_vlanstrip": "false",
588                 "vf_module_id": "123",
589                 "nf_function": "JAI",
590                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
591                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
592                 "ecomp_generated_naming": "true",
593                 "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
594                 "vnf_name": "mtnj309me6vre",
595                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
596                 "vmxvre_volume_type_1": "HITACHI",
597                 "vmxvpfe_sriov44_0_port_broadcastallow": "true",
598                 "vmxvre_volume_type_0": "HITACHI",
599                 "vmxvpfe_volume_type_0": "HITACHI",
600                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
601                 "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
602                 "vnf_id": "123",
603                 "vmxvre_oam_prefix": "24",
604                 "availability_zone_0": "mtpocfo-kvm-az01",
605                 "ASN": "get_input:2017488_pasqualevpe0_ASN",
606                 "vmxvre_chassis_i2cid": "161",
607                 "vmxvpfe_name_0": "vPFEXI",
608                 "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
609                 "availability_zone_max_count": "1",
610                 "vmxvre_volume_size_0": "45.0",
611                 "vmxvre_volume_size_1": "50.0",
612                 "vmxvpfe_sriov42_0_port_broadcastallow": "true",
613                 "vmxvre_oam_gateway": "10.0.0.10",
614                 "vmxvre_volume_name_1": "vREXI_FAVolume",
615                 "vmxvre_ore_present": "0",
616                 "vmxvre_volume_name_0": "vREXI_FBVolume",
617                 "vmxvre_type": "0",
618                 "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
619                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
620                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
621                 "vmx_int_ctl_len": "24",
622                 "vmxvpfe_sriov43_0_port_vlanstrip": "false",
623                 "vmxvpfe_sriov41_0_port_broadcastallow": "true",
624                 "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
625                 "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
626                 "nf_role": "Testing",
627                 "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
628                 "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
629                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
630               },
631               "type": "VF",
632               "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
633               "vfModules": {},
634               "volumeGroups": {},
635               "vfcInstanceGroups": {}
636             },
637             "2017-388_PASQUALE-vPE 0": {
638               "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
639               "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
640               "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",
641               "name": "2017-388_PASQUALE-vPE",
642               "version": "4.0",
643               "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
644               "inputs": {},
645               "commands": {},
646               "properties": {
647                 "vmxvre_retype": "RE-VMX",
648                 "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
649                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
650                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
651                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
652                 "int_ctl_net_name": "VMX-INTXI",
653                 "vmx_int_ctl_prefix": "10.0.0.10",
654                 "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
655                 "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
656                 "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
657                 "nf_type": "vPE",
658                 "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
659                 "is_AVPN_service": "false",
660                 "vmx_RSG_name": "vREXI-affinity",
661                 "vmx_int_ctl_forwarding": "l2",
662                 "vmxvre_oam_ip_0": "10.0.0.10",
663                 "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
664                 "vmxvpfe_sriov41_0_port_vlanstrip": "false",
665                 "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
666                 "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
667                 "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
668                 "vmxvre_instance": "0",
669                 "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
670                 "vmxvre_flavor_name": "ns.c1r16d32.v5",
671                 "vmxvpfe_volume_size_0": "40.0",
672                 "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
673                 "nf_naming": "{ecomp_generated_naming=true}",
674                 "multi_stage_design": "true",
675                 "nf_naming_code": "Navneet",
676                 "vmxvre_name_0": "vREXI",
677                 "vmxvpfe_sriov42_0_port_vlanstrip": "false",
678                 "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
679                 "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
680                 "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
681                 "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
682                 "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
683                 "vmxvre_console": "vidconsole",
684                 "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
685                 "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
686                 "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
687                 "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
688                 "vmxvpfe_sriov44_0_port_vlanstrip": "false",
689                 "vf_module_id": "123",
690                 "nf_function": "JAI",
691                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
692                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
693                 "ecomp_generated_naming": "true",
694                 "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
695                 "vnf_name": "mtnj309me6vre",
696                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
697                 "vmxvre_volume_type_1": "HITACHI",
698                 "vmxvpfe_sriov44_0_port_broadcastallow": "true",
699                 "vmxvre_volume_type_0": "HITACHI",
700                 "vmxvpfe_volume_type_0": "HITACHI",
701                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
702                 "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
703                 "vnf_id": "123",
704                 "vmxvre_oam_prefix": "24",
705                 "availability_zone_0": "mtpocfo-kvm-az01",
706                 "ASN": "get_input:2017488_pasqualevpe0_ASN",
707                 "vmxvre_chassis_i2cid": "161",
708                 "vmxvpfe_name_0": "vPFEXI",
709                 "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
710                 "availability_zone_max_count": "1",
711                 "vmxvre_volume_size_0": "45.0",
712                 "vmxvre_volume_size_1": "50.0",
713                 "vmxvpfe_sriov42_0_port_broadcastallow": "true",
714                 "vmxvre_oam_gateway": "10.0.0.10",
715                 "vmxvre_volume_name_1": "vREXI_FAVolume",
716                 "vmxvre_ore_present": "0",
717                 "vmxvre_volume_name_0": "vREXI_FBVolume",
718                 "vmxvre_type": "0",
719                 "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
720                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
721                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
722                 "vmx_int_ctl_len": "24",
723                 "vmxvpfe_sriov43_0_port_vlanstrip": "false",
724                 "vmxvpfe_sriov41_0_port_broadcastallow": "true",
725                 "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
726                 "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
727                 "nf_role": "Testing",
728                 "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
729                 "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
730                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
731               },
732               "type": "VF",
733               "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
734               "vfModules": {},
735               "volumeGroups": {},
736               "vfcInstanceGroups": {}
737             },
738             "2017-488_PASQUALE-vPE 0": {
739               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
740               "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
741               "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",
742               "name": "2017-488_PASQUALE-vPE",
743               "version": "5.0",
744               "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
745               "inputs": {},
746               "commands": {},
747               "properties": {
748                 "max_instances": 1,
749                 "vmxvre_retype": "RE-VMX",
750                 "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
751                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
752                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
753                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
754                 "int_ctl_net_name": "VMX-INTXI",
755                 "vmx_int_ctl_prefix": "10.0.0.10",
756                 "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
757                 "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
758                 "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
759                 "nf_type": "vPE",
760                 "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
761                 "is_AVPN_service": "false",
762                 "vmx_RSG_name": "vREXI-affinity",
763                 "vmx_int_ctl_forwarding": "l2",
764                 "vmxvre_oam_ip_0": "10.0.0.10",
765                 "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
766                 "vmxvpfe_sriov41_0_port_vlanstrip": "false",
767                 "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
768                 "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
769                 "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
770                 "vmxvre_instance": "0",
771                 "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
772                 "vmxvre_flavor_name": "ns.c1r16d32.v5",
773                 "vmxvpfe_volume_size_0": "40.0",
774                 "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
775                 "nf_naming": "{ecomp_generated_naming=true}",
776                 "multi_stage_design": "true",
777                 "nf_naming_code": "Navneet",
778                 "vmxvre_name_0": "vREXI",
779                 "vmxvpfe_sriov42_0_port_vlanstrip": "false",
780                 "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
781                 "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
782                 "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
783                 "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
784                 "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
785                 "vmxvre_console": "vidconsole",
786                 "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
787                 "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
788                 "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
789                 "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
790                 "vmxvpfe_sriov44_0_port_vlanstrip": "false",
791                 "vf_module_id": "123",
792                 "nf_function": "JAI",
793                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
794                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
795                 "ecomp_generated_naming": "true",
796                 "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
797                 "vnf_name": "mtnj309me6vre",
798                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
799                 "vmxvre_volume_type_1": "HITACHI",
800                 "vmxvpfe_sriov44_0_port_broadcastallow": "true",
801                 "vmxvre_volume_type_0": "HITACHI",
802                 "vmxvpfe_volume_type_0": "HITACHI",
803                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
804                 "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
805                 "vnf_id": "123",
806                 "vmxvre_oam_prefix": "24",
807                 "availability_zone_0": "mtpocfo-kvm-az01",
808                 "ASN": "get_input:2017488_pasqualevpe0_ASN",
809                 "vmxvre_chassis_i2cid": "161",
810                 "vmxvpfe_name_0": "vPFEXI",
811                 "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
812                 "availability_zone_max_count": "1",
813                 "vmxvre_volume_size_0": "45.0",
814                 "vmxvre_volume_size_1": "50.0",
815                 "vmxvpfe_sriov42_0_port_broadcastallow": "true",
816                 "vmxvre_oam_gateway": "10.0.0.10",
817                 "vmxvre_volume_name_1": "vREXI_FAVolume",
818                 "vmxvre_ore_present": "0",
819                 "vmxvre_volume_name_0": "vREXI_FBVolume",
820                 "vmxvre_type": "0",
821                 "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
822                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
823                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
824                 "vmx_int_ctl_len": "24",
825                 "vmxvpfe_sriov43_0_port_vlanstrip": "false",
826                 "vmxvpfe_sriov41_0_port_broadcastallow": "true",
827                 "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
828                 "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
829                 "nf_role": "Testing",
830                 "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
831                 "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
832                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
833               },
834               "type": "VF",
835               "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
836               "vfModules": {
837                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
838                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
839                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
840                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
841                   "description": null,
842                   "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
843                   "version": "6",
844                   "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
845                   "properties": {
846                     "minCountInstances": 0,
847                     "maxCountInstances": null,
848                     "initialCount": 0,
849                     "vfModuleLabel": "PASQUALE_vRE_BV",
850                     "baseModule": false
851                   },
852                   "inputs": {},
853                   "volumeGroupAllowed": true
854                 },
855                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
856                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
857                   "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
858                   "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
859                   "description": null,
860                   "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
861                   "version": "5",
862                   "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
863                   "properties": {
864                     "minCountInstances": 1,
865                     "maxCountInstances": 1,
866                     "initialCount": 1,
867                     "vfModuleLabel": "PASQUALE_base_vPE_BV",
868                     "baseModule": true
869                   },
870                   "inputs": {},
871                   "volumeGroupAllowed": false
872                 },
873                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
874                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
875                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
876                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
877                   "description": null,
878                   "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
879                   "version": "6",
880                   "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
881                   "properties": {
882                     "minCountInstances": 0,
883                     "maxCountInstances": null,
884                     "initialCount": 0,
885                     "vfModuleLabel": "PASQUALE_vPFE_BV",
886                     "baseModule": false
887                   },
888                   "inputs": {},
889                   "volumeGroupAllowed": true
890                 }
891               },
892               "volumeGroups": {
893                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
894                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
895                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
896                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
897                   "description": null,
898                   "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
899                   "version": "6",
900                   "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
901                   "properties": {
902                     "minCountInstances": 0,
903                     "maxCountInstances": null,
904                     "initialCount": 0,
905                     "vfModuleLabel": "PASQUALE_vRE_BV",
906                     "baseModule": false
907                   },
908                   "inputs": {}
909                 },
910                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
911                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
912                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
913                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
914                   "description": null,
915                   "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
916                   "version": "6",
917                   "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
918                   "properties": {
919                     "minCountInstances": 0,
920                     "maxCountInstances": null,
921                     "initialCount": 0,
922                     "vfModuleLabel": "PASQUALE_vPFE_BV",
923                     "baseModule": false
924                   },
925                   "inputs": {}
926                 }
927               },
928               "vfcInstanceGroups": {}
929             }
930           },
931           "networks": {
932             "ExtVL 0": {
933               "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
934               "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
935               "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
936               "name": "ExtVL",
937               "version": "37.0",
938               "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
939               "inputs": {},
940               "commands": {},
941               "properties": {
942                 "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
943                 "exVL_naming": "{ecomp_generated_naming=true}",
944                 "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
945                 "network_homing": "{ecomp_selected_instance_node_target=false}"
946               },
947               "type": "VL",
948               "modelCustomizationName": "ExtVL 0"
949             }
950           },
951           "collectionResources": {},
952           "configurations": {},
953           "fabricConfigurations": {},
954           "serviceProxies": {},
955           "vfModules": {
956             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
957               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
958               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
959               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
960               "description": null,
961               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
962               "version": "6",
963               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
964               "properties": {
965                 "minCountInstances": 0,
966                 "maxCountInstances": null,
967                 "initialCount": 0,
968                 "vfModuleLabel": "PASQUALE_vRE_BV",
969                 "baseModule": false
970               },
971               "inputs": {},
972               "volumeGroupAllowed": true
973             },
974             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
975               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
976               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
977               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
978               "description": null,
979               "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
980               "version": "5",
981               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
982               "properties": {
983                 "minCountInstances": 1,
984                 "maxCountInstances": 1,
985                 "initialCount": 1,
986                 "vfModuleLabel": "PASQUALE_base_vPE_BV",
987                 "baseModule": true
988               },
989               "inputs": {},
990               "volumeGroupAllowed": false
991             },
992             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
993               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
994               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
995               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
996               "description": null,
997               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
998               "version": "6",
999               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1000               "properties": {
1001                 "minCountInstances": 0,
1002                 "maxCountInstances": null,
1003                 "initialCount": 0,
1004                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1005                 "baseModule": false
1006               },
1007               "inputs": {},
1008               "volumeGroupAllowed": true
1009             }
1010           },
1011           "volumeGroups": {
1012             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1013               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1014               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1015               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1016               "description": null,
1017               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1018               "version": "6",
1019               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1020               "properties": {
1021                 "minCountInstances": 0,
1022                 "maxCountInstances": null,
1023                 "initialCount": 0,
1024                 "vfModuleLabel": "PASQUALE_vRE_BV",
1025                 "baseModule": false
1026               },
1027               "inputs": {}
1028             },
1029             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1030               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1031               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1032               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1033               "description": null,
1034               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1035               "version": "6",
1036               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1037               "properties": {
1038                 "minCountInstances": 0,
1039                 "maxCountInstances": null,
1040                 "initialCount": 0,
1041                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1042                 "baseModule": false
1043               },
1044               "inputs": {}
1045             }
1046           },
1047           "pnfs": {},
1048           "vnfGroups": {
1049             "groupingservicefortest..ResourceInstanceGroup..0": {
1050               "type": "VnfGroup",
1051               "invariantUuid": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45",
1052               "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48",
1053               "version": "1",
1054               "name": "groupingservicefortest..ResourceInstanceGroup..0",
1055               "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0",
1056               "properties": {
1057                 "contained_resource_type": "VF",
1058                 "role": "SERVICE-ACCESS",
1059                 "function": "DATA",
1060                 "description": "DDD0",
1061                 "type": "LOAD-GROUP",
1062                 "ecomp_generated_naming": "true"
1063               },
1064               "members": {
1065                 "vdorothea_svc_vprs_proxy 0": {
1066                   "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
1067                   "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
1068                   "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
1069                   "name": "vDOROTHEA_Svc_vPRS Service Proxy",
1070                   "version": "1.0",
1071                   "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
1072                   "inputs": {},
1073                   "commands": {},
1074                   "properties": {},
1075                   "type": "Service Proxy",
1076                   "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
1077                   "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
1078                   "sourceModelName": "vDOROTHEA_Svc_vPRS"
1079                 }
1080               }
1081             },
1082             "groupingservicefortest..ResourceInstanceGroup..1": {
1083               "type": "VnfGroup",
1084               "invariantUuid": "a704112d-dbc6-4e56-8d4e-aec57e95ef9a",
1085               "uuid": "c2b300e6-45de-4e5e-abda-3032bee2de56",
1086               "version": "1",
1087               "name": "groupingservicefortest..ResourceInstanceGroup..1",
1088               "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..1",
1089               "properties": {
1090                 "contained_resource_type": "VF",
1091                 "role": "SERVICE-ACCESS",
1092                 "function": "SIGNALING",
1093                 "description": "DDD1",
1094                 "type": "LOAD-GROUP",
1095                 "ecomp_generated_naming": "true"
1096               },
1097               "members": {
1098                 "tsbc0001vm001_svc_proxy 0": {
1099                   "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
1100                   "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
1101                   "description": "A Proxy for Service tsbc0001vm001_Svc",
1102                   "name": "tsbc0001vm001_Svc Service Proxy",
1103                   "version": "1.0",
1104                   "customizationUuid": "3d814462-30fb-4c62-b997-9aa360d27ead",
1105                   "inputs": {},
1106                   "commands": {},
1107                   "properties": {},
1108                   "type": "Service Proxy",
1109                   "sourceModelUuid": "28aeb8f6-5620-4148-8bfb-a5fb406f0309",
1110                   "sourceModelInvariant": "c989ab9a-33c7-46ec-b521-1b2daef5f047",
1111                   "sourceModelName": "tsbc0001vm001_Svc"
1112                 }
1113               }
1114             }
1115           }
1116         },
1117         "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6": {
1118           "service": {
1119             "uuid": "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6",
1120             "invariantUuid": "5b9c0f33-eec1-484a-bf77-736a6644d7a8",
1121             "name": "Using VID for VoIP Network Instantiations Shani",
1122             "version": "1.0",
1123             "toscaModelURL": null,
1124             "category": "VoIP Call Control",
1125             "serviceType": "",
1126             "serviceRole": "",
1127             "description": "Using VID for VoIP Network Instantiations Shani",
1128             "serviceEcompNaming": "true",
1129             "instantiationType": "ClientConfig",
1130             "inputs": {},
1131             "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}
1132           },
1133           "vnfs": {},
1134           "networks": {
1135             "AIC30_CONTRAIL_BASIC 0": {
1136               "uuid": "ac815c68-35b7-4ea4-9d04-92d2f844b27c",
1137               "invariantUuid": "de01afb5-532b-451d-aac4-ff9ff0644060",
1138               "description": "Basic contrail 3.0.x L3 network for AIC 3.x sites. ",
1139               "name": "AIC30_CONTRAIL_BASIC",
1140               "version": "3.0",
1141               "customizationUuid": "e94d61f7-b4b2-489a-a4a7-30b1a1a80daf",
1142               "inputs": {},
1143               "commands": {},
1144               "properties": {
1145                 "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
1146                 "exVL_naming": "{ecomp_generated_naming=true}",
1147                 "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
1148                 "network_scope": "Service",
1149                 "network_type": "AIC30_CONTRAIL_BASIC",
1150                 "network_technology": "Contrail",
1151                 "network_homing": "{ecomp_selected_instance_node_target=false}"
1152               },
1153               "type": "VL",
1154               "modelCustomizationName": "AIC30_CONTRAIL_BASIC 0"
1155             }
1156           },
1157           "collectionResources": {},
1158           "configurations": {},
1159           "fabricConfigurations": {},
1160           "serviceProxies": {},
1161           "vfModules": {},
1162           "volumeGroups": {},
1163           "pnfs": {},
1164           "vnfGroups": {}
1165         }
1166       },
1167       "serviceInstance": {
1168         "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
1169           "vnfs": {
1170             "2017-488_PASQUALE-vPE 0": {
1171               "action": "None",
1172               "inMaint": false,
1173               "rollbackOnFailure": "true",
1174               "originalName": "2017-488_PASQUALE-vPE 0",
1175               "isMissingData": false,
1176               "trackById": "stigekyxrqi",
1177               "vfModules": {
1178                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
1179                   "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
1180                     "isMissingData": false,
1181                     "sdncPreReload": null,
1182                     "modelInfo": {
1183                       "modelType": "VFmodule",
1184                       "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
1185                       "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
1186                       "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1187                       "modelVersion": "5",
1188                       "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
1189                       "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
1190                     },
1191                     "instanceParams": [{}],
1192                     "trackById": "3oj23o7nupo"
1193                   }
1194                 }
1195               },
1196               "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
1197               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
1198               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
1199               "lcpCloudRegionId": "AAIAIC25",
1200               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
1201               "lineOfBusiness": "ONAP",
1202               "platformName": "xxx1",
1203               "modelInfo": {
1204                 "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
1205                 "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
1206                 "modelName": "2017-488_PASQUALE-vPE",
1207                 "modelVersion": "5.0",
1208                 "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
1209                 "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
1210                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
1211               },
1212               "legacyRegion": "11111111",
1213               "instanceParams": [{}]
1214             },
1215             "2017-388_PASQUALE-vPE 0": {
1216               "action": "Create",
1217               "inMaint": false,
1218               "rollbackOnFailure": "true",
1219               "originalName": "2017-388_PASQUALE-vPE 0",
1220               "isMissingData": false,
1221               "trackById": "nib719t5vca",
1222               "vfModules": {},
1223               "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
1224               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
1225               "lcpCloudRegionId": "AAIAIC25",
1226               "legacyRegion": "11111",
1227               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
1228               "platformName": "platform",
1229               "lineOfBusiness": "zzz1",
1230               "instanceParams": [{}],
1231               "modelInfo": {
1232                 "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
1233                 "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
1234                 "modelName": "2017-388_PASQUALE-vPE",
1235                 "modelVersion": "4.0",
1236                 "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
1237                 "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
1238                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
1239               },
1240               "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
1241             },
1242             "2017-388_PASQUALE-vPE 1": {
1243               "action": "None",
1244               "inMaint": false,
1245               "rollbackOnFailure": "true",
1246               "originalName": "2017-388_PASQUALE-vPE 1",
1247               "isMissingData": false,
1248               "trackById": "cv7l1ak8vpe",
1249               "vfModules": {},
1250               "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
1251               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
1252               "lcpCloudRegionId": "AAIAIC25",
1253               "legacyRegion": "123",
1254               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
1255               "platformName": "platform",
1256               "lineOfBusiness": "ONAP",
1257               "instanceParams": [{}],
1258               "modelInfo": {
1259                 "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
1260                 "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
1261                 "modelName": "2017-388_PASQUALE-vPE",
1262                 "modelVersion": "1.0",
1263                 "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
1264                 "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
1265                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
1266               },
1267               "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
1268             }
1269           },
1270           "instanceParams": [{}],
1271           "validationCounter": 0,
1272           "existingNames": {"yoav": ""},
1273           "existingVNFCounterMap": {
1274             "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1,
1275             "afacccf6-397d-45d6-b5ae-94c39734b168": 1,
1276             "0903e1c0-8e03-4936-b5c2-260653b96413": 1
1277           },
1278           "existingVnfGroupCounterMap": {
1279             "daeb6568-cef8-417f-9075-ed259ce59f48": 0,
1280             "c2b300e6-45de-4e5e-abda-3032bee2de56": -1
1281           },
1282           "existingNetworksCounterMap": {"ddc3f20c-08b5-40fd-af72-c6d14636b986": 1},
1283           "networks": {
1284             "ExtVL 0": {
1285               "inMaint": false,
1286               "rollbackOnFailure": "true",
1287               "originalName": "ExtVL 0",
1288               "isMissingData": false,
1289               "trackById": "s6okajvv2n8",
1290               "networkStoreKey": "ExtVL 0",
1291               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
1292               "lcpCloudRegionId": "AAIAIC25",
1293               "legacyRegion": "12355555",
1294               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
1295               "platformName": "platform",
1296               "lineOfBusiness": null,
1297               "instanceParams": [{}],
1298               "modelInfo": {
1299                 "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c",
1300                 "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
1301                 "modelName": "ExtVL",
1302                 "modelVersion": "37.0",
1303                 "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
1304                 "modelCustomizationName": "ExtVL 0",
1305                 "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986"
1306               },
1307               "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986"
1308             }
1309           },
1310           "vnfGroups": {
1311             "groupingservicefortest..ResourceInstanceGroup..0": {
1312               "inMaint": false,
1313               "rollbackOnFailure": "true",
1314               "originalName": "groupingservicefortest..ResourceInstanceGroup..0",
1315               "isMissingData": false,
1316               "trackById": "se0obn93qq",
1317               "vnfGroupStoreKey": "groupingservicefortest..ResourceInstanceGroup..0",
1318               "instanceName": "groupingservicefortestResourceInstanceGroup0",
1319               "instanceParams": [{}],
1320               "modelInfo": {
1321                 "modelInvariantId": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45",
1322                 "modelVersionId": "daeb6568-cef8-417f-9075-ed259ce59f48",
1323                 "modelName": "groupingservicefortest..ResourceInstanceGroup..0",
1324                 "modelVersion": "1",
1325                 "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0",
1326                 "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48"
1327               },
1328               "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48"
1329             }
1330           },
1331           "instanceName": "yoav",
1332           "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
1333           "subscriptionServiceType": "TYLER SILVIA",
1334           "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
1335           "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
1336           "lcpCloudRegionId": "AAIAIC25",
1337           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
1338           "aicZoneId": "ATL53",
1339           "pause": null,
1340           "projectName": "WATKINS",
1341           "rollbackOnFailure": "true",
1342           "bulkSize": 1,
1343           "aicZoneName": "AAIATLTE-ATL53",
1344           "owningEntityName": "WayneHolland",
1345           "testApi": "VNF_API",
1346           "isEcompGeneratedNaming": false,
1347           "tenantName": "USP-SIP-IC-24335-T-01",
1348           "modelInfo": {
1349             "modelInvariantId": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
1350             "modelVersionId": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
1351             "modelName": "action-data",
1352             "modelVersion": "1.0",
1353             "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"
1354           },
1355           "isALaCarte": false,
1356           "name": "action-data",
1357           "version": "1.0",
1358           "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
1359           "category": "Network L1-3",
1360           "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
1361           "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
1362           "serviceType": "pnf",
1363           "serviceRole": "Testing",
1364           "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"},
1365           "isMultiStepDesign": true
1366         }
1367       },
1368       "lcpRegionsAndTenants": {
1369         "lcpRegionList": [{
1370           "id": "AAIAIC25",
1371           "name": "AAIAIC25 (AIC)",
1372           "isPermitted": true,
1373           "cloudOwner": "irma-aic"
1374         }, {"id": "hvf6", "name": "hvf6 (AIC)", "isPermitted": true, "cloudOwner": "irma-aic"}],
1375         "lcpRegionsTenantsMap": {
1376           "AAIAIC25": [{
1377             "id": "092eb9e8e4b7412e8787dd091bc58e86",
1378             "name": "USP-SIP-IC-24335-T-01",
1379             "isPermitted": true,
1380             "cloudOwner": "irma-aic"
1381           }],
1382           "hvf6": [{
1383             "id": "bae71557c5bb4d5aac6743a4e5f1d054",
1384             "name": "AIN Web Tool-15-D-testalexandria",
1385             "isPermitted": true,
1386             "cloudOwner": "irma-aic"
1387           }, {
1388             "id": "d0a3e3f2964542259d155a81c41aadc3",
1389             "name": "test-hvf6-09",
1390             "isPermitted": true,
1391             "cloudOwner": "irma-aic"
1392           }, {
1393             "id": "fa45ca53c80b492fa8be5477cd84fc2b",
1394             "name": "ro-T112",
1395             "isPermitted": true,
1396             "cloudOwner": "irma-aic"
1397           }, {
1398             "id": "cbb99fe4ada84631b7baf046b6fd2044",
1399             "name": "DN5242-Nov16-T3",
1400             "isPermitted": true,
1401             "cloudOwner": "irma-aic"
1402           }]
1403         }
1404       },
1405       "subscribers": [{
1406         "id": "ERICA5779-Subscriber-2",
1407         "name": "ERICA5779-Subscriber-2",
1408         "isPermitted": false
1409       }, {
1410         "id": "ERICA5779-Subscriber-3",
1411         "name": "ERICA5779-Subscriber-3",
1412         "isPermitted": false
1413       }, {
1414         "id": "ERICA5779-Subscriber-4",
1415         "name": "ERICA5779-Subscriber-5",
1416         "isPermitted": false
1417       }, {
1418         "id": "ERICA5779-TestSub-PWT-101",
1419         "name": "ERICA5779-TestSub-PWT-101",
1420         "isPermitted": false
1421       }, {
1422         "id": "ERICA5779-TestSub-PWT-102",
1423         "name": "ERICA5779-TestSub-PWT-102",
1424         "isPermitted": false
1425       }, {
1426         "id": "ERICA5779-TestSub-PWT-103",
1427         "name": "ERICA5779-TestSub-PWT-103",
1428         "isPermitted": false
1429       }, {
1430         "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
1431         "name": "CRAIG/ROBERTS",
1432         "isPermitted": false
1433       }, {"id": "DHV1707-TestSubscriber-2", "name": "DALE BRIDGES", "isPermitted": false}, {
1434         "id": "jimmy-example",
1435         "name": "JimmyExampleCust-20161102",
1436         "isPermitted": false
1437       }, {"id": "jimmy-example2", "name": "JimmyExampleCust-20161103", "isPermitted": false}, {
1438         "id": "CAR_2020_ER",
1439         "name": "CAR_2020_ER",
1440         "isPermitted": true
1441       }, {
1442         "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
1443         "name": "Emanuel",
1444         "isPermitted": false
1445       }, {
1446         "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
1447         "name": "JULIO ERICKSON",
1448         "isPermitted": false
1449       }, {
1450         "id": "DHV1707-TestSubscriber-1",
1451         "name": "LLOYD BRIDGES",
1452         "isPermitted": false
1453       }, {"id": "e433710f-9217-458d-a79d-1c7aff376d89", "name": "SILVIA ROBBINS", "isPermitted": true}],
1454       "productFamilies": null,
1455       "serviceTypes": {
1456         "e433710f-9217-458d-a79d-1c7aff376d89": [{
1457           "id": "17",
1458           "name": "JOHANNA_SANTOS",
1459           "isPermitted": false
1460         }, {"id": "16", "name": "LINDSEY", "isPermitted": false}, {
1461           "id": "2",
1462           "name": "Emanuel",
1463           "isPermitted": false
1464         }, {"id": "5", "name": "Kennedy", "isPermitted": false}, {
1465           "id": "14",
1466           "name": "SSD",
1467           "isPermitted": false
1468         }, {"id": "1", "name": "TYLER SILVIA", "isPermitted": true}, {
1469           "id": "12",
1470           "name": "VPMS",
1471           "isPermitted": false
1472         }, {"id": "3", "name": "vJamie", "isPermitted": false}, {
1473           "id": "0",
1474           "name": "vRichardson",
1475           "isPermitted": false
1476         }, {"id": "18", "name": "vCarroll", "isPermitted": false}, {
1477           "id": "9",
1478           "name": "vFLORENCE",
1479           "isPermitted": false
1480         }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
1481           "id": "10",
1482           "name": "vMNS",
1483           "isPermitted": false
1484         }, {"id": "15", "name": "vMOG", "isPermitted": false}, {
1485           "id": "8",
1486           "name": "vOTA",
1487           "isPermitted": false
1488         }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
1489           "id": "6",
1490           "name": "vPorfirio",
1491           "isPermitted": false
1492         }, {"id": "7", "name": "vVM", "isPermitted": false}, {"id": "4", "name": "vVoiceMail", "isPermitted": false}]
1493       },
1494       "aicZones": [
1495         {
1496           "id": "NFT1",
1497           "name": "NFTJSSSS-NFT1"
1498         },
1499         {
1500           "id": "JAG1",
1501           "name": "YUDFJULP-JAG1"
1502         },
1503         {
1504           "id": "YYY1",
1505           "name": "UUUAIAAI-YYY1"
1506         },
1507         {
1508           "id": "AVT1",
1509           "name": "AVTRFLHD-AVT1"
1510         },
1511         {
1512           "id": "ATL34",
1513           "name": "ATLSANAI-ATL34"
1514         }
1515       ],
1516       "categoryParameters": {
1517         "owningEntityList": [{
1518           "id": "aaa1",
1519           "name": "aaa1"
1520         }, {"id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc", "name": "WayneHolland"}, {
1521           "id": "Melissa",
1522           "name": "Melissa"
1523         }],
1524         "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {"id": "yyy1", "name": "yyy1"}],
1525         "lineOfBusinessList": [{"id": "ONAP", "name": "ONAP"}, {"id": "zzz1", "name": "zzz1"}],
1526         "platformList": [{"id": "platform", "name": "platform"}, {"id": "xxx1", "name": "xxx1"}]
1527       },
1528       "type": "UPDATE_LCP_REGIONS_AND_TENANTS"
1529     }
1530   }
1531 }
1532
1533
1534 function getNetworkModelInfoFromHierarchy(){
1535   return {
1536     "version": "2.0",
1537     "customizationUuid":"customization-id-from-hierarchy"
1538   }
1539 }
1540
1541 function getSelectedModelInfo() {
1542   return {
1543     "instanceModelInfo": {
1544       "modelVersion": "5.0",
1545       "modelCustomizationId": "model-customization-id-from-instance"
1546     }
1547   }
1548 }
1549 function getNetworkInstance() {
1550   return {
1551     "inMaint": false,
1552     "instanceId": "NETWORK4_INSTANCE_ID",
1553     "instanceType": "CONTRAIL30_HIMELGUARD",
1554   };
1555 }