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