Extend Modern UI for pnf usecase
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / objectToModelTree / objectToModelTree.service.spec.ts
1 import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {NgRedux} from "@angular-redux/store";
5 import {ObjectToTreeService} from "../objectToTree.service";
6 import {ObjectToModelTreeService} from "./objectToModelTree.service";
7 import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
8 import {DynamicInputsService} from "../dynamicInputs.service";
9 import {SharedTreeService} from "../shared.tree.service";
10 import {DrawingBoardModes} from "../../drawing-board.modes";
11 import {
12   AvailableModelsTreeService,
13   AvailableNodeIcons
14 } from "../../available-models-tree/available-models-tree.service";
15 import {DialogService} from "ng2-bootstrap-modal";
16 import {VnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
17 import {ControlGeneratorUtil} from "../../../../shared/components/genericForm/formControlsServices/control.generator.util.service";
18 import {GenericFormService} from "../../../../shared/components/genericForm/generic-form.service";
19 import {FormBuilder} from "@angular/forms";
20 import {LogService} from "../../../../shared/utils/log/log.service";
21 import {IframeService} from "../../../../shared/utils/iframe.service";
22 import {BasicPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/basic.popup.service";
23 import {NetworkPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service";
24 import {NetworkControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator";
25 import {VfModulePopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service";
26 import {VfModuleControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
27 import {FeatureFlagsService} from "../../../../shared/services/featureFlag/feature-flags.service";
28 import {VnfControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator";
29 import {AaiService} from "../../../../shared/services/aaiService/aai.service";
30 import {VnfGroupPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service";
31 import {VnfGroupControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator";
32 import {DuplicateService} from "../../duplicate/duplicate.service";
33 import {SdcUiComponentsModule} from "onap-ui-angular";
34 import {ComponentInfoService} from "../../component-info/component-info.service";
35 import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model";
36 import {VpnStepService} from "../models/vrf/vrfModal/vpnStep/vpn.step.service";
37 import {NetworkStepService} from "../models/vrf/vrfModal/networkStep/network.step.service";
38 import {VfModuleUpgradePopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
39 import {SharedControllersService} from "../../../../shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service";
40 import {ModalService} from "../../../../shared/components/customModal/services/modal.service";
41 import {CreateDynamicComponentService} from "../../../../shared/components/customModal/services/create-dynamic-component.service";
42 import {PnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/pnf/pnf.popup.service";
43 import {PnfControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/pnfGenerator/pnf.control.generator";
44
45 class MockAppStore<T> {
46   getState() {
47     return {
48       global: {
49         'drawingBoardStatus': DrawingBoardModes.CREATE
50       },
51       service: {
52         serviceInstance: {
53           "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
54             "existingVNFCounterMap": {
55               "280dec31-f16d-488b-9668-4aae55d6648a": 1
56             }
57           }
58         },
59         serviceHierarchy: {
60           "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
61             vnfs: {
62               "2017-388_PASQUALE-vPE 1": {
63                 "properties": {}
64               },
65               "2017-388_PASQUALE-vPE 0": {
66                 "properties": {}
67               },
68               "2017-488_PASQUALE-vPE 0": {
69                 "properties": {}
70               }
71             }
72           }
73         }
74       }
75     }
76   }
77 }
78
79 describe('Model Tree Generator service', () => {
80   let injector;
81   let service: ObjectToModelTreeService;
82   let httpMock: HttpTestingController;
83
84   beforeEach(() => {
85
86     TestBed.configureTestingModule({
87       imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule],
88       providers: [
89         AvailableModelsTreeService,
90         ObjectToTreeService,
91         ObjectToModelTreeService,
92         DefaultDataGeneratorService,
93         DynamicInputsService,
94         SharedTreeService,
95         DialogService,
96         VnfPopupService,
97         PnfPopupService,
98         VnfGroupPopupService,
99         ControlGeneratorUtil,
100         GenericFormService,
101         FormBuilder,
102         LogService,
103         IframeService,
104         BasicPopupService,
105         NetworkPopupService,
106         NetworkControlGenerator,
107         VfModulePopupService,
108         VfModuleUpgradePopupService,
109         VfModuleControlGenerator,
110         VnfGroupControlGenerator,
111         DialogService,
112         FeatureFlagsService,
113         VnfControlGenerator,
114         PnfControlGenerator,
115         AaiService,
116         DialogService,
117         DuplicateService,
118         ComponentInfoService,
119         NetworkStepService,
120         VpnStepService,
121         ModalService,
122         CreateDynamicComponentService,
123         SharedControllersService,
124         {provide: NgRedux, useClass: MockAppStore},
125         MockNgRedux ]
126     }).compileComponents();
127
128     injector = getTestBed();
129     service = injector.get(ObjectToModelTreeService);
130     httpMock = injector.get(HttpTestingController);
131   });
132
133   test('ObjectToModelTreeService should be defined', () => {
134     expect(service).toBeDefined();
135   });
136
137
138   test('calculateNumberOfNodesWithPlusIcon : should return 0 when there are no nodes', () => {
139     service.calculateNumberOfNodesWithPlusIcon("someServiceModelId", []);
140     expect(service.numberOfPlusButton).toEqual(0);
141   });
142
143   test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon', () => {
144     const serviceModel = {
145       service: {
146         uuid: "uuid"
147       }
148     };
149     service.calculateNumberOfNodesWithPlusIcon(serviceModel, [{
150       showNodeIcons: () => {
151         return new AvailableNodeIcons(true, false)
152       }
153     }]);
154     expect(service.numberOfPlusButton).toEqual(1);
155   });
156
157   test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon and one without', () => {
158     const serviceModel = {
159       service: {
160         uuid: "uuid"
161       }
162     };
163     service.calculateNumberOfNodesWithPlusIcon(serviceModel, [
164       {
165         showNodeIcons: () => {
166           return new AvailableNodeIcons(true, false)
167         }
168       },
169       {
170         showNodeIcons: () => {
171           return new AvailableNodeIcons(false, true)
172         }
173       }
174     ]);
175     expect(service.numberOfPlusButton).toEqual(1);
176   });
177
178   test('should return nodes correctly: VNF', () => {
179     let convertToNodes = service.convertServiceHierarchyModelToTreeNodes(getServiceHeirarchyVNF());
180     convertToNodes.map((item: IModelTreeNodeModel) => {
181       delete item.onAddClick;
182       delete item.getNodeCount;
183       delete item.showNodeIcons;
184       delete item.getModel;
185       delete item.componentInfoType;
186       delete item.getMenuAction;
187       delete item['menuActions'];
188       delete item['trackById'];
189       delete item.getInfo;
190
191
192       if (item.children) {
193         item.children.map((child) => {
194           delete child.onAddClick;
195           delete child.getNodeCount;
196           delete child.showNodeIcons;
197           delete child.getModel;
198           delete child.componentInfoType;
199           delete child.getMenuAction;
200           delete child['menuActions'];
201           delete child['trackById'];
202           delete child.getInfo;
203         });
204       }
205     });
206
207     expect(Object.assign({}, convertToNodes)).toEqual(Object.assign({}, expectNodesResultVNF()));
208   });
209
210
211   function expectNodesResultVNF() {
212     return [{
213       "id": "280dec31-f16d-488b-9668-4aae55d6648a",
214       "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
215       "name": "2017-388_PASQUALE-vPE 1",
216       "tooltip": "VF",
217       "type": "VF",
218       "modelTypeName": "vnfs",
219       "count": 0,
220       "max": 1,
221       "children": [],
222       "disabled": false,
223       "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
224       "modelUniqueId": "280dec31-f16d-488b-9668-4aae55d6648a",
225       "dynamicInputs": [],
226       "isEcompGeneratedNaming": true,
227       "typeName": 'VNF'
228     }, {
229       "id": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
230       "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
231       "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
232       "modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
233       "name": "2017-388_PASQUALE-vPE 0",
234       "tooltip": "VF",
235       "type": "VF",
236       "modelTypeName": "vnfs",
237       "count": 0,
238       "max": 1,
239       "children": [],
240       "disabled": false,
241       "dynamicInputs": [],
242       "isEcompGeneratedNaming": true,
243       "typeName": 'VNF'
244     }, {
245       "id": "1da7b585-5e61-4993-b95e-8e6606c81e45",
246       "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
247       "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
248       "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
249       "name": "2017-488_PASQUALE-vPE 0",
250       "tooltip": "VF",
251       "type": "VF",
252       "modelTypeName": "vnfs",
253       "count": 0,
254       "max": 1,
255       "children": [{
256         "id": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
257         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
258         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
259         "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
260         "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
261         "tooltip": "VFmodule",
262         "type": "VFmodule",
263         "modelTypeName": "vfModules",
264         "count": 0,
265         "max": 1,
266         "children": [],
267         "disabled": false,
268         "dynamicInputs": [],
269         "isEcompGeneratedNaming": true,
270         "typeName": 'M'
271       }, {
272         "id": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
273         "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
274         "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
275         "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
276         "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
277         "tooltip": "VFmodule",
278         "type": "VFmodule",
279         "modelTypeName": "vfModules",
280         "count": 0,
281         "max": 1,
282         "children": [],
283         "disabled": false,
284         "dynamicInputs": [],
285         "isEcompGeneratedNaming": true,
286         "typeName": 'M'
287       }, {
288         "id": "3cd946bb-50e0-40d8-96d3-c9023520b557",
289         "modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
290         "modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
291         "modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
292         "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
293         "tooltip": "VFmodule",
294         "type": "VFmodule",
295         "modelTypeName": "vfModules",
296         "count": 0,
297         "max": 1,
298         "children": [],
299         "disabled": false,
300         "dynamicInputs": [],
301         "isEcompGeneratedNaming": true,
302         "typeName": 'M'
303       }],
304       "disabled": false,
305       "dynamicInputs": [],
306       "isEcompGeneratedNaming": true,
307       "typeName": 'VNF'
308     }]
309
310   }
311
312   function getServiceHeirarchyVNF() {
313     return {
314       "service": {
315         "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
316         "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
317         "name": "action-data",
318         "version": "1.0",
319         "toscaModelURL": null,
320         "category": "Network L1-3",
321         "serviceType": "pnf",
322         "serviceRole": "Testing",
323         "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
324         "serviceEcompNaming": "false",
325         "instantiationType": "Macro",
326         "inputs": {},
327         "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other"}
328       },
329       "vnfs": {
330         "2017-388_PASQUALE-vPE 1": {
331           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
332           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
333           "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",
334           "name": "2017-388_PASQUALE-vPE",
335           "version": "1.0",
336           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
337           "inputs": {},
338           "commands": {},
339           "properties": {
340             "vmxvre_retype": "RE-VMX",
341             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
342             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
343             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
344             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
345             "int_ctl_net_name": "VMX-INTXI",
346             "vmx_int_ctl_prefix": "10.0.0.10",
347             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
348             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
349             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
350             "nf_type": "vPE",
351             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
352             "is_AVPN_service": "false",
353             "vmx_RSG_name": "vREXI-affinity",
354             "vmx_int_ctl_forwarding": "l2",
355             "vmxvre_oam_ip_0": "10.0.0.10",
356             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
357             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
358             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
359             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
360             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
361             "vmxvre_instance": "0",
362             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
363             "vmxvre_flavor_name": "ns.c1r16d32.v5",
364             "vmxvpfe_volume_size_0": "40.0",
365             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
366             "nf_naming": "{ecomp_generated_naming=true}",
367             "multi_stage_design": "true",
368             "nf_naming_code": "Navneet",
369             "vmxvre_name_0": "vREXI",
370             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
371             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
372             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
373             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
374             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
375             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
376             "vmxvre_console": "vidconsole",
377             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
378             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
379             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
380             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
381             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
382             "vf_module_id": "123",
383             "nf_function": "JAI",
384             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
385             "vmxvre_int_ctl_ip_0": "10.0.0.10",
386             "ecomp_generated_naming": "true",
387             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
388             "vnf_name": "mtnj309me6vre",
389             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
390             "vmxvre_volume_type_1": "HITACHI",
391             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
392             "vmxvre_volume_type_0": "HITACHI",
393             "vmxvpfe_volume_type_0": "HITACHI",
394             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
395             "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
396             "vnf_id": "123",
397             "vmxvre_oam_prefix": "24",
398             "availability_zone_0": "mtpocfo-kvm-az01",
399             "ASN": "get_input:2017488_pasqualevpe0_ASN",
400             "vmxvre_chassis_i2cid": "161",
401             "vmxvpfe_name_0": "vPFEXI",
402             "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
403             "availability_zone_max_count": "1",
404             "vmxvre_volume_size_0": "45.0",
405             "vmxvre_volume_size_1": "50.0",
406             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
407             "vmxvre_oam_gateway": "10.0.0.10",
408             "vmxvre_volume_name_1": "vREXI_FAVolume",
409             "vmxvre_ore_present": "0",
410             "vmxvre_volume_name_0": "vREXI_FBVolume",
411             "vmxvre_type": "0",
412             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
413             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
414             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
415             "vmx_int_ctl_len": "24",
416             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
417             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
418             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
419             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
420             "nf_role": "Testing",
421             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
422             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
423             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
424           },
425           "type": "VF",
426           "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
427           "vfModules": {},
428           "volumeGroups": {},
429           "vfcInstanceGroups": {}
430         },
431         "2017-388_PASQUALE-vPE 0": {
432           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
433           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
434           "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",
435           "name": "2017-388_PASQUALE-vPE",
436           "version": "4.0",
437           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
438           "inputs": {},
439           "commands": {},
440           "properties": {
441             "vmxvre_retype": "RE-VMX",
442             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
443             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
444             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
445             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
446             "int_ctl_net_name": "VMX-INTXI",
447             "vmx_int_ctl_prefix": "10.0.0.10",
448             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
449             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
450             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
451             "nf_type": "vPE",
452             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
453             "is_AVPN_service": "false",
454             "vmx_RSG_name": "vREXI-affinity",
455             "vmx_int_ctl_forwarding": "l2",
456             "vmxvre_oam_ip_0": "10.0.0.10",
457             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
458             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
459             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
460             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
461             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
462             "vmxvre_instance": "0",
463             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
464             "vmxvre_flavor_name": "ns.c1r16d32.v5",
465             "vmxvpfe_volume_size_0": "40.0",
466             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
467             "nf_naming": "{ecomp_generated_naming=true}",
468             "multi_stage_design": "true",
469             "nf_naming_code": "Navneet",
470             "vmxvre_name_0": "vREXI",
471             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
472             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
473             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
474             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
475             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
476             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
477             "vmxvre_console": "vidconsole",
478             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
479             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
480             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
481             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
482             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
483             "vf_module_id": "123",
484             "nf_function": "JAI",
485             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
486             "vmxvre_int_ctl_ip_0": "10.0.0.10",
487             "ecomp_generated_naming": "true",
488             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
489             "vnf_name": "mtnj309me6vre",
490             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
491             "vmxvre_volume_type_1": "HITACHI",
492             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
493             "vmxvre_volume_type_0": "HITACHI",
494             "vmxvpfe_volume_type_0": "HITACHI",
495             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
496             "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
497             "vnf_id": "123",
498             "vmxvre_oam_prefix": "24",
499             "availability_zone_0": "mtpocfo-kvm-az01",
500             "ASN": "get_input:2017488_pasqualevpe0_ASN",
501             "vmxvre_chassis_i2cid": "161",
502             "vmxvpfe_name_0": "vPFEXI",
503             "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
504             "availability_zone_max_count": "1",
505             "vmxvre_volume_size_0": "45.0",
506             "vmxvre_volume_size_1": "50.0",
507             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
508             "vmxvre_oam_gateway": "10.0.0.10",
509             "vmxvre_volume_name_1": "vREXI_FAVolume",
510             "vmxvre_ore_present": "0",
511             "vmxvre_volume_name_0": "vREXI_FBVolume",
512             "vmxvre_type": "0",
513             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
514             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
515             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
516             "vmx_int_ctl_len": "24",
517             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
518             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
519             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
520             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
521             "nf_role": "Testing",
522             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
523             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
524             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
525           },
526           "type": "VF",
527           "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
528           "vfModules": {},
529           "volumeGroups": {},
530           "vfcInstanceGroups": {}
531         },
532         "2017-488_PASQUALE-vPE 0": {
533           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
534           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
535           "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",
536           "name": "2017-488_PASQUALE-vPE",
537           "version": "5.0",
538           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
539           "inputs": {},
540           "commands": {},
541           "properties": {
542             "vmxvre_retype": "RE-VMX",
543             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
544             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
545             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
546             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
547             "int_ctl_net_name": "VMX-INTXI",
548             "vmx_int_ctl_prefix": "10.0.0.10",
549             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
550             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
551             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
552             "nf_type": "vPE",
553             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
554             "is_AVPN_service": "false",
555             "vmx_RSG_name": "vREXI-affinity",
556             "vmx_int_ctl_forwarding": "l2",
557             "vmxvre_oam_ip_0": "10.0.0.10",
558             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
559             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
560             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
561             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
562             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
563             "vmxvre_instance": "0",
564             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
565             "vmxvre_flavor_name": "ns.c1r16d32.v5",
566             "vmxvpfe_volume_size_0": "40.0",
567             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
568             "nf_naming": "{ecomp_generated_naming=true}",
569             "multi_stage_design": "true",
570             "nf_naming_code": "Navneet",
571             "vmxvre_name_0": "vREXI",
572             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
573             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
574             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
575             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
576             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
577             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
578             "vmxvre_console": "vidconsole",
579             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
580             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
581             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
582             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
583             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
584             "vf_module_id": "123",
585             "nf_function": "JAI",
586             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
587             "vmxvre_int_ctl_ip_0": "10.0.0.10",
588             "ecomp_generated_naming": "true",
589             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
590             "vnf_name": "mtnj309me6vre",
591             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
592             "vmxvre_volume_type_1": "HITACHI",
593             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
594             "vmxvre_volume_type_0": "HITACHI",
595             "vmxvpfe_volume_type_0": "HITACHI",
596             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
597             "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
598             "vnf_id": "123",
599             "vmxvre_oam_prefix": "24",
600             "availability_zone_0": "mtpocfo-kvm-az01",
601             "ASN": "get_input:2017488_pasqualevpe0_ASN",
602             "vmxvre_chassis_i2cid": "161",
603             "vmxvpfe_name_0": "vPFEXI",
604             "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
605             "availability_zone_max_count": "1",
606             "vmxvre_volume_size_0": "45.0",
607             "vmxvre_volume_size_1": "50.0",
608             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
609             "vmxvre_oam_gateway": "10.0.0.10",
610             "vmxvre_volume_name_1": "vREXI_FAVolume",
611             "vmxvre_ore_present": "0",
612             "vmxvre_volume_name_0": "vREXI_FBVolume",
613             "vmxvre_type": "0",
614             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
615             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
616             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
617             "vmx_int_ctl_len": "24",
618             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
619             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
620             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
621             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
622             "nf_role": "Testing",
623             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
624             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
625             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
626           },
627           "type": "VF",
628           "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
629           "vfModules": {
630             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
631               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
632               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
633               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
634               "description": null,
635               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
636               "version": "6",
637               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
638               "properties": {
639                 "minCountInstances": 0,
640                 "maxCountInstances": null,
641                 "initialCount": 0,
642                 "vfModuleLabel": "PASQUALE_vRE_BV",
643                 "baseModule": false
644               },
645               "inputs": {},
646               "volumeGroupAllowed": true
647             },
648             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
649               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
650               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
651               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
652               "description": null,
653               "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
654               "version": "5",
655               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
656               "properties": {
657                 "minCountInstances": 1,
658                 "maxCountInstances": 1,
659                 "initialCount": 1,
660                 "vfModuleLabel": "PASQUALE_base_vPE_BV",
661                 "baseModule": true
662               },
663               "inputs": {},
664               "volumeGroupAllowed": false
665             },
666             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
667               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
668               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
669               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
670               "description": null,
671               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
672               "version": "6",
673               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
674               "properties": {
675                 "minCountInstances": 0,
676                 "maxCountInstances": null,
677                 "initialCount": 0,
678                 "vfModuleLabel": "PASQUALE_vPFE_BV",
679                 "baseModule": false
680               },
681               "inputs": {},
682               "volumeGroupAllowed": true
683             }
684           },
685           "volumeGroups": {
686             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
687               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
688               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
689               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
690               "description": null,
691               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
692               "version": "6",
693               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
694               "properties": {
695                 "minCountInstances": 0,
696                 "maxCountInstances": null,
697                 "initialCount": 0,
698                 "vfModuleLabel": "PASQUALE_vRE_BV",
699                 "baseModule": false
700               },
701               "inputs": {}
702             },
703             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
704               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
705               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
706               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
707               "description": null,
708               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
709               "version": "6",
710               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
711               "properties": {
712                 "minCountInstances": 0,
713                 "maxCountInstances": null,
714                 "initialCount": 0,
715                 "vfModuleLabel": "PASQUALE_vPFE_BV",
716                 "baseModule": false
717               },
718               "inputs": {}
719             }
720           },
721           "vfcInstanceGroups": {}
722         }
723       },
724       "networks": {},
725       "collectionResources": {},
726       "configurations": {},
727       "fabricConfigurations": {},
728       "serviceProxies": {},
729       "vfModules": {
730         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
731           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
732           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
733           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
734           "description": null,
735           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
736           "version": "6",
737           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
738           "properties": {
739             "minCountInstances": 0,
740             "maxCountInstances": null,
741             "initialCount": 0,
742             "vfModuleLabel": "PASQUALE_vRE_BV",
743             "baseModule": false
744           },
745           "inputs": {},
746           "volumeGroupAllowed": true
747         },
748         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
749           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
750           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
751           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
752           "description": null,
753           "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
754           "version": "5",
755           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
756           "properties": {
757             "minCountInstances": 1,
758             "maxCountInstances": 1,
759             "initialCount": 1,
760             "vfModuleLabel": "PASQUALE_base_vPE_BV",
761             "baseModule": true
762           },
763           "inputs": {},
764           "volumeGroupAllowed": false
765         },
766         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
767           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
768           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
769           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
770           "description": null,
771           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
772           "version": "6",
773           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
774           "properties": {
775             "minCountInstances": 0,
776             "maxCountInstances": null,
777             "initialCount": 0,
778             "vfModuleLabel": "PASQUALE_vPFE_BV",
779             "baseModule": false
780           },
781           "inputs": {},
782           "volumeGroupAllowed": true
783         }
784       },
785       "volumeGroups": {
786         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
787           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
788           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
789           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
790           "description": null,
791           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
792           "version": "6",
793           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
794           "properties": {
795             "minCountInstances": 0,
796             "maxCountInstances": null,
797             "initialCount": 0,
798             "vfModuleLabel": "PASQUALE_vRE_BV",
799             "baseModule": false
800           },
801           "inputs": {}
802         },
803         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
804           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
805           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
806           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
807           "description": null,
808           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
809           "version": "6",
810           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
811           "properties": {
812             "minCountInstances": 0,
813             "maxCountInstances": null,
814             "initialCount": 0,
815             "vfModuleLabel": "PASQUALE_vPFE_BV",
816             "baseModule": false
817           },
818           "inputs": {}
819         }
820       },
821       "pnfs": {}
822     }
823   }
824 });