85e57613a34b437a69173e7d70adc9f0fe64ed7c
[vid.git] /
1 import {HttpClientTestingModule} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {VFModuleModelInfo} from "./vfModule.model.info";
5 import {DynamicInputsService} from "../../dynamicInputs.service";
6 import {SharedTreeService} from "../../shared.tree.service";
7 import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service";
8 import {DialogService} from "ng2-bootstrap-modal";
9 import {NgRedux} from "@angular-redux/store";
10 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
11 import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
12 import {DrawingBoardModes} from "../../../drawing-board.modes";
13 import {IframeService} from "../../../../../shared/utils/iframe.service";
14 import {ComponentInfoService} from "../../../component-info/component-info.service";
15 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
16 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
17 import {HttpClient, HttpHandler} from "@angular/common/http";
18 import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
19 import {VfModuleUpgradePopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
20 import {instance, mock, when} from "ts-mockito";
21 import each from "jest-each";
22
23 class MockAppStore<T> {
24   getState() {
25     return {
26       global: {
27         'drawingBoardStatus': DrawingBoardModes.CREATE
28       }
29     }
30   }
31 }
32
33 class MockFeatureFlagsService extends  FeatureFlagsService{
34   getAllFlags(): { [p: string]: boolean } {
35     return {};
36   }
37 }
38
39 describe('VFModule Model Info', () => {
40   let injector;
41   let  _dynamicInputsService : DynamicInputsService;
42   let  _sharedTreeService : SharedTreeService;
43   let  vfModuleModel: VFModuleModelInfo;
44   let _dialogService : DialogService;
45   let _vfModulePopupService : VfModulePopuopService;
46   let _vfModuleUpgradePopupService : VfModuleUpgradePopupService;
47   let _iframeService : IframeService;
48   let _componentInfoService : ComponentInfoService;
49   let mockFeatureFlagsService: FeatureFlagsService = mock(FeatureFlagsService);
50   let mockFeatureFlagsServiceInstance: FeatureFlagsService = instance(mockFeatureFlagsService);
51
52
53   beforeAll(done => (async () => {
54     TestBed.configureTestingModule({
55       imports: [HttpClientTestingModule, NgReduxTestingModule],
56       providers: [
57         DynamicInputsService,
58         DialogService,
59         VfModulePopuopService,
60         VfModuleUpgradePopupService,
61         SharedTreeService,
62         IframeService,
63         {provide: NgRedux, useClass: MockAppStore},
64         MockNgRedux,
65         AaiService,
66         HttpClient,
67         HttpHandler,
68         {provide: FeatureFlagsService, useValue: mockFeatureFlagsServiceInstance},
69         ComponentInfoService
70       ]
71     });
72     await TestBed.compileComponents();
73
74     injector = getTestBed();
75     _sharedTreeService = injector.get(SharedTreeService);
76     _componentInfoService = injector.get(ComponentInfoService);
77     vfModuleModel = new VFModuleModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vfModulePopupService, _vfModuleUpgradePopupService,
78       _iframeService, mockFeatureFlagsServiceInstance,  MockNgRedux.getInstance(),_componentInfoService);
79
80   })().then(done).catch(done.fail));
81
82
83
84   test('VFModuleModelInfo should be defined', () => {
85     expect(VFModuleModelInfo).toBeDefined();
86   });
87
88   test('VnfModelInfo should defined extra details', () => {
89     expect(vfModuleModel.name).toEqual('vfModules');
90     expect(vfModuleModel.type).toEqual('Module');
91   });
92
93   test('isEcompGeneratedNaming should return true if vnf has isEcompGeneratedNaming is "true" ', () => {
94     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
95       properties: {
96         ecomp_generated_naming: 'true'
97       }
98     });
99     expect(isEcompGeneratedNaming).toBeTruthy();
100   });
101
102   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => {
103     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
104       properties: {
105         ecomp_generated_naming: 'false'
106       }
107     });
108     expect(isEcompGeneratedNaming).toBeFalsy();
109   });
110
111   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => {
112     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
113       properties: {
114       }
115     });
116     expect(isEcompGeneratedNaming).toBeFalsy();
117   });
118
119
120   test('getTooltip should return "VFModule"', () => {
121     let tooltip: string = vfModuleModel.getTooltip();
122     expect(tooltip).toEqual('VFmodule');
123   });
124
125   test('getType should return "VFModule"', () => {
126     let tooltip: string = vfModuleModel.getType();
127     expect(tooltip).toEqual('VFmodule');
128   });
129
130   test('getNextLevelObject should return null', () => {
131     let nextLevel = vfModuleModel.getNextLevelObject();
132     expect(nextLevel).toBeNull();
133   });
134
135   test('getModel should return Module model', () => {
136     let model = vfModuleModel.getModel('2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',{}, getServiceHierarchy());
137     expect(model.uuid).toEqual('25284168-24bb-4698-8cb4-3f509146eca5');
138   });
139
140   test('showNodeIcons should return false false if reachLimit of max', ()=>{
141     let serviceId : string = 'servicedId';
142     let node = {
143       parent : {
144         data : {
145           id : 'vnfId',
146           name : 'vnfName'
147         }
148       },
149       data : {
150         id : 'vnfId',
151         name : 'vnfName'
152       }
153     };
154     _sharedTreeService.setSelectedVNF({
155       data : {
156         id : 'vfModuleId',
157         name : 'VfModuleName'
158       }
159     });
160     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue([]);
161     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
162       global : {},
163       service : {
164         serviceHierarchy : {
165           'servicedId' : {
166             'vnfs' : {
167               'vnfName' : {
168                 'properties' : {
169                   'max_instances' : 1
170                 }
171               }
172             }
173           }
174         },
175         serviceInstance : {
176           'servicedId' : {
177             'existingVNFCounterMap' : {
178               'vnfId' : 1
179             },
180             'vnfs' : {
181               'vnfName' :{
182
183               }
184             }
185           }
186         }
187       }
188     });
189
190     let result = vfModuleModel.showNodeIcons(<any>node, serviceId);
191     expect(result).toEqual(new AvailableNodeIcons(false , false));
192   });
193
194   test('showNodeIcons should return true, false if reachLimit of max', ()=>{
195     let serviceId : string = 'servicedId';
196     let node = {
197       data : {
198         id : 'vfModuleId',
199         name : 'vfModuleName'
200       },
201       parent : {
202         data : {
203           id : 'vnfId',
204           name : 'vnfName'
205         }
206       }
207     };
208     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName');
209     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']);
210     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
211       global : {},
212       service : {
213         serviceHierarchy : {
214           'servicedId' : {
215             'vnfs' : {
216               'vnfName' : {
217                 'properties' : {
218                   'max_instances' : 1
219                 }
220               }
221             },
222             'vfModules' : {
223               'vfModuleName' : {
224                 'properties' : {
225                   maxCountInstances : 1
226                 }
227               }
228             }
229           }
230         },
231         serviceInstance : {
232           'servicedId' : {
233             'existingVNFCounterMap' : {
234               'vnfId' : 1
235             },
236             'vnfs' : {
237               'vnfName' :{
238                   'originalName' : 'vnfName',
239                   'vfModules' : {
240                     'vfModuleName' : {
241
242                     }
243                   }
244               }
245             }
246           }
247         }
248       }
249     });
250
251     let result = vfModuleModel.showNodeIcons(<any>node, 'servicedId');
252     expect(result).toEqual(new AvailableNodeIcons(true , false));
253   });
254
255
256   test('showNodeIcons should return false, true if reachLimit of max', ()=>{
257     let serviceId : string = 'servicedId';
258     let node = {
259       data : {
260         id : 'vfModuleId',
261         name : 'vfModuleName'
262       },
263       parent : {
264         data : {
265           id : 'vnfId',
266           name : 'vnfName'
267         }
268       }
269     };
270     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName');
271     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']);
272     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
273       global : {},
274       service : {
275         serviceHierarchy : {
276           'servicedId' : {
277             'vnfs' : {
278               'vnfName' : {
279                 'properties' : {
280                   'max_instances' : 1
281                 }
282               }
283             },
284             'vfModules' : {
285               'vfModuleName' : {
286                 'properties' : {
287                   maxCountInstances : 2
288                 }
289               }
290             }
291           }
292         },
293         serviceInstance : {
294           'servicedId' : {
295             'existingVNFCounterMap' : {
296               'vnfId' : 1
297             },
298             'vnfs' : {
299               'vnfName' :{
300                 'originalName' : 'vnfName',
301                 'vfModules' : {
302                   'vfModuleName' : {
303
304                   }
305                 }
306               }
307             }
308           }
309         }
310       }
311     });
312
313     let result = vfModuleModel.showNodeIcons(<any>node, 'servicedId');
314     expect(result).toEqual(new AvailableNodeIcons(true , false));
315   });
316
317
318   test('getOptionalVNFs should instance if exist', ()=>{
319     let serviceId : string = 'servicedId';
320     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
321       global : {},
322       service : {
323         serviceHierarchy : {
324           'servicedId' : {
325             'vnfs' : {
326               'vnfName' : {
327                 'properties' : {
328                   'max_instances' : 1
329                 }
330               }
331             },
332             'vfModules' : {
333               'vfModuleName' : {
334                 'properties' : {
335                   maxCountInstances : 2
336                 }
337               }
338             }
339           }
340         },
341         serviceInstance : {
342           'servicedId' : {
343             'existingVNFCounterMap' : {
344               'vnfId' : 1
345             },
346             'vnfs' : {
347               'vnfName' :{
348                 'originalName' : 'vnfName',
349                 'vfModules' : {
350                   'vfModuleName' : {
351
352                   }
353                 }
354               }
355             }
356           }
357         }
358       }
359     });
360
361     let node = {
362       data : {
363         id : 'vfModuleId',
364         name : 'vfModuleName'
365       },
366       parent : {
367         data : {
368           id : 'vnfId',
369           name : 'vnfName'
370         }
371       }
372     };
373     let result = vfModuleModel.getOptionalVNFs(serviceId , 'vnfName');
374     expect(result.length).toEqual(1);
375   });
376
377   test('getNodeCount should return number of nodes', ()=>{
378     let serviceId : string = 'servicedId';
379     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
380       global : {},
381       service : {
382         serviceHierarchy : {
383           'servicedId' : {
384             'vnfs' : {
385               'vnfName' : {
386                 'properties' : {
387                   'max_instances' : 1
388                 }
389               }
390             },
391             'vfModules' : {
392               'vfModuleName' : {
393                 'properties' : {
394                   maxCountInstances : 2
395                 }
396               }
397             }
398           }
399         },
400         serviceInstance : {
401           'servicedId' : {
402             'existingVNFCounterMap' : {
403               'vnfId' : 1
404             },
405             'vnfs' : {
406               'vnfName' :{
407                 'action': 'Create',
408                 'originalName' : 'vnfName',
409                 'vfModules' : {
410                   'vfModuleName' : {
411                       'vnfModuleName_111': {
412                         'action': 'Create',
413                         'modelInfo' : {
414                           modelVersionId : 'vfModuleId'
415                         }
416                       }
417                   }
418                 }
419               }
420             }
421           }
422         }
423       }
424     });
425
426     let node = {
427       data : {
428         id : 'vfModuleId',
429         name : 'vfModuleName',
430         'action': 'Create',
431       },
432       parent : {
433         data : {
434           id : 'vnfId',
435           name : 'vnfName',
436           'action': 'Create',
437         }
438       }
439     };
440     let result = vfModuleModel.getNodeCount(<any>node , serviceId);
441     expect(result).toEqual(1);
442   });
443
444
445   test('onClickAdd should open message box if no vnfStoreKey', ()=>{
446     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue(null);
447     jest.spyOn(vfModuleModel, 'getDefaultVNF').mockReturnValue(null);
448     jest.spyOn(MessageBoxService.openModal, 'next');
449     vfModuleModel.onClickAdd(<any>{}, 'serviceId');
450     expect(MessageBoxService.openModal.next).toHaveBeenCalled();
451   });
452
453   test('getMenuAction: showAuditInfoVfModule', ()=>{
454     jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true);
455
456     let node = {
457       data : {
458         "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450",
459         "action": "Create",
460         "isFailed": true,
461       }
462     };
463     let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450";
464     let result = vfModuleModel.getMenuAction(<any>node, serviceModelId);
465     spyOn(result['showAuditInfo'], 'method');
466     expect(result['showAuditInfo']).toBeDefined();
467     expect(result['showAuditInfo'].visible(node)).toBeTruthy();
468     expect(result['showAuditInfo'].enable(node)).toBeTruthy();
469     result['showAuditInfo']['method'](node, serviceModelId);
470     expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
471   });
472
473   test('Info for vfModule should be correct', () => {
474     const model = getVFModule();
475     const instance = getVFModuleInstance();
476     let actualVNFInfo = vfModuleModel.getInfo(model,instance);
477     let expectedVNFInfo = [
478       ModelInformationItem.createInstance('Base module', false),
479       ModelInformationItem.createInstance('Min instances', "0"),
480       ModelInformationItem.createInstance("Max instances", 'Unlimited (default)'),
481       ModelInformationItem.createInstance('Initial instances count',"0")
482     ];
483     expect(actualVNFInfo).toEqual(expectedVNFInfo);
484   });
485
486   each([
487     ["maxCountInstances 3, currentNodeCount 1, flag on",{maxCountInstances:3}, 1, {FLAG_2002_UNLIMITED_MAX: true}, false],
488     ["maxCountInstances 3, currentNodeCount 3, flag on",{maxCountInstances:3}, 3, {FLAG_2002_UNLIMITED_MAX: true}, true],
489     ["no maxCountInstances, currentNodeCount 0, flag off",{}, 0, {FLAG_2002_UNLIMITED_MAX: false}, false],
490     ["no maxCountInstances, currentNodeCount 1, flag off",{}, 1, {FLAG_2002_UNLIMITED_MAX: false}, true],
491     ["no maxCountInstances, currentNodeCount 1, no flags",{}, 1, null, true],
492     ["no maxCountInstances, currentNodeCount 0, flag on",{}, 0, {FLAG_2002_UNLIMITED_MAX: true}, false],
493     ["no maxCountInstances, currentNodeCount 1, flag on",{}, 1, {FLAG_2002_UNLIMITED_MAX: true}, false],
494     ["no maxCountInstances, currentNodeCount 1000, flag on",{}, 1000, {FLAG_2002_UNLIMITED_MAX: true}, false],
495   ]).test('isVFModuleReachedLimit: %s', (desc, properties, currentNodeCount, flags, expected) => {
496
497     const node = { data: {
498         name : 'vfModuleName'
499     }};
500
501     const serviceHierarchy = {
502       servicedId :{
503         vfModules : {
504           vfModuleName : {
505             properties
506      }}}};
507
508     when(mockFeatureFlagsService.getAllFlags()).thenReturn(flags);
509
510     expect(vfModuleModel.isVFModuleReachedLimit(node, serviceHierarchy, 'servicedId', currentNodeCount)).toEqual(expected);
511   });
512
513   function getVFModule(){
514     return {
515       "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
516       "invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b",
517       "customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091",
518       "description":null,
519       "name":"VfVgeraldine..vflorence_vlc..module-1",
520       "version":"2",
521       "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
522       "properties":{
523         "minCountInstances":0,
524         "maxCountInstances":null,
525         "initialCount":0,
526         "vfModuleLabel":"vflorence_vlc",
527         "baseModule":false
528       },
529       "inputs":{},
530       "volumeGroupAllowed":false
531     };
532   }
533
534   function getVFModuleInstance() {
535     return {
536       "action":"None",
537       "instanceName":"ss820f_0918_db",
538       "instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280",
539       "orchStatus":"deleted",
540       "productFamilyId":null,
541       "lcpCloudRegionId":null,
542       "tenantId":null,
543       "modelInfo":{
544         "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
545         "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
546         "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
547         "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
548         "modelType":"vfModule"
549       },
550       "instanceType":null,
551       "provStatus":null,
552       "inMaint":true,
553       "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
554       "originalName":"VfVgeraldine..vflorence_vlc..module-1",
555       "legacyRegion":null,
556       "lineOfBusiness":null,
557       "platformName":null,
558       "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
559       "isBase":false,
560       "volumeGroupName":null
561     };
562   }
563
564
565   function getServiceHierarchy(){
566     return {
567       "service": {
568         "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450",
569         "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
570         "name": "action-data",
571         "version": "1.0",
572         "toscaModelURL": null,
573         "category": "",
574         "serviceType": "",
575         "serviceRole": "",
576         "description": "",
577         "serviceEcompNaming": "false",
578         "instantiationType": "Macro",
579         "inputs": {
580           "2017488_pasqualevpe0_ASN": {
581             "type": "string",
582             "description": "AV/PE",
583             "entry_schema": null,
584             "inputProperties": null,
585             "constraints": [],
586             "required": true,
587             "default": "AV_vPE"
588           }
589         },
590         "vidNotions": {
591           "instantiationUI": "legacy",
592           "modelCategory": "other"
593         }
594       },
595       "vnfs": {
596         "2017-388_PASQUALE-vPE 1": {
597           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
598           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
599           "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",
600           "name": "2017-388_PASQUALE-vPE",
601           "version": "1.0",
602           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
603           "inputs": {
604             "vnf_config_template_version": {
605               "type": "string",
606               "description": "VPE Software Version",
607               "entry_schema": null,
608               "inputProperties": null,
609               "constraints": [],
610               "required": true,
611               "default": "17.2"
612             },
613             "bandwidth_units": {
614               "type": "string",
615               "description": "Units of bandwidth",
616               "entry_schema": null,
617               "inputProperties": null,
618               "constraints": [],
619               "required": true,
620               "default": "Gbps"
621             },
622             "bandwidth": {
623               "type": "string",
624               "description": "Requested VPE bandwidth",
625               "entry_schema": null,
626               "inputProperties": null,
627               "constraints": [],
628               "required": true,
629               "default": "10"
630             },
631             "AIC_CLLI": {
632               "type": "string",
633               "description": "AIC Site CLLI",
634               "entry_schema": null,
635               "inputProperties": null,
636               "constraints": [],
637               "required": true,
638               "default": "ATLMY8GA"
639             },
640             "ASN": {
641               "type": "string",
642               "description": "AV/PE",
643               "entry_schema": null,
644               "inputProperties": null,
645               "constraints": [],
646               "required": true,
647               "default": "AV_vPE"
648             },
649             "vnf_instance_name": {
650               "type": "string",
651               "description": "The hostname assigned to the vpe.",
652               "entry_schema": null,
653               "inputProperties": null,
654               "constraints": [],
655               "required": true,
656               "default": "mtnj309me6"
657             }
658           },
659           "commands": {
660             "vnf_config_template_version": {
661               "displayName": "vnf_config_template_version",
662               "command": "get_input",
663               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
664             },
665             "bandwidth_units": {
666               "displayName": "bandwidth_units",
667               "command": "get_input",
668               "inputName": "pasqualevpe0_bandwidth_units"
669             },
670             "bandwidth": {
671               "displayName": "bandwidth",
672               "command": "get_input",
673               "inputName": "pasqualevpe0_bandwidth"
674             },
675             "AIC_CLLI": {
676               "displayName": "AIC_CLLI",
677               "command": "get_input",
678               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
679             },
680             "ASN": {
681               "displayName": "ASN",
682               "command": "get_input",
683               "inputName": "2017488_pasqualevpe0_ASN"
684             },
685             "vnf_instance_name": {
686               "displayName": "vnf_instance_name",
687               "command": "get_input",
688               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
689             }
690           },
691           "properties": {
692             "vmxvre_retype": "RE-VMX",
693             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
694             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
695             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
696             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
697             "int_ctl_net_name": "VMX-INTXI",
698             "vmx_int_ctl_prefix": "10.0.0.10",
699             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
700             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
701             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
702             "nf_type": "vPE",
703             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
704             "is_AVPN_service": "false",
705             "vmx_RSG_name": "vREXI-affinity",
706             "vmx_int_ctl_forwarding": "l2",
707             "vmxvre_oam_ip_0": "10.0.0.10",
708             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
709             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
710             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
711             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
712             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
713             "vmxvre_instance": "0",
714             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
715             "vmxvre_flavor_name": "ns.c1r16d32.v5",
716             "vmxvpfe_volume_size_0": "40.0",
717             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
718             "nf_naming": "{ecomp_generated_naming=false}",
719             "nf_naming_code": "Navneet",
720             "vmxvre_name_0": "vREXI",
721             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
722             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
723             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
724             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
725             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
726             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
727             "vmxvre_console": "vidconsole",
728             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
729             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
730             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
731             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
732             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
733             "vf_module_id": "123",
734             "nf_function": "JAI",
735             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
736             "vmxvre_int_ctl_ip_0": "10.0.0.10",
737             "ecomp_generated_naming": "false",
738             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
739             "vnf_name": "mtnj309me6vre",
740             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
741             "vmxvre_volume_type_1": "HITACHI",
742             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
743             "vmxvre_volume_type_0": "HITACHI",
744             "vmxvpfe_volume_type_0": "HITACHI",
745             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
746             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
747             "vnf_id": "123",
748             "vmxvre_oam_prefix": "24",
749             "availability_zone_0": "mtpocfo-kvm-az01",
750             "ASN": "get_input:2017488_pasqualevpe0_ASN",
751             "vmxvre_chassis_i2cid": "161",
752             "vmxvpfe_name_0": "vPFEXI",
753             "bandwidth": "get_input:pasqualevpe0_bandwidth",
754             "availability_zone_max_count": "1",
755             "vmxvre_volume_size_0": "45.0",
756             "vmxvre_volume_size_1": "50.0",
757             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
758             "vmxvre_oam_gateway": "10.0.0.10",
759             "vmxvre_volume_name_1": "vREXI_FAVolume",
760             "vmxvre_ore_present": "0",
761             "vmxvre_volume_name_0": "vREXI_FBVolume",
762             "vmxvre_type": "0",
763             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
764             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
765             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
766             "vmx_int_ctl_len": "24",
767             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
768             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
769             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
770             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
771             "nf_role": "Testing",
772             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
773             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
774             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
775           },
776           "type": "VF",
777           "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
778           "vfModules": {},
779           "volumeGroups": {},
780           "vfcInstanceGroups": {}
781         },
782         "2017-388_PASQUALE-vPE 0": {
783           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
784           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
785           "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",
786           "name": "2017-388_PASQUALE-vPE",
787           "version": "4.0",
788           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
789           "inputs": {
790             "vnf_config_template_version": {
791               "type": "string",
792               "description": "VPE Software Version",
793               "entry_schema": null,
794               "inputProperties": null,
795               "constraints": [],
796               "required": true,
797               "default": "17.2"
798             },
799             "bandwidth_units": {
800               "type": "string",
801               "description": "Units of bandwidth",
802               "entry_schema": null,
803               "inputProperties": null,
804               "constraints": [],
805               "required": true,
806               "default": "Gbps"
807             },
808             "bandwidth": {
809               "type": "string",
810               "description": "Requested VPE bandwidth",
811               "entry_schema": null,
812               "inputProperties": null,
813               "constraints": [],
814               "required": true,
815               "default": "10"
816             },
817             "AIC_CLLI": {
818               "type": "string",
819               "description": "AIC Site CLLI",
820               "entry_schema": null,
821               "inputProperties": null,
822               "constraints": [],
823               "required": true,
824               "default": "ATLMY8GA"
825             },
826             "ASN": {
827               "type": "string",
828               "description": "AV/PE",
829               "entry_schema": null,
830               "inputProperties": null,
831               "constraints": [],
832               "required": true,
833               "default": "AV_vPE"
834             },
835             "vnf_instance_name": {
836               "type": "string",
837               "description": "The hostname assigned to the vpe.",
838               "entry_schema": null,
839               "inputProperties": null,
840               "constraints": [],
841               "required": true,
842               "default": "mtnj309me6"
843             }
844           },
845           "commands": {
846             "vnf_config_template_version": {
847               "displayName": "vnf_config_template_version",
848               "command": "get_input",
849               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
850             },
851             "bandwidth_units": {
852               "displayName": "bandwidth_units",
853               "command": "get_input",
854               "inputName": "pasqualevpe0_bandwidth_units"
855             },
856             "bandwidth": {
857               "displayName": "bandwidth",
858               "command": "get_input",
859               "inputName": "pasqualevpe0_bandwidth"
860             },
861             "AIC_CLLI": {
862               "displayName": "AIC_CLLI",
863               "command": "get_input",
864               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
865             },
866             "ASN": {
867               "displayName": "ASN",
868               "command": "get_input",
869               "inputName": "2017488_pasqualevpe0_ASN"
870             },
871             "vnf_instance_name": {
872               "displayName": "vnf_instance_name",
873               "command": "get_input",
874               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
875             }
876           },
877           "properties": {
878             "vmxvre_retype": "RE-VMX",
879             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
880             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
881             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
882             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
883             "int_ctl_net_name": "VMX-INTXI",
884             "vmx_int_ctl_prefix": "10.0.0.10",
885             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
886             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
887             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
888             "nf_type": "vPE",
889             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
890             "is_AVPN_service": "false",
891             "vmx_RSG_name": "vREXI-affinity",
892             "vmx_int_ctl_forwarding": "l2",
893             "vmxvre_oam_ip_0": "10.0.0.10",
894             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
895             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
896             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
897             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
898             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
899             "vmxvre_instance": "0",
900             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
901             "vmxvre_flavor_name": "ns.c1r16d32.v5",
902             "vmxvpfe_volume_size_0": "40.0",
903             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
904             "nf_naming": "{ecomp_generated_naming=false}",
905             "nf_naming_code": "Navneet",
906             "vmxvre_name_0": "vREXI",
907             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
908             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
909             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
910             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
911             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
912             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
913             "vmxvre_console": "vidconsole",
914             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
915             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
916             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
917             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
918             "min_instances": "1",
919             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
920             "vf_module_id": "123",
921             "nf_function": "JAI",
922             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
923             "vmxvre_int_ctl_ip_0": "10.0.0.10",
924             "ecomp_generated_naming": "false",
925             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
926             "vnf_name": "mtnj309me6vre",
927             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
928             "vmxvre_volume_type_1": "HITACHI",
929             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
930             "vmxvre_volume_type_0": "HITACHI",
931             "vmxvpfe_volume_type_0": "HITACHI",
932             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
933             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
934             "vnf_id": "123",
935             "vmxvre_oam_prefix": "24",
936             "availability_zone_0": "mtpocfo-kvm-az01",
937             "ASN": "get_input:2017488_pasqualevpe0_ASN",
938             "vmxvre_chassis_i2cid": "161",
939             "vmxvpfe_name_0": "vPFEXI",
940             "bandwidth": "get_input:pasqualevpe0_bandwidth",
941             "availability_zone_max_count": "1",
942             "vmxvre_volume_size_0": "45.0",
943             "vmxvre_volume_size_1": "50.0",
944             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
945             "vmxvre_oam_gateway": "10.0.0.10",
946             "vmxvre_volume_name_1": "vREXI_FAVolume",
947             "vmxvre_ore_present": "0",
948             "vmxvre_volume_name_0": "vREXI_FBVolume",
949             "vmxvre_type": "0",
950             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
951             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
952             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
953             "vmx_int_ctl_len": "24",
954             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
955             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
956             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
957             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
958             "nf_role": "Testing",
959             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
960             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
961             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
962           },
963           "type": "VF",
964           "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
965           "vfModules": {},
966           "volumeGroups": {},
967           "vfcInstanceGroups": {}
968         },
969         "2017-488_PASQUALE-vPE 0": {
970           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
971           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
972           "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",
973           "name": "2017-488_PASQUALE-vPE",
974           "version": "5.0",
975           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
976           "inputs": {
977             "vnf_config_template_version": {
978               "type": "string",
979               "description": "VPE Software Version",
980               "entry_schema": null,
981               "inputProperties": null,
982               "constraints": [],
983               "required": true,
984               "default": "17.2"
985             },
986             "bandwidth_units": {
987               "type": "string",
988               "description": "Units of bandwidth",
989               "entry_schema": null,
990               "inputProperties": null,
991               "constraints": [],
992               "required": true,
993               "default": "Gbps"
994             },
995             "bandwidth": {
996               "type": "string",
997               "description": "Requested VPE bandwidth",
998               "entry_schema": null,
999               "inputProperties": null,
1000               "constraints": [],
1001               "required": true,
1002               "default": "10"
1003             },
1004             "AIC_CLLI": {
1005               "type": "string",
1006               "description": "AIC Site CLLI",
1007               "entry_schema": null,
1008               "inputProperties": null,
1009               "constraints": [],
1010               "required": true,
1011               "default": "ATLMY8GA"
1012             },
1013             "ASN": {
1014               "type": "string",
1015               "description": "AV/PE",
1016               "entry_schema": null,
1017               "inputProperties": null,
1018               "constraints": [],
1019               "required": true,
1020               "default": "AV_vPE"
1021             },
1022             "vnf_instance_name": {
1023               "type": "string",
1024               "description": "The hostname assigned to the vpe.",
1025               "entry_schema": null,
1026               "inputProperties": null,
1027               "constraints": [],
1028               "required": true,
1029               "default": "mtnj309me6"
1030             }
1031           },
1032           "commands": {
1033             "vnf_config_template_version": {
1034               "displayName": "vnf_config_template_version",
1035               "command": "get_input",
1036               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
1037             },
1038             "bandwidth_units": {
1039               "displayName": "bandwidth_units",
1040               "command": "get_input",
1041               "inputName": "pasqualevpe0_bandwidth_units"
1042             },
1043             "bandwidth": {
1044               "displayName": "bandwidth",
1045               "command": "get_input",
1046               "inputName": "pasqualevpe0_bandwidth"
1047             },
1048             "AIC_CLLI": {
1049               "displayName": "AIC_CLLI",
1050               "command": "get_input",
1051               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
1052             },
1053             "ASN": {
1054               "displayName": "ASN",
1055               "command": "get_input",
1056               "inputName": "2017488_pasqualevpe0_ASN"
1057             },
1058             "vnf_instance_name": {
1059               "displayName": "vnf_instance_name",
1060               "command": "get_input",
1061               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
1062             }
1063           },
1064           "properties": {
1065             "vmxvre_retype": "RE-VMX",
1066             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
1067             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
1068             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
1069             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
1070             "int_ctl_net_name": "VMX-INTXI",
1071             "vmx_int_ctl_prefix": "10.0.0.10",
1072             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
1073             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
1074             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
1075             "nf_type": "vPE",
1076             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
1077             "is_AVPN_service": "false",
1078             "vmx_RSG_name": "vREXI-affinity",
1079             "vmx_int_ctl_forwarding": "l2",
1080             "vmxvre_oam_ip_0": "10.0.0.10",
1081             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
1082             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
1083             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
1084             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
1085             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
1086             "vmxvre_instance": "0",
1087             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
1088             "vmxvre_flavor_name": "ns.c1r16d32.v5",
1089             "vmxvpfe_volume_size_0": "40.0",
1090             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
1091             "nf_naming": "{ecomp_generated_naming=false}",
1092             "nf_naming_code": "Navneet",
1093             "vmxvre_name_0": "vREXI",
1094             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
1095             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
1096             "max_instances": "3",
1097             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
1098             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
1099             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
1100             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
1101             "vmxvre_console": "vidconsole",
1102             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
1103             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
1104             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
1105             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
1106             "min_instances": "1",
1107             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
1108             "vf_module_id": "123",
1109             "nf_function": "JAI",
1110             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
1111             "vmxvre_int_ctl_ip_0": "10.0.0.10",
1112             "ecomp_generated_naming": "false",
1113             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
1114             "vnf_name": "mtnj309me6vre",
1115             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
1116             "vmxvre_volume_type_1": "HITACHI",
1117             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
1118             "vmxvre_volume_type_0": "HITACHI",
1119             "vmxvpfe_volume_type_0": "HITACHI",
1120             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
1121             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
1122             "vnf_id": "123",
1123             "vmxvre_oam_prefix": "24",
1124             "availability_zone_0": "mtpocfo-kvm-az01",
1125             "ASN": "get_input:2017488_pasqualevpe0_ASN",
1126             "vmxvre_chassis_i2cid": "161",
1127             "vmxvpfe_name_0": "vPFEXI",
1128             "bandwidth": "get_input:pasqualevpe0_bandwidth",
1129             "availability_zone_max_count": "1",
1130             "vmxvre_volume_size_0": "45.0",
1131             "vmxvre_volume_size_1": "50.0",
1132             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
1133             "vmxvre_oam_gateway": "10.0.0.10",
1134             "vmxvre_volume_name_1": "vREXI_FAVolume",
1135             "vmxvre_ore_present": "0",
1136             "vmxvre_volume_name_0": "vREXI_FBVolume",
1137             "vmxvre_type": "0",
1138             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
1139             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
1140             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
1141             "vmx_int_ctl_len": "24",
1142             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
1143             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
1144             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
1145             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
1146             "nf_role": "Testing",
1147             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
1148             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
1149             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
1150           },
1151           "type": "VF",
1152           "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
1153           "vfModules": {
1154             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1155               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1156               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1157               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1158               "description": null,
1159               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1160               "version": "6",
1161               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1162               "properties": {
1163                 "minCountInstances": 0,
1164                 "maxCountInstances": null,
1165                 "initialCount": 0,
1166                 "vfModuleLabel": "PASQUALE_vRE_BV",
1167                 "baseModule": false
1168               },
1169               "inputs": {
1170                 "vnf_config_template_version": {
1171                   "type": "string",
1172                   "description": "VPE Software Version",
1173                   "entry_schema": null,
1174                   "inputProperties": {
1175                     "sourceType": "HEAT",
1176                     "vfModuleLabel": "PASQUALE_vRE_BV",
1177                     "paramName": "vnf_config_template_version"
1178                   },
1179                   "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1180                   "constraints": null,
1181                   "required": true,
1182                   "default": "17.2"
1183                 },
1184                 "bandwidth_units": {
1185                   "type": "string",
1186                   "description": "Units of bandwidth",
1187                   "entry_schema": null,
1188                   "inputProperties": {
1189                     "sourceType": "HEAT",
1190                     "vfModuleLabel": "PASQUALE_vRE_BV",
1191                     "paramName": "bandwidth_units"
1192                   },
1193                   "fromInputName": "pasqualevpe0_bandwidth_units",
1194                   "constraints": null,
1195                   "required": true,
1196                   "default": "Gbps"
1197                 },
1198                 "bandwidth": {
1199                   "type": "string",
1200                   "description": "Requested VPE bandwidth",
1201                   "entry_schema": null,
1202                   "inputProperties": {
1203                     "sourceType": "HEAT",
1204                     "vfModuleLabel": "PASQUALE_vRE_BV",
1205                     "paramName": "bandwidth"
1206                   },
1207                   "fromInputName": "pasqualevpe0_bandwidth",
1208                   "constraints": null,
1209                   "required": true,
1210                   "default": "10"
1211                 },
1212                 "AIC_CLLI": {
1213                   "type": "string",
1214                   "description": "AIC Site CLLI",
1215                   "entry_schema": null,
1216                   "inputProperties": {
1217                     "sourceType": "HEAT",
1218                     "vfModuleLabel": "PASQUALE_vRE_BV",
1219                     "paramName": "AIC_CLLI"
1220                   },
1221                   "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1222                   "constraints": null,
1223                   "required": true,
1224                   "default": "ATLMY8GA"
1225                 },
1226                 "vnf_instance_name": {
1227                   "type": "string",
1228                   "description": "The hostname assigned to the vpe.",
1229                   "entry_schema": null,
1230                   "inputProperties": {
1231                     "sourceType": "HEAT",
1232                     "vfModuleLabel": "PASQUALE_vRE_BV",
1233                     "paramName": "vnf_instance_name"
1234                   },
1235                   "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1236                   "constraints": null,
1237                   "required": true,
1238                   "default": "mtnj309me6"
1239                 }
1240               },
1241               "volumeGroupAllowed": true
1242             },
1243             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
1244               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
1245               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
1246               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
1247               "description": null,
1248               "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1249               "version": "5",
1250               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1251               "properties": {
1252                 "minCountInstances": 1,
1253                 "maxCountInstances": 1,
1254                 "initialCount": 1,
1255                 "vfModuleLabel": "PASQUALE_base_vPE_BV",
1256                 "baseModule": true
1257               },
1258               "inputs": {},
1259               "volumeGroupAllowed": false
1260             },
1261             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1262               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1263               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1264               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1265               "description": null,
1266               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1267               "version": "6",
1268               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1269               "properties": {
1270                 "minCountInstances": 0,
1271                 "maxCountInstances": null,
1272                 "initialCount": 0,
1273                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1274                 "baseModule": false
1275               },
1276               "inputs": {},
1277               "volumeGroupAllowed": true
1278             }
1279           },
1280           "volumeGroups": {
1281             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1282               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1283               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1284               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1285               "description": null,
1286               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1287               "version": "6",
1288               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1289               "properties": {
1290                 "minCountInstances": 0,
1291                 "maxCountInstances": null,
1292                 "initialCount": 0,
1293                 "vfModuleLabel": "PASQUALE_vRE_BV",
1294                 "baseModule": false
1295               },
1296               "inputs": {
1297                 "vnf_config_template_version": {
1298                   "type": "string",
1299                   "description": "VPE Software Version",
1300                   "entry_schema": null,
1301                   "inputProperties": {
1302                     "sourceType": "HEAT",
1303                     "vfModuleLabel": "PASQUALE_vRE_BV",
1304                     "paramName": "vnf_config_template_version"
1305                   },
1306                   "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1307                   "constraints": null,
1308                   "required": true,
1309                   "default": "17.2"
1310                 },
1311                 "bandwidth_units": {
1312                   "type": "string",
1313                   "description": "Units of bandwidth",
1314                   "entry_schema": null,
1315                   "inputProperties": {
1316                     "sourceType": "HEAT",
1317                     "vfModuleLabel": "PASQUALE_vRE_BV",
1318                     "paramName": "bandwidth_units"
1319                   },
1320                   "fromInputName": "pasqualevpe0_bandwidth_units",
1321                   "constraints": null,
1322                   "required": true,
1323                   "default": "Gbps"
1324                 },
1325                 "bandwidth": {
1326                   "type": "string",
1327                   "description": "Requested VPE bandwidth",
1328                   "entry_schema": null,
1329                   "inputProperties": {
1330                     "sourceType": "HEAT",
1331                     "vfModuleLabel": "PASQUALE_vRE_BV",
1332                     "paramName": "bandwidth"
1333                   },
1334                   "fromInputName": "pasqualevpe0_bandwidth",
1335                   "constraints": null,
1336                   "required": true,
1337                   "default": "10"
1338                 },
1339                 "AIC_CLLI": {
1340                   "type": "string",
1341                   "description": "AIC Site CLLI",
1342                   "entry_schema": null,
1343                   "inputProperties": {
1344                     "sourceType": "HEAT",
1345                     "vfModuleLabel": "PASQUALE_vRE_BV",
1346                     "paramName": "AIC_CLLI"
1347                   },
1348                   "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1349                   "constraints": null,
1350                   "required": true,
1351                   "default": "ATLMY8GA"
1352                 },
1353                 "vnf_instance_name": {
1354                   "type": "string",
1355                   "description": "The hostname assigned to the vpe.",
1356                   "entry_schema": null,
1357                   "inputProperties": {
1358                     "sourceType": "HEAT",
1359                     "vfModuleLabel": "PASQUALE_vRE_BV",
1360                     "paramName": "vnf_instance_name"
1361                   },
1362                   "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1363                   "constraints": null,
1364                   "required": true,
1365                   "default": "mtnj309me6"
1366                 }
1367               }
1368             },
1369             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1370               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1371               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1372               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1373               "description": null,
1374               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1375               "version": "6",
1376               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1377               "properties": {
1378                 "minCountInstances": 0,
1379                 "maxCountInstances": null,
1380                 "initialCount": 0,
1381                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1382                 "baseModule": false
1383               },
1384               "inputs": {}
1385             }
1386           },
1387           "vfcInstanceGroups": {}
1388         }
1389       },
1390       "networks": {},
1391       "collectionResources": {},
1392       "configurations": {},
1393       "fabricConfigurations": {},
1394       "serviceProxies": {},
1395       "vfModules": {
1396         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1397           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1398           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1399           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1400           "description": null,
1401           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1402           "version": "6",
1403           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1404           "properties": {
1405             "minCountInstances": 0,
1406             "maxCountInstances": null,
1407             "initialCount": 0,
1408             "vfModuleLabel": "PASQUALE_vRE_BV",
1409             "baseModule": false
1410           },
1411           "inputs": {
1412             "vnf_config_template_version": {
1413               "type": "string",
1414               "description": "VPE Software Version",
1415               "entry_schema": null,
1416               "inputProperties": {
1417                 "sourceType": "HEAT",
1418                 "vfModuleLabel": "PASQUALE_vRE_BV",
1419                 "paramName": "vnf_config_template_version"
1420               },
1421               "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1422               "constraints": null,
1423               "required": true,
1424               "default": "17.2"
1425             },
1426             "bandwidth_units": {
1427               "type": "string",
1428               "description": "Units of bandwidth",
1429               "entry_schema": null,
1430               "inputProperties": {
1431                 "sourceType": "HEAT",
1432                 "vfModuleLabel": "PASQUALE_vRE_BV",
1433                 "paramName": "bandwidth_units"
1434               },
1435               "fromInputName": "pasqualevpe0_bandwidth_units",
1436               "constraints": null,
1437               "required": true,
1438               "default": "Gbps"
1439             },
1440             "bandwidth": {
1441               "type": "string",
1442               "description": "Requested VPE bandwidth",
1443               "entry_schema": null,
1444               "inputProperties": {
1445                 "sourceType": "HEAT",
1446                 "vfModuleLabel": "PASQUALE_vRE_BV",
1447                 "paramName": "bandwidth"
1448               },
1449               "fromInputName": "pasqualevpe0_bandwidth",
1450               "constraints": null,
1451               "required": true,
1452               "default": "10"
1453             },
1454             "AIC_CLLI": {
1455               "type": "string",
1456               "description": "AIC Site CLLI",
1457               "entry_schema": null,
1458               "inputProperties": {
1459                 "sourceType": "HEAT",
1460                 "vfModuleLabel": "PASQUALE_vRE_BV",
1461                 "paramName": "AIC_CLLI"
1462               },
1463               "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1464               "constraints": null,
1465               "required": true,
1466               "default": "ATLMY8GA"
1467             },
1468             "vnf_instance_name": {
1469               "type": "string",
1470               "description": "The hostname assigned to the vpe.",
1471               "entry_schema": null,
1472               "inputProperties": {
1473                 "sourceType": "HEAT",
1474                 "vfModuleLabel": "PASQUALE_vRE_BV",
1475                 "paramName": "vnf_instance_name"
1476               },
1477               "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1478               "constraints": null,
1479               "required": true,
1480               "default": "mtnj309me6"
1481             }
1482           },
1483           "volumeGroupAllowed": true
1484         },
1485         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
1486           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
1487           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
1488           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
1489           "description": null,
1490           "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1491           "version": "5",
1492           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1493           "properties": {
1494             "minCountInstances": 1,
1495             "maxCountInstances": 1,
1496             "initialCount": 1,
1497             "vfModuleLabel": "PASQUALE_base_vPE_BV",
1498             "baseModule": true
1499           },
1500           "inputs": {},
1501           "volumeGroupAllowed": false
1502         },
1503         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1504           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1505           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1506           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1507           "description": null,
1508           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1509           "version": "6",
1510           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1511           "properties": {
1512             "minCountInstances": 0,
1513             "maxCountInstances": null,
1514             "initialCount": 0,
1515             "vfModuleLabel": "PASQUALE_vPFE_BV",
1516             "baseModule": false
1517           },
1518           "inputs": {},
1519           "volumeGroupAllowed": true
1520         }
1521       },
1522       "volumeGroups": {
1523         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1524           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1525           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1526           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1527           "description": null,
1528           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1529           "version": "6",
1530           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1531           "properties": {
1532             "minCountInstances": 0,
1533             "maxCountInstances": null,
1534             "initialCount": 0,
1535             "vfModuleLabel": "PASQUALE_vRE_BV",
1536             "baseModule": false
1537           },
1538           "inputs": {
1539             "vnf_config_template_version": {
1540               "type": "string",
1541               "description": "VPE Software Version",
1542               "entry_schema": null,
1543               "inputProperties": {
1544                 "sourceType": "HEAT",
1545                 "vfModuleLabel": "PASQUALE_vRE_BV",
1546                 "paramName": "vnf_config_template_version"
1547               },
1548               "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1549               "constraints": null,
1550               "required": true,
1551               "default": "17.2"
1552             },
1553             "bandwidth_units": {
1554               "type": "string",
1555               "description": "Units of bandwidth",
1556               "entry_schema": null,
1557               "inputProperties": {
1558                 "sourceType": "HEAT",
1559                 "vfModuleLabel": "PASQUALE_vRE_BV",
1560                 "paramName": "bandwidth_units"
1561               },
1562               "fromInputName": "pasqualevpe0_bandwidth_units",
1563               "constraints": null,
1564               "required": true,
1565               "default": "Gbps"
1566             },
1567             "bandwidth": {
1568               "type": "string",
1569               "description": "Requested VPE bandwidth",
1570               "entry_schema": null,
1571               "inputProperties": {
1572                 "sourceType": "HEAT",
1573                 "vfModuleLabel": "PASQUALE_vRE_BV",
1574                 "paramName": "bandwidth"
1575               },
1576               "fromInputName": "pasqualevpe0_bandwidth",
1577               "constraints": null,
1578               "required": true,
1579               "default": "10"
1580             },
1581             "AIC_CLLI": {
1582               "type": "string",
1583               "description": "AIC Site CLLI",
1584               "entry_schema": null,
1585               "inputProperties": {
1586                 "sourceType": "HEAT",
1587                 "vfModuleLabel": "PASQUALE_vRE_BV",
1588                 "paramName": "AIC_CLLI"
1589               },
1590               "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1591               "constraints": null,
1592               "required": true,
1593               "default": "ATLMY8GA"
1594             },
1595             "vnf_instance_name": {
1596               "type": "string",
1597               "description": "The hostname assigned to the vpe.",
1598               "entry_schema": null,
1599               "inputProperties": {
1600                 "sourceType": "HEAT",
1601                 "vfModuleLabel": "PASQUALE_vRE_BV",
1602                 "paramName": "vnf_instance_name"
1603               },
1604               "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1605               "constraints": null,
1606               "required": true,
1607               "default": "mtnj309me6"
1608             }
1609           }
1610         },
1611         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1612           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1613           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1614           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1615           "description": null,
1616           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1617           "version": "6",
1618           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1619           "properties": {
1620             "minCountInstances": 0,
1621             "maxCountInstances": null,
1622             "initialCount": 0,
1623             "vfModuleLabel": "PASQUALE_vPFE_BV",
1624             "baseModule": false
1625           },
1626           "inputs": {}
1627         }
1628       },
1629       "pnfs": {}
1630     }
1631   }
1632 });