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