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