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