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