aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models')
-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
29 files changed, 4964 insertions, 902 deletions
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']
+ }]
+ }
+ ];
+ };
+
+}