aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/drawingBoard
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2019-07-07 19:23:03 +0300
committerIttay Stern <ittay.stern@att.com>2019-07-08 16:13:43 +0300
commitf792671ae247a931f34d902e9276202b5016ef9a (patch)
tree6104971e8074c9a3d720836276ff18619719ec02 /vid-webpack-master/src/app/drawingBoard
parentfc62274e8d15964d63c62bf0e2f4abc040252ee9 (diff)
Merge from ecomp 718fd196 - Modern UI
Issue-ID: VID-378 Change-Id: I2736b98426e324ec3aa233b034229ba84d99839f Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard')
-rw-r--r--vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts6
-rw-r--r--vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts30
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html2
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss11
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts23
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts227
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts19
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts12
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss2
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts4
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts12
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts31
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html14
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss23
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts29
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts67
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts25
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts24
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts30
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html95
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss146
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts139
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts3
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts55
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts15
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts19
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts1207
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts102
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts326
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts10
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts112
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts121
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts372
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts77
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts134
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts70
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts268
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts7
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts296
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts29
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts343
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts45
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts158
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts189
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts66
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts96
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts238
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts188
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts18
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts458
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts242
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts17
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts463
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts195
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts627
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts53
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts259
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts48
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts14
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts714
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts37
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html10
62 files changed, 6893 insertions, 1779 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts b/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts
index 6a3574f23..67b54059e 100644
--- a/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts
+++ b/vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts
@@ -34,6 +34,8 @@ import {SdcUiServices} from "onap-ui-angular/dist";
import {CreateDynamicComponentService} from "onap-ui-angular/dist/utils/create-dynamic-component.service";
import {ComponentInfoComponent} from './service-planning/component-info/component-info.component';
import {ComponentInfoService} from "./service-planning/component-info/component-info.service";
+import {NetworkStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service";
@NgModule({
@@ -66,7 +68,9 @@ import {ComponentInfoService} from "./service-planning/component-info/component-
SdcUiServices.LoaderService,
CreateDynamicComponentService,
ComponentInfoService,
- DragAndDropService],
+ DragAndDropService,
+ NetworkStepService,
+ VpnStepService],
declarations: [
AvailableModelsTreeComponent,
HighlightPipe,
diff --git a/vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts b/vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts
new file mode 100644
index 000000000..36dd3ac47
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts
@@ -0,0 +1,30 @@
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
+import {ComponentInfoType} from "../../service-planning/component-info/component-info-model";
+
+export interface IModelTreeNodeModel {
+ id?: string;
+ modelCustomizationId? : string;
+ modelVersionId?: string;
+ modelUniqueId? : string;
+ name?: string;
+ tooltip?: string;
+ type?: string;
+ count?: number;
+ max?: number;
+ children?: any[];
+ disabled?: boolean;
+ dynamicInputs?: any;
+ isEcompGeneratedNaming?: boolean;
+ typeName? : string;
+ componentInfoType?: ComponentInfoType;
+
+
+ onAddClick?(node, serviceId);
+ getNodeCount?(node, serviceId);
+ getMenuAction?(node, serviceId);
+ showNodeIcons?(node, serviceId);
+ getModel?(modelId: string, instance: any, serviceHierarchy)
+ getInfo?(model, instance): ModelInformationItem[];
+
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html
index 91acca0d1..7864808fc 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html
@@ -34,7 +34,7 @@
[name]="'maximum'">
</svg-icon>
</span>
- <span class="icon-plus" *ngIf="node?.data?.showNodeIcons(node, serviceModelId)?.addIcon">
+ <span class="icon-plus" *ngIf="_store.getState().service.serviceInstance[serviceModelId].action !== 'Delete' && node?.data?.showNodeIcons(node, serviceModelId)?.addIcon">
<span tooltip="Add" [attr.data-tests-id]="'node-'+node.data.name+'-add-btn'" (click)="onClickAdd(node, serviceModelId)">
<i class="fa fa-plus-circle" aria-hidden="true"></i>
</span>
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss
index 90c2cd878..62e9be73a 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss
@@ -168,7 +168,7 @@ available-models-tree {
.node-content-wrapper.node-content-wrapper-focused {
tree-node-content {
> div {
- background: #009FDB;
+ background: #009FDB !important;
color: white;
}
}
@@ -178,7 +178,7 @@ available-models-tree {
> div {
background: #F2F2F2;
&.tree-node-focused:not(.tree-node-disabled) {
- background: #009FDB;
+ background: #009FDB !important;
color: white;
}
span.actions {
@@ -206,6 +206,8 @@ available-models-tree {
border-color: #1EB9F3;
}
.node-content-wrapper-focused{
+ background: #009FDB !important;
+ border-color: #1EB9F3;
box-shadow: none;
tree-node-content {
@@ -395,6 +397,7 @@ available-models-tree {
.node-content-wrapper.node-content-wrapper-focused{
border-color:#1EB9F3 ;
+ background: #009FDB !important;
tree-node-content > div{
.vf-type,.model-info,.model-info .property-name {
color: white;
@@ -410,7 +413,9 @@ available-models-tree {
}
-
+ available-models-tree .node-content-wrapper.node-content-wrapper-focused {
+ background: #009FDB !important;
+ }
.vf-type {
width: 40px;
height: 45px;
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts
index 31d7b03b8..145ee19da 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts
@@ -25,6 +25,9 @@ import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/f
import {HighlightPipe} from "../../../shared/pipes/highlight/highlight-filter.pipe";
import * as _ from 'lodash';
import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component";
+import {ComponentInfoModel} from "../component-info/component-info-model";
+import {ComponentInfoService} from "../component-info/component-info.service";
+import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
@Component({
@@ -72,6 +75,7 @@ export class AvailableModelsTreeComponent {
value => {
this.serviceHierarchy = value;
this.nodes = this._objectToModelTreeService.convertServiceHierarchyModelToTreeNodes(this.serviceHierarchy);
+ this.shouldOpenVRFModal(this.nodes);
},
error => {
console.log('error is ', error)
@@ -102,6 +106,13 @@ export class AvailableModelsTreeComponent {
};
+ shouldOpenVRFModal(nodes) :void {
+ const node = this._availableModelsTreeService.shouldOpenVRFModal(nodes, this.serviceModelId, this.store.getState().service);
+ if(!_.isNil(node)){
+ this.onClickAdd(node, this.serviceModelId);
+ }
+ }
+
getNodeName(node : ITreeNode, filter : string) {
return this._highlightPipe.transform(node.data.name ,filter ? filter : '');
}
@@ -119,6 +130,13 @@ export class AvailableModelsTreeComponent {
node.expand();
this._sharedTreeService.setSelectedVNF(null);
this.highlightInstances.emit(node.data.modelUniqueId);
+ if (FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store)) {
+ const serviceHierarchy = this._store.getState().service.serviceHierarchy[this.serviceModelId];
+ const model = node.data.getModel(node.data.name, node.data, serviceHierarchy);
+ const modelInfoItems = node.data.getInfo(model, null);
+ const componentInfoModel :ComponentInfoModel = this._sharedTreeService.addGeneralInfoItems(modelInfoItems, node.data.componentInfoType, model, null);
+ ComponentInfoService.triggerComponentInfoChange.next(componentInfoModel);
+ }
}
@@ -127,7 +145,7 @@ export class AvailableModelsTreeComponent {
this.isNewObject = isNewObject;
let data = node.data;
let dynamicInputs = data.dynamicInputs;
- let isAlaCarte: boolean = this.serviceHierarchy.service.instantiationType == "A-La-Carte";
+ let isAlaCarte: boolean = this.serviceHierarchy.service.vidNotions.instantiationType == 'ALaCarte';
let isEcompGeneratedNaming: boolean = data.isEcompGeneratedNaming;
let type: string = data.type;
if (!this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD'] || node.data.type === ServiceNodeTypes.VF ||
@@ -150,7 +168,8 @@ export class AvailableModelsTreeComponent {
let existVnf = this._store.getState().service.serviceInstance[this.serviceModelId].vnfs;
if(!_.isNil(existVnf)){
for(let vnfKey in existVnf){
- if(existVnf[vnfKey]['modelInfo'].modelUniqueId === node.parent.data.id){
+ const modelUniqueId = existVnf[vnfKey]['modelInfo'].modelCustomizationId || existVnf[vnfKey]['modelInfo'].modelInvariantId;
+ if(modelUniqueId === node.parent.data.id){
this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, vnfKey));
DrawingBoardTreeComponent.triggerreCalculateIsDirty.next(this.serviceModelId);
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts
index cf9d04aae..4abc20324 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts
@@ -1,9 +1,6 @@
-import {TestBed, getTestBed} from '@angular/core/testing';
-import {
- HttpClientTestingModule,
- HttpTestingController
-} from '@angular/common/http/testing';
-import {AvailableModelsTreeService, AvailableNodeIcons} from './available-models-tree.service';
+import {getTestBed, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
+import {AvailableModelsTreeService} from './available-models-tree.service';
import {ServiceNodeTypes} from "../../../shared/models/ServiceNodeTypes";
import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service";
@@ -63,9 +60,9 @@ describe('Available Models Tree Service', () => {
// add vfModule with dynamicInputs without defaultValues should return true
result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [{
- id: '2017488_adiodvpe0_vnf_config_template_version',
+ id: '2017488_pasqualevpe0_vnf_config_template_version',
type: 'string',
- name: '2017488_adiodvpe0_vnf_config_template_version',
+ name: '2017488_pasqualevpe0_vnf_config_template_version',
isRequired: true,
description: 'VPE Software Version'
}], true);
@@ -73,9 +70,9 @@ describe('Available Models Tree Service', () => {
// add vfModule with dynamicInputs with defaultValues should return false
result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [{
- id: '2017488_adiodvpe0_vnf_config_template_version',
+ id: '2017488_pasqualevpe0_vnf_config_template_version',
type: 'string',
- name: '2017488_adiodvpe0_vnf_config_template_version',
+ name: '2017488_pasqualevpe0_vnf_config_template_version',
value: '17.2',
isRequired: true,
description: 'VPE Software Version'
@@ -84,6 +81,160 @@ describe('Available Models Tree Service', () => {
});
});
+
+ test('shouldOpenVRFModal', () => {
+ const nodes = [{
+ "id": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "modelCustomizationId": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "modelVersionId": "9cac02be-2489-4374-888d-2863b4511a59",
+ "modelUniqueId": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "name": "VRF Entry Configuration 0",
+ "tooltip": "VRF",
+ "type": "VRF",
+ "count": 0,
+ "max": 1,
+ "children": [],
+ "disabled": false,
+ "dynamicInputs": [],
+ "isEcompGeneratedNaming": false,
+ "typeName": "VRF",
+ "componentInfoType": "VRF",
+ "getModel" : ()=>{
+ return {
+ min : 1
+ }
+ }
+ }];
+
+
+ const serviceStore = {
+ "serviceInstance": {
+ "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc": {
+ "action": "Create",
+ "isDirty": false,
+ "vnfs": {},
+ "vrfs": {
+ "VRF Entry Configuration": {
+ "action": "Create",
+ "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+ "inputs": {},
+ "type": "Configuration",
+ "trackById": "s0z58emiprq",
+ "modelInfo": {
+ "modelInvariantId": "b67a289b-1688-496d-86e8-1583c828be0a",
+ "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
+ "modelName": "VRF Entry Configuration",
+ "modelVersion": "5.0",
+ "modelCustomizationId": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "modelUniqueId": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "modelCustomizationName": "VRF Entry Configuration",
+ "uuid": "9cac02be-2489-4374-888d-2863b4511a59"
+ },
+ "vpns": {
+ "VRF Entry Configuration vpns 1": {
+ "action": "Create",
+ "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1271",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null
+ },
+ "routeTargets": null,
+ "isSelected": true
+ }
+ },
+ "networks": {
+ "VRF Entry Configuration networks 1": {
+ "action ": "Create",
+ "instanceName": "AUK51a_oam_calea_net_0",
+ "instanceType": "SR-IOV-PROVIDER2-0",
+ "role": "role-1",
+ "orchStatus": "Active",
+ "physicalName": "sriovnet0",
+ "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+ "serviceName": "LPPVPN",
+ "serv§iceUUID": "VPN1271",
+ "tenantName": "ecomp_ispt",
+ "lcpCloudRegionId": "USA,EMEA",
+ "modelInfo": {
+ "modelCustomizationId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+ "modelInvariantId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+ "modelVersionId": "7010093-df36-4dcb-8428-c3d02bf3f88d",
+ "modelType": "vpn"
+ }
+ }
+ }
+ }
+ },
+ "instanceParams": [],
+ "validationCounter": 0,
+ "existingNames": {},
+ "existingVNFCounterMap": {},
+ "existingVRFCounterMap": {},
+ "existingVnfGroupCounterMap": {},
+ "existingNetworksCounterMap": {},
+ "optionalGroupMembersMap": {},
+ "networks": {},
+ "vnfGroups": {},
+ "bulkSize": 1,
+ "service": {
+ "vidNotions": {
+ "instantiationUI": "serviceWithVRF",
+ "modelCategory": "other",
+ "viewEditUI": "serviceWithVRF",
+ "instantiationType": "ALaCarte"
+ },
+ "uuid": "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc",
+ "invariantUuid": "7ee41ce4-4827-44b0-a48e-2707a59905d2",
+ "name": "VRF Service for Test",
+ "version": "1.0",
+ "toscaModelURL": null,
+ "category": "Network L4+",
+ "serviceType": "INFRASTRUCTURE",
+ "serviceRole": "Configuration",
+ "description": "xxx",
+ "serviceEcompNaming": "true",
+ "instantiationType": "A-La-Carte",
+ "inputs": {}
+ },
+ "collectionResources": {},
+ "configurations": {},
+ "fabricConfigurations": {},
+ "serviceProxies": {},
+ "vfModules": {},
+ "volumeGroups": {},
+ "pnfs": {},
+ "isALaCarte": true,
+ "testApi": "VNF_API",
+ "vidNotions": {
+ "instantiationUI": "serviceWithVVRF",
+ "modelCategory": "other",
+ "viewEditUI": "serviceWithVRF",
+ "instantiationType": "ALaCarte"
+ }
+ }
+ }
+ };
+
+ const serviceModelId :string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc';
+
+ let result: boolean = service.shouldOpenVRFModal(nodes, serviceModelId, serviceStore);
+ expect(result).not.toBeNull();
+
+ serviceStore.serviceInstance[serviceModelId].existingVRFCounterMap = {
+ "dd024d73-9bd1-425d-9db5-476338d53433" : 1
+ };
+
+ result = service.shouldOpenVRFModal(nodes, serviceModelId, serviceStore);
+ expect(result).toBeNull();
+
+ });
+
function getServiceServiceHierarchy() {
return JSON.parse(JSON.stringify(
{
@@ -103,11 +254,11 @@ describe('Available Models Tree Service', () => {
'inputs': {}
},
'vnfs': {
- 'VF_vMee 0': {
+ 'VF_vGeraldine 0': {
'uuid': 'd6557200-ecf2-4641-8094-5393ae3aae60',
'invariantUuid': '4160458e-f648-4b30-a176-43881ffffe9e',
- 'description': 'VSP_vMee',
- 'name': 'VF_vMee',
+ 'description': 'VSP_vGeraldine',
+ 'name': 'VF_vGeraldine',
'version': '2.0',
'customizationUuid': '91415b44-753d-494c-926a-456a9172bbb9',
'inputs': {},
@@ -277,54 +428,54 @@ describe('Available Models Tree Service', () => {
'sctp-b-egress-dst_end_port': '65535.0'
},
'type': 'VF',
- 'modelCustomizationName': 'VF_vMee 0',
+ 'modelCustomizationName': 'VF_vGeraldine 0',
'vfModules': {
- 'vf_vmee0..VfVmee..vmme_vlc..module-1': {
+ 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
'uuid': '522159d5-d6e0-4c2a-aa44-5a542a12a830',
'invariantUuid': '98a7c88b-b577-476a-90e4-e25a5871e02b',
'customizationUuid': '55b1be94-671a-403e-a26c-667e9c47d091',
'description': null,
- 'name': 'VfVmee..vmme_vlc..module-1',
+ 'name': 'VfVgeraldine..vflorence_vlc..module-1',
'version': '2',
- 'modelCustomizationName': 'VfVmee..vmme_vlc..module-1',
+ 'modelCustomizationName': 'VfVgeraldine..vflorence_vlc..module-1',
'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
'commands': {},
'volumeGroupAllowed': false
},
- 'vf_vmee0..VfVmee..vmme_gpb..module-2': {
+ 'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
'uuid': '41708296-e443-4c71-953f-d9a010f059e1',
'invariantUuid': '1cca90b8-3490-495e-87da-3f3e4c57d5b9',
'customizationUuid': '6add59e0-7fe1-4bc4-af48-f8812422ae7c',
'description': null,
- 'name': 'VfVmee..vmme_gpb..module-2',
+ 'name': 'VfVgeraldine..vflorence_gpb..module-2',
'version': '2',
- 'modelCustomizationName': 'VfVmee..vmme_gpb..module-2',
+ 'modelCustomizationName': 'VfVgeraldine..vflorence_gpb..module-2',
'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
'commands': {},
'volumeGroupAllowed': false
},
- 'vf_vmee0..VfVmee..base_vmme..module-0': {
+ 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
'description': null,
- 'name': 'VfVmee..base_vmme..module-0',
+ 'name': 'VfVgeraldine..base_vflorence..module-0',
'version': '2',
- 'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+ 'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1},
'commands': {},
'volumeGroupAllowed': true
}
},
'volumeGroups': {
- 'vf_vmee0..VfVmee..base_vmme..module-0': {
+ 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
'description': null,
- 'name': 'VfVmee..base_vmme..module-0',
+ 'name': 'VfVgeraldine..base_vflorence..module-0',
'version': '2',
- 'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+ 'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1}
}
}
@@ -370,52 +521,52 @@ describe('Available Models Tree Service', () => {
},
'serviceProxies': {},
'vfModules': {
- 'vf_vmee0..VfVmee..vmme_vlc..module-1': {
+ 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
'uuid': '522159d5-d6e0-4c2a-aa44-5a542a12a830',
'invariantUuid': '98a7c88b-b577-476a-90e4-e25a5871e02b',
'customizationUuid': '55b1be94-671a-403e-a26c-667e9c47d091',
'description': null,
- 'name': 'VfVmee..vmme_vlc..module-1',
+ 'name': 'VfVgeraldine..vflorence_vlc..module-1',
'version': '2',
- 'modelCustomizationName': 'VfVmee..vmme_vlc..module-1',
+ 'modelCustomizationName': 'VfVgeraldine..vflorence_vlc..module-1',
'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
'commands': {},
'volumeGroupAllowed': false
},
- 'vf_vmee0..VfVmee..vmme_gpb..module-2': {
+ 'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
'uuid': '41708296-e443-4c71-953f-d9a010f059e1',
'invariantUuid': '1cca90b8-3490-495e-87da-3f3e4c57d5b9',
'customizationUuid': '6add59e0-7fe1-4bc4-af48-f8812422ae7c',
'description': null,
- 'name': 'VfVmee..vmme_gpb..module-2',
+ 'name': 'VfVgeraldine..vflorence_gpb..module-2',
'version': '2',
- 'modelCustomizationName': 'VfVmee..vmme_gpb..module-2',
+ 'modelCustomizationName': 'VfVgeraldine..vflorence_gpb..module-2',
'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
'commands': {},
'volumeGroupAllowed': false
},
- 'vf_vmee0..VfVmee..base_vmme..module-0': {
+ 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
'description': null,
- 'name': 'VfVmee..base_vmme..module-0',
+ 'name': 'VfVgeraldine..base_vflorence..module-0',
'version': '2',
- 'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+ 'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1},
'commands': {},
'volumeGroupAllowed': true
}
},
'volumeGroups': {
- 'vf_vmee0..VfVmee..base_vmme..module-0': {
+ 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
'description': null,
- 'name': 'VfVmee..base_vmme..module-0',
+ 'name': 'VfVgeraldine..base_vflorence..module-0',
'version': '2',
- 'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+ 'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1}
}
},
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts
index dc72f8f12..39a3c5070 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts
@@ -7,6 +7,8 @@ import {MessageBoxService} from "../../../shared/components/messageBox/messageBo
import * as _ from "lodash";
import { SdcUiCommon} from "onap-ui-angular";
import {SharedTreeService} from "../objectsToTree/shared.tree.service";
+import {VrfModel} from "../../../shared/models/vrfModel";
+import {clearAllGenericModalhelper} from "../../../shared/storeUtil/utils/global/global.actions";
export class AvailableNodeIcons {
addIcon: boolean;
@@ -16,6 +18,7 @@ export class AvailableNodeIcons {
this.addIcon = addIcon;
this.vIcon = vIcon;
}
+
}
@Injectable()
@@ -73,4 +76,20 @@ export class AvailableModelsTreeService {
MessageBoxService.openModal.next(messageBoxData);
}
+ shouldOpenVRFModal(nodes, serviceModelId: string , service) {
+ for(const node of nodes){
+ if(node.type === 'VRF' && service.serviceInstance[serviceModelId].existingVRFCounterMap && !service.serviceInstance[serviceModelId].existingVRFCounterMap[node.modelUniqueId]){
+ const vrfModel : VrfModel = node.getModel(node.name, node, service.serviceInstance[serviceModelId]);
+ const vrfCounter : number = service.serviceInstance[serviceModelId].existingVRFCounterMap[node.modelUniqueId];
+ console.log('vrfCounter', vrfCounter);
+ if(vrfModel.min > 0 && (_.isNil(vrfCounter) || vrfCounter === 0)){
+ node.data = node;
+ this.store.dispatch(clearAllGenericModalhelper());
+ return node;
+ }
+ }
+ }
+ return null;
+ }
+
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts
index 4c5bf6747..d06dfbe9a 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts
@@ -7,11 +7,11 @@ export class ComponentInfoModel {
title: string;
- constructor(type: ComponentInfoType, modelInfoItems: ModelInformationItem[], additionalInfoItems: ModelInformationItem[], isInstance:boolean=true) {
+ constructor(type: ComponentInfoType, modelInfoItems: ModelInformationItem[], additionalInfoItems: ModelInformationItem[], isInstance:boolean = true) {
this.type = type;
this.modelInfoItems = modelInfoItems;
this.additionalInfoItems = additionalInfoItems;
- this.title=this.type+(isInstance ? " Instance" : "");
+ this.title = this.type + (isInstance ? " Instance" : "");
}
}
@@ -22,5 +22,11 @@ export enum ComponentInfoType {
NETWORK = "Network",
VFMODULE = "VFModule",
VNFGROUP = "Group",
- VNFMEMBER = "VNF"
+ VNFMEMBER = "VNF",
+ CONFIGURATION = "Configuration",
+ COLLECTION_RESOURCE = "Collection Resource",
+ VRF = "VRF",
+ PNF = "PNF",
+ VPN = "VPN",
+ NCF = "Network Collection Function"
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss
index 2d7735678..62e53ed0d 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss
@@ -26,7 +26,6 @@
font-family: OpenSans-Regular;
font-size: 12px;
color: #5A5A5A;
- text-transform: capitalize;
}
.model-item-value {
@@ -34,6 +33,7 @@
font-size: 14px;
color: #191919;
line-height: 16px;
+ word-break: break-word;
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts
index c69ab52e1..d9fa98555 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts
@@ -7,8 +7,8 @@ import {ActivatedRoute} from "@angular/router";
@Component({
selector: 'component-info',
templateUrl: './component-info.component.html',
- styleUrls: ['./component-info.component.scss'],
- changeDetection: ChangeDetectionStrategy.OnPush
+ styleUrls: ['./component-info.component.scss']//,
+ // changeDetection: ChangeDetectionStrategy.OnPush
})
export class ComponentInfoComponent implements OnInit {
componentInfoModel: ComponentInfoModel = null;
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts
index 8b0da409b..6671e2e18 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts
@@ -7,6 +7,7 @@ import {HttpClient, HttpHandler} from '@angular/common/http';
import {FeatureFlagsService} from '../../../shared/services/featureFlag/feature-flags.service';
import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
import {ComponentInfoModel, ComponentInfoType} from "./component-info-model";
+import {SharedTreeService} from "../objectsToTree/shared.tree.service";
class MockAppStore<T> {
getState() {
@@ -58,6 +59,7 @@ beforeAll(done => (async () => {
HttpHandler,
FeatureFlagsService,
ComponentInfoService,
+ SharedTreeService,
{provide: NgRedux, useClass: MockAppStore},
MockNgRedux]
});
@@ -77,12 +79,12 @@ describe('Service Info Data', () => {
let actualServiceInfo = service.getInfoForService('1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
let expectedServiceInfo = [
ModelInformationItem.createInstance('Type', 'pnf'),
- ModelInformationItem.createInstance('Model Version', '1.0'),
- ModelInformationItem.createInstance('Model Customization ID', ''),
+ ModelInformationItem.createInstance('Model version', '1.0'),
+ ModelInformationItem.createInstance('Model customization ID', ''),
ModelInformationItem.createInstance('Instance ID', '2f7130e8-27d6-4c01-8988-60ca67e8dae4'),
- ModelInformationItem.createInstance('Subscriber Name', 'SILVIA ROBBINS'),
- ModelInformationItem.createInstance('Service Type', 'TYLER SILVIA'),
- ModelInformationItem.createInstance('Service Role', 'Testing'),
+ ModelInformationItem.createInstance('Subscriber name', 'SILVIA ROBBINS'),
+ ModelInformationItem.createInstance('Service type', 'TYLER SILVIA'),
+ ModelInformationItem.createInstance('Service role', 'Testing'),
];
expect(actualServiceInfo).toEqual(new ComponentInfoModel(ComponentInfoType.SERVICE, expectedServiceInfo, []));
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts
index 9318b3aa7..32610d993 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts
@@ -6,36 +6,27 @@ import {Subject} from "rxjs";
import {ComponentInfoModel, ComponentInfoType} from "./component-info-model";
import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
import * as _ from 'lodash';
+import {SharedTreeService} from "../objectsToTree/shared.tree.service";
@Injectable()
export class ComponentInfoService {
static triggerComponentInfoChange: Subject<ComponentInfoModel> = new Subject<ComponentInfoModel>();
- constructor( private _store: NgRedux<AppState>, private _aaiService : AaiService){ }
+ constructor( private _store: NgRedux<AppState>, private _aaiService : AaiService, private _sharedTreeService : SharedTreeService){ }
getInfoForService(serviceModelId):ComponentInfoModel {
if(_.isNil(this._store.getState().service.serviceHierarchy[serviceModelId])) return null;
- let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId].service;
+ const serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId].service;
const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
const modelInfoItems: ModelInformationItem[] = [
- ModelInformationItem.createInstance("Subscriber Name",this._aaiService.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)),
- ModelInformationItem.createInstance("Service Type",serviceInstance.subscriptionServiceType),
- ModelInformationItem.createInstance("Service Role",serviceHierarchy.serviceRole),
+ ModelInformationItem.createInstance("Type", serviceHierarchy.serviceType),
+ ModelInformationItem.createInstance("Model version", serviceHierarchy.version ),
+ ModelInformationItem.createInstance("Model customization ID", serviceHierarchy.customizationUuid ),
+ ModelInformationItem.createInstance("Instance ID", serviceInstance.instanceId),
+ ModelInformationItem.createInstance("Subscriber name",this._aaiService.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)),
+ ModelInformationItem.createInstance("Service type",serviceInstance.subscriptionServiceType),
+ ModelInformationItem.createInstance("Service role",serviceHierarchy.serviceRole),
];
- serviceHierarchy.type = serviceHierarchy.serviceType;
- return this.addGeneralInfoItems(modelInfoItems, ComponentInfoType.SERVICE, serviceHierarchy, serviceInstance );
- }
-
- addGeneralInfoItems(modelInfoSpecificItems: ModelInformationItem[], type: ComponentInfoType, model, instance) {
- let modelInfoItems: ModelInformationItem[] = [
- ModelInformationItem.createInstance("Type", (model && model.type) ? model.type : ((instance && instance.modelInfo) ? instance.modelInfo.modelType : null)),
- ModelInformationItem.createInstance("Model Version", model ? model.version : null),
- ModelInformationItem.createInstance("Model Customization ID", model ? model.customizationUuid : null),
- ModelInformationItem.createInstance("Instance ID", instance ? instance.instanceId : null),
- ModelInformationItem.createInstance("In Maintenance", instance? instance.inMaint : null),
- ];
- modelInfoItems = modelInfoItems.concat(modelInfoSpecificItems);
- const modelInfoItemsWithoutEmpty = _.filter(modelInfoItems, function(item){ return !item.values.every(_.isNil)});
- return new ComponentInfoModel(type, modelInfoItemsWithoutEmpty, []);
+ return this._sharedTreeService.getComponentInfoModelByModelInformationItems(modelInfoItems, ComponentInfoType.SERVICE, serviceInstance );
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html
index f02ed6293..46807607d 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html
@@ -10,7 +10,7 @@
</svg-icon>
</span>
- <div class="header-col middleDetails" style="padding-top: 5px;padding-left: 13px;line-height: 100%;" *ngIf="isServiceFailed">
+ <div class="header-col middleDetails" style="padding-top: 7px;padding-left: 13px;line-height: 100%;" *ngIf="isServiceFailed">
<custom-popover class="failed-popover-wrap" [value]= "serviceStatusMessage" [placement]="'bottom'" [popoverType]="'error'">
<span [attr.data-tests-id]="'service-failed-msg'" class="failed-msg labelPosition" >Failed</span>
</custom-popover>
@@ -22,7 +22,9 @@
<div class="header-col middleDetails notShowOnCreateMode"
style="padding-top: 0px;padding-left: 13px;line-height: 100%;">
<span [attr.data-tests-id]="'orchStatusLabel'" class="service-instance-label labelPosition">Orch Status:</span>
- <span [attr.data-tests-id]="'orchStatusValue'" class="orch-status-value">{{serviceOrchStatus}}</span>
+ <span [attr.data-tests-id]="'orchStatusValue'"
+ [ngClass]="{'tag-status-value' :serviceOrchStatus?.toLowerCase()!= 'active'}"
+ class="orch-status-value">{{serviceOrchStatus}}</span>
</div>
<div class="quantity-container header-col middleDetails"
style="padding-top: 0px;padding-left: 13px;line-height: 100%;"
@@ -38,6 +40,8 @@
<div class="right-header">
+ <span class="action-status-type-header delete" [attr.data-tests-id]="'delete-status-type-header'" *ngIf="isDeleted === true">Delete</span>
+ <span class="action-status-type-header resume" [attr.data-tests-id]="'resume-status-type-header'" *ngIf="isResume === true">Resume</span>
<span class="menu-container notShowOnViewMode notShowOnRetryMode">
<span [attr.data-tests-id]="'openMenuBtn'" class="icon-browse" (click)="onContextMenu($event)"></span>
<context-menu>
@@ -46,7 +50,7 @@
<span class="icon-edit"></span>Edit</div>
</ng-template>
<ng-template *ngIf="mode === 'EDIT'" contextMenuItem
- (execute)="isDeleted=!isDeleted; drawingBoardHeaderService.deleteService(serviceModelId,isDeleted)">
+ (execute)="onDeleteUndoDeleteClick()">
<div [attr.data-tests-id]="'context-menu-header-delete-item'"><span class="icon-trash"></span>{{isDeleted ? 'Undo delete': 'Delete'}}</div>
</ng-template>
<ng-template *ngIf="mode !== 'CREATE'" contextMenuItem
@@ -60,6 +64,10 @@
</svg-icon></div>
<div style="padding-left: 12px;">Show Audit Info</div>
</ng-template>
+ <ng-template *ngIf="drawingBoardHeaderService?.showResumeService(serviceModelId)" contextMenuItem
+ (execute)="onResumeUndoResumeClick()">
+ <div [attr.data-tests-id]="'context-menu-header-resume-item'"><span class="icon-trash"></span>{{isResume ? 'Undo resume': 'Resume'}}</div>
+ </ng-template>
</context-menu>
</span>
<button [disabled]="drawingBoardHeaderService?.deployShouldBeDisabled(serviceModelId, mode)"
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss
index 1242f9429..353c1151f 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss
@@ -85,6 +85,13 @@
font-family: OpenSans-Regular;
font-size: 14px;
color: #191919;
+ &.tag-status-value {
+ background: #009fdb;
+ color: white;
+ border-radius: 2px;
+ text-align: center;
+ padding: 5px;
+ }
}
.scale-value {
font-family: OpenSans-Regular;
@@ -111,9 +118,25 @@
height: 45px;
}
}
+
.right-header {
display: flex;
align-items: center;
+ .action-status-type-header {
+ background: transparent;
+ font-family: OpenSans-SemiBold;
+ font-size: 12px;
+ border-radius: 50px;
+ border: 1px solid gray;
+ padding: 5px 20px;
+ margin-right: 10px;
+ &.delete {
+ color: red;
+ }
+ &.resume {
+ color: #009fdb;
+ }
+ }
.quantity-container {
.quantity-label {
padding-left: 10px;
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts
index 6e4391572..51f90534b 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts
@@ -39,6 +39,7 @@ export class DrawingBoardHeader {
mode : DrawingBoardModes = DrawingBoardModes.CREATE;
serviceOrchStatus: string;
isDeleted: boolean = false;
+ isResume: boolean = false;
store : NgRedux<AppState>;
drawingBoardPermissions : DrawingBoardPermissions;
drawingBoardHeaderService : DrawingBoardHeaderService;
@@ -122,7 +123,7 @@ export class DrawingBoardHeader {
type: PopupType.SERVICE,
uuidData: <any>{
type : PopupType.SERVICE,
- isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.instantiationType === 'Macro',
+ isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.vidNotions.instantiationType === 'Macro',
serviceId: this.serviceModelId,
popupService: this._servicePopupService
},
@@ -130,6 +131,32 @@ export class DrawingBoardHeader {
});
}
+ onDeleteUndoDeleteClick(){
+ this.cancelResume(this.serviceModelId);
+ this.isDeleted = !this.isDeleted;
+ this._drawingBoardHeaderService.deleteService(this.serviceModelId, this.isDeleted)
+ }
+
+ onResumeUndoResumeClick(){
+ this.cancelDelete(this.serviceModelId);
+ this.isResume = !this.isResume;
+ this._drawingBoardHeaderService.toggleResumeService(this.serviceModelId, this.isResume);
+ }
+
+ cancelDelete(serviceModelId: string) {
+ if (this.isDeleted) {
+ this.isDeleted = false;
+ this._drawingBoardHeaderService.deleteService(serviceModelId,this.isDeleted);
+ }
+ }
+
+ cancelResume(serviceModelId: string) {
+ if (this.isResume) {
+ this.isResume = false;
+ this._drawingBoardHeaderService.toggleResumeService(serviceModelId,this.isResume);
+ }
+ }
+
extractOwningEntityNameAccordingtoId(id:String): string {
let owningEntityName;
_.forEach(this.store.getState().service.categoryParameters.owningEntityList,(owningEntity: OwningEntity) => {
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
index bcf6753b9..76fc28a9e 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
@@ -85,7 +85,7 @@ describe('Generate path to old View/Edit ', () => {
});
test('deployShouldBeDisabled with validationCounter greater then 0',()=>{
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
service: {
serviceInstance : {
'serviceInstanceId' : {
@@ -94,12 +94,12 @@ describe('Generate path to old View/Edit ', () => {
}
}
});
- let result = service.deployShouldBeDisabled("serviceInstanceId");
+ let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
expect(result).toBeTruthy();
});
test('deployShouldBeDisabled with validationCounter is 0 and not dirty',()=>{
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
service: {
serviceInstance : {
'serviceInstanceId' : {
@@ -109,12 +109,12 @@ describe('Generate path to old View/Edit ', () => {
}
}
});
- let result = service.deployShouldBeDisabled("serviceInstanceId");
+ let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
expect(result).toBeFalsy();
});
test('deployShouldBeDisabled with validationCounter is 0 and dirty',()=>{
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
service: {
serviceInstance : {
'serviceInstanceId' : {
@@ -125,12 +125,12 @@ describe('Generate path to old View/Edit ', () => {
}
}
});
- let result = service.deployShouldBeDisabled("serviceInstanceId");
+ let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
expect(result).not.toBeTruthy();
});
test('deployShouldBeDisabled with validationCounter is 0 and not and action is None and dirty',()=>{
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
service: {
serviceInstance : {
'serviceInstanceId' : {
@@ -141,7 +141,7 @@ describe('Generate path to old View/Edit ', () => {
}
}
});
- let result = service.deployShouldBeDisabled("serviceInstanceId");
+ let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
expect(result).not.toBeTruthy();
});
@@ -157,8 +157,8 @@ describe('Generate path to old View/Edit ', () => {
expect(result).toEqual('REDEPLOY');
});
test('getButtonText',()=>{
- expect(service.getButtonText("VIEW")).toEqual('EDIT');
- expect(service.getButtonText("RETRY")).toEqual('REDEPLOY');
+ expect(service.getButtonText(DrawingBoardModes.VIEW)).toEqual('EDIT');
+ expect(service.getButtonText(DrawingBoardModes.RETRY)).toEqual('REDEPLOY');
});
const showEditServiceDataProvider = [
@@ -169,7 +169,7 @@ describe('Generate path to old View/Edit ', () => {
['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false],
['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
each(showEditServiceDataProvider).test('showEditService service with %s', (description, mode, action, enabled) => {
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
service: {
serviceInstance : {
'serviceInstanceId' : {
@@ -181,4 +181,49 @@ describe('Generate path to old View/Edit ', () => {
expect(service.showEditService(mode, 'serviceInstanceId')).toBe(enabled);
});
+
+ const showResumeServiceDataProvider = [
+ ['all conditions of resume- should show resume',true, 'MACRO', 'VPE', 'AssiGNed', true],
+ ['flag is disabled- should not show resume ',false, 'MACRO', 'VPE', 'AssiGNed', false],
+ ['transport service (PNF)- should not show resume', true, 'Macro', 'transport', 'Assigned', false],
+ ['instantiationType is a-la-carte- should not show resume', true, 'ALaCarte', 'VPE', 'Assigned', false],
+ ['orchestration Status is not assigned- should not show resume', true, 'Macro', 'VPE', 'Created', false],
+ ['orchestration Status is Inventoried - should show resume', true, 'Macro', 'VPE', 'iNventOriEd', true]
+ ];
+
+ each(showResumeServiceDataProvider).test('showResumeService when %s', (description, flagResumeMacroService,instantiationType, subscriptionServiceType, orchStatus, shouldShowResumeService) => {
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
+ global: {
+ flags:{
+ 'FLAG_1908_RESUME_MACRO_SERVICE': flagResumeMacroService
+ }
+ },
+ service: {
+ serviceInstance : {
+ 'serviceModelId' : {
+ 'vidNotions': {
+ 'instantiationType': instantiationType
+ },
+ 'subscriptionServiceType':subscriptionServiceType,
+ 'orchStatus': orchStatus
+ }
+ }
+ }
+ });
+ expect(service.showResumeService('serviceModelId')).toBe(shouldShowResumeService);
+
+ });
+
+
+ const toggleResumeServiceDataProvider = [
+ [ServiceInstanceActions.None, true],
+ [ServiceInstanceActions.Resume, false]
+ ];
+
+ each(toggleResumeServiceDataProvider).test('toggleResumeService - should call %s for resume/ undo Resume',(serviceAction, isResume)=>{
+ jest.spyOn(store, 'dispatch');
+ service.toggleResumeService("serviceInstanceId", isResume);
+ expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", serviceAction));
+ });
+
});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts
index 946c5cab5..7df2f3a3f 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts
@@ -11,6 +11,7 @@ import * as _ from 'lodash';
import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
import {DrawingBoardModes} from "../drawing-board.modes";
import {ServiceInstance} from "../../../shared/models/serviceInstance";
+import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
@Injectable()
export class DrawingBoardHeaderService{
@@ -38,7 +39,13 @@ export class DrawingBoardHeaderService{
showAuditInfo(serviceModelId) : void {
let instance: ServiceInstance = this.store.getState().service.serviceInstance[serviceModelId];
let model = new ServiceModel(this.store.getState().service.serviceHierarchy[serviceModelId]);
- AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance, trackById: instance.trackById});
+ AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance});
+ }
+
+ toggleResumeService(serviceModelId, isResume: boolean) : void {
+ const action: ServiceInstanceActions = isResume ? ServiceInstanceActions.Resume : ServiceInstanceActions.None;
+ this.store.dispatch(addServiceAction(serviceModelId, action));
+
}
@@ -49,7 +56,7 @@ export class DrawingBoardHeaderService{
const serviceInstance = this.store.getState().service.serviceInstance[serviceInstanceId];
if(!_.isNil(serviceInstance)){
const validationCounter = serviceInstance.validationCounter;
- if (!_.isNil(this.errorMsgService.errorMsgObject)&& mode !== DrawingBoardModes.RETRY_EDIT) return true;
+ if (!_.isNil(this.errorMsgService.errorMsgObject) && mode !== DrawingBoardModes.RETRY_EDIT) return true;
if(validationCounter > 0) return true;
if(serviceInstance.action !== ServiceInstanceActions.None) return false;
if(mode === DrawingBoardModes.RETRY_EDIT) return false;
@@ -83,4 +90,18 @@ export class DrawingBoardHeaderService{
return mode === DrawingBoardModes.CREATE || ((mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.EDIT)&&
!_.isNil(serviceInstance) && !_.isNil(serviceInstance[serviceModelId])&& serviceInstance[serviceModelId].action === ServiceInstanceActions.Create);
}
+
+ showResumeService(serviceModelId: string): boolean {
+ const serviceInstance: ServiceInstance = !_.isNil(this.store.getState().service.serviceInstance)? this.store.getState().service.serviceInstance[serviceModelId] : null;
+ if (serviceInstance)
+ {
+ return FeatureFlagsService.getFlagState(Features.FLAG_1908_RESUME_MACRO_SERVICE, this.store) &&
+ serviceInstance.vidNotions.instantiationType.toLowerCase() === "macro" &&
+ serviceInstance.subscriptionServiceType.toLowerCase() !== "transport" &&
+ serviceInstance.orchStatus &&
+ (serviceInstance.orchStatus.toLowerCase() === "assigned" ||
+ serviceInstance.orchStatus.toLowerCase() === "inventoried");
+ }
+ return false;
+ }
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts
index 1221cef5f..8b7f1a4f5 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts
@@ -83,11 +83,11 @@ describe('Drag and drop service', () => {
"action": "Create",
"inMaint": false,
"name": "yoav2_001",
- "modelName": "VF_vMee 0",
+ "modelName": "VF_vGeraldine 0",
"type": "VF",
"isEcompGeneratedNaming": true,
- "networkStoreKey": "VF_vMee 0:0001",
- "vnfStoreKey": "VF_vMee 0:0001",
+ "networkStoreKey": "VF_vGeraldine 0:0001",
+ "vnfStoreKey": "VF_vGeraldine 0:0001",
"typeName": "VNF",
"menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
"isFailed": false,
@@ -106,11 +106,11 @@ describe('Drag and drop service', () => {
"id": 6654971919519,
"action": "Create",
"name": "VFModule1",
- "modelName": "vf_vmee0..VfVmee..base_vmme..module-0",
+ "modelName": "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
"type": "VFmodule",
"isEcompGeneratedNaming": true,
"dynamicInputs": [],
- "dynamicModelName": "vf_vmee0..VfVmee..base_vmme..module-0bykqx",
+ "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0bykqx",
"typeName": "M",
"menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
"isFailed": false,
@@ -130,11 +130,11 @@ describe('Drag and drop service', () => {
"id": 987761655742,
"action": "Create",
"name": "VNFModule3",
- "modelName": "vf_vmee0..VfVmee..vmme_gpb..module-2",
+ "modelName": "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2",
"type": "VFmodule",
"isEcompGeneratedNaming": true,
"dynamicInputs": [],
- "dynamicModelName": "vf_vmee0..VfVmee..vmme_gpb..module-2fjrrc",
+ "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2fjrrc",
"typeName": "M",
"menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
"isFailed": false,
@@ -154,11 +154,11 @@ describe('Drag and drop service', () => {
"id": 873798901625,
"action": "Create",
"name": "VFModule2",
- "modelName": "vf_vmee0..VfVmee..vmme_vlc..module-1",
+ "modelName": "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1",
"type": "VFmodule",
"isEcompGeneratedNaming": true,
"dynamicInputs": [],
- "dynamicModelName": "vf_vmee0..VfVmee..vmme_vlc..module-1djjni",
+ "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1djjni",
"typeName": "M",
"menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
"isFailed": false,
@@ -181,11 +181,11 @@ describe('Drag and drop service', () => {
"action": "Create",
"inMaint": false,
"name": "yoav2",
- "modelName": "VF_vMee 0",
+ "modelName": "VF_vGeraldine 0",
"type": "VF",
"isEcompGeneratedNaming": true,
- "networkStoreKey": "VF_vMee 0",
- "vnfStoreKey": "VF_vMee 0",
+ "networkStoreKey": "VF_vGeraldine 0",
+ "vnfStoreKey": "VF_vGeraldine 0",
"typeName": "VNF",
"menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
"isFailed": false,
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts
index d0715982c..6be5036b2 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts
@@ -1,4 +1,4 @@
-import {AfterViewInit, Component, EventEmitter, OnInit, Output, ViewChild,} from '@angular/core';
+import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild,} from '@angular/core';
import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu';
import {Constants} from '../../../shared/utils/constants';
import {IDType, ITreeNode} from "angular-tree-component/dist/defs/api";
@@ -24,7 +24,10 @@ import * as _ from 'lodash';
import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
import {DragAndDropService} from "./dragAndDrop/dragAndDrop.service";
import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
-import {PopoverPlacement} from "../../../shared/components/popover/popover.component";
+import {ComponentInfoService} from "../component-info/component-info.service";
+import {ComponentInfoModel} from "../component-info/component-info-model";
+import {ObjectToModelTreeService} from "../objectsToTree/objectToModelTree/objectToModelTree.service";
+import {DrawingBoardModes} from "../drawing-board.modes";
@Component({
selector: 'drawing-board-tree',
@@ -37,10 +40,14 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
_store: NgRedux<AppState>;
duplicateService: DuplicateService;
drawingBoardTreeService: DrawingBoardTreeService;
+ objectToModelTreeService : ObjectToModelTreeService;
+ objectToInstanceTreeService : ObjectToInstanceTreeService;
errorMsgService: ErrorMsgService;
isFilterEnabled: boolean = false;
filterValue: string = '';
contextMenuOptions: TreeNodeContextMenuModel[];
+
+ @Input() pageMode : DrawingBoardModes;
static triggerDeleteActionService: Subject<string> = new Subject<string>();
static triggerUndoDeleteActionService: Subject<string> = new Subject<string>();
static triggerreCalculateIsDirty: Subject<string> = new Subject<string>();
@@ -62,13 +69,16 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
private _highlightPipe: HighlightPipe,
private _objectToInstanceTreeService: ObjectToInstanceTreeService,
private _sharedTreeService: SharedTreeService,
- private _dragAndDropService : DragAndDropService) {
+ private _dragAndDropService : DragAndDropService,
+ private _objectToModelTreeService : ObjectToModelTreeService,
+ private _componentInfoService: ComponentInfoService) {
this.errorMsgService = _errorMsgService;
this.duplicateService = _duplicateService;
this.drawingBoardTreeService = _drawingBoardTreeService;
this.contextMenuOptions = _drawingBoardTreeService.generateContextMenuOptions();
-
+ this.objectToModelTreeService = _objectToModelTreeService;
+ this.objectToInstanceTreeService = _objectToInstanceTreeService;
DrawingBoardTreeComponent.triggerDeleteActionService.subscribe((serviceModelId) => {
this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(this.nodes, serviceModelId, (node, serviceModelId)=>{
this.drawingBoardTreeService.deleteActionService(this.nodes, serviceModelId);
@@ -102,6 +112,10 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
this.filterValue = updateData.filterValue;
}
+ isLinkedInstance = (node) : boolean => {
+ return !_.isNil(node) && node.parentType === "VRF" || node.parentType === "VnfGroup";
+ };
+
@Output()
highlightNode: EventEmitter<number> = new EventEmitter<number>();
@@ -138,7 +152,7 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
updateTree() {
const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId];
- this.nodes = this._objectToInstanceTreeService.convertServiceInstanceToTreeData(serviceInstance, this.store.getState().service.serviceHierarchy[this.serviceModelId]);
+ this.nodes = this._objectToInstanceTreeService.convertServiceInstanceToTreeData(serviceInstance, this.store.getState().service.serviceHierarchy[this.serviceModelId]).filter((item) => item !== null);
console.log('right nodes', this.nodes);
}
@@ -194,7 +208,11 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
this._sharedTreeService.setSelectedVNF(node);
this.highlightNode.emit(node.data.modelUniqueId);
if (FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store)) {
- node.data.onSelectedNode(node);
+ const serviceHierarchy = this._store.getState().service.serviceHierarchy[this.serviceModelId];
+ const model = node.data.getModel(node.data.modelName, node.data, serviceHierarchy);
+ const modelInfoItems = node.data.getInfo(model, node.data);
+ const componentInfoModel: ComponentInfoModel = this._sharedTreeService.addGeneralInfoItems(modelInfoItems, node.data.componentInfoType, model, node.data);
+ ComponentInfoService.triggerComponentInfoChange.next(componentInfoModel);
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
index 8af909ffc..e1d88a696 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
@@ -1,33 +1,54 @@
<error-msg></error-msg>
<div class="drawing-board-tree" style="height: calc(100vh - 55px);">
<div *ngIf="nodes?.length == 0" style="text-align: center; margin-top: 50px;">
- <no-content-message-and-icon class="span-over"
+
+ <no-content-message-and-icon *ngIf="objectToModelTreeService.numberOfPlusButton != 0" class="span-over"
data-title="Please add objects (VNFs, network, modules etc.)"
title2="from the left tree to design the service instance"
subtitle="Once done, click Deploy to start instantiation"
iconPath="./assets/img/UPLOAD.svg"
iconClass="upload-icon-service-planing"></no-content-message-and-icon>
+
+ <no-content-message-and-icon *ngIf="objectToModelTreeService.numberOfPlusButton == 0" class="span-over"
+ data-title="No objects to add in this service instance."
+ title2=""
+ subtitle="Click Deploy to start instantiation"
+ iconPath="./assets/img/UPLOAD.svg"
+ iconClass="upload-icon-service-planing"></no-content-message-and-icon>
</div>
<div class="tree-header" *ngIf="nodes?.length > 0">
<div class="title-tree">Instance:</div>
<search-component (updateNodes)="updateNodes($event)"
- [nodes]="nodes" [tree]="tree"
- [inputTestId]="'search-right-tree'"
- *ngIf="drawingBoardTreeService.isViewEditFlagTrue()"></search-component>
+ [nodes]="nodes" [tree]="tree"
+ [inputTestId]="'search-right-tree'"
+ *ngIf="drawingBoardTreeService.isViewEditFlagTrue()"></search-component>
</div>
<tree-root [attr.data-tests-id]="'drawing-board-tree'" #tree [nodes]="nodes" [options]="options"
id="drawing-board-tree">
- <ng-template #treeNodeTemplate let-node let-index="index" >
- <div [attr.id]="getNodeId(node)" [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName" (click)="selectNode(node)" >
- <custom-popover class="failed-popover-wrap" *ngIf= "node?.data?.isFailed" [value]= "node?.data?.statusMessage" [placement]="'left'" [popoverType]="'error'">
- <div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf= "node?.data?.isFailed">Failed</div>
- </custom-popover>
- <div class="instance-type" style="position: relative;">
- <div *ngIf="node?.data?.action == 'Create'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
- <div><span title="{{node.data.type}}" [attr.data-tests-id]="'node-type-indicator'">{{node?.data?.typeName}}</span></div>
+ <ng-template #treeNodeTemplate let-node let-index="index">
+ <div class="main-row" [attr.id]="getNodeId(node)" [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName"
+ (click)="selectNode(node)"
+ [ngClass]="{'isLinked' : isLinkedInstance(node?.data)}">
+ <custom-popover class="failed-popover-wrap" *ngIf="node?.data?.isFailed" [value]="node?.data?.statusMessage"
+ [placement]="'left'" [popoverType]="'error'">
+ <div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf="node?.data?.isFailed">Failed
+ </div>
+ </custom-popover>
+ <div class="instance-type" style="position: relative;border: 1px solid #D2D2CD;">
+ <div *ngIf="node?.data?.action == 'Create'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
+ <div><span title="{{node.data.type}}"
+ [attr.data-tests-id]="'node-type-indicator'">{{node?.data?.typeName}}</span></div>
+ <div *ngIf="isLinkedInstance(node?.data)">
+ <svg-icon
+ [ngClass]="'link'"
+ class="icon-link"
+ [size]="'small'"
+ [name]="'link'">
+ </svg-icon>
</div>
- <div class="model-info">
+ </div>
+ <div class="model-info" [ngClass]="{'rightBorder' : pageMode === 'VIEW'}">
<span class="header-info">
<span class="property-name">
<span class="auto-name"
@@ -37,15 +58,16 @@
></span>
</span>
</span>
- <tree-node-header-properties
- *ngIf="(node?.data?.action !== 'Create' || node?.data?.parentType === 'VnfGroup') && !node?.data?.isFailed"
- [properties]="node.data.statusProperties"></tree-node-header-properties>
- </div>
- <div class="scaling invalid" *ngIf="node?.data?.errors?.scalingError" [attr.data-tests-id]="'scaling-policy'">
- <span>Limit</span><span>{{node?.data?.limitMembers}}</span>
- </div>
- <div class="model-actions notShowOnViewMode">
+ <tree-node-header-properties
+ *ngIf="(node?.data?.action !== 'Create' || node?.data?.parentType === 'VnfGroup') && !node?.data?.isFailed"
+ [properties]="node.data.statusProperties"></tree-node-header-properties>
+ </div>
+ <div class="scaling invalid" *ngIf="node?.data?.errors?.scalingError" [attr.data-tests-id]="'scaling-policy'">
+ <span>Limit</span><span>{{node?.data?.limitMembers}}</span>
+ </div>
+ <div class="model-actions notShowOnViewMode ">
<span class="icon-browse"
+ [ngClass]="{'isLinked' : isLinkedInstance(node?.data)}"
[attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-menu-btn'"
(click)="onContextMenu($event, node)">
<context-menu>
@@ -66,12 +88,12 @@
</ng-template>
</context-menu>
</span>
- <span
- *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)"
- tooltip="{{ missingDataTooltip }}"
- tooltipPlacement="left"
- [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"
- class="icon-alert" >
+ <span
+ *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)"
+ tooltip="{{ missingDataTooltip }}"
+ tooltipPlacement="left"
+ [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"
+ class="icon-alert">
<svg-icon
[mode]="'warning'"
[testId]="'icon-alert'"
@@ -79,16 +101,17 @@
[name]="'alert-triangle-o'">
</svg-icon>
</span>
+ <span *ngIf="drawingBoardTreeService.isVFModuleMissingData(node, serviceModelId)" class="icon-alert"
+ tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"
+ [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>
+ </div>
- <!--<span *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)" class="icon-alert"-->
- <!--tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"-->
- <!--[attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>-->
- <span *ngIf="drawingBoardTreeService.isVFModuleMissingData(node, serviceModelId)" class="icon-alert"
- tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"
- [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>
- </div>
- </div >
- </ng-template>
+ <div class="action-status">
+ <span class="action-status-type delete" [attr.data-tests-id]="'delete-status-type'" [ngStyle]="{ 'opacity': node.data.action.split('_').pop() !== 'Delete' ? '0' : '1'}">Delete</span>
+ </div>
+
+ </div>
+ </ng-template>
</tree-root>
</div>
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss
index be9f9f2d4..e08e69e2e 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss
@@ -36,6 +36,11 @@
}
}
+
+.icon-browse.isLinked {
+ display: none !important;
+}
+
#RETRY_EDIT drawing-board-tree tree-node-collection > div,
#RETRY drawing-board-tree tree-node-collection > div {
margin-top: 0px;
@@ -98,11 +103,54 @@ drawing-board-tree {
@include highlight-toggle-children;
.node-content-wrapper-focused,
.node-content-wrapper-active {
+ background: transparent !important;
+ .main-row {
+ //background-color: #E6F6FB;
+ //color: #009FDB;
+ //border-right: none !important;
+ //border: #009FDB 1px solid;
+ }
+ .instance-type {
+ background-color: #E6F6FB;
+ color: #009FDB;
+ border-right: none !important;
+ border: #009FDB 1px solid !important;
+ }
+
+ .isLinked {
+ .model-info {
+ border-top: 1px #009FDB dashed !important;
+ border-bottom: 1px #009FDB dashed !important;
+ }
+ .model-info.rightBorder {
+ border-right: 1px #009FDB dashed !important ;
+ }
+ }
+ .model-info {
+ background-color: #E6F6FB;
+ color: #009FDB;
+ border-right: none !important;
+ border: #009FDB 1px solid;
+ }
+
+ .model-info.rightBorder {
+ border-right: #009FDB 1px solid !important;
+ }
+
+ .model-actions {
+ background-color: #E6F6FB;
+ color: #009FDB;
+ color: #009FDB;
+ border-left: none !important;
+ border: #009FDB 1px solid;
+ }
+
@include highlight-toggle-children;
- @include highlight(#E6F6FB, #009FDB);
.property-name,.instance-type {
color: #009FDB !important;
position: relative;
+ background-color: #E6F6FB;
+ color: #009FDB !important;
}
.status-properties {
.status-property-value,.status-property-name {
@@ -119,7 +167,7 @@ drawing-board-tree {
}
& .tree-node-expanded {
> tree-node-wrapper .node-wrapper {
- box-shadow: 0 0px 2px rgba(90,90,90,0.24);
+
}
}
@@ -136,7 +184,7 @@ drawing-board-tree {
}
.tree-node.tree-node-expanded > tree-node-wrapper{
- box-shadow: 0 2px 2px 0 rgba(0,0,0,.1);
+
position: relative;
z-index: 1;
display: block;
@@ -146,7 +194,11 @@ drawing-board-tree {
height: 45px;
&:hover {
.node-content-wrapper:not(.node-content-wrapper-focused) {
- background: #F2F2F2;
+ .instance-type ,
+ .model-info ,
+ .model-actions {
+ background: #F2F2F2;
+ }
.icon-browse:before {
color: #5A5A5A;
}
@@ -164,11 +216,12 @@ drawing-board-tree {
display: block;
height: 100%;
span.toggle-children {
+ height: 43px;
display: flex;
width: 45px;
+ margin-top: 1px;
padding: 0;
top: 0;
- height: inherit;
background-image: none;
background-color: white;
border: 1px solid #D2D2D2;
@@ -196,18 +249,44 @@ drawing-board-tree {
width:45px;
}
}
+ .node-content-wrapper-active,
+ .node-content-wrapper.node-content-wrapper-active:hover,
+ .node-content-wrapper-active.node-content-wrapper-focused {
+ background: white !important;
+ }
+ .node-content-wrapper-active.node-content-wrapper-focused {
+ background: white !important;
+ }
.node-content-wrapper {
+
padding: 0;
background: none;
box-shadow: none;
border-radius: 0;
- border: 1px solid #D2D2D2;
+ border: 1px solid white;
height: 100%;
flex: 1;
.resourceGroup {
border: 1px dashed #D2D2D2 !important;
}
+
+ .isLinked {
+ .instance-type {
+ border-style: dashed !important;
+ }
+
+ .model-info {
+ border: 1px #D2D2CD dashed !important;
+ border-right: none !important;
+ }
+
+ .model-actions {
+ border-style: dashed !important;
+ border-left-style: none !important;
+ }
+ }
+
tree-node-content {
> div {
height: 100%;
@@ -217,14 +296,18 @@ drawing-board-tree {
.instance-type {
width: 40px;
height: 100%;
- padding-top: 16px;
text-transform: uppercase;
- text-align: center;
border-right: 1px solid #D2D2D2;
word-break: break-all;
color: #959595;
font-size: 13px;
font-family: OpenSans-SemiBold;
+ display: flex;
+ text-align: center;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
.newIcon {
background: #45B16D;
position: absolute;
@@ -247,9 +330,42 @@ drawing-board-tree {
display: block;
}
}
+ .node-content-wrapper-active {
+ .action-status {
+ background-color: white !important;
+ }
+ }
+ .action-status {
+ padding-left: 10px;
+ background-color: white !important;
+ line-height: 42px;
+ width: 95px;
+ min-width: 95px;
+ .action-status-type.delete {
+ background: transparent;
+ font-family: OpenSans-SemiBold;
+ font-size: 12px;
+ color: red;
+ border-radius: 50px;
+ border: 1px solid gray;
+ padding: 5px 20px;
+ }
+ }
+
+ .model-info.rightBorder {
+ border-right: 1px solid #D2D2CD !important;
+ }
.model-info {
+ border: 1px solid #D2D2CD;
+ line-height: normal;
padding-left: 16px;
width: 100%;
+ height: 100%;
+ flex-direction: column;
+ display: flex;
+ justify-content: center;
+ border-right: none;
+
.property-name {
font-family: OpenSans-SemiBold;
font-size: 13px;
@@ -285,9 +401,17 @@ drawing-board-tree {
margin-right: 3px;
}
}
+
.model-actions {
+ :hover {
+ background: transparent !important;
+ }
display: flex;
align-items: center;
+ border: 1px solid #D2D2CD;
+ line-height: normal;
+ height: 100%;
+ border-left: none;
.icon-browse {
padding: 0;
width: 30px;
@@ -298,11 +422,11 @@ drawing-board-tree {
display: none;
}
&:hover:before {
- color: #009FDB;
+ //color: #009FDB;
}
&:focus:before,
&:active:before {
- color: #009FDB;
+ //color: #009FDB;
}
}
@@ -319,7 +443,7 @@ drawing-board-tree {
.tree-children {
padding-left: 45px;
.model-info span:first-child {
- flex: 1.1 !important;
+ //flex: 1.1 !important;
}
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts
index 1b913cfe9..b804342c6 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts
@@ -7,39 +7,39 @@ import {NgRedux} from "@angular-redux/store";
import {DrawingBoardTreeService, TreeNodeContextMenuModel} from "./drawing-board-tree.service";
import {ITreeNode} from "angular-tree-component/dist/defs/api";
- class MockAppStore<T>{
- getState() {
+class MockAppStore<T> {
+ getState() {
return {
- service : {
- serviceInstance : {
- "serviceInstanceId" : {
- vnfs : {
- "vnfStoreKey" : {
- isMissingData : true,
- vfModules : {
- "vfModulesName" : {
- "vfModulesName" : {
- isMissingData : true
- }
- }
- }
- },
-
- "vnfStoreKey1" : {
- isMissingData : false,
- vfModules : {
- "vfModulesName" : {
- "vfModulesName" : {
- isMissingData : false
- }
- }
- }
- }
- }
- }
- }
- }
- }
+ service: {
+ serviceInstance: {
+ "serviceInstanceId": {
+ vnfs: {
+ "vnfStoreKey": {
+ isMissingData: true,
+ vfModules: {
+ "vfModulesName": {
+ "vfModulesName": {
+ isMissingData: true
+ }
+ }
+ }
+ },
+
+ "vnfStoreKey1": {
+ isMissingData: false,
+ vfModules: {
+ "vfModulesName": {
+ "vfModulesName": {
+ isMissingData: false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
}
@@ -65,82 +65,81 @@ describe('Drawing board tree Service', () => {
})().then(done).catch(done.fail));
-
-
test('generateContextMenuOptions should return list of optional context menu', () => {
- const options : TreeNodeContextMenuModel[] = service.generateContextMenuOptions();
- const expected : TreeNodeContextMenuModel[] = [
+ const options: TreeNodeContextMenuModel[] = service.generateContextMenuOptions();
+ const expected: TreeNodeContextMenuModel[] = [
new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'),
new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'),
new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'),
new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
- new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete')
+ new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete'),
+ new TreeNodeContextMenuModel('changeAssociations', 'context-menu-changeAssociations', 'Change Associations', 'edit-file-o')
];
- expect(options.length).toEqual(7);
+ expect(options.length).toEqual(8);
expect(options).toEqual(expected);
});
test('isVNFMissingData should return true if vnf isMissingData = true', () => {
- let node : ITreeNode = <any>{
- data : {
- type : 'VF',
- vnfStoreKey : "vnfStoreKey"
+ let node: ITreeNode = <any>{
+ data: {
+ type: 'VF',
+ vnfStoreKey: "vnfStoreKey"
}
};
- let result : boolean = service.isVNFMissingData(node, "serviceInstanceId");
+ let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
expect(result).toBeTruthy();
});
test('isVNFMissingData should return false if vnf has isMissingData = false', () => {
- let node : ITreeNode = <any>{
- data : {
- type : 'VFModule',
- modelName : "vfModulesName",
- dynamicModelName : "vfModulesName",
- parent : {
- vnfStoreKey : "vnfStoreKey1",
- type : 'VF'
+ let node: ITreeNode = <any>{
+ data: {
+ type: 'VFModule',
+ modelName: "vfModulesName",
+ dynamicModelName: "vfModulesName",
+ parent: {
+ vnfStoreKey: "vnfStoreKey1",
+ type: 'VF'
}
}
};
- let result : boolean = service.isVNFMissingData(node, "serviceInstanceId");
+ let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
expect(result).toBeFalsy();
});
test('isVFModuleMissingData should return true if vnfModule has isMissingData = true', () => {
- let node : ITreeNode = <any>{
- data : {
- type : 'VFModule',
- modelName : "vfModulesName",
- dynamicModelName : "vfModulesName",
- parent : {
- vnfStoreKey : "vnfStoreKey",
- type : 'VF'
+ let node: ITreeNode = <any>{
+ data: {
+ type: 'VFModule',
+ modelName: "vfModulesName",
+ dynamicModelName: "vfModulesName",
+ parent: {
+ vnfStoreKey: "vnfStoreKey",
+ type: 'VF'
}
}
};
- let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
+ let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
expect(result).toBeFalsy();
});
test('isVFModuleMissingData should return false if vnfModule has isMissingData = false', () => {
- let node : ITreeNode = <any>{
- data : {
- type : 'VFModule',
- modelName : "vfModulesName",
- dynamicModelName : "vfModulesName",
- parent : {
- vnfStoreKey : "vnfStoreKey1",
- type : 'VF'
+ let node: ITreeNode = <any>{
+ data: {
+ type: 'VFModule',
+ modelName: "vfModulesName",
+ dynamicModelName: "vfModulesName",
+ parent: {
+ vnfStoreKey: "vnfStoreKey1",
+ type: 'VF'
}
}
};
- let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
+ let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
expect(result).toBeFalsy();
});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
index 17f761c41..acf622463 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
@@ -42,7 +42,8 @@ export class DrawingBoardTreeService {
new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
- new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete')
+ new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete'),
+ new TreeNodeContextMenuModel('changeAssociations', 'context-menu-changeAssociations', 'Change Associations', 'edit-file-o')
];
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts
index 81251cb1a..3483885b5 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts
@@ -1,8 +1,8 @@
-import { DuplicateService } from './duplicate.service';
-import { LogService } from '../../../shared/utils/log/log.service';
-import { NgRedux } from '@angular-redux/store';
+import {DuplicateService} from './duplicate.service';
+import {LogService} from '../../../shared/utils/log/log.service';
+import {NgRedux} from '@angular-redux/store';
import {ITreeNode} from "angular-tree-component/dist/defs/api";
-import { SdcUiServices} from "onap-ui-angular";
+import {SdcUiServices} from "onap-ui-angular";
import {IModalConfig} from "onap-ui-angular/dist/components/common";
import {AppState} from "../../../shared/store/reducers";
import {getTestBed, TestBed} from "@angular/core/testing";
@@ -121,7 +121,6 @@ describe('Drawing board tree service', () => {
});
test('canDuplicate VNF should return true', () => {
- sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
let node : ITreeNode = <any> {data : {type : 'VF'}};
let result = service.canDuplicate(node);
@@ -129,7 +128,6 @@ describe('Drawing board tree service', () => {
});
test('canDuplicate Network should return true', () => {
- sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
let node : ITreeNode = <any> {data : {type : 'VL'}};
let result = service.canDuplicate(node);
@@ -137,7 +135,6 @@ describe('Drawing board tree service', () => {
});
test('canDuplicate VFModule should return false', () => {
- sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
let node : ITreeNode = <any> {data : {type : 'VFModule'}};
let result = service.canDuplicate(node);
@@ -154,14 +151,14 @@ describe('Drawing board tree service', () => {
test('Duplicate multi vnfs should save multi vnfs in redux', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"rrr": "",
"ttt": ""
};
let newVnfs = service.cloneVnf(<any>{
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi": {
"instanceName": "rrr",
"volumeGroupName": "ttt"
}
@@ -169,17 +166,17 @@ describe('Drawing board tree service', () => {
},
"originalName": null,
"trackById": "pfs1f0len3",
- "instanceName": "2017488_ADIODvPE"
- }, "2017-488_ADIOD-vPE 0");
+ "instanceName": "2017488_PASQUALEvPE"
+ }, "2017-488_PASQUALE-vPE 0");
- expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_001");
- expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_001");
- expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_001");
+ expect(newVnfs.instanceName).toBe("2017488_PASQUALEvPE_001");
+ expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_001");
+ expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_001");
newVnfs = service.cloneVnf(<any>{
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi": {
"instanceName": "rrr",
"volumeGroupName": "ttt"
}
@@ -187,17 +184,17 @@ describe('Drawing board tree service', () => {
},
"originalName": null,
"trackById": "pfs1f0len3",
- "instanceName": "2017488_ADIODvPE"
- }, "2017-488_ADIOD-vPE 0");
+ "instanceName": "2017488_PASQUALEvPE"
+ }, "2017-488_PASQUALE-vPE 0");
- expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_002");
- expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_002");
- expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_002");
+ expect(newVnfs.instanceName).toBe("2017488_PASQUALEvPE_002");
+ expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_002");
+ expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_002");
});
test('ensure name is unique - send new name - shouldn\'t change name', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"uniqueinstancename": ""
};
const name = "uniqueInstanceName-1";
@@ -207,7 +204,7 @@ describe('Drawing board tree service', () => {
test('ensure name is unique send existing name should change name', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"uniqueinstancename-1": ""
};
const name = "uniqueInstanceName-1";
@@ -217,7 +214,7 @@ describe('Drawing board tree service', () => {
test('isAlreadyExist - send new name should return false', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"uniqueinstancename": ""
};
const name = "uniqueinstancename-1";
@@ -227,7 +224,7 @@ describe('Drawing board tree service', () => {
test('isAlreadyExist - send existing name should return true', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"uniqueinstancename-1": ""
};
const name = "uniqueinstancename-1";
@@ -237,7 +234,7 @@ describe('Drawing board tree service', () => {
test('isAlreadyExist - send existing name case insensitive should return true', () => {
service.existingNames = {
- "2017488_adiodvpe": "",
+ "2017488_pasqualevpe": "",
"uniqueinstancename-1": ""
};
const name = "uniqueInstanceName-1";
@@ -256,7 +253,7 @@ describe('Drawing board tree service', () => {
});
test('generateVNFUniqueName should return the next free number', () => {
- const vnfName: string = "VF_vMee 0";
+ const vnfName: string = "VF_vGeraldine 0";
let result: string = service.generateUniqueStoreKey(
"6e59c5de-f052-46fa-aa7e-2fca9d674c44",
vnfName,
@@ -380,7 +377,7 @@ describe('Drawing board tree service', () => {
});
function getExistingVNFs(){
- return {"VF_vMee 0":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"}},"VF_vMee 0:0001":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"},"VF_vMee 0:0002":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"}}
+ return {"VF_vGeraldine 0":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"}},"VF_vGeraldine 0:0001":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"},"originalName":"VF_vGeraldine 0"},"VF_vGeraldine 0:0002":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"},"originalName":"VF_vGeraldine 0"}}
}
function getStoreState(){
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts
index e695edf86..5fb5f0b15 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts
@@ -1,15 +1,14 @@
-import { Injectable } from '@angular/core';
-import { ITreeNode } from 'angular-tree-component/dist/defs/api';
-import { AppState } from '../../../shared/store/reducers';
-import { LogService } from '../../../shared/utils/log/log.service';
-import { NgRedux } from '@angular-redux/store';
+import {Injectable} from '@angular/core';
+import {ITreeNode} from 'angular-tree-component/dist/defs/api';
+import {AppState} from '../../../shared/store/reducers';
+import {LogService} from '../../../shared/utils/log/log.service';
+import {NgRedux} from '@angular-redux/store';
import {VnfInstance} from "../../../shared/models/vnfInstance";
import {VfModuleMap} from "../../../shared/models/vfModulesMap";
import * as _ from "lodash";
import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
import {TypeNodeInformation} from "../typeNodeInformation.model";
-import { SdcUiServices} from "onap-ui-angular";
-import { SdcUiCommon} from "onap-ui-angular";
+import {SdcUiCommon, SdcUiServices} from "onap-ui-angular";
import {changeInstanceCounter, duplicateBulkInstances} from "../../../shared/storeUtil/utils/general/general.actions";
import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
@@ -39,7 +38,7 @@ export class DuplicateService {
canDuplicate(node: ITreeNode): boolean {
let reduxState = <AppState>JSON.parse(sessionStorage.getItem('reduxState'));
- return reduxState.global.flags['FLAG_DUPLICATE_VNF'] && (node.data.type === 'VF' || node.data.type === 'VL');
+ return node.data.type === 'VF' || node.data.type === 'VL';
}
isEnabled(node: ITreeNode, store: NgRedux<AppState>, serviceId : string): boolean {
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts
index 51b6cfacb..5ae64376a 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts
@@ -1,5 +1,7 @@
import {ITreeNode} from "angular-tree-component/dist/defs/api";
import {AvailableNodeIcons} from "../../available-models-tree/available-models-tree.service";
+import {ComponentInfoModel, ComponentInfoType} from "../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../shared/components/model-information/model-information.component";
export interface ILevelNodeInfo {
/** Name of the key inside the serviceHierarchy object **/
@@ -9,14 +11,13 @@ export interface ILevelNodeInfo {
type: string;
/** Child name inside the of the serviceHierarchy object (if exist) **/
- childName?: string;
-
- /** Child type the of object (if exist) **/
- childType?: string;
+ childNames?: string[];
/** model type name **/
typeName?: string;
+ componentInfoType? :ComponentInfoType;
+
/** is instance failed **/
isFailed?: boolean;
@@ -86,7 +87,7 @@ export interface ILevelNodeInfo {
/************************************
* return child model option object
***********************************/
- getNextLevelObject(): any;
+ getNextLevelObject(type?:string): any;
/***********************************************************
* open popup
@@ -116,6 +117,10 @@ export interface ILevelNodeInfo {
************************************************************/
getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } };
-
- onSelectedNode(node : ITreeNode): void
+ /*******************************************************************************************
+ * should generate array of node information
+ * @param model - node model
+ * @param node - current ITrees node
+ *****************************************************************************************/
+ getInfo?(model, instance): ModelInformationItem[];
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts
new file mode 100644
index 000000000..f8ce819f7
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts
@@ -0,0 +1,1207 @@
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {CollectionResourceModelInfo} from "./collectionResource.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import {NcfModelInfo} from "../ncf/ncf.model.info";
+
+describe('Collection Resource Model Info', () => {
+ let injector;
+ let _componentInfoService : ComponentInfoService;
+
+ let _store : NgRedux<AppState>;
+ let collectionResourceModel: CollectionResourceModelInfo;
+ let _sharedTreeService : SharedTreeService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule, NgReduxTestingModule],
+ providers: [
+ MockNgRedux,
+ DynamicInputsService,
+ SharedTreeService,
+ DuplicateService,
+ AaiService,
+ HttpClient,
+ HttpHandler,
+ FeatureFlagsService,
+ ComponentInfoService,
+ IframeService]
+ }).compileComponents();
+
+ injector = getTestBed();
+ _store = injector.get(NgRedux);
+ _componentInfoService = injector.get(ComponentInfoService);
+
+ collectionResourceModel = new CollectionResourceModelInfo(_store, _sharedTreeService);
+
+
+ });
+
+ test('collection resource should be defined', () => {
+ expect(collectionResourceModel).toBeDefined();
+ });
+
+ test('collectionResourceModel should defined extra details', () => {
+ expect(collectionResourceModel.name).toEqual('collectionResources');
+ expect(collectionResourceModel.type).toEqual('collection Resource');
+ expect(collectionResourceModel.childNames).toEqual(['ncfs']);
+ expect(collectionResourceModel.componentInfoType).toEqual(ComponentInfoType.COLLECTION_RESOURCE);
+ });
+
+ test('isEcompGeneratedNaming should return false', () => {
+ let isEcompGeneratedNaming: boolean = collectionResourceModel.isEcompGeneratedNaming(<any>{});
+ expect(isEcompGeneratedNaming).toBeFalsy();
+ });
+
+
+ test('getTooltip should return "Collection Resource"', () => {
+ let tooltip: string = collectionResourceModel.getTooltip();
+ expect(tooltip).toEqual('Collection Resource');
+ });
+
+ test('getType should return "collectionResources"', () => {
+ let tooltip: string = collectionResourceModel.getType();
+ expect(tooltip).toEqual('collectionResource');
+ });
+
+ test('getNextLevelObject should return ncfs', () => {
+ let nextLevel: NcfModelInfo = collectionResourceModel.getNextLevelObject();
+ expect(nextLevel.type).toEqual('NCF');
+ });
+
+ test('getModel should return collectionResource model', () => {
+ let model: CollectionResourceModel = collectionResourceModel.getModel('CR_sanity 0', <any>{
+ originalName : 'CR_sanity 0'
+ }, getServiceHierarchy());
+ expect(model.type).toEqual('CR');
+ });
+
+ test('cr getMenuAction: delete', ()=>{
+ let node = {};
+ let serviceModelId = 'serviceModelId';
+ let result = collectionResourceModel.getMenuAction(<any>node, serviceModelId);
+ spyOn(result['delete'], 'method');
+ expect(result['delete']).toBeDefined();
+ expect(result['delete'].visible()).toBeFalsy();
+ expect(result['delete'].enable()).toBeFalsy();
+ result['delete']['method'](node, serviceModelId);
+ expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
+ });
+
+ function getServiceHierarchy(){
+ return {
+ "service": {
+ "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450",
+ "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
+ "name": "action-data",
+ "version": "1.0",
+ "toscaModelURL": null,
+ "category": "",
+ "serviceType": "",
+ "serviceRole": "",
+ "description": "",
+ "serviceEcompNaming": "false",
+ "instantiationType": "Macro",
+ "inputs": {
+ "2017488_pasqualevpe0_ASN": {
+ "type": "string",
+ "description": "AV/PE",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "AV_vPE"
+ }
+ },
+ "vidNotions": {
+ "instantiationUI": "legacy",
+ "modelCategory": "other"
+ }
+ },
+ "collectionResources": {
+ "CR_sanity 0": {
+ "uuid": "3467f91f-1a2a-4013-a5ed-8ad99d4e06ad",
+ "invariantUuid": "d0060da6-82b8-4ca0-9758-5eb2b111b926",
+ "description": "CR_sanity",
+ "name": "CR_sanity",
+ "version": "1.0",
+ "customizationUuid": "7160c618-9314-4c09-8717-b77f3d29d946",
+ "inputs": {},
+ "commands": {},
+ "properties": {
+ "cr_sanity..Fixed..0_quantity": "10",
+ "cr_sanity..NetworkCollection..0_network_collection_function": "ABCD",
+ "ecomp_generated_naming": "false",
+ "cr_sanity..NetworkCollection..0_network_collection_description": "ABCD"
+ },
+ "type": "CR",
+ "category": "Network L2-3",
+ "subcategory": "Infrastructure",
+ "resourceVendor": "ATT",
+ "resourceVendorRelease": "2018.06",
+ "resourceVendorModelNumber": "",
+ "customizationUUID": "7160c618-9314-4c09-8717-b77f3d29d946",
+ "networksCollection": {
+ "cr_sanity..NetworkCollection..0": {
+ "uuid": "445d7fa8-3e59-4606-bd76-30ba5fc677d3",
+ "invariantUuid": "9dc623b8-0ae8-47ad-a791-a21b8d8e94a8",
+ "name": "cr_sanity..NetworkCollection..0",
+ "version": "1",
+ "networkCollectionProperties": {
+ "networkCollectionFunction": "ABCD",
+ "networkCollectionDescription": "ABCD"
+ }
+ }
+ }
+ }
+ },
+ "vnfs": {
+ "2017-388_PASQUALE-vPE 1": {
+ "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
+ "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
+ "version": "1.0",
+ "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "ASN": {
+ "type": "string",
+ "description": "AV/PE",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "AV_vPE"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ },
+ "commands": {
+ "vnf_config_template_version": {
+ "displayName": "vnf_config_template_version",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+ },
+ "bandwidth_units": {
+ "displayName": "bandwidth_units",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth_units"
+ },
+ "bandwidth": {
+ "displayName": "bandwidth",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth"
+ },
+ "AIC_CLLI": {
+ "displayName": "AIC_CLLI",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+ },
+ "ASN": {
+ "displayName": "ASN",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_ASN"
+ },
+ "vnf_instance_name": {
+ "displayName": "vnf_instance_name",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+ }
+ },
+ "properties": {
+ "vmxvre_retype": "RE-VMX",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+ "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+ "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+ "int_ctl_net_name": "VMX-INTXI",
+ "vmx_int_ctl_prefix": "10.0.0.10",
+ "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+ "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+ "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+ "nf_type": "vPE",
+ "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+ "is_AVPN_service": "false",
+ "vmx_RSG_name": "vREXI-affinity",
+ "vmx_int_ctl_forwarding": "l2",
+ "vmxvre_oam_ip_0": "10.0.0.10",
+ "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+ "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+ "vmxvre_instance": "0",
+ "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvre_flavor_name": "ns.c1r16d32.v5",
+ "vmxvpfe_volume_size_0": "40.0",
+ "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+ "nf_naming": "{ecomp_generated_naming=false}",
+ "nf_naming_code": "Navneet",
+ "vmxvre_name_0": "vREXI",
+ "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+ "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+ "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+ "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+ "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+ "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+ "vmxvre_console": "vidconsole",
+ "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+ "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+ "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+ "vf_module_id": "123",
+ "nf_function": "JAI",
+ "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+ "vmxvre_int_ctl_ip_0": "10.0.0.10",
+ "ecomp_generated_naming": "false",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+ "vnf_name": "mtnj309me6vre",
+ "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+ "vmxvre_volume_type_1": "HITACHI",
+ "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+ "vmxvre_volume_type_0": "HITACHI",
+ "vmxvpfe_volume_type_0": "HITACHI",
+ "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+ "vnf_id": "123",
+ "vmxvre_oam_prefix": "24",
+ "availability_zone_0": "mtpocfo-kvm-az01",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
+ "vmxvre_chassis_i2cid": "161",
+ "vmxvpfe_name_0": "vPFEXI",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
+ "availability_zone_max_count": "1",
+ "vmxvre_volume_size_0": "45.0",
+ "vmxvre_volume_size_1": "50.0",
+ "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+ "vmxvre_oam_gateway": "10.0.0.10",
+ "vmxvre_volume_name_1": "vREXI_FAVolume",
+ "vmxvre_ore_present": "0",
+ "vmxvre_volume_name_0": "vREXI_FBVolume",
+ "vmxvre_type": "0",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+ "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+ "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+ "vmx_int_ctl_len": "24",
+ "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+ "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+ "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+ "nf_role": "Testing",
+ "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+ "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+ "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+ },
+ "type": "VF",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
+ "vfModules": {},
+ "volumeGroups": {},
+ "vfcInstanceGroups": {}
+ },
+ "2017-388_PASQUALE-vPE 0": {
+ "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
+ "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
+ "version": "4.0",
+ "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "ASN": {
+ "type": "string",
+ "description": "AV/PE",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "AV_vPE"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ },
+ "commands": {
+ "vnf_config_template_version": {
+ "displayName": "vnf_config_template_version",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+ },
+ "bandwidth_units": {
+ "displayName": "bandwidth_units",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth_units"
+ },
+ "bandwidth": {
+ "displayName": "bandwidth",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth"
+ },
+ "AIC_CLLI": {
+ "displayName": "AIC_CLLI",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+ },
+ "ASN": {
+ "displayName": "ASN",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_ASN"
+ },
+ "vnf_instance_name": {
+ "displayName": "vnf_instance_name",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+ }
+ },
+ "properties": {
+ "vmxvre_retype": "RE-VMX",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+ "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+ "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+ "int_ctl_net_name": "VMX-INTXI",
+ "vmx_int_ctl_prefix": "10.0.0.10",
+ "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+ "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+ "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+ "nf_type": "vPE",
+ "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+ "is_AVPN_service": "false",
+ "vmx_RSG_name": "vREXI-affinity",
+ "vmx_int_ctl_forwarding": "l2",
+ "vmxvre_oam_ip_0": "10.0.0.10",
+ "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+ "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+ "vmxvre_instance": "0",
+ "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvre_flavor_name": "ns.c1r16d32.v5",
+ "vmxvpfe_volume_size_0": "40.0",
+ "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+ "nf_naming": "{ecomp_generated_naming=false}",
+ "nf_naming_code": "Navneet",
+ "vmxvre_name_0": "vREXI",
+ "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+ "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+ "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+ "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+ "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+ "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+ "vmxvre_console": "vidconsole",
+ "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+ "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+ "min_instances": "1",
+ "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+ "vf_module_id": "123",
+ "nf_function": "JAI",
+ "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+ "vmxvre_int_ctl_ip_0": "10.0.0.10",
+ "ecomp_generated_naming": "false",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+ "vnf_name": "mtnj309me6vre",
+ "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+ "vmxvre_volume_type_1": "HITACHI",
+ "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+ "vmxvre_volume_type_0": "HITACHI",
+ "vmxvpfe_volume_type_0": "HITACHI",
+ "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+ "vnf_id": "123",
+ "vmxvre_oam_prefix": "24",
+ "availability_zone_0": "mtpocfo-kvm-az01",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
+ "vmxvre_chassis_i2cid": "161",
+ "vmxvpfe_name_0": "vPFEXI",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
+ "availability_zone_max_count": "1",
+ "vmxvre_volume_size_0": "45.0",
+ "vmxvre_volume_size_1": "50.0",
+ "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+ "vmxvre_oam_gateway": "10.0.0.10",
+ "vmxvre_volume_name_1": "vREXI_FAVolume",
+ "vmxvre_ore_present": "0",
+ "vmxvre_volume_name_0": "vREXI_FBVolume",
+ "vmxvre_type": "0",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+ "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+ "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+ "vmx_int_ctl_len": "24",
+ "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+ "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+ "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+ "nf_role": "Testing",
+ "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+ "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+ "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+ },
+ "type": "VF",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
+ "vfModules": {},
+ "volumeGroups": {},
+ "vfcInstanceGroups": {}
+ },
+ "2017-488_PASQUALE-vPE 0": {
+ "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
+ "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
+ "version": "5.0",
+ "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "ASN": {
+ "type": "string",
+ "description": "AV/PE",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "AV_vPE"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": null,
+ "constraints": [],
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ },
+ "commands": {
+ "vnf_config_template_version": {
+ "displayName": "vnf_config_template_version",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+ },
+ "bandwidth_units": {
+ "displayName": "bandwidth_units",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth_units"
+ },
+ "bandwidth": {
+ "displayName": "bandwidth",
+ "command": "get_input",
+ "inputName": "pasqualevpe0_bandwidth"
+ },
+ "AIC_CLLI": {
+ "displayName": "AIC_CLLI",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+ },
+ "ASN": {
+ "displayName": "ASN",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_ASN"
+ },
+ "vnf_instance_name": {
+ "displayName": "vnf_instance_name",
+ "command": "get_input",
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+ }
+ },
+ "properties": {
+ "vmxvre_retype": "RE-VMX",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+ "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+ "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+ "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+ "int_ctl_net_name": "VMX-INTXI",
+ "vmx_int_ctl_prefix": "10.0.0.10",
+ "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+ "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+ "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+ "nf_type": "vPE",
+ "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+ "is_AVPN_service": "false",
+ "vmx_RSG_name": "vREXI-affinity",
+ "vmx_int_ctl_forwarding": "l2",
+ "vmxvre_oam_ip_0": "10.0.0.10",
+ "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+ "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+ "vmxvre_instance": "0",
+ "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvre_flavor_name": "ns.c1r16d32.v5",
+ "vmxvpfe_volume_size_0": "40.0",
+ "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+ "nf_naming": "{ecomp_generated_naming=false}",
+ "nf_naming_code": "Navneet",
+ "vmxvre_name_0": "vREXI",
+ "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+ "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+ "max_instances": "3",
+ "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+ "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+ "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+ "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+ "vmxvre_console": "vidconsole",
+ "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+ "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+ "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+ "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+ "min_instances": "1",
+ "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+ "vf_module_id": "123",
+ "nf_function": "JAI",
+ "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+ "vmxvre_int_ctl_ip_0": "10.0.0.10",
+ "ecomp_generated_naming": "false",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+ "vnf_name": "mtnj309me6vre",
+ "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+ "vmxvre_volume_type_1": "HITACHI",
+ "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+ "vmxvre_volume_type_0": "HITACHI",
+ "vmxvpfe_volume_type_0": "HITACHI",
+ "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+ "vnf_id": "123",
+ "vmxvre_oam_prefix": "24",
+ "availability_zone_0": "mtpocfo-kvm-az01",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
+ "vmxvre_chassis_i2cid": "161",
+ "vmxvpfe_name_0": "vPFEXI",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
+ "availability_zone_max_count": "1",
+ "vmxvre_volume_size_0": "45.0",
+ "vmxvre_volume_size_1": "50.0",
+ "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+ "vmxvre_oam_gateway": "10.0.0.10",
+ "vmxvre_volume_name_1": "vREXI_FAVolume",
+ "vmxvre_ore_present": "0",
+ "vmxvre_volume_name_0": "vREXI_FBVolume",
+ "vmxvre_type": "0",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+ "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+ "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+ "vmx_int_ctl_len": "24",
+ "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+ "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+ "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+ "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+ "nf_role": "Testing",
+ "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+ "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+ "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+ },
+ "type": "VF",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
+ "vfModules": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+ "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+ "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+ "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "baseModule": false
+ },
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_config_template_version"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+ "constraints": null,
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth_units"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth_units",
+ "constraints": null,
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth",
+ "constraints": null,
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "AIC_CLLI"
+ },
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+ "constraints": null,
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_instance_name"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+ "constraints": null,
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ },
+ "volumeGroupAllowed": true
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
+ "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+ "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+ "version": "5",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+ "properties": {
+ "minCountInstances": 1,
+ "maxCountInstances": 1,
+ "initialCount": 1,
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
+ "baseModule": true
+ },
+ "inputs": {},
+ "volumeGroupAllowed": false
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+ "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+ "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
+ "baseModule": false
+ },
+ "inputs": {},
+ "volumeGroupAllowed": true
+ }
+ },
+ "volumeGroups": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+ "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+ "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+ "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "baseModule": false
+ },
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_config_template_version"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+ "constraints": null,
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth_units"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth_units",
+ "constraints": null,
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth",
+ "constraints": null,
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "AIC_CLLI"
+ },
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+ "constraints": null,
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_instance_name"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+ "constraints": null,
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ }
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+ "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+ "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
+ "baseModule": false
+ },
+ "inputs": {}
+ }
+ },
+ "vfcInstanceGroups": {}
+ }
+ },
+ "networks": {},
+ "configurations": {},
+ "fabricConfigurations": {},
+ "serviceProxies": {},
+ "vfModules": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+ "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+ "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+ "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "baseModule": false
+ },
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_config_template_version"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+ "constraints": null,
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth_units"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth_units",
+ "constraints": null,
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth",
+ "constraints": null,
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "AIC_CLLI"
+ },
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+ "constraints": null,
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_instance_name"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+ "constraints": null,
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ },
+ "volumeGroupAllowed": true
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
+ "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+ "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+ "version": "5",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+ "properties": {
+ "minCountInstances": 1,
+ "maxCountInstances": 1,
+ "initialCount": 1,
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
+ "baseModule": true
+ },
+ "inputs": {},
+ "volumeGroupAllowed": false
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+ "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+ "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
+ "baseModule": false
+ },
+ "inputs": {},
+ "volumeGroupAllowed": true
+ }
+ },
+ "volumeGroups": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+ "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+ "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+ "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "baseModule": false
+ },
+ "inputs": {
+ "vnf_config_template_version": {
+ "type": "string",
+ "description": "VPE Software Version",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_config_template_version"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+ "constraints": null,
+ "required": true,
+ "default": "17.2"
+ },
+ "bandwidth_units": {
+ "type": "string",
+ "description": "Units of bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth_units"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth_units",
+ "constraints": null,
+ "required": true,
+ "default": "Gbps"
+ },
+ "bandwidth": {
+ "type": "string",
+ "description": "Requested VPE bandwidth",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "bandwidth"
+ },
+ "fromInputName": "pasqualevpe0_bandwidth",
+ "constraints": null,
+ "required": true,
+ "default": "10"
+ },
+ "AIC_CLLI": {
+ "type": "string",
+ "description": "AIC Site CLLI",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "AIC_CLLI"
+ },
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+ "constraints": null,
+ "required": true,
+ "default": "ATLMY8GA"
+ },
+ "vnf_instance_name": {
+ "type": "string",
+ "description": "The hostname assigned to the vpe.",
+ "entry_schema": null,
+ "inputProperties": {
+ "sourceType": "HEAT",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
+ "paramName": "vnf_instance_name"
+ },
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+ "constraints": null,
+ "required": true,
+ "default": "mtnj309me6"
+ }
+ }
+ },
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+ "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+ "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+ "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+ "description": null,
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "version": "6",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+ "properties": {
+ "minCountInstances": 0,
+ "maxCountInstances": null,
+ "initialCount": 0,
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
+ "baseModule": false
+ },
+ "inputs": {}
+ }
+ },
+ "pnfs": {}
+ }
+ }
+
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts
new file mode 100644
index 000000000..564e04bc2
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts
@@ -0,0 +1,102 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {CollectionResourceTreeNode} from "../../../../../shared/models/collectionResourceTreeNode";
+import {CollectionResourceInstance} from "../../../../../shared/models/collectionResourceInstance";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import * as _ from 'lodash';
+import {NcfModelInfo} from "../ncf/ncf.model.info";
+
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {deleteActionCrInstance, undoDeleteActionCrInstance} from "../../../../../shared/storeUtil/utils/cr/cr.actions";
+import {SharedTreeService} from "../../shared.tree.service";
+
+export class CollectionResourceModelInfo implements ILevelNodeInfo{
+ constructor(private _store: NgRedux<AppState>,private _sharedTreeService: SharedTreeService){
+ }
+ name: string = 'collectionResources';
+ type : string = 'collection Resource';
+ typeName : string = 'CR';
+ childNames: string[] = ['ncfs'];
+ componentInfoType = ComponentInfoType.COLLECTION_RESOURCE;
+
+
+ isEcompGeneratedNaming(currentModel): boolean {return false; }
+
+ updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+ getModel = (collectionResourceModelId: string, instance: CollectionResourceInstance, serviceHierarchy): CollectionResourceModel => {
+ const originalModelName = instance.originalName ? instance.originalName : collectionResourceModelId;
+ return new CollectionResourceModel(serviceHierarchy[this.name][originalModelName]);
+ };
+
+
+ createInstanceTreeNode = (instance: CollectionResourceInstance, model: CollectionResourceModel, parentModel, storeKey: string): CollectionResourceTreeNode => {
+ let node = new CollectionResourceTreeNode(instance, model, storeKey);
+ node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+ node.typeName = this.typeName;
+ node.menuActions = this.getMenuAction(<any>node, model.uuid);
+ node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+ node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+ return node;
+ };
+
+ getNextLevelObject = (): any => {
+ return new NcfModelInfo(this._store);
+ }
+
+ getTooltip = (): string => 'Collection Resource';
+
+ getType = (): string => 'collectionResource';
+
+ hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {return false; }
+
+ onClickAdd(node, serviceModelId: string): void { }
+
+ getNodeCount(node: ITreeNode, serviceModelId: string): number {return 0;}
+
+ showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { return null;}
+
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+ return <any>{
+ delete: {
+ method: (node, serviceModelId) => {
+ if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+ this._store.dispatch(deleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+ }
+ else {
+ this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+ this._store.dispatch(deleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+ })
+ }},
+ visible: (node) => false,
+ enable: (node) => false
+ },
+ undoDelete: {
+ method: (node, serviceModelId) => {
+ if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+ this._store.dispatch(undoDeleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+ }
+ else {
+ this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+ this._store.dispatch(undoDeleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+ })
+ }
+
+ },
+ visible: (node) => (node) => false,
+ enable: (node) => (node) => false
+ }
+
+ };
+ }
+
+ updatePosition(that , node, instanceId): void {}
+
+ getNodePosition(instance): number { return 0; }
+
+ getInfo(model, instance): ModelInformationItem[] {return [];}
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts
index d99ec3bc6..6b67de6aa 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts
@@ -50,7 +50,7 @@ describe('Vnf Model Info', () => {
test('getModel should return Configuration model', () => {
let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService);
- let model = configurationModelInfo.getModel('2017-388_ADIOD-vPE 1__configuration', getServiceHierarchy());
+ let model = configurationModelInfo.getModel('2017-388_PASQUALE-vPE 1__configuration', getServiceHierarchy());
expect(model.uuid).toEqual('0903e1c0-8e03-4936-b5c2-260653b96413');
});
@@ -70,7 +70,7 @@ describe('Vnf Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -86,11 +86,11 @@ describe('Vnf Model Info', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -153,37 +153,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -228,7 +228,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -236,14 +236,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -253,7 +253,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -267,16 +267,16 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -339,37 +339,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -415,7 +415,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -423,14 +423,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -440,7 +440,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -454,16 +454,16 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -526,37 +526,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -603,7 +603,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -611,14 +611,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -628,7 +628,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -642,21 +642,21 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -666,10 +666,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -680,10 +680,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -694,10 +694,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -708,10 +708,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -722,10 +722,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -733,37 +733,37 @@ describe('Vnf Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -771,19 +771,19 @@ describe('Vnf Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -793,10 +793,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -807,10 +807,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -821,10 +821,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -835,10 +835,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -849,29 +849,29 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -881,11 +881,11 @@ describe('Vnf Model Info', () => {
}
},
"networks": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -948,37 +948,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1023,7 +1023,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1031,14 +1031,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1048,7 +1048,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1062,19 +1062,19 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {
- "2017-388_ADIOD-vPE 1__configuration": {
+ "2017-388_PASQUALE-vPE 1__configuration": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -1137,37 +1137,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1212,7 +1212,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1220,14 +1220,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1237,7 +1237,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1251,7 +1251,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
@@ -1261,19 +1261,19 @@ describe('Vnf Model Info', () => {
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1283,10 +1283,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1297,10 +1297,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1311,10 +1311,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1325,10 +1325,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1339,10 +1339,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1350,37 +1350,37 @@ describe('Vnf Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1388,19 +1388,19 @@ describe('Vnf Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1410,10 +1410,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1424,10 +1424,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1438,10 +1438,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1452,10 +1452,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1466,29 +1466,29 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts
index dd85ea110..0d1a9aade 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts
@@ -4,6 +4,8 @@ import * as _ from 'lodash';
import {SharedTreeService} from "../../shared.tree.service";
import {ITreeNode} from "angular-tree-component/dist/defs/api";
import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
export class ConfigurationModelInfo implements ILevelNodeInfo{
constructor(private _dynamicInputsService : DynamicInputsService,
@@ -11,6 +13,7 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
name: string = 'configurations';
type : string = 'Configuration';
typeName : string = 'C';
+ componentInfoType = ComponentInfoType.CONFIGURATION;
isEcompGeneratedNaming = () : boolean => true;
@@ -38,8 +41,7 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
createInstanceTreeNode(instance: any, model: any, storeKey: string): any {return null;}
- childName: string;
- childType: string;
+ childNames: string[];
/***********************************************************
* return if instance has missing data
@@ -84,4 +86,8 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
onSelectedNode(node: ITreeNode): void {
}
+ getInfo(model, instance): ModelInformationItem[] {
+ return [];
+ }
+
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts
new file mode 100644
index 000000000..6c8382808
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts
@@ -0,0 +1,112 @@
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {NcfModelInfo} from "./ncf.model.info";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
+
+describe('NCF Model Info', () => {
+
+ let ncfModel: NcfModelInfo;
+
+ beforeEach(() => {
+ ncfModel = new NcfModelInfo(null);
+ });
+
+ test('ncfModel should be defined', () => {
+ expect(ncfModel).toBeDefined();
+ });
+
+ test('ncfModel should defined extra details', () => {
+ expect(ncfModel.name).toEqual('ncfs');
+ expect(ncfModel.type).toEqual('NCF');
+ expect(ncfModel.childNames).toBeUndefined;
+ expect(ncfModel.componentInfoType).toEqual(ComponentInfoType.NCF);
+ });
+
+ test('createInstanceTreeNode shall create the right ncfTreeNode', () => {
+ const instance = {
+ action: "None",
+ instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+ instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ instanceType: "L3-NETWORK",
+ inMaint: false,
+ uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
+ originalName: "ncm_vlan_ym161f..NetworkCollection..0",
+ trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ instanceGroupRole: "SUB_INTERFACE",
+ instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+ numberOfNetworks: 1
+ };
+
+ const parentModel = {
+ networksCollection: {
+ "ncm_vlan_ym161f..NetworkCollection..0": {
+ uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
+ invariantUuid: "868b109c-9481-4a18-891b-af974db7705a",
+ name: "ncm_vlan_ym161f..NetworkCollection..0",
+ version: "1",
+ networkCollectionProperties: {
+ networkCollectionFunction: "vTSBC Customer Landing Network Collection",
+ networkCollectionDescription: "vTSBC Customer Landing Network Collection Desc"
+ }
+ }
+ }
+ };
+
+ const expected = {
+ action: "None",
+ id: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ inMaint: false,
+ instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+ instanceGroupRole: "SUB_INTERFACE",
+ instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+ instanceType: "L3-NETWORK",
+ missingData: false,
+ modelVersion: "1",
+ name: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+ numberOfNetworks: 1,
+ storeKey: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ typeName: "NCF"
+ };
+
+ const ncfTreeNode: NcfTreeNode = ncfModel.createInstanceTreeNode(instance, {}, parentModel, "6b3536cf-3a12-457f-abb5-fa2203e0d923");
+ expect(ncfTreeNode).toMatchObject(expected);
+ });
+
+ test('get modelInformation shall return Model version, role, Collection function, Number of networks', () => {
+ const ncf = {
+ trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+ instanceGroupRole: "SUB_INTERFACE",
+ instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+ numberOfNetworks: 1,
+ modelVersion: "35"
+ };
+
+ const actualModelInformationItems = ncfModel.getInfo(null, ncf);
+ const expected = [
+ ModelInformationItem.createInstance('Model version', '35'),
+ ModelInformationItem.createInstance('Role', 'SUB_INTERFACE'),
+ ModelInformationItem.createInstance('Collection function', 'vTSBC Customer Landing Network Collection'),
+ ModelInformationItem.createInstance('Number of networks', 1),
+ ];
+
+ expect(actualModelInformationItems).toEqual(expected);
+ });
+
+ test('get modelInformation shall return empty array when ncf instance is null', () => {
+ expect(ncfModel.getInfo(null, null)).toEqual([]);
+ });
+
+ test('ncf getMenuAction: delete', ()=>{
+ let node = {};
+ let serviceModelId = 'serviceModelId';
+ let result = ncfModel.getMenuAction(<any>node, serviceModelId);
+ spyOn(result['delete'], 'method');
+ expect(result['delete']).toBeDefined();
+ expect(result['delete'].visible()).toBeFalsy();
+ expect(result['delete'].enable()).toBeFalsy();
+ result['delete']['method'](node, serviceModelId);
+ expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
+ });
+
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts
new file mode 100644
index 000000000..4db41c0d1
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts
@@ -0,0 +1,121 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {
+ deleteActionNcfInstance,
+ undoDeleteActionNcfInstance
+} from "../../../../../shared/storeUtil/utils/ncf/ncf.actions";
+import * as _ from 'lodash';
+import {NcfModelInterface} from "../../../../../shared/models/ncfModel";
+
+export class NcfModelInfo implements ILevelNodeInfo {
+ constructor(private _store: NgRedux<AppState>){
+ }
+
+ name: string = 'ncfs';
+ type: string = 'NCF';
+ typeName: string = 'NCF';
+
+ childNames: string[] = [];
+ componentInfoType = ComponentInfoType.NCF;
+
+ isEcompGeneratedNaming(currentModel): boolean {
+ return false;
+ }
+
+ updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+ getModel = (modelId: string, instance: any, serviceHierarchy): any => {
+ return new Level1Model();
+ };
+
+
+ createInstanceTreeNode = (instance: Level1Instance, model: Level1Model, parentModel, storeKey: string): NcfTreeNode => {
+ let modelVersion: string = null;
+ if (parentModel.networksCollection && instance.originalName) {
+ const ncfRealModel: NcfModelInterface = parentModel.networksCollection[instance.originalName];
+ if (ncfRealModel) {
+ modelVersion = ncfRealModel.version;
+ }
+ }
+
+ let node = new NcfTreeNode(instance, model, storeKey, modelVersion);
+ node.menuActions = this.getMenuAction(<any>node, model.uuid);
+ node.typeName = this.typeName;
+ return node;
+ };
+
+
+ getNextLevelObject = (): any => {
+ return null;
+ };
+
+ getTooltip = (): string => 'NCF';
+
+ getType = (): string => 'NCF';
+
+ hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+ return false;
+ }
+
+ onClickAdd(node, serviceModelId: string): void {
+
+ }
+
+ getNodeCount(node: ITreeNode, serviceModelId: string): number {
+ return 0;
+ }
+
+ showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+ return null;
+ }
+
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+ return <any>{
+ delete: {
+ method: (node, serviceModelId) => {
+ this._store.dispatch(deleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
+ },
+ visible: (node) => false,
+ enable: (node) => false
+ },
+ undoDelete: {
+ method: (node, serviceModelId) => {
+ this._store.dispatch(undoDeleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
+ },
+ visible: (node) => false,
+ enable: (node) => false
+ }
+
+ };
+ }
+
+ updatePosition(that, node, instanceId): void {
+ }
+
+ getNodePosition(instance): number {
+ return 0;
+ }
+
+ getInfo(model, instance: NcfTreeNode): ModelInformationItem[] {
+
+ if (_.isNil(instance)) {
+ return [];
+ }
+
+ return [
+ ModelInformationItem.createInstance("Model version", instance.modelVersion),
+ ModelInformationItem.createInstance('Role', instance.instanceGroupRole),
+ ModelInformationItem.createInstance('Collection function', instance.instanceGroupFunction),
+ ModelInformationItem.createInstance('Number of networks', instance.numberOfNetworks),
+ ];
+ }
+}
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts
index 206adb6d1..10c13661f 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts
@@ -1,4 +1,4 @@
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
import {getTestBed, TestBed} from "@angular/core/testing";
import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
import {NetworkModelInfo} from "./network.model.info";
@@ -11,6 +11,8 @@ import {AvailableNodeIcons} from "../../../available-models-tree/available-model
import {DrawingBoardModes} from "../../../drawing-board.modes";
import {IframeService} from "../../../../../shared/utils/iframe.service";
import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+
class MockAppStore<T> {
getState() {
return {
@@ -131,7 +133,7 @@ describe('Network Model Info', () => {
});
test('getModel should return Network model', () => {
- let model = networkModel.getModel('2017-388_ADIOD-vPE 1_1', <any>{}, getServiceHierarchy());
+ let model = networkModel.getModel('2017-388_PASQUALE-vPE 1_1', <any>{}, getServiceHierarchy());
expect(model.type).toEqual('VL');
});
@@ -295,6 +297,80 @@ describe('Network Model Info', () => {
expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
});
+ test('Info for network should be correct', () => {
+ const model = getNetworkModel();
+ const instance = getNetworkInstance();
+ let actualNetworkInfo = networkModel.getInfo(model,instance);
+ let expectedNetworkInfo = [
+ ModelInformationItem.createInstance('Network role', "network role 1, network role 2"),
+ ModelInformationItem.createInstance("Route target id", null),
+ ModelInformationItem.createInstance("Route target role", null)
+ ];
+ expect(actualNetworkInfo).toEqual(expectedNetworkInfo);
+ });
+
+ function getNetworkModel(){
+ return {
+ "customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "name":"ExtVL",
+ "version":"37.0",
+ "description":"ECOMP generic virtual link (network) base type for all other service-level and global networks",
+ "uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986",
+ "invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c",
+ "max":1,
+ "min":0,
+ "isEcompGeneratedNaming":false,
+ "type":"VL",
+ "modelCustomizationName":"ExtVL 0",
+ "roles":["network role 1"," network role 2"],
+ "properties":{
+ "network_role":"network role 1, network role 2",
+ "network_assignments":
+ "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+ "exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}",
+ "network_homing":"{ecomp_selected_instance_node_target=false}"
+ }
+ };
+
+ }
+
+ function getNetworkInstance() {
+ return {
+ "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+ "modelUniqueId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "missingData": true,
+ "id": "NETWORK4_INSTANCE_ID",
+ "action": "None",
+ "orchStatus": "Created",
+ "provStatus": "preprov",
+ "inMaint": false,
+ "instanceId": "NETWORK4_INSTANCE_ID",
+ "instanceType": "CONTRAIL30_HIMELGUARD",
+ "instanceName": "NETWORK4_INSTANCE_NAME",
+ "name": "NETWORK4_INSTANCE_NAME",
+ "modelName": "ExtVL 0",
+ "type": "VL",
+ "isEcompGeneratedNaming": false,
+ "networkStoreKey": "NETWORK4_INSTANCE_ID",
+ "typeName": "N",
+ "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
+ "isFailed": false,
+ "statusMessage": "",
+ "statusProperties": [{"key": "Prov Status:", "value": "preprov", "testId": "provStatus"}, {
+ "key": "Orch Status:",
+ "value": "Created",
+ "testId": "orchStatus"
+ }],
+ "trackById": "1wvr73xl999",
+ "parentType": "",
+ "componentInfoType": "Network",
+ "errors": {}
+ };
+ }
+
+
+
function getServiceHierarchy(){
return {
@@ -311,7 +387,7 @@ describe('Network Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -327,11 +403,11 @@ describe('Network Model Info', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -394,37 +470,37 @@ describe('Network Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -469,7 +545,7 @@ describe('Network Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -477,14 +553,14 @@ describe('Network Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -494,7 +570,7 @@ describe('Network Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -508,16 +584,16 @@ describe('Network Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -580,37 +656,37 @@ describe('Network Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -656,7 +732,7 @@ describe('Network Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -664,14 +740,14 @@ describe('Network Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -681,7 +757,7 @@ describe('Network Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -695,16 +771,16 @@ describe('Network Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -767,37 +843,37 @@ describe('Network Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -844,7 +920,7 @@ describe('Network Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -852,14 +928,14 @@ describe('Network Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -869,7 +945,7 @@ describe('Network Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -883,21 +959,21 @@ describe('Network Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -907,10 +983,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -921,10 +997,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -935,10 +1011,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -949,10 +1025,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -963,10 +1039,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -974,37 +1050,37 @@ describe('Network Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1012,19 +1088,19 @@ describe('Network Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1034,10 +1110,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1048,10 +1124,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1062,10 +1138,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1076,10 +1152,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1090,29 +1166,29 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -1122,11 +1198,11 @@ describe('Network Model Info', () => {
}
},
"networks": {
- "2017-388_ADIOD-vPE 1_1": {
+ "2017-388_PASQUALE-vPE 1_1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -1189,37 +1265,37 @@ describe('Network Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1264,7 +1340,7 @@ describe('Network Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1272,14 +1348,14 @@ describe('Network Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1289,7 +1365,7 @@ describe('Network Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1303,30 +1379,30 @@ describe('Network Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VL",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1336,10 +1412,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1350,10 +1426,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1364,10 +1440,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1378,10 +1454,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1392,10 +1468,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1403,37 +1479,37 @@ describe('Network Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1441,19 +1517,19 @@ describe('Network Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1463,10 +1539,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1477,10 +1553,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1491,10 +1567,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1505,10 +1581,10 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1519,29 +1595,29 @@ describe('Network Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts
index 3d99750ae..3ed40cd5f 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts
@@ -28,6 +28,8 @@ import {
updateNetworkPosition
} from "../../../../../shared/storeUtil/utils/network/network.actions";
import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
export class NetworkModelInfo implements ILevelNodeInfo {
constructor(private _dynamicInputsService: DynamicInputsService,
@@ -43,6 +45,8 @@ export class NetworkModelInfo implements ILevelNodeInfo {
name: string = 'networks';
type: string = 'Network';
typeName: string = 'N';
+ childNames: string[];
+ componentInfoType = ComponentInfoType.NETWORK;
/***********************************************************
* return model dynamic inputs
@@ -83,7 +87,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
node.typeName = this.typeName;
node.menuActions = this.getMenuAction(<any>node, model.uuid);
node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
- node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: "";
+ node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
node = this._sharedTreeService.addingStatusProperty(node);
return node;
};
@@ -141,7 +145,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
map = this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap || 0;
if (!_.isNil(map)) {
let count = map[node.data.modelUniqueId] || 0;
- count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks');
+ count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'networks');
return count;
}
}
@@ -157,7 +161,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ?
(this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap[node.data.modelUniqueId] || 0) : 0;
- counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks');
+ counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'networks');
const properties = this._store.getState().service.serviceHierarchy[serviceModelId].networks[node.data.name].properties;
const maxInstances: number = !_.isNil(properties) ? (properties.max_instances || 1) : 1;
@@ -167,7 +171,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
return new AvailableNodeIcons(showAddIcon, isReachedLimit)
}
- getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function }} {
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
const mode = this._store.getState().global.drawingBoardStatus;
return {
edit: {
@@ -186,64 +190,63 @@ export class NetworkModelInfo implements ILevelNodeInfo {
isUpdateMode: true
});
},
- visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
- enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node)
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node)
},
showAuditInfo: {
method: (node, serviceModelId) => {
let instance = this._store.getState().service.serviceInstance[serviceModelId].networks[node.data.networkStoreKey];
this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'NETWORK', this);
},
- visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node),
- enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node)
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowAuditInfo(node),
+ enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowAuditInfo(node)
},
duplicate: {
method: (node, serviceModelId) => {
- if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) {
- const storeKey = node.data.networkStoreKey;
- let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
- this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
- }
+ const storeKey = node.data.networkStoreKey;
+ let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
+ this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
},
- visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
- enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId)
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
+ enable: (node, serviceModelId) => node.data.parentType !== 'VRF' && this._duplicateService.isEnabled(node, this._store, serviceModelId)
},
remove: {
method: (node, serviceModelId) => {
let storeKey: string = node.data.networkStoreKey;
this._store.dispatch(removeInstance(node.data.networkStoreKey, serviceModelId, storeKey, node));
- this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId , serviceModelId, -1, node));
+ this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
this._sharedTreeService.selectedVNF = null;
},
- visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
- enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
},
- delete : {
- method : (node, serviceModelId) => {
+ delete: {
+ method: (node, serviceModelId) => {
if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
- }else {
- this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+ } else {
+ this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
});
}
},
- visible: (node) => this._sharedTreeService.shouldShowDelete(node),
- enable: (node) => this._sharedTreeService.shouldShowDelete(node)
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDelete(node),
+ enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDelete(node)
},
- undoDelete : {
- method : (node, serviceModelId) => {
+ undoDelete: {
+ method: (node, serviceModelId) => {
if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
- }else {
- this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+ } else {
+ this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
});
}
},
- visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node),
- enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
+ visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowUndoDelete(node),
+ enable: (node, serviceModelId) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
}
+
};
}
@@ -251,7 +254,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
* should update node position inside the tree
* @param node - current ITrees node
************************************************************/
- updatePosition(that , node, instanceId): void {
+ updatePosition(that, node, instanceId): void {
that.store.dispatch(updateNetworkPosition(node));
}
@@ -259,6 +262,16 @@ export class NetworkModelInfo implements ILevelNodeInfo {
return !_.isNil(instance) ? instance.position : null;
}
- onSelectedNode(node: ITreeNode): void {
+ getInfo(model, instance): ModelInformationItem[] {
+ const modelInformation = !_.isEmpty(model) && !_.isEmpty(model.properties) ? [
+ ModelInformationItem.createInstance("Network role", model.properties.network_role)] : [];
+ ModelInformationItem.createInstance("Min instances", !_.isNull(model.min) ? String(model.min) : null),
+ ModelInformationItem.createInstance("Max instances", !_.isNull(model.max) ? String(model.max) : null)
+ const instanceInfo = !_.isEmpty(instance) ? [
+ ModelInformationItem.createInstance("Route target id", instance.routeTargetId ? instance.routeTargetId : null),
+ ModelInformationItem.createInstance("Route target role", instance.routeTargetRole ? instance.routeTargetRole : null)] :
+ [];
+ const result = [modelInformation, instanceInfo];
+ return _.uniq(_.flatten(result));
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts
new file mode 100644
index 000000000..ca041e045
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts
@@ -0,0 +1,134 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {AppState} from "../../../../../shared/store/reducers";
+import {NgRedux} from "@angular-redux/store";
+import {PnfModelInfo} from "./pnf.model.info";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+
+
+describe('PNF model info', () => {
+ let injector;
+ let _componentInfoService: ComponentInfoService;
+ let _store: NgRedux<AppState>;
+ let pnfModel: PnfModelInfo = new PnfModelInfo();
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule, NgReduxTestingModule],
+ providers: [
+ MockNgRedux,
+ DynamicInputsService,
+ SharedTreeService,
+ DuplicateService,
+ AaiService,
+ HttpClient,
+ HttpHandler,
+ FeatureFlagsService,
+ ComponentInfoService,
+ IframeService]
+ }).compileComponents();
+
+ injector = getTestBed();
+ _store = injector.get(NgRedux);
+ _componentInfoService = injector.get(ComponentInfoService);
+ });
+
+ test('pnf model should be defined', () => {
+ expect(pnfModel).toBeDefined();
+ });
+
+ test('pnf model should defined extra details', () => {
+ expect(pnfModel.name).toEqual('pnfs');
+ expect(pnfModel.type).toEqual('PNF');
+ expect(pnfModel.typeName).toEqual('PNF');
+ expect(pnfModel.componentInfoType).toEqual(ComponentInfoType.PNF);
+ });
+
+ test('getTooltip should return "PNF"', () => {
+ let tooltip: string = pnfModel.getTooltip();
+ expect(tooltip).toEqual('PNF');
+ });
+
+ test('getType should return "pnf"', () => {
+ let tooltip: string = pnfModel.getType();
+ expect(tooltip).toEqual('pnf');
+ });
+
+ test('getNextLevelObject should be null', () => {
+ let nextLevel: any = pnfModel.getNextLevelObject();
+ expect(nextLevel).toBeNull();
+ });
+
+ test('isEcompGeneratedNaming should return false', () => {
+ let isEcompGeneratedNaming: boolean = pnfModel.isEcompGeneratedNaming(<any>{});
+ expect(isEcompGeneratedNaming).toBeFalsy();
+ });
+
+ test('getModel should return pnf model', () => {
+ let model: CollectionResourceModel = pnfModel.getModel('PNF1', <any>{
+ originalName : 'PNF1'
+ }, getServiceHierarchy());
+ expect(model.type).toEqual('PNF');
+ });
+
+ function getServiceHierarchy(){
+ return {
+ "service": {
+ "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+ "invariantUuid": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
+ "name": "AIM Transport SVC_ym161f",
+ "version": "1.0",
+ "toscaModelURL": null,
+ "category": "Network L1-3",
+ "serviceType": "TRANSPORT",
+ "serviceRole": "AIM",
+ "description": "AIM Transport service",
+ "serviceEcompNaming": "true",
+ "instantiationType": "Macro",
+ "inputs": {},
+ "vidNotions": {
+ "instantiationUI": "legacy",
+ "modelCategory": "other",
+ "viewEditUI": "legacy"
+ }
+ },
+ "vnfs": {},
+ "networks": {},
+ "collectionResources": {},
+ "configurations": {},
+ "fabricConfigurations": {},
+ "serviceProxies": {},
+ "vfModules": {},
+ "volumeGroups": {},
+ "pnfs": {
+ "PNF1": {
+ "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+ "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+ "description": "AIM Transport service",
+ "name": "AIM PNF Model",
+ "version": "1.0",
+ "customizationUuid": "dce78da7-c842-47a1-aba2-2de1cd03ab7a",
+ "inputs": {},
+ "commands": {},
+ "properties": {
+ "nf_function": "SDNGW",
+ "nf_role": "pD2IPE",
+ "ecomp_generated_naming": "false",
+ "nf_type": "ROUTER"
+ },
+ "type": "PNF"
+ }
+ },
+ "vnfGroups": {}
+ }
+ }
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts
new file mode 100644
index 000000000..dc01b87ef
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts
@@ -0,0 +1,70 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {PnfInstance} from "app/shared/models/pnfInstance";
+import {PNFModel} from "../../../../../shared/models/pnfModel";
+import {PnfTreeNode} from "../../../../../shared/models/pnfTreeNode";
+
+
+export class PnfModelInfo implements ILevelNodeInfo{
+
+ constructor(){}
+
+ name: string = 'pnfs';
+ type: string ='PNF';
+ typeName: string = 'PNF';
+ childNames: string[];
+ componentInfoType = ComponentInfoType.PNF;
+
+ createInstanceTreeNode = (instance: PnfInstance, model: PNFModel, parentModel: any, storeKey: string): PnfTreeNode => null;
+
+ getInfo(model, instance): ModelInformationItem[] {
+ return [];
+ }
+
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function; visible: Function; enable: Function } } {
+ return {};
+ }
+
+ getModel = (pnfModelId: string, instance: PnfInstance, serviceHierarchy): PNFModel => {
+ const originalModelName = instance.originalName ? instance.originalName : pnfModelId;
+ return new PNFModel(serviceHierarchy[this.name][originalModelName]);
+ };
+
+ getNextLevelObject(): any { return null; }
+
+ getNodeCount(node: ITreeNode, serviceModelId: string): number {
+ return 0;
+ }
+
+ getNodePosition(instance): number {return 0; }
+
+ getTooltip = (): string => 'PNF';
+
+
+ getType = (): string => 'pnf';
+
+
+ hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+ return false;
+ }
+
+ isEcompGeneratedNaming(currentModel): boolean {
+ return false;
+ }
+
+ onClickAdd(node: ITreeNode, serviceModelId: string): void {
+ }
+
+ showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+ return null;
+ }
+
+ updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+ updatePosition(that, node, instanceId): void {
+ }
+
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts
index dcf25f579..840f31dcf 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts
@@ -107,15 +107,15 @@ describe('Related Vnf member Model Info', () => {
});
test('getModel should return VNF model', () => {
- let model: VNFModel = relatedVnfMemeber.getModel('2017-388_ADIOD-vPE 1', <any>{
- originalName : '2017-388_ADIOD-vPE 1'
+ let model: VNFModel = relatedVnfMemeber.getModel('2017-388_PASQUALE-vPE 1', <any>{
+ originalName : '2017-388_PASQUALE-vPE 1'
}, getServiceHierarchy());
expect(model.type).toEqual('VF');
});
test('getMenuAction: delete', ()=>{
- let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+ let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
spyOn(result['delete'], 'method');
@@ -128,7 +128,7 @@ describe('Related Vnf member Model Info', () => {
test('getMenuAction: undoDelete', ()=>{
- let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+ let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
spyOn(result['undoDelete'], 'method');
@@ -156,7 +156,7 @@ describe('Related Vnf member Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -172,11 +172,11 @@ describe('Related Vnf member Model Info', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -239,37 +239,37 @@ describe('Related Vnf member Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -314,7 +314,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -322,14 +322,14 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -339,7 +339,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -353,16 +353,16 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -425,37 +425,37 @@ describe('Related Vnf member Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -501,7 +501,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -509,14 +509,14 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -526,7 +526,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -540,16 +540,16 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -612,37 +612,37 @@ describe('Related Vnf member Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -689,7 +689,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -697,14 +697,14 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -714,7 +714,7 @@ describe('Related Vnf member Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -728,21 +728,21 @@ describe('Related Vnf member Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -752,10 +752,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -766,10 +766,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -780,10 +780,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -794,10 +794,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -808,10 +808,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -819,37 +819,37 @@ describe('Related Vnf member Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -857,19 +857,19 @@ describe('Related Vnf member Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -879,10 +879,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -893,10 +893,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -907,10 +907,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -921,10 +921,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -935,29 +935,29 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -967,24 +967,24 @@ describe('Related Vnf member Model Info', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -994,10 +994,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1008,10 +1008,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1022,10 +1022,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1036,10 +1036,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1050,10 +1050,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1061,37 +1061,37 @@ describe('Related Vnf member Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1099,19 +1099,19 @@ describe('Related Vnf member Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1121,10 +1121,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1135,10 +1135,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1149,10 +1149,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1163,10 +1163,10 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1177,29 +1177,29 @@ describe('Related Vnf member Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts
index b1eb10937..c8807e87d 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts
@@ -15,6 +15,8 @@ import {VnfInstance} from "../../../../../shared/models/vnfInstance";
import {VNFModel} from "../../../../../shared/models/vnfModel";
import {VnfTreeNode} from "../../../../../shared/models/vnfTreeNode";
import {InputType} from "../../../../../shared/models/inputTypes";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
constructor(private _sharedTreeService: SharedTreeService,
@@ -25,6 +27,7 @@ export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
name: string = 'vnfs';
type: string = 'relatedVnfMember';
typeName: string = 'VNF';
+ componentInfoType = ComponentInfoType.VNFMEMBER;
/***********************************************************
* return if user should provide instance name or not.
@@ -153,6 +156,8 @@ export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
return null;
}
- onSelectedNode(node: ITreeNode): void {
+ getInfo(model, instance): ModelInformationItem[] {
+ return [];
}
+
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts
index dc7452516..b596d0b48 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts
@@ -1,5 +1,4 @@
-
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
import {getTestBed, TestBed} from "@angular/core/testing";
import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
import {VFModuleModelInfo} from "./vfModule.model.info";
@@ -8,17 +7,16 @@ import {SharedTreeService} from "../../shared.tree.service";
import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service";
import {DialogService} from "ng2-bootstrap-modal";
import {NgRedux} from "@angular-redux/store";
-import {AppState} from "../../../../../shared/store/reducers";
import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
import {DrawingBoardModes} from "../../../drawing-board.modes";
import {IframeService} from "../../../../../shared/utils/iframe.service";
import {ComponentInfoService} from "../../../component-info/component-info.service";
import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
import {HttpClient, HttpHandler} from "@angular/common/http";
import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+
class MockAppStore<T> {
getState() {
return {
@@ -120,7 +118,7 @@ describe('VFModule Model Info', () => {
});
test('getModel should return Module model', () => {
- let model = vfModuleModel.getModel('2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1',{}, getServiceHierarchy());
+ let model = vfModuleModel.getModel('2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',{}, getServiceHierarchy());
expect(model.uuid).toEqual('25284168-24bb-4698-8cb4-3f509146eca5');
});
@@ -460,18 +458,14 @@ describe('VFModule Model Info', () => {
test('Info for vfModule should be correct', () => {
const model = getVFModule();
const instance = getVFModuleInstance();
- let actualVNFInfo = vfModuleModel.getInfoForVFModule(model,instance);
+ let actualVNFInfo = vfModuleModel.getInfo(model,instance);
let expectedVNFInfo = [
- ModelInformationItem.createInstance('Type', 'vfModule'),
- ModelInformationItem.createInstance('Model Version', '2'),
- ModelInformationItem.createInstance('Model Customization ID','55b1be94-671a-403e-a26c-667e9c47d091'),
- ModelInformationItem.createInstance('Instance ID', '2c1ca484-cbc2-408b-ab86-25a2c15ce280'),
- ModelInformationItem.createInstance('In Maintenance', true),
- ModelInformationItem.createInstance('Base Module', false),
- ModelInformationItem.createInstance('Min Instances', 0),
- ModelInformationItem.createInstance('Initial Instances Count',0)
+ ModelInformationItem.createInstance('Base module', false),
+ ModelInformationItem.createInstance('Min instances', "0"),
+ ModelInformationItem.createInstance("Max instances", null),
+ ModelInformationItem.createInstance('Initial instances count',"0")
];
- expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VFMODULE, expectedVNFInfo, []));
+ expect(actualVNFInfo).toEqual(expectedVNFInfo);
});
function getVFModule(){
@@ -480,14 +474,14 @@ describe('VFModule Model Info', () => {
"invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b",
"customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091",
"description":null,
- "name":"VfVmee..vmme_vlc..module-1",
+ "name":"VfVgeraldine..vflorence_vlc..module-1",
"version":"2",
- "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+ "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
"properties":{
"minCountInstances":0,
"maxCountInstances":null,
"initialCount":0,
- "vfModuleLabel":"vmme_vlc",
+ "vfModuleLabel":"vflorence_vlc",
"baseModule":false
},
"inputs":{},
@@ -505,7 +499,7 @@ describe('VFModule Model Info', () => {
"lcpCloudRegionId":null,
"tenantId":null,
"modelInfo":{
- "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+ "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
"modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
"modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
"modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
@@ -515,11 +509,11 @@ describe('VFModule Model Info', () => {
"provStatus":null,
"inMaint":true,
"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
- "originalName":"VfVmee..vmme_vlc..module-1",
+ "originalName":"VfVgeraldine..vflorence_vlc..module-1",
"legacyRegion":null,
"lineOfBusiness":null,
"platformName":null,
- "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008",
+ "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
"isBase":false,
"volumeGroupName":null
};
@@ -541,7 +535,7 @@ describe('VFModule Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -557,11 +551,11 @@ describe('VFModule Model Info', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -624,37 +618,37 @@ describe('VFModule Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -699,7 +693,7 @@ describe('VFModule Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -707,14 +701,14 @@ describe('VFModule Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -724,7 +718,7 @@ describe('VFModule Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -738,16 +732,16 @@ describe('VFModule Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -810,37 +804,37 @@ describe('VFModule Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -886,7 +880,7 @@ describe('VFModule Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -894,14 +888,14 @@ describe('VFModule Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -911,7 +905,7 @@ describe('VFModule Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -925,16 +919,16 @@ describe('VFModule Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -997,37 +991,37 @@ describe('VFModule Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1074,7 +1068,7 @@ describe('VFModule Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1082,14 +1076,14 @@ describe('VFModule Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1099,7 +1093,7 @@ describe('VFModule Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1113,21 +1107,21 @@ describe('VFModule Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1137,10 +1131,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1151,10 +1145,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1165,10 +1159,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1179,10 +1173,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1193,10 +1187,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1204,37 +1198,37 @@ describe('VFModule Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1242,19 +1236,19 @@ describe('VFModule Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1264,10 +1258,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1278,10 +1272,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1292,10 +1286,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1306,10 +1300,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1320,29 +1314,29 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -1352,24 +1346,24 @@ describe('VFModule Model Info', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1379,10 +1373,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1393,10 +1387,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1407,10 +1401,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1421,10 +1415,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1435,10 +1429,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1446,37 +1440,37 @@ describe('VFModule Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1484,19 +1478,19 @@ describe('VFModule Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1506,10 +1500,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1520,10 +1514,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1534,10 +1528,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1548,10 +1542,10 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1562,29 +1556,29 @@ describe('VFModule Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
index 7db3d906e..bfe1d0082 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
@@ -42,6 +42,7 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
name: string = 'vfModules';
type: string = 'Module';
typeName: string = 'M';
+ componentInfoType = ComponentInfoType.VFMODULE;
/***********************************************************
* return if user should provide instance name or not.
@@ -367,22 +368,16 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
return (!_.isNil(instance) && !_.isNil(instance[deepDynamicName])) ? instance[deepDynamicName].position : null;
}
- onSelectedNode(node: ITreeNode): void {
+ getInfo(model, instance): ModelInformationItem[] {
+ const modelInformation = !_.isEmpty(model) && !_.isEmpty(model.properties) ? [
+ ModelInformationItem.createInstance("Base module", model.properties.baseModule),
+ ModelInformationItem.createInstance("Min instances", !_.isNull(model.properties.minCountInstances)? String(model.properties.minCountInstances): null),
+ ModelInformationItem.createInstance("Max instances", !_.isNull(model.properties.maxCountInstances)? String(model.properties.maxCountInstances): null),
+ ModelInformationItem.createInstance("Initial instances count", !_.isNull(model.properties.initialCount)? String(model.properties.initialCount): null)
+ ] : [];
+
+ const instanceInfo = [];
+ const result = [modelInformation, instanceInfo];
+ return _.uniq(_.flatten(result));
}
-
- getInfoForVFModule(model, instance): ComponentInfoModel {
- let modelInfoItems: ModelInformationItem[] = [];
- if (model && !_.isNil(model.properties))
- {
- modelInfoItems = [
- ModelInformationItem.createInstance("Base Module", model.properties.baseModule),
- ModelInformationItem.createInstance("Min Instances", model.properties.minCountInstances),
- ModelInformationItem.createInstance("Max Instances", model.properties.maxCountInstances),
- ModelInformationItem.createInstance("Initial Instances Count", model.properties.initialCount)
- ];
- }
- return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VFMODULE, model, instance);
- }
-
-
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts
index 10c8e399c..de8962787 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts
@@ -18,7 +18,6 @@ import {IframeService} from "../../../../../shared/utils/iframe.service";
import {ServiceInfoService} from "../../../../../shared/server/serviceInfo/serviceInfo.service";
import {AuditInfoModalComponent} from "../../../../../shared/components/auditInfoModal/auditInfoModal.component";
import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
import {ComponentInfoService} from "../../../component-info/component-info.service";
import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
import {HttpClient, HttpHandler} from "@angular/common/http";
@@ -88,8 +87,7 @@ describe('Vnf Model Info', () => {
test('VnfModelInfo should defined extra details', () => {
expect(vnfModel.name).toEqual('vnfs');
expect(vnfModel.type).toEqual('VNF');
- expect(vnfModel.childName).toEqual('vfModules');
- expect(vnfModel.childType).toEqual('VFModuleModelInfo');
+ expect(vnfModel.childNames).toEqual(['vfModules']);
});
test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => {
@@ -135,8 +133,8 @@ describe('Vnf Model Info', () => {
});
test('getModel should return VNF model', () => {
- let model: VNFModel = vnfModel.getModel('2017-388_ADIOD-vPE 1', <any>{
- originalName : '2017-388_ADIOD-vPE 1'
+ let model: VNFModel = vnfModel.getModel('2017-388_PASQUALE-vPE 1', <any>{
+ originalName : '2017-388_PASQUALE-vPE 1'
}, getServiceHierarchy());
expect(model.type).toEqual('VF');
});
@@ -283,7 +281,7 @@ describe('Vnf Model Info', () => {
});
test('getMenuAction: edit', ()=>{
- let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+ let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
let result = vnfModel.getMenuAction(<any>node, serviceModelId);
spyOn(result['edit'], 'method');
@@ -302,11 +300,11 @@ describe('Vnf Model Info', () => {
"action": "None",
"inMaint": true,
"name": "jlfBwIks283yKlCD8",
- "modelName": "VF_vMee 0",
+ "modelName": "VF_vGeraldine 0",
"type": "VF",
"userProvidedNaming": false,
- "networkStoreKey": "VF_vMee 0:004",
- "vnfStoreKey": "VF_vMee 0:004",
+ "networkStoreKey": "VF_vGeraldine 0:004",
+ "vnfStoreKey": "VF_vGeraldine 0:004",
"typeName": "VNF"
},
type : 'VNF'
@@ -337,11 +335,11 @@ describe('Vnf Model Info', () => {
"action": "None",
"inMaint": true,
"name": "jlfBwIks283yKlCD8",
- "modelName": "VF_vMee 0",
+ "modelName": "VF_vGeraldine 0",
"type": "VF",
"isEcompGeneratedNaming":true,
- "networkStoreKey": "VF_vMee 0:004",
- "vnfStoreKey": "VF_vMee 0:004",
+ "networkStoreKey": "VF_vGeraldine 0:004",
+ "vnfStoreKey": "VF_vGeraldine 0:004",
"typeName": "VNF"
},
type : 'VNF'
@@ -364,11 +362,11 @@ describe('Vnf Model Info', () => {
"action": "None",
"inMaint": true,
"name": "jlfBwIks283yKlCD8",
- "modelName": "VF_vMee 0",
+ "modelName": "VF_vGeraldine 0",
"type": "VF",
"isEcompGeneratedNaming":true,
- "networkStoreKey": "VF_vMee 0:004",
- "vnfStoreKey": "VF_vMee 0:004",
+ "networkStoreKey": "VF_vGeraldine 0:004",
+ "vnfStoreKey": "VF_vGeraldine 0:004",
"typeName": "VNF"
},
type : 'VNF'
@@ -385,7 +383,7 @@ describe('Vnf Model Info', () => {
});
test('getMenuAction: delete', ()=>{
- let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+ let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
let result = vnfModel.getMenuAction(<any>node, serviceModelId);
spyOn(result['delete'], 'method');
@@ -398,7 +396,7 @@ describe('Vnf Model Info', () => {
test('getMenuAction: undoDelete', ()=>{
- let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+ let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
let result = vnfModel.getMenuAction(<any>node, serviceModelId);
spyOn(result['undoDelete'], 'method');
@@ -433,45 +431,36 @@ describe('Vnf Model Info', () => {
expect(result['showAuditInfo'].enable(node)).toBeTruthy();
result['showAuditInfo']['method'](node, serviceModelId);
- // expect(AuditInfoModalComponent.openInstanceAuditInfoModal.next).toBeCalled();
- // expect(result['showAuditInfo'].method)
-
});
test('Info for vnf should be correct', () => {
const model = getVNFModel();
const instance = getVNFInstance();
- let actualVNFInfo = vnfModel.getInfoForVnf(model,instance);
+ let actualVNFInfo = vnfModel.getInfo(model,instance);
let expectedVNFInfo = [
- ModelInformationItem.createInstance('Type', 'VF'),
- ModelInformationItem.createInstance('Model Version', '2.0'),
- ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'),
- ModelInformationItem.createInstance('Instance ID', '66cbb3b5-c823-470c-9520-4e0b85112250'),
- ModelInformationItem.createInstance('In Maintenance', true),
- ModelInformationItem.createInstance('Min Instances', 0),
- ModelInformationItem.createInstance('Max Instances',1)
+ ModelInformationItem.createInstance('Min instances', "0"),
+ ModelInformationItem.createInstance('Max instances',"1"),
+ ModelInformationItem.createInstance('NF type',undefined),
+ ModelInformationItem.createInstance('NF role',undefined)
];
- expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, []));
+ expect(actualVNFInfo).toEqual(expectedVNFInfo);
});
test('Info for vnf in left side - model only - should be correct', () => {
const model = getVNFModel();
- let actualVNFInfo = vnfModel.getInfoForVnf(model,null);
+ let actualVNFInfo = vnfModel.getInfo(model,null);
let expectedVNFInfo = [
- ModelInformationItem.createInstance('Type', 'VF'),
- ModelInformationItem.createInstance('Model Version', '2.0'),
- ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'),
- ModelInformationItem.createInstance('Min Instances', 0),
- ModelInformationItem.createInstance('Max Instances',1)
+ ModelInformationItem.createInstance('Min instances', "0"),
+ ModelInformationItem.createInstance('Max instances',"1")
];
- expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, []));
+ expect(actualVNFInfo).toEqual(expectedVNFInfo);
});
function getVNFModel(){
return {
- "name":"VF_vMee",
+ "name":"VF_vGeraldine",
"version":"2.0",
- "description":"VSP_vMee",
+ "description":"VSP_vGeraldine",
"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60",
"invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e",
"max":1,
@@ -479,7 +468,7 @@ describe('Vnf Model Info', () => {
"customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9",
"isEcompGeneratedNaming":true,
"type":"VF",
- "modelCustomizationName":"VF_vMee 0",
+ "modelCustomizationName":"VF_vGeraldine 0",
"vfcInstanceGroups":{},
"properties":{
"gpb2_Internal2_mac":"00:11:22:EF:AC:DF",
@@ -521,7 +510,7 @@ describe('Vnf Model Info', () => {
"lcpCloudRegionId":null,
"tenantId":null,
"modelInfo":{
- "modelCustomizationName":"VF_vMee 0",
+ "modelCustomizationName":"VF_vGeraldine 0",
"modelInvariantId":"vnf-instance-model-invariant-id",
"modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60",
"modelType":"vnf"
@@ -530,14 +519,14 @@ describe('Vnf Model Info', () => {
"provStatus":null,
"inMaint":true,
"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60",
- "originalName":"VF_vMee 0",
+ "originalName":"VF_vGeraldine 0",
"legacyRegion":null,
"lineOfBusiness":null,
"platformName":null,
- "trackById":"VF_vMee 0:004",
+ "trackById":"VF_vGeraldine 0:004",
"vfModules":{
- "vf_vmee0..VfVmee..vmme_vlc..module-1":{
- "vf_vmee0..VfVmee..vmme_vlc..module-1:008":{
+ "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{
+ "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008":{
"action":"None",
"instanceName":"ss820f_0918_db",
"instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280",
@@ -546,7 +535,7 @@ describe('Vnf Model Info', () => {
"lcpCloudRegionId":null,
"tenantId":null,
"modelInfo":{
- "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+ "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
"modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
"modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
"modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
@@ -556,11 +545,11 @@ describe('Vnf Model Info', () => {
"provStatus":null,
"inMaint":true,
"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
- "originalName":"VfVmee..vmme_vlc..module-1",
+ "originalName":"VfVgeraldine..vflorence_vlc..module-1",
"legacyRegion":null,
"lineOfBusiness":null,
"platformName":null,
- "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008",
+ "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
"isBase":false,
"volumeGroupName":null
}
@@ -615,7 +604,7 @@ describe('Vnf Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -631,11 +620,11 @@ describe('Vnf Model Info', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -698,37 +687,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -773,7 +762,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -781,14 +770,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -798,7 +787,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -812,16 +801,16 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -884,37 +873,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -960,7 +949,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -968,14 +957,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -985,7 +974,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -999,16 +988,16 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -1071,37 +1060,37 @@ describe('Vnf Model Info', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1148,7 +1137,7 @@ describe('Vnf Model Info', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1156,14 +1145,14 @@ describe('Vnf Model Info', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1173,7 +1162,7 @@ describe('Vnf Model Info', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1187,21 +1176,21 @@ describe('Vnf Model Info', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1211,10 +1200,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1225,10 +1214,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1239,10 +1228,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1253,10 +1242,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1267,10 +1256,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1278,37 +1267,37 @@ describe('Vnf Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1316,19 +1305,19 @@ describe('Vnf Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1338,10 +1327,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1352,10 +1341,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1366,10 +1355,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1380,10 +1369,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1394,29 +1383,29 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -1426,24 +1415,24 @@ describe('Vnf Model Info', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1453,10 +1442,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1467,10 +1456,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1481,10 +1470,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1495,10 +1484,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1509,10 +1498,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1520,37 +1509,37 @@ describe('Vnf Model Info', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1558,19 +1547,19 @@ describe('Vnf Model Info', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1580,10 +1569,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1594,10 +1583,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1608,10 +1597,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1622,10 +1611,10 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1636,29 +1625,29 @@ describe('Vnf Model Info', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts
index cec3fad1e..2bdeda083 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts
@@ -33,7 +33,7 @@ import {
} from "../../../../../shared/storeUtil/utils/vnf/vnf.actions";
import * as _ from 'lodash';
import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
import {ComponentInfoService} from "../../../component-info/component-info.service";
import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
@@ -53,9 +53,9 @@ export class VnfModelInfo implements ILevelNodeInfo {
name: string = 'vnfs';
type: string = 'VNF';
- childName: string = 'vfModules';
- childType: string = 'VFModuleModelInfo';
+ childNames: string[] = ['vfModules'];
typeName: string = 'VNF';
+ componentInfoType = ComponentInfoType.VNF;
/***********************************************************
* return if user should provide instance name or not.
@@ -215,11 +215,9 @@ export class VnfModelInfo implements ILevelNodeInfo {
},
duplicate: {
method: (node, serviceModelId) => {
- if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) {
- const storeKey = node.data.vnfStoreKey;
- let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
- this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
- }
+ const storeKey = node.data.vnfStoreKey;
+ let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
+ this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
},
visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId)
@@ -306,27 +304,18 @@ export class VnfModelInfo implements ILevelNodeInfo {
return !_.isNil(instance) ? instance.position : null;
}
- /***********************************************************
- * When user is click on some nod element
- * @param node - current ITrees node
- ************************************************************/
- onSelectedNode(node: ITreeNode): void {
- ComponentInfoService.triggerComponentInfoChange.next(new ComponentInfoModel(ComponentInfoType.VNF,[], []));
- }
+ getInfo(model, instance): ModelInformationItem[] {
+ const modelInformation = !_.isEmpty(model) ? [
+ ModelInformationItem.createInstance("Min instances", !_.isNull(model.min)? String(model.min): null),
+ ModelInformationItem.createInstance("Max instances", !_.isNull(model.max)? String(model.max): null)
+ ] : [];
- getInfoForVnf(model, instance): ComponentInfoModel {
- let modelInfoItems: ModelInformationItem[] = [];
- if (model) {
- modelInfoItems.push(ModelInformationItem.createInstance("Min Instances", model.min));
- modelInfoItems.push(ModelInformationItem.createInstance("Max Instances", model.max));
- }
- if (instance) {
- modelInfoItems.push(ModelInformationItem.createInstance("NF Type", instance.nfType));
- modelInfoItems.push(ModelInformationItem.createInstance("NF Role", instance.nfRole));
- }
- return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VNF, model, instance);
+ const instanceInfo = !_.isEmpty(instance) ? [
+ ModelInformationItem.createInstance("NF type", instance.nfType),
+ ModelInformationItem.createInstance("NF role", instance.nfRole)
+ ] : [];
+ const result = [modelInformation, instanceInfo];
+ return _.uniq(_.flatten(result));
}
-
-
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts
index 532a8fe17..802047cb9 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts
@@ -1,5 +1,4 @@
-
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
import {getTestBed, TestBed} from "@angular/core/testing";
import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
import {VnfGroupingModelInfo} from "./vnfGrouping.model.info";
@@ -10,9 +9,11 @@ import {DialogService} from "ng2-bootstrap-modal";
import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel";
import {IframeService} from "../../../../../shared/utils/iframe.service";
-import {ActivatedRoute} from "@angular/router";
import {RouterTestingModule} from "@angular/router/testing";
import {DrawingBoardModes} from "../../../drawing-board.modes";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {ITableContent} from "../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
describe('VnfGroupingModelInfo Model Info', () => {
let injector;
@@ -22,6 +23,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
let _sharedTreeService : SharedTreeService;
let _iframeService : IframeService;
let vnfGroupModel: VnfGroupingModelInfo;
+ let _aaiService : AaiService;
beforeAll(done => (async () => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, NgReduxTestingModule, RouterTestingModule],
@@ -31,13 +33,16 @@ describe('VnfGroupingModelInfo Model Info', () => {
DynamicInputsService,
SharedTreeService,
IframeService,
+ AaiService,
+ FeatureFlagsService,
MockNgRedux]
});
await TestBed.compileComponents();
injector = getTestBed();
_sharedTreeService = injector.get(SharedTreeService);
+ _aaiService = injector.get(AaiService);
- vnfGroupModel = new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService, MockNgRedux.getInstance());
+ vnfGroupModel = new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService, _aaiService, MockNgRedux.getInstance());
})().then(done).catch(done.fail));
@@ -59,7 +64,6 @@ describe('VnfGroupingModelInfo Model Info', () => {
expect(isEcompGeneratedNaming).toBeTruthy();
});
-
test('getTooltip should return "vnfGrouping"', () => {
let tooltip: string = vnfGroupModel.getTooltip();
expect(tooltip).toEqual('VnfGroup');
@@ -75,7 +79,6 @@ describe('VnfGroupingModelInfo Model Info', () => {
expect(nextLevel).not.toBeNull();
});
-
test('showNodeIcons should return true if not reachLimit of max', ()=>{
let serviceId : string = 'servicedId';
let node = {
@@ -199,6 +202,70 @@ describe('VnfGroupingModelInfo Model Info', () => {
expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
});
+
+ test('generateRelatedMemberTableContent', ()=> {
+ const tableContents: ITableContent[] = vnfGroupModel.generateRelatedMemberTableContent();
+ expect(tableContents).toEqual([
+ {
+ id: 'vnfName',
+ contents: [{
+ id: ['instanceName'],
+ value: ['instanceName']
+ }, {
+ id: ['instanceId'],
+ value: ["instanceId"],
+ prefix: 'UUID: '
+ }]
+ },
+ {
+ id: 'version',
+ contents: [{
+ id: ['modelInfo', 'modelVersion'],
+ value: ['modelInfo', 'modelVersion']
+ }]
+ },
+ {
+ id: 'modelName',
+ contents: [{
+ id: ['modelInfo', 'modelName'],
+ value: ['modelInfo', 'modelName']
+ }]
+ },
+ {
+ id: 'provStatus',
+ contents: [{
+ id: ['provStatus'],
+ value: ['provStatus']
+ }]
+ },
+ {
+ id: 'serviceInstance',
+ contents: [{
+ id: ['serviceInstanceName'],
+ value: ['serviceInstanceName']
+ }, {
+ id: ['serviceInstanceId'],
+ value: ["serviceInstanceId"],
+ prefix: 'UUID: '
+ }]
+ },
+ {
+ id: 'cloudRegion',
+ contents: [{
+ id: ['lcpCloudRegionId'],
+ value: ['lcpCloudRegionId']
+ }]
+ },
+ {
+ id: 'tenantName',
+ contents: [{
+ id: ['tenantName'],
+ value: ['tenantName']
+ }]
+ }
+ ]);
+ });
+
function getServiceHierarchy(){
return {
"service": {
@@ -214,7 +281,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -245,11 +312,11 @@ describe('VnfGroupingModelInfo Model Info', () => {
"type": "LOAD-GROUP"
},
"members": {
- "vdbe_svc_vprs_proxy 0": {
+ "vdorothea_svc_vprs_proxy 0": {
"uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
"invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
- "description": "A Proxy for Service vDBE_Svc_vPRS",
- "name": "vDBE_Svc_vPRS Service Proxy",
+ "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+ "name": "vDOROTHEA_Svc_vPRS Service Proxy",
"version": "1.0",
"customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
"inputs": {},
@@ -258,12 +325,12 @@ describe('VnfGroupingModelInfo Model Info', () => {
"type": "Service Proxy",
"sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
"sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
- "sourceModelName": "vDBE_Svc_vPRS"
+ "sourceModelName": "vDOROTHEA_Svc_vPRS"
},
- "vdbe_svc_vprs_proxy 1": {
+ "vdorothea_svc_vprs_proxy 1": {
"uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c",
"invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc",
- "description": "A Proxy for Service vDBE_Svc_vPRS",
+ "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
"name": "111_Svc_vPRS Service Proxy",
"version": "1.0",
"customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9",
@@ -279,7 +346,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
@@ -288,4 +355,67 @@ describe('VnfGroupingModelInfo Model Info', () => {
"pnfs": {}
}
}
+
+ function loadMockMembers(): any[] {
+ return [
+ {
+ "action": "None",
+ "instanceName": "VNF1_INSTANCE_NAME",
+ "instanceId": "VNF1_INSTANCE_ID",
+ "orchStatus": null,
+ "productFamilyId": null,
+ "lcpCloudRegionId": "hvf23b",
+ "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+ "tenantName": "APPC-24595-T-IST-02C",
+ "modelInfo": {
+ "modelInvariantId": "vnf-instance-model-invariant-id",
+ "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "modelVersion": "2.0",
+ "modelName": "vf_vEPDG",
+ "modelType": "vnf"
+ },
+ "instanceType": "VNF1_INSTANCE_TYPE",
+ "provStatus": null,
+ "inMaint": false,
+ "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "originalName": null,
+ "legacyRegion": null,
+ "lineOfBusiness": null,
+ "platformName": null,
+ "trackById": "7a6ee536-f052-46fa-aa7e-2fca9d674c44:002",
+ "serviceInstanceId": "service-instance-id1",
+ "serviceInstanceName": "service-instance-name"
+ },
+ {
+ "action": "None",
+ "instanceName": "VNF2_INSTANCE_NAME",
+ "instanceId": "VNF2_INSTANCE_ID",
+ "orchStatus": null,
+ "productFamilyId": null,
+ "lcpCloudRegionId": "hvf23b",
+ "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+ "tenantName": "APPC-24595-T-IST-02C",
+ "modelInfo": {
+ "modelInvariantId": "vnf-instance-model-invariant-id",
+ "modelVersionId": "eb5f56bf-5855-4e61-bd00-3e19a953bf02",
+ "modelVersion": "1.0",
+ "modelName": "vf_vEPDG",
+ "modelType": "vnf"
+ },
+ "instanceType": "VNF2_INSTANCE_TYPE",
+ "provStatus": null,
+ "inMaint": true,
+ "uuid": "eb5f56bf-5855-4e61-bd00-3e19a953bf02",
+ "originalName": null,
+ "legacyRegion": null,
+ "lineOfBusiness": null,
+ "platformName": null,
+ "trackById": "eb5f56bf-5855-4e61-bd00-3e19a953bf02:003",
+ "serviceInstanceId": "service-instance-id2",
+ "serviceInstanceName": "service-instance-name"
+ }
+ ];
+ }
+
+
});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts
index 7f2052a0c..148ce22c7 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts
@@ -20,10 +20,21 @@ import {
undoDeleteActionVnfGroupInstance
} from "../../../../../shared/storeUtil/utils/vnfGroup/vnfGroup.actions";
import {RelatedVnfMemberInfoModel} from "../relatedVnfMember/relatedVnfMember.info.model";
-import {SearchMembersModalComponent} from "../../../../../shared/components/searchMembersModal/search-members-modal.component";
+import {SearchElementsModalComponent} from "../../../../../shared/components/searchMembersModal/search-elements-modal.component";
import * as _ from "lodash";
import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data";
import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {Observable} from "rxjs";
+import {createRelatedVnfMemberInstance} from "../../../../../shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.actions";
+import {
+ ITableContent,
+ SearchFieldItemType
+} from "../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {CustomTableColumnDefinition} from "../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
export class VnfGroupingModelInfo implements ILevelNodeInfo {
constructor(private _dynamicInputsService: DynamicInputsService,
@@ -31,15 +42,16 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
private _dialogService: DialogService,
private _vnfGroupPopupService: VnfGroupPopupService,
private _iframeService: IframeService,
+ private _aaiService: AaiService,
private _store: NgRedux<AppState>) {
}
name: string = 'vnfGroups';
type: string = 'VnfGroup';
typeName: string = 'G';
- childType: string = 'RelatedVnfMemberInfoModel';
- childName: string = 'vnfs';
- limitMembers : number;
+ childNames: string[] = ['vnfs'];
+ componentInfoType = ComponentInfoType.VNFGROUP;
+ limitMembers: number;
/***********************************************************
* return if user should provide instance name or not.
@@ -78,7 +90,7 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
node.typeName = this.typeName;
node.menuActions = this.getMenuAction(<any>node, model.uuid);
node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
- node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: "";
+ node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
node.limitMembers = (!_.isNil(model.properties.quantity)) ? model.properties.quantity : null;
return node;
}
@@ -182,29 +194,61 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node)
},
+
addGroupMember: {
method: (node, serviceModelId) => {
let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId];
let serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
let vnfGroupModel = new VnfGroupModel(serviceHierarchy['vnfGroups'][node.data.modelName]);
- this._dialogService.addDialog(SearchMembersModalComponent, {
- title: 'Add members to group',
- description: 'Select VNF instances to associate',
- subscriberId: serviceInstance.globalSubscriberId,
- serviceType: serviceInstance.subscriptionServiceType,
- vnfGroupModel: vnfGroupModel,
- serviceModelId: serviceModelId,
- node: node.data,
- searchFields: [{
- title: 'Service model name',
- dataTestId: 'sourceModelName',
- value: (Object.values(vnfGroupModel.members))[0].sourceModelName
- },
- {
- title: 'Service invariant UUID',
- dataTestId: 'sourceModelInvariant',
- value: (Object.values(vnfGroupModel.members))[0].sourceModelInvariant
- }]
+ this._dialogService.addDialog(SearchElementsModalComponent, {
+ modalInformation: {
+ type: 'VNF',
+ serviceModelId : serviceModelId,
+ title: 'Add members to group',
+ description: 'Select VNF instances to associate',
+ noElementsMsg: 'No VNFs were found that can belong to this group.',
+ uniqObjectField: 'instanceId',
+ topButton: {
+ text: 'SET MEMBERS',
+ /********************************************************************************************************************************
+ iterate over all current elements:
+
+ 1) if element is selected then update REDUX store
+ 2) if element is not selected then delete member
+
+ @searchElementsModalComponent - all modal information (allElementsStatusMap, vnfGroupStoreKey, serviceId)
+ ********************************************************************************************************************************/
+
+ action: (searchElementsModalComponent) => {
+ let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+ for (let key in tmpMembers) {
+ if (tmpMembers[key].isSelected) {
+ this._store.dispatch(createRelatedVnfMemberInstance(node.data.vnfGroupStoreKey, serviceModelId, tmpMembers[key]));
+ }
+ }
+ searchElementsModalComponent.closeDialog();
+ }
+ },
+ getElements: (): Observable<Level1Instance[]> => {
+ return this._aaiService.getOptionalGroupMembers(serviceModelId, serviceInstance.globalSubscriberId, serviceInstance.subscriptionServiceType, (Object.values(vnfGroupModel.members))[0].sourceModelInvariant, vnfGroupModel.properties.type, vnfGroupModel.properties.role).map((result) => {
+ return this.filterUsedVnfMembers(serviceModelId, result);
+ });
+ },
+ tableHeaders : this.getTableHeaders(),
+ tableContent: this.generateRelatedMemberTableContent(),
+ searchFields: [{
+ title: 'Service model name',
+ dataTestId: 'sourceModelName',
+ value: (Object.values(vnfGroupModel.members))[0].sourceModelName,
+ type: SearchFieldItemType.LABEL
+ },
+ {
+ title: 'Service invariant UUID',
+ dataTestId: 'sourceModelInvariant',
+ value: (Object.values(vnfGroupModel.members))[0].sourceModelInvariant,
+ type: SearchFieldItemType.LABEL
+ }]
+ }
}
);
},
@@ -223,9 +267,9 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
method: (node, serviceModelId) => {
if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId));
- }else {
- this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId)=>{
- this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+ } else {
+ this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId) => {
+ this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId));
});
});
@@ -252,13 +296,101 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
}
+
+ generateRelatedMemberTableContent(): ITableContent[] {
+ return [
+ {
+ id: 'vnfName',
+ contents: [{
+ id: ['instanceName'],
+ value: ['instanceName']
+ }, {
+ id: ['instanceId'],
+ value: ["instanceId"],
+ prefix: 'UUID: '
+ }]
+ },
+ {
+ id: 'version',
+ contents: [{
+ id: ['modelInfo', 'modelVersion'],
+ value: ['modelInfo', 'modelVersion']
+ }]
+ },
+ {
+ id: 'modelName',
+ contents: [{
+ id: ['modelInfo', 'modelName'],
+ value: ['modelInfo', 'modelName']
+ }]
+ },
+ {
+ id: 'provStatus',
+ contents: [{
+ id: ['provStatus'],
+ value: ['provStatus']
+ }]
+ },
+ {
+ id: 'serviceInstance',
+ contents: [{
+ id: ['serviceInstanceName'],
+ value: ['serviceInstanceName']
+ }, {
+ id: ['serviceInstanceId'],
+ value: ["serviceInstanceId"],
+ prefix: 'UUID: '
+ }]
+ },
+ {
+ id: 'cloudRegion',
+ contents: [{
+ id: ['lcpCloudRegionId'],
+ value: ['lcpCloudRegionId']
+ }]
+ },
+ {
+ id: 'tenantName',
+ contents: [{
+ id: ['tenantName'],
+ value: ['tenantName']
+ }]
+ }
+ ];
+ }
+
+ getTableHeaders() : CustomTableColumnDefinition[]{
+ const type : string = 'VNF';
+ return [
+ {displayName: `${type} instance name`, key: ['instanceName']},
+ {displayName: `${type} version`, key: ['modelInfo', 'modelVersion']},
+ {displayName: `${type} model name`, key: ['modelInfo', 'modelName']},
+ {displayName: 'Prov Status', key: ['provStatus']},
+ {displayName: 'Service instance name', key: ['serviceInstanceName']},
+ {displayName: 'Cloud Region', key: ['lcpCloudRegionId']},
+ {displayName: 'Tenant Name', key: ['tenantName']}
+ ];
+ }
+
+ filterUsedVnfMembers = (serviceModelId: string, result: Level1Instance[]): Level1Instance[] => {
+ const allMembersMap = _.keyBy(result as Level1Instance[], 'instanceId');
+ const vnfGroupsData = this._store.getState().service.serviceInstance[serviceModelId].vnfGroups;
+ const vnfMembersArr = _.flatMap(vnfGroupsData).map((vnfGroup) => vnfGroup.vnfs);
+ for (let vnf of vnfMembersArr) {
+ for (let member in vnf) {
+ delete allMembersMap[member];
+ }
+ }
+ return _.flatMap(allMembersMap);
+ };
+
removeGroup(this, node, serviceModelId) {
this._store.dispatch(removeInstance(node.data.modelName, serviceModelId, node.data.vnfGroupStoreKey, node));
this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
this._sharedTreeService.selectedVNF = null;
}
- updatePosition(that , node, instanceId): void {
+ updatePosition(that, node, instanceId): void {
// TODO
}
@@ -266,7 +398,8 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
return !_.isNil(instance) ? instance.position : null;
}
- onSelectedNode(node: ITreeNode): void {
+ getInfo(model, instance): ModelInformationItem[] {
+ return [];
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts
new file mode 100644
index 000000000..9ccfaf753
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts
@@ -0,0 +1,66 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {SharedTreeService} from "../../shared.tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {VpnModelInfo} from "./vpn.model.info";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import * as _ from "lodash";
+import {VpnTreeNode} from "../../../../../shared/models/vpnTreeNode";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+
+describe('VPN Model Info', () => {
+
+ let injector;
+ let _store : NgRedux<AppState>;
+ let _sharedTreeService: SharedTreeService;
+ let vpnModel: VpnModelInfo;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule, NgReduxTestingModule],
+ providers: [
+ SharedTreeService,
+ MockNgRedux
+ ]
+ }).compileComponents();
+ injector = getTestBed();
+ _sharedTreeService = injector.get(SharedTreeService);
+ _store = injector.get(NgRedux);
+ vpnModel = new VpnModelInfo(_store,_sharedTreeService);
+ });
+
+
+ test('vpnModel should be defined', () => {
+ expect(vpnModel).toBeDefined();
+ });
+
+ test('vpnModel should defined extra details', () => {
+ expect(vpnModel.name).toEqual('vpns');
+ expect(vpnModel.type).toEqual('VPN');
+ expect(vpnModel.childNames).toBeUndefined;
+ expect(vpnModel.componentInfoType).toEqual(ComponentInfoType.VPN);
+ });
+
+ test('Info for vpn should be correct', () => {
+ const model = null;
+ const instance = new VpnTreeNode(new Level1Instance(), new Level1Model(), "");
+ instance.region = "USA,EMEA";
+ instance.routeTargetId = "globalRouteTarget_1";
+ instance.routeTargetRole = "routeTargetRole_1";
+ instance.customerVPNId = "VPN1260";
+ let actualVpnInfo = vpnModel.getInfo(model,instance);
+ const instanceInfo = [
+ ModelInformationItem.createInstance("Region", "USA,EMEA"),
+ ModelInformationItem.createInstance("Route target id", "globalRouteTarget_1"),
+ ModelInformationItem.createInstance("Route target role", "routeTargetRole_1"),
+ ModelInformationItem.createInstance("Customet VPN ID", "VPN1260")];
+ expect(actualVpnInfo).toEqual(instanceInfo);
+ });
+
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts
new file mode 100644
index 000000000..b951162f8
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts
@@ -0,0 +1,96 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import * as _ from "lodash";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {SharedTreeService} from "../../shared.tree.service";
+import {NetworkInstance} from "../../../../../shared/models/networkInstance";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+import {VpnTreeNode} from "../../../../../shared/models/vpnTreeNode";
+
+export class VpnModelInfo implements ILevelNodeInfo {
+ constructor(private _store: NgRedux<AppState>,
+ private _sharedTreeService: SharedTreeService) {
+ }
+
+ name: string = 'vpns';
+ type: string = 'VPN';
+ typeName: string = 'VPN';
+
+ childNames: string[] = [];
+ componentInfoType = ComponentInfoType.VPN;
+
+ isEcompGeneratedNaming(currentModel): boolean {
+ return false;
+ }
+
+ updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+ getModel = (modelId: string, instance: any, serviceHierarchy): any => {
+ return new Level1Model();
+ };
+
+
+ createInstanceTreeNode = (instance: NetworkInstance, model: any, parentModel, storeKey: string): VpnTreeNode => {
+ let node = new VpnTreeNode(instance, model, storeKey);
+ node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+ node = this._sharedTreeService.addingStatusProperty(node);
+ node.typeName = this.typeName;
+ node.menuActions = this.getMenuAction(<any>node, model.uuid);
+ node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+ node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+ node = this._sharedTreeService.addingStatusProperty(node);
+ return node;
+ };
+
+
+ getNextLevelObject = (): any => {
+ return null;
+ };
+
+ getTooltip = (): string => 'VPN';
+
+ getType = (): string => 'VPN';
+
+ hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+ return false;
+ }
+
+ onClickAdd(node, serviceModelId: string): void {
+
+ }
+
+ getNodeCount(node: ITreeNode, serviceModelId: string): number {
+ return 0;
+ }
+
+ showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+ return null;
+ }
+
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+ return {};
+ }
+
+ updatePosition(that, node, instanceId): void {
+ }
+
+ getNodePosition(instance): number {
+ return 0;
+ }
+
+ getInfo(model, instance): ModelInformationItem[] {
+ const modelInformation = [];
+ const instanceInfo = !_.isEmpty(instance) ? [
+ ModelInformationItem.createInstance("Region", instance.region),
+ ModelInformationItem.createInstance("Route target id", !_.isNull(instance.routeTargetId) ? instance.routeTargetId : null),
+ ModelInformationItem.createInstance("Route target role", !_.isNull(instance.routeTargetRole) ? instance.routeTargetRole : null),
+ ModelInformationItem.createInstance("Customet VPN ID", !_.isNull(instance.customerVPNId) ? instance.customerVPNId : null)] : [];
+ const result = [modelInformation, instanceInfo];
+ return _.uniq(_.flatten(result));
+ }
+}
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts
new file mode 100644
index 000000000..07d4cee9b
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts
@@ -0,0 +1,238 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {VrfModelInfo} from "./vrf.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import each from 'jest-each';
+import {DialogService} from "ng2-bootstrap-modal";
+import {NetworkStepService} from "./vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./vrfModal/vpnStep/vpn.step.service";
+
+describe('Vrf Model Info', () => {
+
+ let injector;
+ let _componentInfoService : ComponentInfoService;
+
+ let _store : NgRedux<AppState>;
+ let _sharedTreeService: SharedTreeService;
+ let _dialogService : DialogService;
+ let _iframeService : IframeService;
+ let _networkStepService : NetworkStepService;
+ let _vpnStepService : VpnStepService;
+ let vrfModel: VrfModelInfo;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpClientTestingModule, NgReduxTestingModule],
+ providers: [
+ MockNgRedux,
+ DynamicInputsService,
+ SharedTreeService,
+ DuplicateService,
+ AaiService,
+ HttpClient,
+ HttpHandler,
+ FeatureFlagsService,
+ ComponentInfoService,
+ DialogService,
+ IframeService,
+ IframeService,
+ NetworkStepService,
+ VpnStepService]
+ }).compileComponents();
+
+ injector = getTestBed();
+ _sharedTreeService = injector.get(SharedTreeService);
+ _dialogService = injector.get(DialogService);
+ _iframeService = injector.get(IframeService);
+ _networkStepService = injector.get(NetworkStepService);
+ _vpnStepService = injector.get(VpnStepService);
+ _store = injector.get(NgRedux);
+ _componentInfoService = injector.get(ComponentInfoService);
+
+ vrfModel = new VrfModelInfo(_store,_sharedTreeService, _dialogService, _iframeService, _networkStepService, _vpnStepService);
+
+ });
+
+
+ test('vrfModel should be defined', () => {
+ expect(vrfModel).toBeDefined();
+ });
+
+ test('vrfModel should defined extra details', () => {
+ expect(vrfModel.name).toEqual('vrfs');
+ expect(vrfModel.type).toEqual('VRF');
+ expect(vrfModel.childNames).toEqual(['networks','vpns']);
+ expect(vrfModel.componentInfoType).toEqual(ComponentInfoType.VRF);
+ });
+
+ test('Info for vrf should be correct', () => {
+ const model = new VrfModel();
+ const instance = null;
+ let actualNetworkInfo = vrfModel.getInfo(model,instance);
+ let expectedNetworkInfo = [
+ ModelInformationItem.createInstance('Min instances', "1"),
+ ModelInformationItem.createInstance('Max instances', "1"),
+ ModelInformationItem.createInstance("Association", "L3-Network - VPN")
+ ];
+ expect(actualNetworkInfo).toEqual(expectedNetworkInfo);
+ });
+
+
+
+ test('getModel should return VRF model with min and max are equal to 1 (hard coded)', () => {
+ let model: VrfModel = vrfModel.getModel('VRF Entry Configuration 0', <any>{
+ originalName : 'VRF Entry Configuration 0'
+ }, getServiceHierarchy());
+ expect(model.properties['type']).toEqual('VRF-ENTRY');
+ expect(model.min).toEqual(1);
+ expect(model.max).toEqual(1);
+ });
+
+ const showNodeIconsDataProvider = [
+ [false, new AvailableNodeIcons(true , false)],
+ [true, new AvailableNodeIcons(false , true)]
+ ];
+
+ each(showNodeIconsDataProvider).test('showNodeIcons should return value according reach limit of max',(existVRFs,expectedResult)=>{
+ const serviceId : string = 'servicedId';
+ const node = getNode();
+ let state = getMockState();
+ if(existVRFs) {
+ state.service.serviceInstance.servicedId.existingVRFCounterMap = {
+ 'modelCustomizationId': 1
+ };
+ }
+ jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue(state);
+ const result = vrfModel.showNodeIcons(<any>node, serviceId);
+ expect(result).toEqual(expectedResult);
+ });
+
+ function getNode() {
+ return {
+ data: {
+ id: 'vrfId',
+ name: 'VRF Entry Configuration 0',
+ modelCustomizationId: 'modelCustomizationId',
+ modelUniqueId: 'modelCustomizationId',
+ getModel: function () {
+ return {max: 1}
+ }
+ }
+ };
+ }
+
+ function getMockState(){
+ return {
+ global:{
+ "drawingBoardStatus": "CREATE"
+ },
+ service : {
+ serviceHierarchy : {
+ 'servicedId' : {
+ }
+ },
+ serviceInstance : {
+ 'servicedId' : {
+ 'existingVRFCounterMap' : {},
+ 'vrfs' : {
+ 'vrfName' :{
+
+ }
+ }
+ }
+ }
+ }
+ };
+ }
+
+ function getServiceHierarchy() {
+ return {
+ "service": {
+ "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+ "name": "infraVPN",
+ "version": "1.0",
+ "toscaModelURL": null,
+ "category": "Network Service",
+ "serviceType": "BONDING",
+ "serviceRole": "INFRASTRUCTURE-VPN",
+ "description": "ddd",
+ "serviceEcompNaming": "true",
+ "instantiationType": "A-La-Carte",
+ "inputs": {},
+ "vidNotions": {
+ "instantiationUI": "macroService",
+ "modelCategory": "other",
+ "viewEditUI": "legacy"
+ }
+ },
+ "vnfs": {},
+ "networks": {},
+ "collectionResources": {},
+ "configurations": {},
+ "fabricConfigurations": {},
+ "serviceProxies": {
+ "misvpn_service_proxy 0": {
+ "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1",
+ "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76",
+ "description": "A Proxy for Service MISVPN_SERVICE",
+ "name": "MISVPN_SERVICE Service Proxy",
+ "version": "3.0",
+ "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923",
+ "inputs": {},
+ "commands": {},
+ "properties": {
+ "ecomp_generated_naming": "false"
+ },
+ "type": "Service Proxy",
+ "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b",
+ "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272",
+ "sourceModelName": "MISVPN_SERVICE"
+ }
+ },
+ "vfModules": {},
+ "volumeGroups": {},
+ "pnfs": {},
+ "vnfGroups": {},
+ "vrfs": {
+ "VRF Entry Configuration 0": {
+ "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+ "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a",
+ "description": "VRF Entry configuration object",
+ "name": "VRF Entry Configuration",
+ "version": "30.0",
+ "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "inputs": {},
+ "commands": {},
+ "properties": {
+ "ecomp_generated_naming": "false",
+ "type": "VRF-ENTRY",
+ "role": "INFRASTRUCTURE-CLOUD-VPN"
+ },
+ "type": "Configuration",
+ "modelCustomizationName": "VRF Entry Configuration 0",
+ "sourceNodes": [],
+ "collectorNodes": null,
+ "configurationByPolicy": false
+ }
+ }
+ }
+ }
+
+
+
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts
new file mode 100644
index 000000000..4c779a313
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts
@@ -0,0 +1,188 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {VrfInstance} from "../../../../../shared/models/vrfInstance";
+import {VrfTreeNode} from "../../../../../shared/models/vrfTreeNode";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DialogService} from 'ng2-bootstrap-modal';
+import {SearchElementsModalComponent} from "../../../../../shared/components/searchMembersModal/search-elements-modal.component";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {NetworkStepService} from "./vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./vrfModal/vpnStep/vpn.step.service";
+import {NetworkModelInfo} from "../network/network.model.info";
+import {VpnModelInfo} from "../vpn/vpn.model.info";
+import {
+ clearAllGenericModalhelper,
+ updateGenericModalhelper,
+ updateGenericModalTableDataHelper
+} from "../../../../../shared/storeUtil/utils/global/global.actions";
+import {
+ deleteActionVrfInstance,
+ undoDeleteActionVrfInstance
+} from "../../../../../shared/storeUtil/utils/vrf/vrf.actions";
+import * as _ from "lodash";
+
+export class VrfModelInfo implements ILevelNodeInfo {
+ constructor(private _store: NgRedux<AppState>,
+ private _sharedTreeService: SharedTreeService,
+ private _dialogService: DialogService,
+ private _iframeService: IframeService,
+ private _networkStepService: NetworkStepService,
+ private _vpnStepService: VpnStepService) {
+ }
+
+ name: string = 'vrfs';
+ type: string = 'VRF';
+ typeName: string = 'VRF';
+ childNames: string [] = ["networks", "vpns"];
+ componentInfoType = ComponentInfoType.VRF;
+
+ isEcompGeneratedNaming(currentModel): boolean {
+ return false;
+ }
+
+ updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+ getModel = (vrfModelId: string, instance: VrfInstance, serviceHierarchy): VrfModel => {
+ const originalModelName = instance.originalName ? instance.originalName : vrfModelId;
+ return new VrfModel(serviceHierarchy[this.name][originalModelName]);
+ };
+
+
+ createInstanceTreeNode = (instance: VrfInstance, model: VrfModel, parentModel, storeKey: string): VrfTreeNode => {
+ let node = new VrfTreeNode(instance, model, storeKey);
+ node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+ node.typeName = this.typeName;
+ node.menuActions = this.getMenuAction(<any>node, model.uuid);
+ node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+ node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+ return node;
+ };
+
+
+ getNextLevelObject = (nextLevelType: string): any => {
+ if (nextLevelType === 'vpns') {
+ return new VpnModelInfo(this._store, this._sharedTreeService);
+ } else {
+ if (nextLevelType === 'networks') {
+ return new NetworkModelInfo(null, this._sharedTreeService, null, null, null, null, null, this._store);
+ }
+ }
+ };
+
+ getTooltip = (): string => 'VRF';
+
+ getType = (): string => 'VRF';
+
+ hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+ return false;
+ }
+
+ onClickAdd(node, serviceModelId: string): void {
+ this._store.dispatch(clearAllGenericModalhelper());
+ this._store.dispatch(updateGenericModalTableDataHelper('currentVRF', {
+ model: this._store.getState().service.serviceHierarchy[serviceModelId].vrfs[node.data.name],
+ instance: null
+ }));
+ this._iframeService.addFullScreen();
+ let modalSteps = [this._vpnStepService, this._networkStepService];
+ const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
+ this._dialogService.addDialog(SearchElementsModalComponent, {
+ modalInformation: this._networkStepService.getNetworkStep(serviceInstance, serviceModelId, ...modalSteps)
+ }
+ )
+ }
+
+ getNodeCount(node: ITreeNode, serviceModelId: string): number {
+ //TODO
+ return 0;
+ }
+
+ showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+ const serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId];
+
+ let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ?
+ (this._store.getState().service.serviceInstance[serviceModelId].existingVRFCounterMap[node.data.modelUniqueId] || 0) : 0;
+ counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'vrfs');
+ const model = node.data.getModel(node.data.name, node.data, serviceHierarchy);
+ const maxInstances: number = model.max;
+ const isReachedLimit = !(maxInstances > counter);
+ const showAddIcon = this._sharedTreeService.shouldShowAddIcon() && !isReachedLimit;
+
+ return new AvailableNodeIcons(showAddIcon, isReachedLimit)
+ }
+
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+ return <any>{
+ changeAssociations: {
+ method: (node, serviceModelId) => {
+ let modalSteps = [this._vpnStepService, this._networkStepService];
+ this._store.dispatch(clearAllGenericModalhelper());
+ const vrfInstance = this._store.getState().service.serviceInstance[serviceModelId].vrfs[node.data.vrfStoreKey];
+ const vrfModel = this._store.getState().service.serviceHierarchy[serviceModelId].vrfs[node.data.name];
+ this._store.dispatch(updateGenericModalTableDataHelper('currentVRF', {
+ model: vrfModel,
+ instance: vrfInstance,
+ vrfStoreKey: node.data.vrfStoreKey
+ }));
+
+
+ for (let networkKey in vrfInstance.networks) {
+ this._store.dispatch(updateGenericModalhelper(`selectedNetwork`, vrfInstance.networks[networkKey], modalSteps[1].uniqObjectField));
+ }
+
+ for (let networkKey in vrfInstance.vpns) {
+ this._store.dispatch(updateGenericModalhelper(`selectedVPN`, vrfInstance.vpns[networkKey], modalSteps[0].uniqObjectField));
+ }
+
+ this._iframeService.addFullScreen();
+
+ const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
+ this._dialogService.addDialog(SearchElementsModalComponent, {
+ modalInformation: this._networkStepService.getNetworkStep(serviceInstance, serviceModelId, ...modalSteps)
+ }
+ )
+ },
+ visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ },
+ delete: {
+ method: (node, serviceModelId) => {
+ this._store.dispatch(deleteActionVrfInstance(node.data.vrfStoreKey, serviceModelId));
+ },
+ visible: (node) => this._sharedTreeService.shouldShowDelete(node),
+ enable: (node) => this._sharedTreeService.shouldShowDelete(node)
+ },
+ undoDelete: {
+ method: (node, serviceModelId) => {
+ this._store.dispatch(undoDeleteActionVrfInstance(node.data.vrfStoreKey, serviceModelId));
+ },
+ visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node),
+ enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
+ }
+ }
+ }
+
+ updatePosition(that, node, instanceId): void {
+ //TODO
+ }
+
+ getNodePosition(instance): number {
+ //TODO
+ return 0;
+ }
+
+ getInfo(model, instance): ModelInformationItem[] {
+ const modelInformation = !_.isEmpty(model) ? [
+ ModelInformationItem.createInstance("Min instances", "1"),
+ ModelInformationItem.createInstance("Max instances", "1"),
+ ModelInformationItem.createInstance("Association", "L3-Network - VPN")] : [];
+ return modelInformation;
+ }
+}
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts
new file mode 100644
index 000000000..8a2d18ad5
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts
@@ -0,0 +1,18 @@
+export class NetworkModalRow {
+ instanceName : string;
+ instanceType: string;
+ role: string;
+ orchStatus: string;
+ physicalName: string;
+ instanceId: string;
+ serviceName : string;
+ serviceUUID : string;
+ tenantName : string;
+ lcpCloudRegionId : string;
+ modelInfo : {
+ modelCustomizationId: string;
+ modelInvariantId: string;
+ modelVersionId: string;
+ modelType: string;
+ }
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts
new file mode 100644
index 000000000..e06e4c9f9
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts
@@ -0,0 +1,458 @@
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {FeatureFlagsService} from "../../../../../../../shared/services/featureFlag/feature-flags.service";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {NetworkStepService} from "./network.step.service";
+import {updateGenericModalCriteria} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {ITableContent} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+
+describe('Network step service', () => {
+ let injector;
+ let service: NetworkStepService;
+ let store: NgRedux<AppState>;
+ beforeAll(done => (async () => {
+ TestBed.configureTestingModule({
+ imports: [NgReduxTestingModule, HttpClientTestingModule],
+ providers: [
+ NetworkStepService,
+ FeatureFlagsService,
+ AaiService
+ ]
+ });
+ await TestBed.compileComponents();
+ injector = getTestBed();
+ service = injector.get(NetworkStepService);
+ store = injector.get(NgRedux);
+ })().then(done).catch(done.fail));
+
+ test('service should be defined', () => {
+ expect(service).toBeDefined();
+ });
+
+
+ test('networkStep', () => {
+ spyOn(store, 'getState').and.returnValue({
+ "global": {
+ "genericModalHelper": {
+ "selectedNetwork": {
+ "action": "None",
+ "instanceName": "NETWORK_1_INSTANCE_NAME",
+ "instanceId": "NETWORK_1_INSTANCE_ID",
+ "orchStatus": null,
+ "productFamilyId": null,
+ "lcpCloudRegionId": "hvf23b",
+ "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+ "tenantName": "APPC-24595-T-IST-02C",
+ "modelInfo": {
+ "modelInvariantId": "network-instance-model-invariant-id",
+ "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "modelVersion": "2.0",
+ "modelName": "vf_vEPDG",
+ "modelType": "vnf"
+ },
+ "roles": ["network role 1", "network role 2"],
+ "instanceType": "NETWORK_1_INSTANCE_TYPE",
+ "provStatus": null,
+ "inMaint": false,
+ "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "originalName": null,
+ "legacyRegion": null,
+ "lineOfBusiness": null,
+ "platformName": null,
+ "trackById": "VNF1_INSTANCE_ID",
+ "serviceInstanceId": "service-instance-id1",
+ "serviceInstanceName": "service-instance-name",
+ "isSelected": true
+ },
+ "selectedVpn": {
+ "vpn-id": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+ "vpn-name": "LPPVPN",
+ "vpn-platform": "AVPN",
+ "vpn-type": "SERVICE-INFRASTRUCTURE",
+ "vpn-region": "USA,EMEA",
+ "customer-vpn-id": "VPN1260",
+ "model-customization-id": null,
+ "model-invariant-id": null,
+ "model-version-id": null,
+ "route-targets": null,
+ "isSelected": true
+ }
+ },
+ "genericModalCriteria": {"roles": ["-- select an option --", "network role 1", "network role 2", "network role 3", "network role 4", "network role 5"]},
+ "name": null,
+ "flags": {
+ "CREATE_INSTANCE_TEST": false,
+ "EMPTY_DRAWING_BOARD_TEST": false,
+ "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
+ "FLAG_ASYNC_INSTANTIATION": true,
+ "FLAG_ASYNC_JOBS": true,
+ "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+ "FLAG_UNASSIGN_SERVICE": false,
+ "FLAG_SERVICE_MODEL_CACHE": false,
+ "FLAG_SHOW_ASSIGNMENTS": true,
+ "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
+ "FLAG_DUPLICATE_VNF": true,
+ "FLAG_DEFAULT_VNF": true,
+ "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
+ "FLAG_A_LA_CARTE_AUDIT_INFO": true,
+ "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+ "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true,
+ "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true,
+ "FLAG_1902_NEW_VIEW_EDIT": true,
+ "FLAG_VF_MODULE_RESUME_STATUS_CREATE": true,
+ "FLAG_1906_COMPONENT_INFO": true
+ },
+ "drawingBoardStatus": "CREATE",
+ "type": "UPDATE_DRAWING_BOARD_STATUS"
+ }, "service": {
+ "serviceHierarchy": {
+ "f028b2e2-7080-4b13-91b2-94944d4c42d8": {
+ "service": {
+ "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+ "name": "infraVPN",
+ "version": "1.0",
+ "toscaModelURL": null,
+ "category": "Network Service",
+ "serviceType": "BONDING",
+ "serviceRole": "INFRASTRUCTURE-VPN",
+ "description": "ddd",
+ "serviceEcompNaming": "true",
+ "instantiationType": "A-La-Carte",
+ "inputs": {},
+ "vidNotions": {"instantiationUI": "macroService", "modelCategory": "other", "viewEditUI": "legacy"}
+ },
+ "vnfs": {},
+ "networks": {},
+ "collectionResources": {},
+ "configurations": {},
+ "fabricConfigurations": {},
+ "serviceProxies": {
+ "misvpn_service_proxy 0": {
+ "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1",
+ "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76",
+ "description": "A Proxy for Service MISVPN_SERVICE",
+ "name": "MISVPN_SERVICE Service Proxy",
+ "version": "3.0",
+ "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923",
+ "inputs": {},
+ "commands": {},
+ "properties": {"ecomp_generated_naming": "false"},
+ "type": "Service Proxy",
+ "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b",
+ "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272",
+ "sourceModelName": "MISVPN_SERVICE"
+ }
+ },
+ "vfModules": {},
+ "volumeGroups": {},
+ "pnfs": {},
+ "vnfGroups": {},
+ "vrfs": {
+ "VRF Entry Configuration 0": {
+ "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+ "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a",
+ "description": "VRF Entry configuration object",
+ "name": "VRF Entry Configuration",
+ "version": "30.0",
+ "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433",
+ "inputs": {},
+ "commands": {},
+ "properties": {"ecomp_generated_naming": "false"},
+ "type": "Configuration",
+ "modelCustomizationName": "VRF Entry Configuration 0",
+ "sourceNodes": [],
+ "collectorNodes": null,
+ "configurationByPolicy": false
+ }
+ }
+ }
+ },
+ "serviceInstance": {
+ "f028b2e2-7080-4b13-91b2-94944d4c42d8": {
+ "action": "Create",
+ "isDirty": false,
+ "vnfs": {},
+ "vrfs": {},
+ "instanceParams": [{}],
+ "validationCounter": 0,
+ "existingNames": {"dfd": ""},
+ "existingVNFCounterMap": {},
+ "existingVRFCounterMap": {},
+ "existingVnfGroupCounterMap": {},
+ "existingNetworksCounterMap": {},
+ "optionalGroupMembersMap": {},
+ "networks": {},
+ "vnfGroups": {},
+ "bulkSize": 1,
+ "instanceName": "dfd",
+ "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+ "subscriptionServiceType": "TYLER SILVIA",
+ "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+ "projectName": "WATKINS",
+ "rollbackOnFailure": "true",
+ "aicZoneName": null,
+ "owningEntityName": "WayneHolland",
+ "testApi": "VNF_API",
+ "tenantName": null,
+ "modelInfo": {
+ "modelInvariantId": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+ "modelVersionId": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ "modelName": "infraVPN",
+ "modelVersion": "1.0",
+ "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ "modelUniqueId": "f028b2e2-7080-4b13-91b2-94944d4c42d8"
+ },
+ "isALaCarte": true,
+ "name": "infraVPN",
+ "version": "1.0",
+ "description": "ddd",
+ "category": "Network Service",
+ "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+ "serviceType": "BONDING",
+ "serviceRole": "INFRASTRUCTURE-VPN",
+ "vidNotions": {"instantiationUI": "macroService", "modelCategory": "other", "viewEditUI": "legacy"},
+ "isEcompGeneratedNaming": true,
+ "isMultiStepDesign": false
+ }
+ },
+ "type": "UPDATE_CATEGORY_PARAMETERS",
+ "categoryParameters": {
+ "owningEntityList": [{
+ "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+ "name": "WayneHolland"
+ }, {"id": "Melissa", "name": "Melissa"}, {"id": "aaa1", "name": "aaa1"}],
+ "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {"id": "yyy1", "name": "yyy1"}],
+ "lineOfBusinessList": [{"id": "ONAP", "name": "ONAP"}, {"id": "zzz1", "name": "zzz1"}],
+ "platformList": [{"id": "platform", "name": "platform"}, {"id": "xxx1", "name": "xxx1"}]
+ }
+ }
+ });
+ const networkStep = service.getNetworkStep(
+ "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ <any>{
+ data: {
+ children: [],
+ componentInfoType: "VRF",
+ count: 0,
+ disabled: false,
+ id: "dd024d73-9bd1-425d-9db5-476338d53433",
+ isEcompGeneratedNaming: false,
+ max: 1,
+ modelCustomizationId: "dd024d73-9bd1-425d-9db5-476338d53433",
+ modelUniqueId: "dd024d73-9bd1-425d-9db5-476338d53433",
+ modelVersionId: "9cac02be-2489-4374-888d-2863b4511a59",
+ name: "VRF Entry Configuration 0",
+ tooltip: "VRF",
+ type: "VRF",
+ typeName: "VRF"
+ }
+ });
+
+
+ expect(networkStep.type).toEqual('Network');
+ expect(networkStep.title).toEqual('Associate network to VRF Entry');
+ expect(networkStep.description).toEqual('Select a network to associate to the VRF Entry');
+ expect(networkStep.noElementsMsg).toEqual('No network were found.');
+ expect(networkStep.maxSelectRow).toEqual(1);
+ expect(networkStep.uniqObjectField).toEqual('instanceId');
+ expect(networkStep.topButton.text).toEqual('Next');
+ expect(networkStep.criteria).toHaveLength(1);
+
+ });
+
+ test('getsNetworkStepSearchFields', () => {
+ const networkStepSearchFields = service.getsNetworkStepSearchFields({
+ "lcpCloudRegionId": "lcpCloudRegionId",
+ "tenantName": "tenantName"
+ });
+
+ expect(networkStepSearchFields[0].value).toEqual("lcpCloudRegionId");
+ expect(networkStepSearchFields[1].value).toEqual("tenantName");
+ expect(networkStepSearchFields[2].value).toEqual("Active");
+ expect(networkStepSearchFields[3].value).toEqual("VPN binding");
+ });
+
+ test('generateRolesOptions should sort networks roles, check if should add "Not assigned" option', () => {
+ const networks = [
+ {"role": "2"},
+ {"role": "3"},
+ {"role": "4"},
+ {"role": "1"},
+ {"role": "6"}
+ ];
+
+ spyOn(store, 'dispatch');
+
+ service.generateRolesOptions(networks);
+ expect(store.dispatch).toHaveBeenCalledWith(updateGenericModalCriteria("roles", ["-- select an option --", "1", "2", "3", "4", "6"]))
+
+ networks.push({"role": null});
+ service.generateRolesOptions(networks);
+ expect(store.dispatch).toHaveBeenCalledWith(updateGenericModalCriteria("roles", ["-- select an option --", "Not assigned", "1", "2", "3", "4", "6"]))
+ });
+
+ test('shouldAddNotAssigned- check if "Not Assigned" option to roles', () => {
+ const networks = [
+ {"role": "5"},
+ {"role": "3"},
+ {"role": "4"},
+ {"role": "1"},
+ {"role": "6"}
+ ];
+
+ let result: boolean = service.shouldAddNotAssigned(networks);
+ expect(result).toBeFalsy();
+
+ networks.push({"role": null});
+
+ result = service.shouldAddNotAssigned(networks);
+ expect(result).toBeTruthy();
+ });
+
+
+ test('getNetworkStepHeaders should return the correct headers for network popup', () => {
+ let headers = service.getNetworkStepHeaders();
+
+ expect(headers[0].displayName).toEqual('Name');
+ expect(headers[0].key).toEqual(['instanceName']);
+
+ expect(headers[1].displayName).toEqual('Type');
+ expect(headers[1].key).toEqual(['instanceType']);
+
+ expect(headers[2].displayName).toEqual('Role');
+ expect(headers[2].key).toEqual(['role']);
+
+ expect(headers[3].displayName).toEqual('Orch. Status');
+ expect(headers[3].key).toEqual(['orchStatus']);
+
+ expect(headers[4].displayName).toEqual('Physical name');
+ expect(headers[4].key).toEqual(['physicalName']);
+
+ expect(headers[5].displayName).toEqual('Instance ID');
+ expect(headers[5].key).toEqual(['instanceId']);
+
+ expect(headers[6].displayName).toEqual('Model UUID');
+ expect(headers[6].key).toEqual(['modelInfo', 'modelVersionId']);
+
+ expect(headers[7].displayName).toEqual('Service name');
+ expect(headers[7].key).toEqual(['serviceName']);
+
+ expect(headers[8].displayName).toEqual('Service UUID');
+ expect(headers[8].key).toEqual(['serviceUUID']);
+
+ expect(headers[9].displayName).toEqual('Tenant');
+ expect(headers[9].key).toEqual(['tenantName']);
+
+ expect(headers[10].displayName).toEqual('Region');
+ expect(headers[10].key).toEqual(['lcpCloudRegionId']);
+ });
+
+ test('getElementsFirstStep should return sort networks by instance name', () => {
+ let networks = [
+ {"instanceUUID": "B"},
+ {"instanceUUID": "A"},
+ {"instanceUUID": "D"},
+ {"instanceUUID": "C"},
+ {"instanceUUID": "E"}
+ ];
+
+ let sortedNetworkByInstanceName = service.sortElementsResultByField(networks, "instanceUUID");
+ expect(sortedNetworkByInstanceName).toEqual([
+ {"instanceUUID": "A"},
+ {"instanceUUID": "B"},
+ {"instanceUUID": "C"},
+ {"instanceUUID": "D"},
+ {"instanceUUID": "E"}
+ ])
+ });
+
+
+ test('getNetworkTableContent', () => {
+ let tableContent: ITableContent[] = service.getNetworkTableContent();
+ expect(tableContent).toEqual(
+ [
+ {
+ id: 'instanceName',
+ contents: [{
+ id: ['name'],
+ value: ["instanceName"]
+ }]
+ },
+ {
+ id: 'instanceType',
+ contents: [{
+ id: ['type'],
+ value: ['instanceType']
+ }]
+ },
+ {
+ id: 'role',
+ contents: [{
+ id: ['role'],
+ value: ['role']
+ }]
+ },
+ {
+ id: 'network-orch-status',
+ contents: [{
+ id: ['orchStatus'],
+ value: ['orchStatus']
+ }]
+ },
+ {
+ id: 'network-physical-name',
+ contents: [{
+ id: ['physicalName'],
+ value: ['physicalName']
+ }]
+ },
+ {
+ id: 'network-instance-id',
+ contents: [{
+ id: ['instanceID'],
+ value: ['instanceId']
+ }]
+ },
+ {
+ id: 'network-model-uuid',
+ contents: [{
+ id: ['modelUUID'],
+ value: ['modelInfo', 'modelVersionId']
+ }]
+ },
+ {
+ id: 'network-serviceName',
+ contents: [{
+ id: ['serviceName'],
+ value: ['serviceName']
+ }]
+ },
+ {
+ id: 'network-service-id',
+ contents: [{
+ id: ['serviceUUID'],
+ value: ['serviceUUID']
+ }]
+ },
+ {
+ id: 'network-tenantName',
+ contents: [{
+ id: ['tenant'],
+ value: ['tenantName']
+ }]
+ },
+ {
+ id: 'network-region',
+ contents: [{
+ id: ['region'],
+ value: ['lcpCloudRegionId']
+ }]
+ }
+ ]);
+ });
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts
new file mode 100644
index 000000000..9cd928e8f
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts
@@ -0,0 +1,242 @@
+import {Injectable} from "@angular/core";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {
+ updateGenericModalCriteria,
+ updateGenericModalhelper
+} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {
+ ICriteria, ISearchField, ITableContent,
+ ModalInformation
+} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {Observable, of} from "rxjs";
+import * as _ from "lodash";
+import {CustomTableColumnDefinition} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
+import {NetworkModalRow} from "./network.step.model";
+
+@Injectable()
+export class NetworkStepService {
+ constructor(private _store: NgRedux<AppState>, private _aaiService: AaiService) {}
+
+ uniqObjectField: string = "instanceId";
+ type: string = "Network";
+
+ getNetworkStep = (serviceInstance, serviceModelId, ...otherSteps): ModalInformation => {
+ return {
+ type: this.type,
+ serviceModelId: serviceModelId,
+ title: 'Associate network to VRF Entry',
+ description: 'Select a network to associate to the VRF Entry',
+ noElementsMsg: 'No network were found.',
+ maxSelectRow: 1,
+ uniqObjectField: this.uniqObjectField,
+ backAction: (searchElementsModalComponent) => {
+ searchElementsModalComponent.closeDialog();
+ },
+ topButton: {
+ text: 'Next',
+ action: (searchElementsModalComponent) => {
+ let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+ let vpnStep = otherSteps[0];
+ for (let key in tmpMembers) {
+ if (tmpMembers[key].isSelected) {
+ this._store.dispatch(updateGenericModalhelper(`selected${this.type}`, tmpMembers[key], this.uniqObjectField));
+ }
+ }
+ ElementsTableService.changeModalInformationDataTrigger.next({
+ modalInformation: vpnStep.getVpnStep(serviceInstance, searchElementsModalComponent.modalInformation.serviceModelId, ...otherSteps),
+ selectedRowsIds: []
+ })
+ }
+ },
+ searchButton: {
+ text: 'Search',
+ action: (searchElementsModalComponent) => {
+ this.getNetworks(serviceInstance).subscribe((networks) => {
+ const currentRole = searchElementsModalComponent.modalInformation.criteria.find((criteria: ICriteria) => {
+ criteria.label === 'Roles';
+ });
+ ElementsTableService.changeFnTableDataTrigger.next(
+ networks.filter((network) => {
+ if (_.isNil(currentRole)) return network;
+ return network.role === currentRole.currentValue;
+ }));
+ });
+ }
+ },
+ getElements: (...args) => this.getNetworks(serviceInstance),
+ criteria: this.getNetworkStepCriteria(serviceInstance),
+ searchFields: this.getsNetworkStepSearchFields(serviceInstance),
+ tableHeaders: this.getNetworkStepHeaders(),
+ tableContent: this.getNetworkTableContent()
+ };
+ };
+
+ getNetworks = (serviceInstance): Observable<any[]> => {
+ let cloudRegion = serviceInstance.lcpCloudRegionId;
+ let tenantId = serviceInstance.tenantName;
+ return this._aaiService.retrieveActiveNetwork(cloudRegion, tenantId).map((networks: NetworkModalRow[]) => {
+ this.generateRolesOptions(networks);
+ return this.sortElementsResultByField(networks, this.uniqObjectField);
+ });
+ };
+
+ getNetworkStepCriteria(serviceInstance): ICriteria[] {
+ return [{
+ label: "Roles",
+ defaultValue: "",
+ type: 'DROPDOWN',
+ onInit: (): Observable<any> => of(this._store.getState().global.genericModalCriteria.roles),
+ onChange: (that, selectedOption): void => {
+ that.currentValue = selectedOption;
+ },
+ dataTestId: 'roles-criteria',
+ isRequired: false
+ }]
+ }
+
+ getsNetworkStepSearchFields = (serviceInstance): ISearchField[] => {
+ return [
+ {
+ title: 'Region',
+ dataTestId: 'Region',
+ value: serviceInstance["lcpCloudRegionId"],
+ type: "LABEL"
+ }, {
+ title: 'Tenant',
+ dataTestId: 'Tenant',
+ value: serviceInstance["tenantName"],
+ type: "LABEL"
+ },
+ {
+ title: 'Orch. status',
+ dataTestId: 'Orch_status',
+ value: "Active",
+ type: "LABEL"
+ },
+ {
+ title: 'Related to',
+ dataTestId: 'Related_to',
+ value: "VPN binding",
+ type: "LABEL"
+ }
+ ]
+ };
+
+ generateRolesOptions = (networks): void => {
+ let roles: string[] = (_.uniq(_.flatten(_.map(networks, 'role').filter((role) => !_.isNil(role))))).sort();
+ const SELECTED_AN_OPTION: string = "-- select an option --";
+ const NOT_ASSIGNED: string = "Not assigned";
+
+ roles = _.remove([SELECTED_AN_OPTION, this.shouldAddNotAssigned(networks) ? NOT_ASSIGNED : null, ...roles], null);
+ this._store.dispatch(updateGenericModalCriteria("roles", roles));
+ };
+
+ getNetworkStepHeaders = (): CustomTableColumnDefinition[] => {
+ return [
+ {displayName: `Name`, key: ['instanceName']},
+ {displayName: `Type`, key: ['instanceType']},
+ {displayName: `Role`, key: ['role']},
+ {displayName: 'Orch. Status', key: ['orchStatus']},
+ {displayName: 'Physical name', key: ['physicalName']},
+ {displayName: 'Instance ID', key: ['instanceId']},
+ {displayName: 'Model UUID', key: ['modelInfo', 'modelVersionId']},
+ {displayName: 'Service name', key: ['serviceName']},
+ {displayName: 'Service UUID', key: ['serviceUUID']},
+ {displayName: 'Tenant', key: ['tenantName']},
+ {displayName: 'Region', key: ['lcpCloudRegionId']}
+ ];
+ };
+
+ getNetworkTableContent = (): ITableContent[] => {
+ return [
+ {
+ id: 'instanceName',
+ contents: [{
+ id: ['name'],
+ value: ["instanceName"]
+ }]
+ },
+ {
+ id: 'instanceType',
+ contents: [{
+ id: ['type'],
+ value: ['instanceType']
+ }]
+ },
+ {
+ id: 'role',
+ contents: [{
+ id: ['role'],
+ value: ['role']
+ }]
+ },
+ {
+ id: 'network-orch-status',
+ contents: [{
+ id: ['orchStatus'],
+ value: ['orchStatus']
+ }]
+ },
+ {
+ id: 'network-physical-name',
+ contents: [{
+ id: ['physicalName'],
+ value: ['physicalName']
+ }]
+ },
+ {
+ id: 'network-instance-id',
+ contents: [{
+ id: ['instanceID'],
+ value: ['instanceId']
+ }]
+ },
+ {
+ id: 'network-model-uuid',
+ contents: [{
+ id: ['modelUUID'],
+ value: ['modelInfo', 'modelVersionId']
+ }]
+ },
+ {
+ id: 'network-serviceName',
+ contents: [{
+ id: ['serviceName'],
+ value: ['serviceName']
+ }]
+ },
+ {
+ id: 'network-service-id',
+ contents: [{
+ id: ['serviceUUID'],
+ value: ['serviceUUID']
+ }]
+ },
+ {
+ id: 'network-tenantName',
+ contents: [{
+ id: ['tenant'],
+ value: ['tenantName']
+ }]
+ },
+ {
+ id: 'network-region',
+ contents: [{
+ id: ['region'],
+ value: ['lcpCloudRegionId']
+ }]
+ }
+ ];
+ };
+
+ sortElementsResultByField = (elements, fieldName): any[] => {
+ return _.sortBy(elements, o => o[fieldName]);
+ };
+
+ shouldAddNotAssigned = (networks): boolean => {
+ return _.values(networks).some(network => _.isNil(network.role) || network.role === "");
+ };
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts
new file mode 100644
index 000000000..ea3c69690
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts
@@ -0,0 +1,17 @@
+export class VPNModalRow {
+ instanceId: string;
+ instanceName: string;
+ platformName: string;
+ instanceType: string;
+ region: string;
+ customerId: string;
+ modelInfo : {
+ modelCustomizationId: string;
+ modelInvariantId: string;
+ modelVersionId: string;
+ };
+ routeTargets: {
+ "globalRouteTarget" : string,
+ "routeTargetRole" : string
+ }[];
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts
new file mode 100644
index 000000000..b64b2f1b5
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts
@@ -0,0 +1,463 @@
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {FeatureFlagsService} from "../../../../../../../shared/services/featureFlag/feature-flags.service";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {VpnStepService} from "./vpn.step.service";
+import {NetworkStepService} from "../networkStep/network.step.service";
+import {ITableContent} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {SearchElementsModalComponent} from "../../../../../../../shared/components/searchMembersModal/search-elements-modal.component";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {DataFilterPipe} from "../../../../../../../shared/pipes/dataFilter/data-filter.pipe";
+import * as _ from "lodash";
+
+describe('VPN step service', () => {
+ let injector;
+ let service: VpnStepService;
+ let memberTableService: ElementsTableService;
+ let store: NgRedux<AppState>;
+ beforeAll(done => (async () => {
+ TestBed.configureTestingModule({
+ imports: [NgReduxTestingModule, HttpClientTestingModule],
+ providers: [
+ VpnStepService,
+ NetworkStepService,
+ FeatureFlagsService,
+ AaiService,
+ ElementsTableService,
+ DataFilterPipe
+ ]
+ });
+ await TestBed.compileComponents();
+ injector = getTestBed();
+ service = injector.get(VpnStepService);
+ store = injector.get(NgRedux);
+ memberTableService = injector.get(ElementsTableService);
+ })().then(done).catch(done.fail));
+
+ test('service should be defined', () => {
+ expect(service).toBeDefined();
+ });
+
+ test('getVPNStepHeaders', () => {
+ let vpnHeaders = service.getVPNStepHeaders();
+ expect(vpnHeaders).toEqual([
+ {displayName: `VPN instance name`, key: ['instanceName']},
+ {displayName: `Version`, key: ['modelInfo', 'modelVersionId']},
+ {displayName: `Instance ID`, key: ['instanceId']},
+ {displayName: `Platform`, key: ['platformName']},
+ {displayName: 'Region', key: ['region']},
+ {displayName: 'Route target', key: ['routeTargets', 'globalRouteTarget'], type: "LIST"},
+ {displayName: 'Route target role', key: ['routeTargets', 'routeTargetRole'], type: "LIST"},
+ {displayName: 'Customer VPN ID', key: ['customerId']},
+ ]);
+ });
+
+
+ test('vpnStep', () => {
+ spyOn(store, 'getState').and.returnValue({
+ "global": {
+ "genericModalHelper": {
+ "selectedNetwork": {
+ "action": "None",
+ "instanceName": "NETWORK_1_INSTANCE_NAME",
+ "instanceId": "NETWORK_1_INSTANCE_ID",
+ "orchStatus": null,
+ "productFamilyId": null,
+ "lcpCloudRegionId": "hvf23b",
+ "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+ "tenantName": "APPC-24595-T-IST-02C",
+ "modelInfo": {
+ "modelInvariantId": "network-instance-model-invariant-id",
+ "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "modelVersion": "2.0",
+ "modelName": "vf_vEPDG",
+ "modelType": "vnf"
+ },
+ "roles": ["network role 1", "network role 2"],
+ "instanceType": "NETWORK_1_INSTANCE_TYPE",
+ "provStatus": null,
+ "inMaint": false,
+ "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+ "originalName": null,
+ "legacyRegion": null,
+ "lineOfBusiness": null,
+ "platformName": null,
+ "trackById": "VNF1_INSTANCE_ID",
+ "serviceInstanceId": "service-instance-id1",
+ "serviceInstanceName": "service-instance-name",
+ "isSelected": true
+ },
+ "selectedVpn": {
+ "vpn-id": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+ "vpn-name": "LPPVPN",
+ "vpn-platform": "AVPN",
+ "vpn-type": "SERVICE-INFRASTRUCTURE",
+ "vpn-region": "USA,EMEA",
+ "customer-vpn-id": "VPN1260",
+ "model-customization-id": null,
+ "model-invariant-id": null,
+ "model-version-id": null,
+ "route-targets": null,
+ "isSelected": true
+ }
+ },
+ }, "service": {}
+ });
+ const networkStep = service.getVpnStep(
+ "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+ <any>{
+ data: {
+ children: [],
+ componentInfoType: "VRF",
+ count: 0,
+ disabled: false,
+ id: "dd024d73-9bd1-425d-9db5-476338d53433",
+ isEcompGeneratedNaming: false,
+ max: 1,
+ modelCustomizationId: "dd024d73-9bd1-425d-9db5-476338d53433",
+ modelUniqueId: "dd024d73-9bd1-425d-9db5-476338d53433",
+ modelVersionId: "9cac02be-2489-4374-888d-2863b4511a59",
+ name: "VRF Entry Configuration 0",
+ tooltip: "VRF",
+ type: "VRF",
+ typeName: "VRF"
+ }
+ });
+
+ expect(networkStep.type).toEqual('VPN');
+ expect(networkStep.title).toEqual('Associate VPN');
+ expect(networkStep.description).toEqual('Select a VPN to associate to the VRF Entry');
+ expect(networkStep.noElementsMsg).toEqual('No VPN instances were found.');
+ expect(networkStep.maxSelectRow).toEqual(1);
+ expect(networkStep.uniqObjectField).toEqual('instanceId');
+ expect(networkStep.topButton.text).toEqual('SET VPN');
+ expect(networkStep.criteria).toHaveLength(0);
+
+ });
+
+ test('getsVPNStepSearchFields', () => {
+ const networkStepSearchFields = service.getsVPNStepSearchFields();
+ expect(networkStepSearchFields[0].value).toEqual("SERVICE-INFRASTRUCTURE");
+ });
+
+ test('getVpnStepHeaders should return the correct headers for vpn popup', () => {
+ let headers = service.getVPNStepHeaders();
+ expect(headers[0].displayName).toEqual('VPN instance name');
+ expect(headers[0].key).toEqual(['instanceName']);
+
+ expect(headers[1].displayName).toEqual('Version');
+ expect(headers[1].key).toEqual(['modelInfo', 'modelVersionId']);
+
+ expect(headers[2].displayName).toEqual('Instance ID');
+ expect(headers[2].key).toEqual(['instanceId']);
+
+ expect(headers[3].displayName).toEqual('Platform');
+ expect(headers[3].key).toEqual(['platformName']);
+
+ expect(headers[4].displayName).toEqual('Region');
+ expect(headers[4].key).toEqual(['region']);
+
+ expect(headers[5].displayName).toEqual('Route target');
+ expect(headers[5].key).toEqual(['routeTargets', 'globalRouteTarget']);
+
+ expect(headers[6].displayName).toEqual('Route target role');
+ expect(headers[6].key).toEqual(['routeTargets', 'routeTargetRole']);
+
+ expect(headers[7].displayName).toEqual('Customer VPN ID');
+ expect(headers[7].key).toEqual(['customerId']);
+
+ });
+
+ test('getElementsFirstStep should return sort vpns by name', () => {
+ let vpns = [
+ {"name": "B"},
+ {"name": "A"},
+ {"name": "D"},
+ {"name": "C"},
+ {"name": "E"}
+ ];
+
+ let sortedNetworkByInstanceName = service.sortElementsResultByField(vpns, "name");
+ expect(sortedNetworkByInstanceName).toEqual([
+ {"name": "A"},
+ {"name": "B"},
+ {"name": "C"},
+ {"name": "D"},
+ {"name": "E"}
+ ])
+ });
+
+ test('getVpnTableContent', () => {
+ let tableContent: ITableContent[] = service.getVPNTableContent();
+ expect(tableContent).toEqual(
+ [
+ {
+ id: 'vpn-name',
+ contents: [{
+ id: ['vpn-name'],
+ value: ['instanceName']
+ }]
+ },
+ {
+ id: 'model-version-id',
+ contents: [{
+ id: ['model-version-id'],
+ value: ['modelInfo', 'modelVersionId']
+ }]
+ },
+ {
+ id: 'vpn-id',
+ contents: [{
+ id: ['vpn-id'],
+ value: ['instanceId']
+ }]
+ },
+ {
+ id: 'vpn-platform',
+ contents: [{
+ id: ['vpn-platform'],
+ value: ['platformName']
+ }]
+ },
+ {
+ id: 'vpn-region',
+ contents: [{
+ id: ['vpn-region'],
+ value: ['region']
+ }]
+ },
+ {
+ id: 'global-route-target',
+ contents: [{
+ id: ['global-route-target'],
+ value: ['routeTargets', 'globalRouteTarget'],
+ type: 'LIST'
+ }]
+ },
+ {
+ id: 'route-target-role',
+ contents: [{
+ id: ['route-target-role'],
+ value: ['routeTargets', 'routeTargetRole'],
+ type: 'LIST'
+ }]
+ },
+ {
+ id: 'customer-vpn-id',
+ contents: [{
+ id: ['customer-vpn-id'],
+ value: ['customerId']
+ }]
+ }
+ ]
+ )
+ });
+
+ test('associateVrfNetworkMember', () => {
+ const vrfStoreKey: string = 'vrfStoreKey';
+ const serviceModelId: string = 'serviceModelId';
+ const reduxState = {
+ "global": {
+ "genericModalHelper": {
+ "selectedNetwork": {
+ "10a74149-c9d7-4918-bbcf-d5fb9b1799ce": true
+ }
+ }
+ }
+ };
+ spyOn(store, 'dispatch');
+ spyOn(store, 'getState').and.returnValue(reduxState);
+ let searchElementsModalComponent = new SearchElementsModalComponent(null, null, null, null, null);
+
+ searchElementsModalComponent.modalInformation = <any>{
+ serviceModelId: serviceModelId
+ };
+ service.associateVrfNetworkMember(searchElementsModalComponent, vrfStoreKey);
+ expect(store.dispatch).toHaveBeenCalledTimes(Object.keys(reduxState.global.genericModalHelper.selectedNetwork).length);
+ });
+
+ test('associateVrfVPNMember', () => {
+ const vrfStoreKey: string = 'vrfStoreKey';
+ const serviceModelId: string = 'serviceModelId';
+ const members = {
+ "120d39fb-3627-473d-913c-d228dd0f8e5b": {
+ "instanceId": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1260",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": [
+ {
+ "globalRouteTarget": "globalRouteTarget_1",
+ "routeTargetRole": "routeTargetRole_1"
+ },
+ {
+ "globalRouteTarget": "globalRouteTarget_2",
+ "routeTargetRole": "routeTargetRole_2"
+ },
+ {
+ "globalRouteTarget": "globalRouteTarget_3",
+ "routeTargetRole": "routeTargetRole_3"
+ }
+ ],
+ "isSelected": true
+ },
+ "c70391f3-a6e3-4874-9834-cbe12d7bf8b6": {
+ "instanceId": "c70391f3-a6e3-4874-9834-cbe12d7bf8b6",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1274",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "4776516b-7da2-446c-9ba7-47ca8c30c571": {
+ "instanceId": "4776516b-7da2-446c-9ba7-47ca8c30c571",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1275",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null
+ },
+
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7": {
+ "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1271",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "ffefbe38-3087-418a-87ae-f6582a15be78": {
+ "instanceId": "ffefbe38-3087-418a-87ae-f6582a15be78",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1272",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "961d05be-ee41-40a2-8653-f603fc495175": {
+ "id": "961d05be-ee41-40a2-8653-f603fc495175",
+ "name": "LPPVPN",
+ "platform": "AVPN",
+ "type": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1273",
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "14bcfc2f-bbee-4fd9-89a5-42eb5dbb08d5": {
+ "instanceId": "14bcfc2f-bbee-4fd9-89a5-42eb5dbb08d5",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "913443",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "89d4c968-158c-4722-a22c-c5c2ccc17fd5": {
+ "instanceId": "89d4c968-158c-4722-a22c-c5c2ccc17fd5",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1276",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "3e7834fb-a8e0-4243-a837-5352ccab4602": {
+ "instanceId": "3e7834fb-a8e0-4243-a837-5352ccab4602",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1259",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ },
+ "844a1ea7-556a-4e49-8aa3-171f1db4ea02": {
+ "instanceId": "844a1ea7-556a-4e49-8aa3-171f1db4ea02",
+ "instanceName": "LPPVPN",
+ "platformName": "AVPN",
+ "instanceType": "SERVICE-INFRASTRUCTURE",
+ "region": "USA,EMEA",
+ "customerId": "VPN1277",
+ "modelInfo": {
+ "modelCustomizationId": null,
+ "modelInvariantId": null,
+ "modelVersionId": null,
+ },
+ "routeTargets": null,
+ "isSelected": false
+ }
+ };
+ spyOn(store, 'dispatch');
+ memberTableService.allElementsStatusMap = <any>members;
+ let searchElementsModalComponent = new SearchElementsModalComponent(null, null, null, memberTableService, null);
+
+ searchElementsModalComponent.modalInformation = <any>{
+ modalInformation: {
+ serviceModelId: serviceModelId
+ }
+ };
+
+ let memberArr = _.values(members);
+ service.associateVrfVPNMember(searchElementsModalComponent, vrfStoreKey);
+ expect(store.dispatch).toHaveBeenCalledTimes(memberArr.filter((item) => item.isSelected).length * 2);
+ });
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts
new file mode 100644
index 000000000..5523cf1ff
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts
@@ -0,0 +1,195 @@
+import {Injectable} from "@angular/core";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {
+ ISearchField,
+ ITableContent,
+ ModalInformation
+} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {
+ clearAllGenericModalhelper,
+ updateGenericModalhelper
+} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {Observable} from "rxjs";
+import {CustomTableColumnDefinition} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
+import {VPNModalRow} from "./vpn.step.model";
+import {NetworkStepService} from "../networkStep/network.step.service";
+import * as _ from "lodash";
+import {
+ associateVRFMember,
+ clearAssociateVRFMemberInstance,
+ createVrfInstance
+} from "../../../../../../../shared/storeUtil/utils/vrf/vrf.actions";
+import {calculateNextUniqueModelName} from "../../../../../../../shared/storeUtil/utils/vnf/vnf.reducers";
+
+@Injectable()
+export class VpnStepService {
+ constructor(private _store: NgRedux<AppState>, private _aaiService: AaiService, private _networkStepService: NetworkStepService) {
+ }
+
+ uniqObjectField: string = "instanceId";
+ type: string = "VPN";
+
+ getVpnStep = (serviceInstance, serviceModelId, ...otherSteps): ModalInformation => {
+ return {
+ type: this.type,
+ serviceModelId: serviceModelId,
+ title: 'Associate VPN',
+ description: 'Select a VPN to associate to the VRF Entry',
+ noElementsMsg: 'No VPN instances were found.',
+ maxSelectRow: 1,
+ uniqObjectField: this.uniqObjectField,
+ backAction: (searchElementsModalComponent) => {
+ ElementsTableService.changeModalInformationDataTrigger.next({
+ modalInformation: otherSteps[1].getNetworkStep(serviceInstance, searchElementsModalComponent.modalInformation.serviceModelId, ...otherSteps),
+ selectedRowsIds: [this._store.getState().global.genericModalHelper.selectedNetwork.instanceUUID]
+ });
+ },
+ topButton: {
+ text: 'SET VPN',
+ action: (searchElementsModalComponent) => {
+ let currentVRF = this._store.getState().global.genericModalHelper['currentVRF'];
+ const vrfStoreKey: string = _.isNil(currentVRF['vrfStoreKey'])
+ ? calculateNextUniqueModelName(currentVRF['model']['name'], searchElementsModalComponent.modalInformation.serviceModelId, this._store.getState().service, 'vrfs')
+ : currentVRF['vrfStoreKey'];
+
+
+ if (_.isNil(currentVRF['vrfStoreKey'])) {
+ this._store.dispatch(createVrfInstance(currentVRF['model'], serviceModelId, vrfStoreKey));
+ } else {
+ this._store.dispatch(clearAssociateVRFMemberInstance(vrfStoreKey, serviceModelId, 'networks'));
+ this._store.dispatch(clearAssociateVRFMemberInstance(vrfStoreKey, serviceModelId, 'vpns'));
+ }
+
+ this.associateVrfVPNMember(searchElementsModalComponent, vrfStoreKey);
+ this.associateVrfNetworkMember(searchElementsModalComponent, vrfStoreKey);
+
+ this._store.dispatch(clearAllGenericModalhelper());
+ searchElementsModalComponent.closeDialog();
+ }
+ },
+ getElements: () => this.getVPNs(),
+ criteria: [],
+ searchFields: this.getsVPNStepSearchFields(),
+ tableHeaders: this.getVPNStepHeaders(),
+ tableContent: this.getVPNTableContent()
+ };
+ };
+
+ getVPNs = (): Observable<any[]> => {
+ return this._aaiService.retrieveActiveVPNs().map((vpns: VPNModalRow[]) => {
+ return this.sortElementsResultByField(vpns, "instanceName");
+ });
+ };
+
+ sortElementsResultByField = (elements, fieldName): any[] => {
+ return _.sortBy(elements, o => o[fieldName]);
+ };
+
+ associateVrfVPNMember = (searchElementsModalComponent, vrfStoreKey): void => {
+ let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+ for (let key in tmpMembers) {
+ if (tmpMembers[key].isSelected) {
+ this._store.dispatch(updateGenericModalhelper(`selected${this.type}`, tmpMembers[key], this.uniqObjectField));
+ this._store.dispatch(associateVRFMember(vrfStoreKey, searchElementsModalComponent.modalInformation.serviceModelId, tmpMembers[key], 'vpns'));
+ }
+ }
+ };
+
+ associateVrfNetworkMember = (searchElementsModalComponent, vrfStoreKey): void => {
+ let selectedNetworks = this._store.getState().global.genericModalHelper['selectedNetwork'];
+ for (let key in selectedNetworks) {
+ this._store.dispatch(associateVRFMember(vrfStoreKey, searchElementsModalComponent.modalInformation.serviceModelId, selectedNetworks[key], 'networks'));
+ }
+ };
+
+ getsVPNStepSearchFields = (): ISearchField[] => {
+ return [
+ {
+ title: 'Type ',
+ dataTestId: 'Type',
+ value: "SERVICE-INFRASTRUCTURE",
+ type: "LABEL"
+ }
+ ]
+ };
+
+ getVPNStepHeaders = (): CustomTableColumnDefinition[] => {
+ return [
+ {displayName: `VPN instance name`, key: ['instanceName']},
+ {displayName: `Version`, key: ['modelInfo', 'modelVersionId']},
+ {displayName: `Instance ID`, key: ['instanceId']},
+ {displayName: `Platform`, key: ['platformName']},
+ {displayName: 'Region', key: ['region']},
+ {displayName: 'Route target', key: ['routeTargets', 'globalRouteTarget'], type: 'LIST'},
+ {displayName: 'Route target role', key: ['routeTargets', 'routeTargetRole'], type: 'LIST'},
+ {displayName: 'Customer VPN ID', key: ['customerId']},
+ ];
+ };
+
+ getVPNTableContent = (): ITableContent[] => {
+ return [
+ {
+ id: 'vpn-name',
+ contents: [{
+ id: ['vpn-name'],
+ value: ['instanceName']
+ }]
+ },
+ {
+ id: 'model-version-id',
+ contents: [{
+ id: ['model-version-id'],
+ value: ['modelInfo', 'modelVersionId']
+ }]
+ },
+ {
+ id: 'vpn-id',
+ contents: [{
+ id: ['vpn-id'],
+ value: ['instanceId']
+ }]
+ },
+ {
+ id: 'vpn-platform',
+ contents: [{
+ id: ['vpn-platform'],
+ value: ['platformName']
+ }]
+ },
+ {
+ id: 'vpn-region',
+ contents: [{
+ id: ['vpn-region'],
+ value: ['region']
+ }]
+ },
+ {
+ id: 'global-route-target',
+ contents: [{
+ id: ['global-route-target'],
+ value: ['routeTargets', 'globalRouteTarget'],
+ type: 'LIST'
+ }]
+ },
+ {
+ id: 'route-target-role',
+ contents: [{
+ id: ['route-target-role'],
+ value: ['routeTargets', 'routeTargetRole'],
+ type: 'LIST'
+ }]
+ },
+ {
+ id: 'customer-vpn-id',
+ contents: [{
+ id: ['customer-vpn-id'],
+ value: ['customerId']
+ }]
+ }
+ ];
+ };
+
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts
index fd39ed92a..d3f04fe66 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts
@@ -30,6 +30,8 @@ import {DuplicateService} from "../../duplicate/duplicate.service";
import {SdcUiComponentsModule, SdcUiServices} from "onap-ui-angular";
import {ErrorMsgService} from "../../../../shared/components/error-msg/error-msg.service";
import {ComponentInfoService} from "../../component-info/component-info.service";
+import {NetworkStepService} from "../models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "../models/vrf/vrfModal/vpnStep/vpn.step.service";
class MockAppStore<T> {
getState() {
@@ -81,6 +83,8 @@ describe('Model Tree Generator service', () => {
ErrorMsgService,
ComponentInfoService,
SdcUiServices.ModalService,
+ NetworkStepService,
+ VpnStepService,
{ provide: NgRedux, useClass: MockAppStore },
MockNgRedux]
});
@@ -106,14 +110,18 @@ describe('Model Tree Generator service', () => {
delete convertToNodes[0].trackById;
delete convertToNodes[0].updatePoistionFunction;
delete convertToNodes[0].position;
- delete convertToNodes[0].onSelectedNode;
+ delete convertToNodes[0].getInfo;
+ delete convertToNodes[0].componentInfoType;
+ delete convertToNodes[0].getModel;
delete convertToNodes[1].children[0].isFailed;
delete convertToNodes[1].children[0].menuActions;
delete convertToNodes[1].children[0].trackById;
delete convertToNodes[1].children[0].errors;
delete convertToNodes[1].children[0].updatePoistionFunction;
delete convertToNodes[1].children[0].position;
- delete convertToNodes[1].children[0].onSelectedNode;
+ delete convertToNodes[1].children[0].getInfo;
+ delete convertToNodes[1].children[0].getModel;
+ delete convertToNodes[1].children[0].componentInfoType;
expect(Object.assign({}, convertToNodes[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[0]));
expect(Object.assign({}, convertToNodes[1].children[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[1].children[0]));
expect(convertToNodes[1].inMaint).toBeFalsy();
@@ -131,7 +139,9 @@ describe('Model Tree Generator service', () => {
delete convertToNodes[1].isFailed;
delete convertToNodes[1].updatePoistionFunction;
delete convertToNodes[1].position;
- delete convertToNodes[1].onSelectedNode;
+ delete convertToNodes[1].getModel;
+ delete convertToNodes[1].getInfo;
+ delete convertToNodes[1].componentInfoType;
expect(Object.assign({}, convertToNodes[0].children[0].dynamicInputs)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].dynamicInputs));
expect(Object.assign({}, convertToNodes[0].children[0].missingData)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].missingData));
expect(Object.assign({}, convertToNodes[1])).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[1]));
@@ -154,7 +164,7 @@ describe('Model Tree Generator service', () => {
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -170,11 +180,11 @@ describe('Model Tree Generator service', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -237,37 +247,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -312,7 +322,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -320,14 +330,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -337,7 +347,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -351,16 +361,16 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -423,37 +433,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -499,7 +509,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -507,14 +517,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -524,7 +534,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -538,16 +548,16 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -610,37 +620,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -687,7 +697,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -695,14 +705,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -712,7 +722,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -726,21 +736,21 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -750,10 +760,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -764,10 +774,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -778,10 +788,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -792,10 +802,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -806,10 +816,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -817,37 +827,37 @@ describe('Model Tree Generator service', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -855,19 +865,19 @@ describe('Model Tree Generator service', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -877,10 +887,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -891,10 +901,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -905,10 +915,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -919,10 +929,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -933,29 +943,29 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -965,24 +975,24 @@ describe('Model Tree Generator service', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -992,10 +1002,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1006,10 +1016,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1020,10 +1030,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1034,10 +1044,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1048,10 +1058,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
@@ -1059,37 +1069,37 @@ describe('Model Tree Generator service', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -1097,19 +1107,19 @@ describe('Model Tree Generator service', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {
@@ -1119,10 +1129,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
- "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+ "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
"constraints": null,
"required": true,
"default": "17.2"
@@ -1133,10 +1143,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
- "fromInputName": "adiodvpe0_bandwidth_units",
+ "fromInputName": "pasqualevpe0_bandwidth_units",
"constraints": null,
"required": true,
"default": "Gbps"
@@ -1147,10 +1157,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
- "fromInputName": "adiodvpe0_bandwidth",
+ "fromInputName": "pasqualevpe0_bandwidth",
"constraints": null,
"required": true,
"default": "10"
@@ -1161,10 +1171,10 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
- "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+ "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
"constraints": null,
"required": true,
"default": "ATLMY8GA"
@@ -1175,29 +1185,29 @@ describe('Model Tree Generator service', () => {
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
- "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+ "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
"constraints": null,
"required": true,
"default": "mtnj309me6"
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -1222,7 +1232,7 @@ describe('Model Tree Generator service', () => {
"serviceEcompNaming": "false",
"instantiationType": "A-La-Carte",
"inputs": {
- "2017488_adiodvpe0_ASN": {
+ "2017488_pasqualevpe0_ASN": {
"type": "string",
"description": "AV/PE",
"entry_schema": null,
@@ -1234,11 +1244,11 @@ describe('Model Tree Generator service', () => {
}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {
@@ -1301,37 +1311,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1376,7 +1386,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1384,14 +1394,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1401,7 +1411,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1416,16 +1426,16 @@ describe('Model Tree Generator service', () => {
"max_instances": 5
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {
@@ -1488,37 +1498,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1564,7 +1574,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1572,14 +1582,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1589,7 +1599,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1603,16 +1613,16 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {
@@ -1675,37 +1685,37 @@ describe('Model Tree Generator service', () => {
"vnf_config_template_version": {
"displayName": "vnf_config_template_version",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+ "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
},
"bandwidth_units": {
"displayName": "bandwidth_units",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth_units"
+ "inputName": "pasqualevpe0_bandwidth_units"
},
"bandwidth": {
"displayName": "bandwidth",
"command": "get_input",
- "inputName": "adiodvpe0_bandwidth"
+ "inputName": "pasqualevpe0_bandwidth"
},
"AIC_CLLI": {
"displayName": "AIC_CLLI",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_AIC_CLLI"
+ "inputName": "2017488_pasqualevpe0_AIC_CLLI"
},
"ASN": {
"displayName": "ASN",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_ASN"
+ "inputName": "2017488_pasqualevpe0_ASN"
},
"vnf_instance_name": {
"displayName": "vnf_instance_name",
"command": "get_input",
- "inputName": "2017488_adiodvpe0_vnf_instance_name"
+ "inputName": "2017488_pasqualevpe0_vnf_instance_name"
}
},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1752,7 +1762,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "false",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -1760,14 +1770,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:adiodvpe0_bandwidth",
+ "bandwidth": "get_input:pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -1777,7 +1787,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -1791,82 +1801,82 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV"
+ "vfModuleLabel": "PASQUALE_vRE_BV"
},
"inputs": {
- "adiodvpe0_bandwidth": {
+ "pasqualevpe0_bandwidth": {
"type": "string",
"description": "Requested VPE bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
"constraints": null,
"required": true,
"default": "10"
},
- "2017488_adiodvpe0_vnf_instance_name": {
+ "2017488_pasqualevpe0_vnf_instance_name": {
"type": "string",
"description": "The hostname assigned to the vpe.",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
"constraints": null,
"required": true,
"default": "mtnj309me6"
},
- "2017488_adiodvpe0_vnf_config_template_version": {
+ "2017488_pasqualevpe0_vnf_config_template_version": {
"type": "string",
"description": "VPE Software Version",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
"constraints": null,
"required": true,
"default": "17.2"
},
- "2017488_adiodvpe0_AIC_CLLI": {
+ "2017488_pasqualevpe0_AIC_CLLI": {
"type": "string",
"description": "AIC Site CLLI",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
"constraints": null,
"required": true,
"default": "ATLMY8GA"
},
- "adiodvpe0_bandwidth_units": {
+ "pasqualevpe0_bandwidth_units": {
"type": "string",
"description": "Units of bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
"constraints": null,
@@ -1876,116 +1886,116 @@ describe('Model Tree Generator service', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV"
+ "vfModuleLabel": "PASQUALE_base_vPE_BV"
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV"
+ "vfModuleLabel": "PASQUALE_vPFE_BV"
},
"inputs": {},
"volumeGroupAllowed": true
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV"
+ "vfModuleLabel": "PASQUALE_vRE_BV"
},
"inputs": {
- "adiodvpe0_bandwidth": {
+ "pasqualevpe0_bandwidth": {
"type": "string",
"description": "Requested VPE bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
"constraints": null,
"required": true,
"default": "10"
},
- "2017488_adiodvpe0_vnf_instance_name": {
+ "2017488_pasqualevpe0_vnf_instance_name": {
"type": "string",
"description": "The hostname assigned to the vpe.",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
"constraints": null,
"required": true,
"default": "mtnj309me6"
},
- "2017488_adiodvpe0_vnf_config_template_version": {
+ "2017488_pasqualevpe0_vnf_config_template_version": {
"type": "string",
"description": "VPE Software Version",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
"constraints": null,
"required": true,
"default": "17.2"
},
- "2017488_adiodvpe0_AIC_CLLI": {
+ "2017488_pasqualevpe0_AIC_CLLI": {
"type": "string",
"description": "AIC Site CLLI",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
"constraints": null,
"required": true,
"default": "ATLMY8GA"
},
- "adiodvpe0_bandwidth_units": {
+ "pasqualevpe0_bandwidth_units": {
"type": "string",
"description": "Units of bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
"constraints": null,
@@ -1994,19 +2004,19 @@ describe('Model Tree Generator service', () => {
}
}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV"
+ "vfModuleLabel": "PASQUALE_vPFE_BV"
},
"inputs": {}
}
@@ -2093,85 +2103,85 @@ describe('Model Tree Generator service', () => {
"modelCustomizationName": "ExtVL 0"
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV"
+ "vfModuleLabel": "PASQUALE_vRE_BV"
},
"inputs": {
- "adiodvpe0_bandwidth": {
+ "pasqualevpe0_bandwidth": {
"type": "string",
"description": "Requested VPE bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth"
},
"constraints": null,
"required": true,
"default": "10"
},
- "2017488_adiodvpe0_vnf_instance_name": {
+ "2017488_pasqualevpe0_vnf_instance_name": {
"type": "string",
"description": "The hostname assigned to the vpe.",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_instance_name"
},
"constraints": null,
"required": true,
"default": "mtnj309me6"
},
- "2017488_adiodvpe0_vnf_config_template_version": {
+ "2017488_pasqualevpe0_vnf_config_template_version": {
"type": "string",
"description": "VPE Software Version",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "vnf_config_template_version"
},
"constraints": null,
"required": true,
"default": "17.2"
},
- "2017488_adiodvpe0_AIC_CLLI": {
+ "2017488_pasqualevpe0_AIC_CLLI": {
"type": "string",
"description": "AIC Site CLLI",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "AIC_CLLI"
},
"constraints": null,
"required": true,
"default": "ATLMY8GA"
},
- "adiodvpe0_bandwidth_units": {
+ "pasqualevpe0_bandwidth_units": {
"type": "string",
"description": "Units of bandwidth",
"entry_schema": null,
"inputProperties": {
"sourceType": "HEAT",
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"paramName": "bandwidth_units"
},
"constraints": null,
@@ -2181,36 +2191,36 @@ describe('Model Tree Generator service', () => {
},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV"
+ "vfModuleLabel": "PASQUALE_base_vPE_BV"
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV"
+ "vfModuleLabel": "PASQUALE_vPFE_BV"
},
"inputs": {},
"volumeGroupAllowed": true
@@ -2222,17 +2232,17 @@ describe('Model Tree Generator service', () => {
function getInstanceServiceVNF() {
return {
"vnfs": {
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"action": 'None',
"inMaint": true,
"orchStatus": "Active",
"provStatus": "prov",
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 0",
+ "originalName": "2017-388_PASQUALE-vPE 0",
"isMissingData": true,
"trackById": "u5mtsvzmq6p",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
"lcpCloudRegionId": null,
@@ -2244,21 +2254,21 @@ describe('Model Tree Generator service', () => {
"modelType": "VF",
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "4.0",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0"
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0"
}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"action": 'None',
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
+ "originalName": "2017-488_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "1d6dg4fsgbm",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0zssmp": {
"action": 'None',
"isMissingData": true,
"sdncPreReload": null,
@@ -2266,11 +2276,11 @@ describe('Model Tree Generator service', () => {
"modelType": "VFmodule",
"modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
- "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"modelVersion": "5",
"modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
},
"instanceParams": [
{}
@@ -2280,24 +2290,24 @@ describe('Model Tree Generator service', () => {
}
}
},
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"lineOfBusiness": "ONAP",
"platformName": "platform",
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
+ "modelName": "2017-488_PASQUALE-vPE",
"modelVersion": "5.0",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
},
- "instanceName": "2017488_ADIODvPE",
+ "instanceName": "2017488_PASQUALEvPE",
"legacyRegion": "123",
"instanceParams": [
{}
@@ -2306,7 +2316,7 @@ describe('Model Tree Generator service', () => {
},
"instanceParams": [
{
- "2017488_adiodvpe0_ASN": "AV_vPE"
+ "2017488_pasqualevpe0_ASN": "AV_vPE"
}
],
"validationCounter": 3,
@@ -2324,7 +2334,7 @@ describe('Model Tree Generator service', () => {
"subscriptionServiceType": "TYLER SILVIA",
"owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"aicZoneId": "ABC15",
"projectName": "WATKINS",
@@ -2358,43 +2368,43 @@ describe('Model Tree Generator service', () => {
function getInstanceServiceVNF_Network() {
return {
"vnfs": {
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"action": 'None',
"rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
+ "originalName": "2017-488_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "o65b26t2thj",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
"action": 'None',
"instanceName": "yoav",
"volumeGroupName": "123",
"modelInfo": {
"modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
- "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"modelVersion": "6",
"modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
},
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"isMissingData": false,
"instanceParams": [
{
- "adiodvpe0_bandwidth": "10",
- "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
- "2017488_adiodvpe0_vnf_config_template_version": "17.2",
- "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
- "adiodvpe0_bandwidth_units": "Gbps"
+ "pasqualevpe0_bandwidth": "10",
+ "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+ "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+ "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+ "pasqualevpe0_bandwidth_units": "Gbps"
}
]
}
}
},
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
"lcpCloudRegionId": "hvf6",
@@ -2404,13 +2414,13 @@ describe('Model Tree Generator service', () => {
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
+ "modelName": "2017-488_PASQUALE-vPE",
"modelVersion": "5.0",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
},
- "instanceName": "2017488_ADIODvPE",
+ "instanceName": "2017488_PASQUALEvPE",
"instanceParams": [
{}
]
@@ -2418,7 +2428,7 @@ describe('Model Tree Generator service', () => {
},
"instanceParams": [
{
- "2017488_adiodvpe0_ASN": "AV_vPE"
+ "2017488_pasqualevpe0_ASN": "AV_vPE"
}
],
"validationCounter": 0,
@@ -2448,6 +2458,11 @@ describe('Model Tree Generator service', () => {
"tenantId": "229bcdc6eaeb4ca59d55221141d01f8e",
"platformName": "xxx1",
"lineOfBusiness": "ONAP",
+ "uuid": "network-instance-model-version-id",
+ "routeTarget": {
+ "globalRouteTarget": "mock-global-1",
+ "routeTargetRole": "mock-role-x"
+ },
"instanceParams": [
{}
],
@@ -2528,7 +2543,7 @@ describe('Model Tree Generator service', () => {
"subscriptionServiceType": "TYLER SILVIA",
"owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
"productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"aicZoneId": "JAG1",
"projectName": null,
@@ -2571,13 +2586,13 @@ describe('Model Tree Generator service', () => {
"orchStatus": 'Active',
"provStatus": 'prov',
"inMaint": true,
- "name": "2017-388_ADIOD-vPE 0",
- "modelName": "2017-388_ADIOD-vPE 0",
+ "name": "2017-388_PASQUALE-vPE 0",
+ "modelName": "2017-388_PASQUALE-vPE 0",
"type": "VF",
"parentType": '',
"isEcompGeneratedNaming": false,
- "networkStoreKey": "2017-388_ADIOD-vPE 0",
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+ "networkStoreKey": "2017-388_PASQUALE-vPE 0",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
"typeName": "VNF",
"children": [],
"statusMessage": "Failed Vnf Message",
@@ -2598,12 +2613,12 @@ describe('Model Tree Generator service', () => {
"id": "1d6dg4fsgbm",
"inMaint": false,
"parentType": '',
- "name": "2017-488_ADIOD-vPE 0",
- "modelName": "2017-488_ADIOD-vPE 0",
+ "name": "2017-488_PASQUALE-vPE 0",
+ "modelName": "2017-488_PASQUALE-vPE 0",
"type": "VF",
"isEcompGeneratedNaming": false,
- "networkStoreKey": "2017-488_ADIOD-vPE 0",
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "networkStoreKey": "2017-488_PASQUALE-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"typeName": "VNF",
"statusProperties": [Object({
key: 'Prov Status:',
@@ -2620,11 +2635,11 @@ describe('Model Tree Generator service', () => {
"id": "v2egx1b8i1l",
"statusMessage": "Failed vfModel message",
"name": "&lt;Automatically Assigned&gt;",
- "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"type": "VFmodule",
"isEcompGeneratedNaming": false,
"dynamicInputs": [],
- "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp",
+ "dynamicModelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0zssmp",
"typeName": "M",
"statusProperties": [Object({
key: 'Prov Status:',
@@ -2643,11 +2658,11 @@ describe('Model Tree Generator service', () => {
"modelId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"missingData": false,
"id": "o65b26t2thj",
- "name": "2017488_ADIODvPE",
- "modelName": "2017-488_ADIOD-vPE 0",
+ "name": "2017488_PASQUALEvPE",
+ "modelName": "2017-488_PASQUALE-vPE 0",
"type": "VF",
"isEcompGeneratedNaming": false,
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"typeName": "VNF",
"statusProperties": [Object({
key: 'Prov Status:',
@@ -2660,53 +2675,53 @@ describe('Model Tree Generator service', () => {
"modelId": "25284168-24bb-4698-8cb4-3f509146eca5",
"missingData": false,
"name": "yoav",
- "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"type": "VFmodule",
"isEcompGeneratedNaming": false,
"typeName": "M",
"dynamicInputs": [
{
- "id": "adiodvpe0_bandwidth",
+ "id": "pasqualevpe0_bandwidth",
"type": "string",
- "name": "adiodvpe0_bandwidth",
+ "name": "pasqualevpe0_bandwidth",
"value": "10",
"isRequired": true,
"description": "Requested VPE bandwidth"
},
{
- "id": "2017488_adiodvpe0_vnf_instance_name",
+ "id": "2017488_pasqualevpe0_vnf_instance_name",
"type": "string",
- "name": "2017488_adiodvpe0_vnf_instance_name",
+ "name": "2017488_pasqualevpe0_vnf_instance_name",
"value": "mtnj309me6",
"isRequired": true,
"description": "The hostname assigned to the vpe."
},
{
- "id": "2017488_adiodvpe0_vnf_config_template_version",
+ "id": "2017488_pasqualevpe0_vnf_config_template_version",
"type": "string",
- "name": "2017488_adiodvpe0_vnf_config_template_version",
+ "name": "2017488_pasqualevpe0_vnf_config_template_version",
"value": "17.2",
"isRequired": true,
"description": "VPE Software Version"
},
{
- "id": "2017488_adiodvpe0_AIC_CLLI",
+ "id": "2017488_pasqualevpe0_AIC_CLLI",
"type": "string",
- "name": "2017488_adiodvpe0_AIC_CLLI",
+ "name": "2017488_pasqualevpe0_AIC_CLLI",
"value": "ATLMY8GA",
"isRequired": true,
"description": "AIC Site CLLI"
},
{
- "id": "adiodvpe0_bandwidth_units",
+ "id": "pasqualevpe0_bandwidth_units",
"type": "string",
- "name": "adiodvpe0_bandwidth_units",
+ "name": "pasqualevpe0_bandwidth_units",
"value": "Gbps",
"isRequired": true,
"description": "Units of bandwidth"
}
],
- "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi"
+ "dynamicModelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi"
}
]
},
@@ -2719,6 +2734,8 @@ describe('Model Tree Generator service', () => {
"missingData": false,
"id": "sf3zth68xjf",
"name": "&lt;Automatically Assigned&gt;",
+ "routeTargetId": "mock-global-1",
+ "routeTargetRole": "mock-role-x",
"statusMessage": "Network failed message",
"modelName": "ExtVL 0",
"type": "VL",
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts
index 1fc439ea3..7a908b7fd 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts
@@ -48,7 +48,7 @@ export class ObjectToInstanceTreeService {
* @param node - the current node
****************************************************************/
increaseNumberOfFailed(node) {
- if (node.isFailed) {
+ if (node && node.isFailed) {
this.numberOfFailed++;
node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {};
node['errors']["isFailed"] = true;
@@ -92,11 +92,16 @@ export class ObjectToInstanceTreeService {
}
addingExtraDataToNode(node, modelName: string, parentModel: any, instance: any, serviceHierarchy, option: ILevelNodeInfo, parentType ?: string) {
- node.trackById = _.isNil(node.trackById) ? DefaultDataGeneratorService.createRandomTrackById() : node['trackById'];
- node.parentType = !_.isNil(parentType) ? parentType : "";
- node.updatePoistionFunction = option.updatePosition;
- node.position = option.getNodePosition(instance, node.dynamicModelName);
- node.onSelectedNode = option.onSelectedNode;
+ if(!_.isNil(node)){
+ node.trackById = _.isNil(node.trackById) ? DefaultDataGeneratorService.createRandomTrackById() : node['trackById'];
+ node.parentType = !_.isNil(parentType) ? parentType : "";
+ node.updatePoistionFunction = option.updatePosition;
+ node.position = option.getNodePosition(instance, node.dynamicModelName);
+ node.getModel = option.getModel.bind(option);
+ node.getInfo = !_.isNil(option.getInfo) ? option.getInfo.bind(option) : ()=>{};
+ node.componentInfoType = option.componentInfoType;
+ }
+
return node;
}
@@ -116,24 +121,27 @@ export class ObjectToInstanceTreeService {
* @param serviceHierarchy - The service Hierarchy store
****************************************************************/
addNextInstanceTreeNode(parentInstance, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode, serviceHierarchy): any[] {
- if (!_.isNil(levelNodeInfo.childName)) {
+ if (!_.isNil(levelNodeInfo.childNames)&& levelNodeInfo.childNames.length > 0) {
+ const that = this;
parentNode.children = [];
- if (!_.isNil(parentInstance[levelNodeInfo.childName])) {
- let parentType = levelNodeInfo.type;
- let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this);
- Object.keys(parentInstance[levelNodeInfo.childName]).map((modelName) => {
- let nextLevelInstance = parentInstance[levelNodeInfo.childName][modelName];
- let nodes: any[] | any = this.getNodeInstance(modelName, parentModel, nextLevelInstance, serviceHierarchy, nextLevelNodeInfo, parentType);
- if (_.isArray(nodes)) {
- parentNode.children = parentNode.children.concat(nodes);
- } else {
- parentNode.children.push(nodes);
- }
- });
- return this.sortElementsByPosition(parentNode.children);
- }
+ levelNodeInfo.childNames.forEach(function (childName) {
+ if (!_.isNil(parentInstance[childName])) {
+ let parentType = levelNodeInfo.type;
+ let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(that, [childName]);
+ Object.keys(parentInstance[childName]).map((modelName) => {
+ let nextLevelInstance = parentInstance[childName][modelName];
+ let nodes: any[] | any = that.getNodeInstance(modelName, parentModel, nextLevelInstance, serviceHierarchy, nextLevelNodeInfo, parentType);
+ if (_.isArray(nodes)) {
+ parentNode.children = parentNode.children.concat(nodes);
+ } else {
+ parentNode.children.push(nodes);
+ }
+ });
+ }
+ });
+ return this.sortElementsByPosition(parentNode.children);
}
- return parentNode.children;
+ return !_.isNil(parentNode) ? parentNode.children : null;
}
@@ -142,6 +150,7 @@ export class ObjectToInstanceTreeService {
* @param node
*********************************************************************************/
updateScalingPolicy(node): void {
+ if(_.isNil(node)) return node;
node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {};
if (!_.isNil(node['limitMembers']) && !_.isNil(node.children)) {
let effectiveChildren = (node.children).filter(child => [
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts
index 41ad23f07..7246adc27 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts
@@ -8,7 +8,10 @@ import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDa
import {DynamicInputsService} from "../dynamicInputs.service";
import {SharedTreeService} from "../shared.tree.service";
import {DrawingBoardModes} from "../../drawing-board.modes";
-import {AvailableModelsTreeService} from "../../available-models-tree/available-models-tree.service";
+import {
+ AvailableModelsTreeService,
+ AvailableNodeIcons
+} from "../../available-models-tree/available-models-tree.service";
import {DialogService} from "ng2-bootstrap-modal";
import {VnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
import {BasicControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/basic.control.generator";
@@ -29,12 +32,39 @@ import {VnfGroupControlGenerator} from "../../../../shared/components/genericFor
import {DuplicateService} from "../../duplicate/duplicate.service";
import {SdcUiComponentsModule} from "onap-ui-angular";
import {ComponentInfoService} from "../../component-info/component-info.service";
+import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model";
+import {VpnStepService} from "../models/vrf/vrfModal/vpnStep/vpn.step.service";
+import {NetworkStepService} from "../models/vrf/vrfModal/networkStep/network.step.service";
class MockAppStore<T> {
getState() {
return {
global: {
'drawingBoardStatus': DrawingBoardModes.CREATE
+ },
+ service: {
+ serviceInstance: {
+ "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
+ "existingVNFCounterMap": {
+ "280dec31-f16d-488b-9668-4aae55d6648a": 1
+ }
+ }
+ },
+ serviceHierarchy: {
+ "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
+ vnfs: {
+ "2017-388_PASQUALE-vPE 1": {
+ "properties": {}
+ },
+ "2017-388_PASQUALE-vPE 0": {
+ "properties": {}
+ },
+ "2017-488_PASQUALE-vPE 0": {
+ "properties": {}
+ }
+ }
+ }
+ }
}
}
}
@@ -77,8 +107,10 @@ describe('Model Tree Generator service', () => {
DialogService,
DuplicateService,
ComponentInfoService,
+ NetworkStepService,
+ VpnStepService,
{provide: NgRedux, useClass: MockAppStore},
- MockNgRedux]
+ MockNgRedux ]
}).compileComponents();
injector = getTestBed();
@@ -90,25 +122,72 @@ describe('Model Tree Generator service', () => {
expect(service).toBeDefined();
});
- test('should return nodes correctly: VNF', () => {
+ test('calculateNumberOfNodesWithPlusIcon : should return 0 when there are no nodes', () => {
+ service.calculateNumberOfNodesWithPlusIcon("someServiceModelId", []);
+ expect(service.numberOfPlusButton).toEqual(0);
+ });
+
+ test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon', () => {
+ const serviceModel = {
+ service: {
+ uuid: "uuid"
+ }
+ };
+ service.calculateNumberOfNodesWithPlusIcon(serviceModel, [{
+ showNodeIcons: () => {
+ return new AvailableNodeIcons(true, false)
+ }
+ }]);
+ expect(service.numberOfPlusButton).toEqual(1);
+ });
+
+ test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon and one without', () => {
+ const serviceModel = {
+ service: {
+ uuid: "uuid"
+ }
+ };
+ service.calculateNumberOfNodesWithPlusIcon(serviceModel, [
+ {
+ showNodeIcons: () => {
+ return new AvailableNodeIcons(true, false)
+ }
+ },
+ {
+ showNodeIcons: () => {
+ return new AvailableNodeIcons(false, true)
+ }
+ }
+ ]);
+ expect(service.numberOfPlusButton).toEqual(1);
+ });
+
+ test('should return nodes correctly: VNF', () => {
let convertToNodes = service.convertServiceHierarchyModelToTreeNodes(getServiceHeirarchyVNF());
- convertToNodes.map((item) => {
- delete item['onAddClick'];
- delete item['getNodeCount'];
- delete item['showNodeIcons'];
+ convertToNodes.map((item: IModelTreeNodeModel) => {
+ delete item.onAddClick;
+ delete item.getNodeCount;
+ delete item.showNodeIcons;
+ delete item.getModel;
+ delete item.componentInfoType;
+ delete item.getMenuAction;
delete item['menuActions'];
- delete item['getMenuAction'];
delete item['trackById'];
+ delete item.getInfo;
+
if (item.children) {
item.children.map((child) => {
- delete child['onAddClick'];
- delete child['getNodeCount'];
- delete child['showNodeIcons'];
+ delete child.onAddClick;
+ delete child.getNodeCount;
+ delete child.showNodeIcons;
+ delete child.getModel;
+ delete child.componentInfoType;
+ delete child.getMenuAction;
delete child['menuActions'];
- delete child['getMenuAction'];
delete child['trackById'];
+ delete child.getInfo;
});
}
});
@@ -121,7 +200,7 @@ describe('Model Tree Generator service', () => {
return [{
"id": "280dec31-f16d-488b-9668-4aae55d6648a",
"modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
- "name": "2017-388_ADIOD-vPE 1",
+ "name": "2017-388_PASQUALE-vPE 1",
"tooltip": "VF",
"type": "VF",
"count": 0,
@@ -138,7 +217,7 @@ describe('Model Tree Generator service', () => {
"modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
"modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
- "name": "2017-388_ADIOD-vPE 0",
+ "name": "2017-388_PASQUALE-vPE 0",
"tooltip": "VF",
"type": "VF",
"count": 0,
@@ -153,7 +232,7 @@ describe('Model Tree Generator service', () => {
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
- "name": "2017-488_ADIOD-vPE 0",
+ "name": "2017-488_PASQUALE-vPE 0",
"tooltip": "VF",
"type": "VF",
"count": 0,
@@ -163,7 +242,7 @@ describe('Model Tree Generator service', () => {
"modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
"modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
- "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"tooltip": "VFmodule",
"type": "VFmodule",
"count": 0,
@@ -178,7 +257,7 @@ describe('Model Tree Generator service', () => {
"modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"tooltip": "VFmodule",
"type": "VFmodule",
"count": 0,
@@ -193,7 +272,7 @@ describe('Model Tree Generator service', () => {
"modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
- "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"tooltip": "VFmodule",
"type": "VFmodule",
"count": 0,
@@ -223,25 +302,25 @@ describe('Model Tree Generator service', () => {
"category": "Network L1-3",
"serviceType": "pnf",
"serviceRole": "Testing",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {},
"vidNotions": {"instantiationUI": "legacy", "modelCategory": "other"}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -287,7 +366,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -295,14 +374,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -312,7 +391,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -326,23 +405,23 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -388,7 +467,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -396,14 +475,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -413,7 +492,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -427,23 +506,23 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -489,7 +568,7 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -497,14 +576,14 @@ describe('Model Tree Generator service', () => {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -514,7 +593,7 @@ describe('Model Tree Generator service', () => {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -528,57 +607,57 @@ describe('Model Tree Generator service', () => {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -586,36 +665,36 @@ describe('Model Tree Generator service', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -625,60 +704,60 @@ describe('Model Tree Generator service', () => {
}
},
"networks": {},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -686,36 +765,36 @@ describe('Model Tree Generator service', () => {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts
index e941faad3..c101f44e9 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts
@@ -2,9 +2,11 @@ import {Injectable} from "@angular/core";
import {ILevelNodeInfo} from "../models/basic.model.info";
import {ObjectToTreeService} from "../objectToTree.service";
import * as _ from "lodash";
+import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model";
@Injectable()
export class ObjectToModelTreeService {
+ numberOfPlusButton: number;
constructor(private _objectToTreeService: ObjectToTreeService) {
}
@@ -21,10 +23,20 @@ export class ObjectToModelTreeService {
nodes.push(_this.addFirstLevelModel(serviceModel.service.uuid, key, item, item.type, serviceModel, option));
});
}
+
+ this.calculateNumberOfNodesWithPlusIcon(serviceModel, nodes);
+
console.log('nodes', nodes);
return nodes;
}
+ calculateNumberOfNodesWithPlusIcon(serviceModel, nodes) : void {
+ this.numberOfPlusButton = nodes.reduce((sum, node)=>{
+ let showNodeIconResult = node.showNodeIcons({data : node}, serviceModel.service.uuid);
+ return (!_.isNil(showNodeIconResult) && showNodeIconResult.addIcon && !showNodeIconResult.vIcon) ? sum + 1 : sum;
+ }, 0);
+ }
+
/***********************************************************
* return node with all his child's
@@ -50,13 +62,14 @@ export class ObjectToModelTreeService {
* @param parentNode - parent node.
************************************************************/
addNextLevelNodes(serviceId: string, currentModel, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode): any[] {
- if (!_.isNil(levelNodeInfo.childName)) {
- if (!_.isNil(currentModel[levelNodeInfo.childName])) {
- let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this);
- parentNode.children = Object.keys(currentModel[levelNodeInfo.childName]).map((key) =>
- ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[levelNodeInfo.childName][key], levelNodeInfo.childName, currentModel, nextLevelNodeInfo));
-
- }
+ if (!_.isNil(levelNodeInfo.childNames) && levelNodeInfo.childNames.length > 0) {
+ levelNodeInfo.childNames.forEach(function (childName) {
+ if (!_.isNil(currentModel[childName])) {
+ let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this, [childName]);
+ parentNode.children = Object.keys(currentModel[childName]).map((key) =>
+ ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[childName][key], childName, currentModel, nextLevelNodeInfo));
+ }
+ })
}
return parentNode.children;
}
@@ -72,7 +85,7 @@ export class ObjectToModelTreeService {
* @param levelNodeInfo - current levelNodeInfo object
************************************************************/
static convertItemToTreeNode(serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo) {
- let node = {
+ let node : IModelTreeNodeModel = {
id: currentModel.customizationUuid || currentModel.uuid,
modelCustomizationId : currentModel.customizationUuid,
modelVersionId: currentModel.uuid,
@@ -88,11 +101,20 @@ export class ObjectToModelTreeService {
isEcompGeneratedNaming: levelNodeInfo.isEcompGeneratedNaming(currentModel, parentModel)
};
- node['onAddClick'] = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId);
- node['getNodeCount'] = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId);
- node['getMenuAction'] = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId);
- node['showNodeIcons'] = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId);
- node['typeName'] = levelNodeInfo['typeName'];
+ node = this.addExtraFunctionality(node, serviceId, name, currentModel, valueType, parentModel, levelNodeInfo);
+ return node;
+ }
+
+
+ static addExtraFunctionality(node, serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo){
+ node.onAddClick = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId);
+ node.getNodeCount = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId);
+ node.getMenuAction = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId);
+ node.showNodeIcons = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId);
+ node.typeName = levelNodeInfo.typeName;
+ node.getModel = levelNodeInfo.getModel.bind(levelNodeInfo);
+ node.getInfo = !_.isNil(levelNodeInfo.getInfo) ? levelNodeInfo.getInfo.bind(levelNodeInfo) : ()=>{};
+ node.componentInfoType = levelNodeInfo.componentInfoType;
return node;
}
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts
index 338964515..0072196f2 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts
@@ -18,6 +18,12 @@ import {DuplicateService} from "../duplicate/duplicate.service";
import {SdcUiServices} from "onap-ui-angular";
import {IframeService} from "../../../shared/utils/iframe.service";
import {ComponentInfoService} from "../component-info/component-info.service";
+import {PnfModelInfo} from "./models/pnf/pnf.model.info";
+import {CollectionResourceModelInfo} from "./models/collectionResource/collectionResource.model.info";
+import {AaiService} from "../../../shared/services/aaiService/aai.service";
+import {VrfModelInfo} from "./models/vrf/vrf.model.info";
+import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
@Injectable()
export class ObjectToTreeService {
@@ -33,6 +39,9 @@ export class ObjectToTreeService {
private _modalService: SdcUiServices.ModalService,
private _iframeService : IframeService,
private _componentInfoService : ComponentInfoService,
+ private _networkStepService : NetworkStepService,
+ private _vpnStepService : VpnStepService,
+ private _aaiService : AaiService,
private _store : NgRedux<AppState>) {
}
@@ -45,7 +54,10 @@ export class ObjectToTreeService {
getFirstLevelOptions(): ILevelNodeInfo[] {
return [new VnfModelInfo(this._dynamicInputsService, this._sharedTreeService, this._defaultDataGeneratorService, this._dialogService, this._vnfPopupService, this._vfModulePopupService, this._duplicateService, this._modalService, this._iframeService, this._componentInfoService, this._store)
, new NetworkModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._networkPopupService, this._duplicateService, this._modalService, this._iframeService, this._store),
+ new PnfModelInfo(),
+ new VrfModelInfo(this._store, this._sharedTreeService, this._dialogService, this._iframeService, this._networkStepService, this._vpnStepService),
+ new CollectionResourceModelInfo(this._store, this._sharedTreeService),
new ConfigurationModelInfo(this._dynamicInputsService, this._sharedTreeService),
- new VnfGroupingModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vnfGroupPopupService, this._iframeService, this._store)];
+ new VnfGroupingModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vnfGroupPopupService, this._iframeService, this._aaiService, this._store)];
};
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts
index 852c5d44d..cad23ffd9 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts
@@ -36,6 +36,10 @@ import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActi
import each from "jest-each";
import {DrawingBoardModes} from "../drawing-board.modes";
import {ComponentInfoService} from "../component-info/component-info.service";
+import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
+import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
+import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
class MockAppStore<T> {
getState() {
@@ -90,6 +94,8 @@ describe('Shared Tree Service', () => {
ErrorMsgService,
ObjectToInstanceTreeService,
ComponentInfoService,
+ NetworkStepService,
+ VpnStepService,
{provide: NgRedux, useClass: MockAppStore}
]
});
@@ -122,7 +128,7 @@ describe('Shared Tree Service', () => {
test('openAuditInfoModal should open modal for failed instance', () => {
jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next');
- let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null);
+ let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null,null);
const modelMock = {"a": "a"};
const instanceMock = {"instance": "instance", "trackById": "123456789"};
const instanceTypeMock = "instanceTypeMock";
@@ -139,9 +145,7 @@ describe('Shared Tree Service', () => {
{
"instance": instanceMock,
"instanceId": "serviceModelId",
- "isInstanceFailed": node.data.isFailed,
"model": modelMock,
- "trackById": instanceMock.trackById,
"type": instanceTypeMock
});
});
@@ -161,6 +165,25 @@ describe('Shared Tree Service', () => {
expect(MessageBoxService.openModal.next).not.toHaveBeenCalled();
});
+ test ('addGeneralInfoItems should return correct info - ordered',()=>{
+ let specificNetworkInfo = [
+ ModelInformationItem.createInstance('Network role', "network role 1, network role 2")
+ ];
+ const actualInfoModel: ComponentInfoModel = service.addGeneralInfoItems(specificNetworkInfo,ComponentInfoType.NETWORK, getNetworkModel(),getNetworkInstance());
+
+ let expectedGeneralInfo = [
+ ModelInformationItem.createInstance('Model version', '37.0'),
+ ModelInformationItem.createInstance('Model customization ID', '94fdd893-4a36-4d70-b16a-ec29c54c184f'),
+ ModelInformationItem.createInstance('Instance ID', 'NETWORK4_INSTANCE_ID'),
+ ModelInformationItem.createInstance('Instance type', 'CONTRAIL30_HIMELGUARD'),
+ ModelInformationItem.createInstance('In maintenance', false),
+ ModelInformationItem.createInstance('Network role', 'network role 1, network role 2')
+ ];
+ expect(actualInfoModel.modelInfoItems).toEqual(expectedGeneralInfo);
+ });
+
+
+
test('statusProperties should be prop on node according to node properties', () => {
let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: false});
expect(node.statusProperties).toBeDefined();
@@ -189,7 +212,7 @@ describe('Shared Tree Service', () => {
['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false],
['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
each(enableRemoveAndEditItemsDataProvider).test('shouldShowEditAndDelete if child exist with %s', (description, mode, action, enabled) => {
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
global: {
drawingBoardStatus: mode
}
@@ -206,60 +229,60 @@ describe('Shared Tree Service', () => {
function generateService() {
return {
"vnfs": {
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
+ "originalName": "2017-488_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "stigekyxrqi",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
"isMissingData": false,
"sdncPreReload": null,
"modelInfo": {
"modelType": "VFmodule",
"modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
- "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"modelVersion": "5",
"modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
},
"instanceParams": [{}],
"trackById": "3oj23o7nupo"
}
}
},
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"lineOfBusiness": "ONAP",
"platformName": "xxx1",
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
+ "modelName": "2017-488_PASQUALE-vPE",
"modelVersion": "5.0",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
},
"legacyRegion": "11111111",
"instanceParams": [{}]
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 0",
+ "originalName": "2017-388_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "nib719t5vca",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "11111",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -268,24 +291,24 @@ function generateService() {
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "4.0",
"modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 1",
+ "originalName": "2017-388_PASQUALE-vPE 1",
"isMissingData": false,
"trackById": "cv7l1ak8vpe",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 1",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "123",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -294,10 +317,10 @@ function generateService() {
"modelInfo": {
"modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
"modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "1.0",
"modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
},
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
@@ -325,7 +348,7 @@ function generateService() {
"trackById": "s6okajvv2n8",
"networkStoreKey": "ExtVL 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "12355555",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -369,7 +392,7 @@ function generateService() {
"subscriptionServiceType": "TYLER SILVIA",
"owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"aicZoneId": "ATL53",
"pause": null,
@@ -391,7 +414,7 @@ function generateService() {
"isALaCarte": false,
"name": "action-data",
"version": "1.0",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"category": "Network L1-3",
"uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
"invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
@@ -410,15 +433,10 @@ function getStore() {
"CREATE_INSTANCE_TEST": false,
"EMPTY_DRAWING_BOARD_TEST": false,
"FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
- "FLAG_ASYNC_INSTANTIATION": true,
- "FLAG_ASYNC_JOBS": true,
"FLAG_ADD_MSO_TESTAPI_FIELD": true,
- "FLAG_UNASSIGN_SERVICE": true,
"FLAG_SERVICE_MODEL_CACHE": true,
- "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
"FLAG_SHOW_ASSIGNMENTS": true,
"FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
- "FLAG_DUPLICATE_VNF": true,
"FLAG_DEFAULT_VNF": true,
"FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
"FLAG_A_LA_CARTE_AUDIT_INFO": true,
@@ -431,7 +449,6 @@ function getStore() {
"FLAG_SHOW_VERIFY_SERVICE": true,
"FLAG_ASYNC_ALACARTE_VFMODULE": true,
"FLAG_ASYNC_ALACARTE_VNF": true,
- "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true,
"FLAG_1810_AAI_LOCAL_CACHE": true,
"FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
"FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false,
@@ -455,25 +472,25 @@ function getStore() {
"category": "Network L1-3",
"serviceType": "pnf",
"serviceRole": "Testing",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {},
"vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -519,7 +536,7 @@ function getStore() {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -527,14 +544,14 @@ function getStore() {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -544,7 +561,7 @@ function getStore() {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -558,23 +575,23 @@ function getStore() {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-388_ADIOD-vPE",
+ "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",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -620,7 +637,7 @@ function getStore() {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -628,14 +645,14 @@ function getStore() {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -645,7 +662,7 @@ function getStore() {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -659,16 +676,16 @@ function getStore() {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD 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",
- "name": "2017-488_ADIOD-vPE",
+ "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",
+ "name": "2017-488_PASQUALE-vPE",
"version": "5.0",
"customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"inputs": {},
@@ -676,7 +693,7 @@ function getStore() {
"properties": {
"max_instances": 1,
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -722,7 +739,7 @@ function getStore() {
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
@@ -730,14 +747,14 @@ function getStore() {
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
@@ -747,7 +764,7 @@ function getStore() {
"vmxvre_ore_present": "0",
"vmxvre_volume_name_0": "vREXI_FBVolume",
"vmxvre_type": "0",
- "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+ "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
"vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
"oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
"vmx_int_ctl_len": "24",
@@ -761,57 +778,57 @@ function getStore() {
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -819,36 +836,36 @@ function getStore() {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -877,60 +894,60 @@ function getStore() {
"modelCustomizationName": "ExtVL 0"
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
@@ -938,36 +955,36 @@ function getStore() {
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
@@ -991,11 +1008,11 @@ function getStore() {
"ecomp_generated_naming": "true"
},
"members": {
- "vdbe_svc_vprs_proxy 0": {
+ "vdorothea_svc_vprs_proxy 0": {
"uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
"invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
- "description": "A Proxy for Service vDBE_Svc_vPRS",
- "name": "vDBE_Svc_vPRS Service Proxy",
+ "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+ "name": "vDOROTHEA_Svc_vPRS Service Proxy",
"version": "1.0",
"customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
"inputs": {},
@@ -1004,7 +1021,7 @@ function getStore() {
"type": "Service Proxy",
"sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
"sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
- "sourceModelName": "vDBE_Svc_vPRS"
+ "sourceModelName": "vDOROTHEA_Svc_vPRS"
}
}
},
@@ -1083,7 +1100,7 @@ function getStore() {
"modelCustomizationName": "AIC30_CONTRAIL_BASIC 0"
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
@@ -1096,62 +1113,62 @@ function getStore() {
"serviceInstance": {
"1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
"vnfs": {
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"action": "None",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
+ "originalName": "2017-488_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "stigekyxrqi",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
"isMissingData": false,
"sdncPreReload": null,
"modelInfo": {
"modelType": "VFmodule",
"modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
- "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"modelVersion": "5",
"modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
},
"instanceParams": [{}],
"trackById": "3oj23o7nupo"
}
}
},
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"lineOfBusiness": "ONAP",
"platformName": "xxx1",
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
+ "modelName": "2017-488_PASQUALE-vPE",
"modelVersion": "5.0",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
},
"legacyRegion": "11111111",
"instanceParams": [{}]
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"action": "Create",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 0",
+ "originalName": "2017-388_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "nib719t5vca",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "11111",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -1160,25 +1177,25 @@ function getStore() {
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "4.0",
"modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"action": "None",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 1",
+ "originalName": "2017-388_PASQUALE-vPE 1",
"isMissingData": false,
"trackById": "cv7l1ak8vpe",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 1",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "123",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -1187,10 +1204,10 @@ function getStore() {
"modelInfo": {
"modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
"modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "1.0",
"modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
},
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
@@ -1218,7 +1235,7 @@ function getStore() {
"trackById": "s6okajvv2n8",
"networkStoreKey": "ExtVL 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "12355555",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
@@ -1262,7 +1279,7 @@ function getStore() {
"subscriptionServiceType": "TYLER SILVIA",
"owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"aicZoneId": "ATL53",
"pause": null,
@@ -1284,7 +1301,7 @@ function getStore() {
"isALaCarte": false,
"name": "action-data",
"version": "1.0",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"category": "Network L1-3",
"uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
"invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
@@ -1296,13 +1313,13 @@ function getStore() {
},
"lcpRegionsAndTenants": {
"lcpRegionList": [{
- "id": "JANET25",
- "name": "JANET25 (AIC)",
+ "id": "AAIAIC25",
+ "name": "AAIAIC25 (AIC)",
"isPermitted": true,
"cloudOwner": "irma-aic"
}, {"id": "hvf6", "name": "hvf6 (AIC)", "isPermitted": true, "cloudOwner": "irma-aic"}],
"lcpRegionsTenantsMap": {
- "JANET25": [{
+ "AAIAIC25": [{
"id": "092eb9e8e4b7412e8787dd091bc58e86",
"name": "USP-SIP-IC-24335-T-01",
"isPermitted": true,
@@ -1314,8 +1331,128 @@ function getStore() {
"isPermitted": true,
"cloudOwner": "irma-aic"
}, {
- "id": "d0a3e3f2964542259d155a81c41aadc3",
- "name": "test-hvf6-09",
+ "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+ "name": "AIN Web Tool-15-D-STTest2",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "1178612d2b394be4834ad77f567c0af2",
+ "name": "AIN Web Tool-15-D-SSPtestcustome",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+ "name": "AIN Web Tool-15-D-UncheckedEcopm",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "de007636e25249238447264a988a927b",
+ "name": "AIN Web Tool-15-D-dfsdf",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "62f29b3613634ca6a3065cbe0e020c44",
+ "name": "AIN/SMS-16-D-Multiservices1",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "649289e30d3244e0b48098114d63c2aa",
+ "name": "AIN Web Tool-15-D-SSPST66",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "3f21eeea6c2c486bba31dab816c05a32",
+ "name": "AIN Web Tool-15-D-ASSPST47",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "f60ce21d3ee6427586cff0d22b03b773",
+ "name": "CESAR-100-D-sspjg67246",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "8774659e425f479895ae091bb5d46560",
+ "name": "CESAR-100-D-sspjg68359",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "624eb554b0d147c19ff8885341760481",
+ "name": "AINWebTool-15-D-iftach",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "214f55f5fc414c678059c383b03e4962",
+ "name": "CESAR-100-D-sspjg612401",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "c90666c291664841bb98e4d981ff1db5",
+ "name": "CESAR-100-D-sspjg621340",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+ "name": "sspjg621351cloned",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "b386b768a3f24c8e953abbe0b3488c02",
+ "name": "AINWebTool-15-D-eteancomp",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "dc6c4dbfd225474e9deaadd34968646c",
+ "name": "AINWebTool-15-T-SPFET",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+ "name": "AINWebTool-15-X-eeweww",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "f2f3830e4c984d45bcd00e1a04158a79",
+ "name": "CESAR-100-D-spjg61909",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "05b91bd5137f4929878edd965755c06d",
+ "name": "CESAR-100-D-sspjg621512cloned",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "7002fbe8482d4a989ddf445b1ce336e0",
+ "name": "AINWebTool-15-X-vdr",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "4008522be43741dcb1f5422022a2aa0b",
+ "name": "AINWebTool-15-D-ssasa",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "f44e2e96a1b6476abfda2fa407b00169",
+ "name": "AINWebTool-15-D-PFNPT",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "b69a52bec8a84669a37a1e8b72708be7",
+ "name": "AINWebTool-15-X-vdre",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "fac7d9fd56154caeb9332202dcf2969f",
+ "name": "AINWebTool-15-X-NONPODECOMP",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "2d34d8396e194eb49969fd61ffbff961",
+ "name": "DN5242-Nov16-T5",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+ "name": "ro-T11",
"isPermitted": true,
"cloudOwner": "irma-aic"
}, {
@@ -1324,6 +1461,16 @@ function getStore() {
"isPermitted": true,
"cloudOwner": "irma-aic"
}, {
+ "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+ "name": "DN5242-Nov21-T1",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
+ "id": "d0a3e3f2964542259d155a81c41aadc3",
+ "name": "test-hvf6-09",
+ "isPermitted": true,
+ "cloudOwner": "irma-aic"
+ }, {
"id": "cbb99fe4ada84631b7baf046b6fd2044",
"name": "DN5242-Nov16-T3",
"isPermitted": true,
@@ -1404,9 +1551,9 @@ function getStore() {
"isPermitted": false
}, {"id": "18", "name": "vCarroll", "isPermitted": false}, {
"id": "9",
- "name": "vMME",
+ "name": "vFLORENCE",
"isPermitted": false
- }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+ }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
"id": "10",
"name": "vMNS",
"isPermitted": false
@@ -1414,34 +1561,205 @@ function getStore() {
"id": "8",
"name": "vOTA",
"isPermitted": false
- }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+ }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
"id": "6",
- "name": "vSEGW",
+ "name": "vPorfirio",
"isPermitted": false
}, {"id": "7", "name": "vVM", "isPermitted": false}, {"id": "4", "name": "vVoiceMail", "isPermitted": false}]
},
- "aicZones": [
- {
- "id": "NFT1",
- "name": "NFTJSSSS-NFT1"
- },
- {
- "id": "JAG1",
- "name": "YUDFJULP-JAG1"
- },
- {
- "id": "YYY1",
- "name": "UUUAIAAI-YYY1"
- },
- {
- "id": "AVT1",
- "name": "AVTRFLHD-AVT1"
- },
- {
- "id": "ATL34",
- "name": "ATLSANAI-ATL34"
- }
- ],
+ "aicZones": [{"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {
+ "id": "TES36",
+ "name": "ABCEETES-TES36"
+ }, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {
+ "id": "AMD15",
+ "name": "AMDFAA01-AMD15"
+ }, {"id": "AMF11", "name": "AMDOCS01-AMF11"}, {"id": "RCT1", "name": "AMSTERNL-RCT1"}, {
+ "id": "AMS1",
+ "name": "AMSTNLBW-AMS1"
+ }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HJE1", "name": "AOEEWWWD-HJE1"}, {
+ "id": "MCS1",
+ "name": "ASACMAMS-MCS1"
+ }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+ "id": "ATL1",
+ "name": "ATLNGAMA-ATL1"
+ }, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {
+ "id": "ANI1",
+ "name": "ATLNGTRE-ANI1"
+ }, {"id": "ATL44", "name": "ATLSANAB-ATL44"}, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {
+ "id": "ABC11",
+ "name": "ATLSANAI-ABC11"
+ }, {"id": "ATL34", "name": "ATLSANAI-ATL34"}, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {
+ "id": "ABC12",
+ "name": "ATLSECIA-ABC12"
+ }, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
+ "id": "KIT1",
+ "name": "BHYJFGLN-KIT1"
+ }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+ "id": "RTZ4",
+ "name": "BHYTFRZ6-RTZ4"
+ }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+ "id": "VEL1",
+ "name": "BNMLKUIK-VEL1"
+ }, {"id": "BOT1", "name": "BOTHWAKY-BOT1"}, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {
+ "id": "ATL84",
+ "name": "CANTTCOC-ATL84"
+ }, {"id": "HSD1", "name": "CHASKCDS-HSD1"}, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {
+ "id": "XCP12",
+ "name": "CHKGH123-XCP12"
+ }, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {
+ "id": "CLG1",
+ "name": "CLGRABAD-CLG1"
+ }, {"id": "CKL1", "name": "CLKSKCKK-CKL1"}, {"id": "ATL66", "name": "CLLIAAII-ATL66"}, {
+ "id": "CQK1",
+ "name": "CQKSCAKK-CQK1"
+ }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+ "id": "DSF45",
+ "name": "DSFBG123-DSF45"
+ }, {"id": "DSL12", "name": "DSLFK242-DSL12"}, {"id": "FDE55", "name": "FDERT555-FDE55"}, {
+ "id": "VEN2",
+ "name": "FGHJUHIL-VEN2"
+ }, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {
+ "id": "SAN22",
+ "name": "GNVLSCTL-SAN22"
+ }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+ "id": "HRG1",
+ "name": "HRGHRGGS-HRG1"
+ }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "STN27", "name": "HSTNTX01-STN27"}, {
+ "id": "HST70",
+ "name": "HSTNTX70-HST70"
+ }, {"id": "KOR1", "name": "HYFLNBVT-KOR1"}, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {
+ "id": "REL1",
+ "name": "INGERFGT-REL1"
+ }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "HKA1", "name": "JAKHLASS-HKA1"}, {
+ "id": "JCS1",
+ "name": "JCSJSCJS-JCS1"
+ }, {"id": "JCV1", "name": "JCVLFLBW-JCV1"}, {"id": "KGM2", "name": "KGMTNC20-KGM2"}, {
+ "id": "KJF12",
+ "name": "KJFDH123-KJF12"
+ }, {"id": "JGS1", "name": "KSJKKKKK-JGS1"}, {"id": "LAG1", "name": "LARGIZON-LAG1"}, {
+ "id": "LAG1a",
+ "name": "LARGIZON-LAG1a"
+ }, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {"id": "LAG1b", "name": "LARGIZON-LAG1b"}, {
+ "id": "WAN1",
+ "name": "LEIWANGW-WAN1"
+ }, {"id": "DSA1", "name": "LKJHGFDS-DSA1"}, {"id": "LON1", "name": "LONEENCO-LON1"}, {
+ "id": "SITE",
+ "name": "LONEENCO-SITE"
+ }, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {"id": "hvf20", "name": "MDTWNJ21-hvf20"}, {
+ "id": "hvf32",
+ "name": "MDTWNJ21-hvf32"
+ }, {"id": "AMD13", "name": "MEMATLAN-AMD13"}, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {
+ "id": "MAR1",
+ "name": "MNBVCXZM-MAR1"
+ }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {
+ "id": "GAR1",
+ "name": "NGFVSJKO-GAR1"
+ }, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+ "id": "OLG1",
+ "name": "OLHOLHOL-OLG1"
+ }, {"id": "OLK1", "name": "OLKOLKLS-OLK1"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+ "id": "JAN1",
+ "name": "ORFLMATT-JAN1"
+ }, {"id": "ORL1", "name": "ORLDFLMA-ORL1"}, {"id": "PAR1", "name": "PARSFRCG-PAR1"}, {
+ "id": "PBL1",
+ "name": "PBLAPBAI-PBL1"
+ }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+ "id": "TIR2",
+ "name": "PLKINHYI-TIR2"
+ }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+ "id": "POI1",
+ "name": "PLMNJKIU-POI1"
+ }, {"id": "PLT1", "name": "PLTNCA60-PLT1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+ "id": "DCC1",
+ "name": "POIUYTGH-DCC1"
+ }, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {
+ "id": "DCC2",
+ "name": "POIUYTGH-DCC2"
+ }, {"id": "DCC3", "name": "POIUYTGH-DCC3"}, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {
+ "id": "QWE1",
+ "name": "QWECLLI1-QWE1"
+ }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+ "id": "RJN1",
+ "name": "RJNRBZAW-RJN1"
+ }, {"id": "SAA13", "name": "SAIT1AA9-SAA13"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+ "id": "SDD81",
+ "name": "SAIT1DD6-SDD81"
+ }, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+ "id": "SAA80",
+ "name": "SAIT9AA3-SAA80"
+ }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SCC80", "name": "SAIT9CC3-SCC80"}, {
+ "id": "ATL75",
+ "name": "SANAAIRE-ATL75"
+ }, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {"id": "SCK1", "name": "SCKSCKSK-SCK1"}, {
+ "id": "EHH78",
+ "name": "SDCSHHH5-EHH78"
+ }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "SAX78", "name": "SDCTAXG1-SAX78"}, {
+ "id": "SBX78",
+ "name": "SDCTBXG1-SBX78"
+ }, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {"id": "SGG78", "name": "SDCTGGG1-SGG78"}, {
+ "id": "SXB78",
+ "name": "SDCTGXB1-SXB78"
+ }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+ "id": "SLF78",
+ "name": "SDCTLFN1-SLF78"
+ }, {"id": "SLL78", "name": "SDCTLLL1-SLL78"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+ "id": "HGD1",
+ "name": "SDFQWHGD-HGD1"
+ }, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {
+ "id": "SBU78",
+ "name": "SDIT1BUB-SBU78"
+ }, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+ "id": "SNA1",
+ "name": "SNANTXCA-SNA1"
+ }, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {
+ "id": "SSA56",
+ "name": "SSIT2AA7-SSA56"
+ }, {"id": "STG1", "name": "STTGGE62-STG1"}, {"id": "STT1", "name": "STTLWA02-STT1"}, {
+ "id": "SYD1",
+ "name": "SYDNAUBV-SYD1"
+ }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {
+ "id": "ATL76",
+ "name": "TELEPAAI-ATL76"
+ }, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {"id": "TAT33", "name": "TESAAISA-TAT33"}, {
+ "id": "TAT34",
+ "name": "TESAAISB-TAT34"
+ }, {"id": "TAT37", "name": "TESAAISD-TAT37"}, {"id": "ATL62", "name": "TESSASCH-ATL62"}, {
+ "id": "TLP1",
+ "name": "TLPNXM18-TLP1"
+ }, {"id": "SAN13", "name": "TOKYJPFA-SAN13"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+ "id": "TOL1",
+ "name": "TOLDOH21-TOL1"
+ }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "TOY1", "name": "TORYONNZ-TOY1"}, {
+ "id": "ATL35",
+ "name": "TTESSAAI-ATL35"
+ }, {"id": "TUF1", "name": "TUFCLLI1-TUF1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+ "id": "UUU4",
+ "name": "UUUAAAUU-UUU4"
+ }, {"id": "YYY1", "name": "UUUAIAAI-YYY1"}, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {
+ "id": "WAS1",
+ "name": "WASHDCSW-WAS1"
+ }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {
+ "id": "DEF2",
+ "name": "WSBHGTYL-DEF2"
+ }, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {"id": "MNT11", "name": "WSXEFBTH-MNT11"}, {
+ "id": "RAJ1",
+ "name": "YGBIJNLQ-RAJ1"
+ }, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+ "id": "ZOG1",
+ "name": "ZOGASTRO-ZOG1"
+ }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "SIP1", "name": "ZXCVBNMK-SIP1"}, {
+ "id": "JUL1",
+ "name": "ZXCVBNMM-JUL1"
+ }, {"id": "ERT1", "name": "ertclli1-ERT1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+ "id": "OPA1",
+ "name": "opaclli1-OPA1"
+ }, {"id": "RAI1", "name": "poiuytre-RAI1"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+ "id": "RTY1",
+ "name": "rtyclli1-RTY1"
+ }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {
+ "id": "UIO1",
+ "name": "uioclli1-UIO1"
+ }],
"categoryParameters": {
"owningEntityList": [{
"id": "aaa1",
@@ -1458,3 +1776,63 @@ function getStore() {
}
}
}
+
+function getNetworkModel(){
+ return {
+ "customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "name":"ExtVL",
+ "version":"37.0",
+ "description":"ECOMP generic virtual link (network) base type for all other service-level and global networks",
+ "uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986",
+ "invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c",
+ "max":1,
+ "min":0,
+ "isEcompGeneratedNaming":false,
+ "type":"VL",
+ "modelCustomizationName":"ExtVL 0",
+ "roles":["network role 1"," network role 2"],
+ "properties":{
+ "network_role":"network role 1, network role 2",
+ "network_assignments":
+ "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+ "exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}",
+ "network_homing":"{ecomp_selected_instance_node_target=false}"
+ }
+ };
+
+}
+
+function getNetworkInstance() {
+ return {
+ "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+ "modelUniqueId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+ "missingData": true,
+ "id": "NETWORK4_INSTANCE_ID",
+ "action": "None",
+ "orchStatus": "Created",
+ "provStatus": "preprov",
+ "inMaint": false,
+ "instanceId": "NETWORK4_INSTANCE_ID",
+ "instanceType": "CONTRAIL30_HIMELGUARD",
+ "instanceName": "NETWORK4_INSTANCE_NAME",
+ "name": "NETWORK4_INSTANCE_NAME",
+ "modelName": "ExtVL 0",
+ "type": "VL",
+ "isEcompGeneratedNaming": false,
+ "networkStoreKey": "NETWORK4_INSTANCE_ID",
+ "typeName": "N",
+ "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
+ "isFailed": false,
+ "statusMessage": "",
+ "statusProperties": [{"key": "Prov Status:", "value": "preprov", "testId": "provStatus"}, {
+ "key": "Orch Status:",
+ "value": "Created",
+ "testId": "orchStatus"
+ }],
+ "trackById": "1wvr73xl999",
+ "parentType": "",
+ "componentInfoType": "Network",
+ "errors": {}
+ };
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts
index 5a023d55c..7df03fd0a 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts
@@ -9,6 +9,8 @@ import {DrawingBoardModes} from "../drawing-board.modes";
import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component";
import {VnfModelInfo} from "./models/vnf/vnf.model.info";
import {ILevelNodeInfo} from "./models/basic.model.info";
+import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
@Injectable()
export class SharedTreeService {
@@ -265,14 +267,29 @@ export class SharedTreeService {
@modelInfoService : the model (vnf, vfmodule, network, vnfgroup)object that call to the function (this)
************************************************/
openAuditInfoModal(node, serviceModelId, instance, instanceType, modelInfoService : ILevelNodeInfo){
- let isInstanceFailed = this.isFailed(node);
- AuditInfoModalComponent.openInstanceAuditInfoModal.next({
- instanceId: serviceModelId,
- type: instanceType,
- model: modelInfoService.getModel(node.data.modelName, instance, this._store.getState().service.serviceHierarchy[serviceModelId]),
- instance,
- isInstanceFailed,
- trackById: instance.trackById
- });
- }
+ AuditInfoModalComponent.openInstanceAuditInfoModal.next({
+ instanceId: serviceModelId,
+ type: instanceType,
+ model: modelInfoService.getModel(node.data.modelName, instance, this._store.getState().service.serviceHierarchy[serviceModelId]),
+ instance
+ });
+ }
+
+
+ addGeneralInfoItems(modelInfoSpecificItems: ModelInformationItem[], type: ComponentInfoType, model, instance):ComponentInfoModel {
+ let modelInfoItems: ModelInformationItem[] = [
+ ModelInformationItem.createInstance("Model version", model ? model.version : null),
+ ModelInformationItem.createInstance("Model customization ID", model ? model.customizationUuid : null),
+ ModelInformationItem.createInstance("Instance ID", instance ? instance.instanceId : null),
+ ModelInformationItem.createInstance("Instance type", instance ? instance.instanceType : null),
+ ModelInformationItem.createInstance("In maintenance", instance? instance.inMaint : null),
+ ];
+ modelInfoItems = modelInfoItems.concat(modelInfoSpecificItems);
+ return this.getComponentInfoModelByModelInformationItems(modelInfoItems, type, instance);
+ }
+
+ getComponentInfoModelByModelInformationItems(modelInfoItems: ModelInformationItem[], type: ComponentInfoType, instance){
+ const modelInfoItemsWithoutEmpty = _.filter(modelInfoItems, function(item){ return !item.values.every(_.isNil)});
+ return new ComponentInfoModel(type, modelInfoItemsWithoutEmpty, [], instance != null);
+ }
}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html
index 059937f6d..3255f083b 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html
@@ -3,9 +3,15 @@
<drawing-board-header></drawing-board-header>
</div>
<div class="service-planning-content">
- <available-models-tree class="left-side" [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
+ <available-models-tree class="left-side"
+ [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
(highlightInstances)="highlightInstancesBySelectingNode($event)"></available-models-tree>
- <drawing-board-tree *ngIf="isShowTree()" class="span-over" [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'" (highlightNode)="highlightNodeBySelectingInstance($event)"></drawing-board-tree>
+ <drawing-board-tree
+ *ngIf="isShowTree()"
+ class="span-over"
+ [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
+ [pageMode]="pageMode"
+ (highlightNode)="highlightNodeBySelectingInstance($event)"></drawing-board-tree>
<component-info *ngIf="isShowComponentInfo()" class="col-md-2"></component-info>
</div>