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