import {DynamicInputsService} from "./dynamicInputs.service";
import {DialogService} from "ng2-bootstrap-modal";
import {VnfPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
-import {BasicControlGenerator} from "../../../shared/components/genericForm/formControlsServices/basic.control.generator";
+import {ControlGeneratorUtil} from "../../../shared/components/genericForm/formControlsServices/control.generator.util.service";
import {AaiService} from "../../../shared/services/aaiService/aai.service";
import {NetworkPopupService} from "../../../shared/components/genericFormPopup/genericFormServices/network/network.popup.service";
import {NetworkControlGenerator} from "../../../shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator";
-import {VfModulePopuopService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service";
+import {VfModulePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service";
import {VfModuleControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator";
import {FeatureFlagsService} from "../../../shared/services/featureFlag/feature-flags.service";
import each from "jest-each";
import {DrawingBoardModes} from "../drawing-board.modes";
import {ComponentInfoService} from "../component-info/component-info.service";
+import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
+import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
+import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
+import {VfModuleUpgradePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
+import {SharedControllersService} from "../../../shared/components/genericForm/formControlsServices/sharedControlles/shared.controllers.service";
+import {ModalService} from "../../../shared/components/customModal/services/modal.service";
+import {CreateDynamicComponentService} from "../../../shared/components/customModal/services/create-dynamic-component.service";
+import { PnfPopupService } from "../../../shared/components/genericFormPopup/genericFormServices/pnf/pnf.popup.service";
class MockAppStore<T> {
getState() {
}
}
-class MockVnfModelInfo<T> {
- getModel() {
- return {}
- }
-}
+
+function getNodeWithData(menuAction:string){
+ const nodeData = {
+ menuActions: {}
+ };
+ nodeData['menuActions'][menuAction] = {
+ method: (node, serviceModelId) => {}
+ };
+ const node = {
+ parent: {
+ data: nodeData,
+ parent: {
+ data: nodeData
+ }
+ }
+ };
+ return node
+}
+
describe('Shared Tree Service', () => {
let injector;
let service: SharedTreeService;
let _objectToInstanceTreeService: ObjectToInstanceTreeService;
let store: NgRedux<AppState>;
+
beforeAll(done => (async () => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, NgReduxTestingModule, SdcUiComponentsModule],
providers: [
SharedTreeService,
+ SharedControllersService,
ObjectToTreeService,
DefaultDataGeneratorService,
DialogService,
VnfPopupService,
- BasicControlGenerator,
+ PnfPopupService,
+ ControlGeneratorUtil,
AaiService,
LogService,
BasicPopupService,
DynamicInputsService,
NetworkPopupService,
NetworkControlGenerator,
- VfModulePopuopService,
+ VfModulePopupService,
+ VfModuleUpgradePopupService,
VfModuleControlGenerator,
VnfGroupControlGenerator,
DialogService,
ErrorMsgService,
ObjectToInstanceTreeService,
ComponentInfoService,
+ NetworkStepService,
+ VpnStepService,
+ ModalService,
+ CreateDynamicComponentService,
{provide: NgRedux, useClass: MockAppStore}
]
});
expect(service).toBeDefined();
});
+ test('SharedTreeService upgradeBottomUp should call redux actions', () => {
+ const serviceModelId = "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd";
+ const node = getNodeWithData("upgrade");
+ spyOn(node.parent.data.menuActions['upgrade'], 'method');
+ service.upgradeBottomUp(node, serviceModelId);
+ expect(node.parent.data.menuActions['upgrade'].method).toBeCalledWith(node.parent, serviceModelId);
+ expect(node.parent.data.menuActions['upgrade'].method).toBeCalledTimes(2);
+
+ });
+
+ test('SharedTreeService undoUpgradeBottomUp should call redux actions', () => {
+ const serviceModelId = "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd";
+ const node = getNodeWithData("undoUpgrade");
+ spyOn(node.parent.data.menuActions['undoUpgrade'], 'method');
+ service.undoUpgradeBottomUp(node, serviceModelId);
+ expect(node.parent.data.menuActions['undoUpgrade'].method).toBeCalledWith(node.parent, serviceModelId);
+ expect(node.parent.data.menuActions['undoUpgrade'].method).toBeCalledTimes(2);
+ });
+
test('shouldShowDeleteInstanceWithChildrenModal should open modal if child exist with action create', () => {
jest.spyOn(MessageBoxService.openModal, 'next');
let foo = () => {
expect(MessageBoxService.openModal.next).toHaveBeenCalled();
});
- test('openAuditInfoModal should open modal for failed instance', () => {
+ each([
+ ['volumeGroups by entry name', "volumeGroups",
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"],
+ ['vfmodule by customizationUuid', "vfModules",
+ "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401", "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"],
+ ['vnf by customizationUuid', "vnfs",
+ "1da7b585-5e61-4993-b95e-8e6606c81e45", "2017-488_PASQUALE-vPE 0"],
+ ['vnfGroups by invariantUuid because no customizationUuid', "vnfGroups",
+ "4bb2e27e-ddab-4790-9c6d-1f731bc14a45", "groupingservicefortest..ResourceInstanceGroup..0"],
+ ]).test('modelByIdentifier should success: %s', (description, modelTypeName, modelUniqueIdOrName, expectedModelCustomizationName) => {
+ let serviceModelFromHierarchy =
+ getStore().service.serviceHierarchy["1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"];
+
+ expect(service.modelByIdentifiers(serviceModelFromHierarchy, modelTypeName, modelUniqueIdOrName))
+ .toHaveProperty("modelCustomizationName", expectedModelCustomizationName);
+ });
+
+ each([
+ ['vfmodule by invariantUuid when there is customizationUuid', "vfModules", "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1"],
+ ['network by non-existing modelUniqueIdOrName', "networks", "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1"],
+ ['collectionResource has no resource', "collectionResources", "whatever"],
+ ['non-existing model-type', "fooBar", "whatever"],
+ ]).test('modelByIdentifier should fail: %s', (description, modelTypeName, modelUniqueIdOrName) => {
+ let serviceModelFromHierarchy =
+ getStore().service.serviceHierarchy["1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"];
+
+ expect(service.modelByIdentifiers(serviceModelFromHierarchy, modelTypeName, modelUniqueIdOrName))
+ .toBeUndefined();
+ });
+
+ test('openAuditInfoModalInsideIframe should open modal for failed instance', () => {
jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next');
- let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null);
+ let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null,
+ null, null, null, null, null,
+ null, null, null, null,null, null);
const modelMock = {"a": "a"};
const instanceMock = {"instance": "instance", "trackById": "123456789"};
const instanceTypeMock = "instanceTypeMock";
{
"instance": instanceMock,
"instanceId": "serviceModelId",
- "isInstanceFailed": node.data.isFailed,
"model": modelMock,
- "trackById": instanceMock.trackById,
"type": instanceTypeMock
});
});
+ each([
+ ['undefined', 'Unlimited (default)', {}],
+ ['null', 'Unlimited (default)', {max:null}],
+ ['3', '3', {max:3}],
+ ]).
+ test("when there is %s max instances in model , shell return %s text", (desc, expected, model) =>{
+ expect(service.createMaximumToInstantiateModelInformationItem(model).values[0]).toBe(expected);
+ });
test('shouldShowDeleteInstanceWithChildrfenModal should not open modal if all childs with action None', () => {
let foo = () => {
expect(MessageBoxService.openModal.next).not.toHaveBeenCalled();
});
+ test ('addGeneralInfoItems should return correct info - ordered',()=>{
+ let specificNetworkInfo = [
+ ModelInformationItem.createInstance('Network role', "network role 1, network role 2")
+ ];
+ const actualInfoModel: ComponentInfoModel = service.addGeneralInfoItems(specificNetworkInfo,ComponentInfoType.NETWORK, getNetworkModelInfoFromHierarchy(),getNetworkInstance());
+
+ let expectedGeneralInfo = [
+ ModelInformationItem.createInstance('Model version', '2.0'),
+ ModelInformationItem.createInstance('Model customization ID', 'customization-id-from-hierarchy'),
+ ModelInformationItem.createInstance('Instance ID', 'NETWORK4_INSTANCE_ID'),
+ ModelInformationItem.createInstance('Instance type', 'CONTRAIL30_HIMELGUARD'),
+ ModelInformationItem.createInstance('In maintenance', false),
+ ModelInformationItem.createInstance('Network role', 'network role 1, network role 2')
+ ];
+ expect(actualInfoModel.modelInfoItems).toEqual(expectedGeneralInfo);
+ });
+
+ each([
+ ['model version from hierarchy', null, getNetworkModelInfoFromHierarchy(), '2.0'],
+ ['undefined model', null, null, undefined],
+ ['model version from instance', getSelectedModelInfo(), null, '5.0'],
+ ['model version from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(), '5.0'],
+ ]).
+ test ('getModelVersionEitherFromInstanceOrFromHierarchy should return %s ' ,
+ (description, instance, model, expectedResult) =>{
+ let actualResult = service.getModelVersionEitherFromInstanceOrFromHierarchy(instance, model);
+ expect(actualResult).toEqual(expectedResult);
+ });
+
+ each([
+ ['model CustomizationId from hierarchy', null, getNetworkModelInfoFromHierarchy(), 'customization-id-from-hierarchy'],
+ ['undefined model', null, null, undefined],
+ ['model CustomizationId from instance', getSelectedModelInfo(), null, 'model-customization-id-from-instance'],
+ ['model CustomizationId from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(), 'model-customization-id-from-instance'],
+ ]).
+ test ('getCustomizationIdEitherFromInstanceOrFromHierarchy should return %s ' ,
+ (description, instance, model, expectedResult) =>{
+ let actualResult = service.getModelCustomizationIdEitherFromInstanceOrFromHierarchy(instance, model);
+ expect(actualResult).toEqual(expectedResult);
+ });
+
+ each([
+ ['UUID from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(),"UUID-from-instance" ],
+ ['UUID from instance', getSelectedModelInfo(), null,"UUID-from-instance" ],
+ ['UUID from hierarchy', null, getNetworkModelInfoFromHierarchy(),"UUID-from-hierarchy" ],
+ ['UUID undefined', null, null, undefined],
+
+ ]).
+ test('getModelVersionIdEitherFromInstanceOrFromHierarchy should %s', (description, instance, model, expectedResult) => {
+ let actualUuid = service.getModelVersionIdEitherFromInstanceOrFromHierarchy(instance, model);
+ expect(actualUuid).toEqual(expectedResult);
+ });
+
+ each([
+ ['from instance', getSelectedModelInfo(), getNetworkModelInfoFromHierarchy(), 'invariantId-from-instance'],
+ ['from instance', getSelectedModelInfo(), null, 'invariantId-from-instance'],
+ ['from hierarchy', null, getNetworkModelInfoFromHierarchy(), 'invariantId-from-hierarchy'],
+ ['undefined', null, null, undefined],
+ ]).
+ test('getModelInvariantIdEitherFromInstanceOrFromHierarchy should return invariantId %s', (description, instance, model, expectedInvariantId) =>{
+ let actualInvariantId = service.getModelInvariantIdEitherFromInstanceOrFromHierarchy(instance, model);
+ expect(actualInvariantId).toEqual(expectedInvariantId);
+ });
+
test('statusProperties should be prop on node according to node properties', () => {
- let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: false});
+
+ let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', type: 'VFmodule', instanceModelInfo:{modelVersion: '1'}, inMaint: false});
expect(node.statusProperties).toBeDefined();
expect(node.statusProperties).toEqual([Object({
- key: 'Prov Status:',
+ key: 'Prov Status: ',
value: 'inProgress',
testId: 'provStatus'
- }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'})]);
- node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: true});
+ }), Object({
+ key: 'Orch Status: ',
+ value: 'completed',
+ testId: 'orchStatus'
+ }),
+ Object({
+ key: 'Model Version: ',
+ value: '1',
+ testId: 'modelVersion'
+ })]);
+ node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress',type: 'VFmodule', instanceModelInfo:{}, inMaint: true});
expect(node.statusProperties).toEqual([Object({
- key: 'Prov Status:',
+ key: 'Prov Status: ',
value: 'inProgress',
testId: 'provStatus'
- }), Object({key: 'Orch Status:', value: 'completed', testId: 'orchStatus'}), Object({
+ }), Object({
+ key: 'Orch Status: ',
+ value: 'completed',
+ testId: 'orchStatus'
+ }), Object({
+ key: 'Model Version: ',
+ value: undefined,
+ testId: 'modelVersion'
+ }), Object({
key: 'In-maintenance',
value: '',
testId: 'inMaint'
- })]);
+ })
+]);
+ });
+ each([
+ ['version 2', '2', '2'],
+ ['undefined', null, undefined]
+ ]).
+ test('getNodeModelVersion should return %s', (description, nodeVersion, expectedVersion) => {
+ let node = <any>{
+ instanceModelInfo:{
+ modelVersion: nodeVersion
+ }
+ };
+ let actualVersion = service.getNodeModelVersion(node);
+ expect(actualVersion).toEqual(expectedVersion);
+ });
+
+ each([
+ [false, 'method is not in menu actions', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {}, true],
+ [false, 'there is no action in node', null, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
+ [true, 'edit mode, action is none, method in menu action', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
+ [false, 'edit mode, action is none, method in menu action, macro service', ServiceInstanceActions.None, DrawingBoardModes.EDIT, {someMethod: "someValue"}, false],
+ [false, 'edit mode, action is not none, method in menu action', ServiceInstanceActions.Resume, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true],
+ [false, 'edit mode, action is CREATE, method in menu action', ServiceInstanceActions.Resume, DrawingBoardModes.EDIT, {someMethod: "someValue"}, true]
+ ]).test('shouldShowButtonGeneric return %s if %s ', (expected, description, action, mode, menuActions, isALaCarte) => {
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
+ global: {
+ drawingBoardStatus: mode
+ },
+ service : {
+ serviceInstance: {
+ someModelId : {
+ isALaCarte
+ }
+ }
+
+ }
+ });
+ let node = <any>{
+ data:{
+ action: action,
+ menuActions: menuActions
+ },
+ };
+
+ let res = service.shouldShowButtonGeneric(node, "someMethod", "someModelId");
+ expect(res).toBe(expected);
});
+
const enableRemoveAndEditItemsDataProvider = [
['Create action CREATE mode', DrawingBoardModes.CREATE ,ServiceInstanceActions.Create, true],
['Create action VIEW mode',DrawingBoardModes.VIEW , ServiceInstanceActions.Create,false],
['None action EDIT mode',DrawingBoardModes.EDIT, ServiceInstanceActions.None, false],
['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
each(enableRemoveAndEditItemsDataProvider).test('shouldShowEditAndDelete if child exist with %s', (description, mode, action, enabled) => {
- jest.spyOn(store, 'getState').mockReturnValue({
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
global: {
drawingBoardStatus: mode
}
let res = service.shouldShowRemoveAndEdit(node);
expect(res).toBe(enabled);
});
-});
-function generateService() {
- return {
- "vnfs": {
- "2017-488_ADIOD-vPE 0": {
- "inMaint": false,
- "rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
- "isMissingData": false,
- "trackById": "stigekyxrqi",
- "vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
- "isMissingData": false,
- "sdncPreReload": null,
- "modelInfo": {
- "modelType": "VFmodule",
- "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
- "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
- "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
- "modelVersion": "5",
- "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
- },
- "instanceParams": [{}],
- "trackById": "3oj23o7nupo"
+
+
+ const isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDifferProvider = [
+ ['node is part of model, but vfmodule diff by customization',
+ true, 'mDNS 01222020 0', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
+
+ ['vnf model-name not found',
+ false, 'mDNS 01222020 1', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
+
+ ['vfmodule invariant-id not found',
+ false, 'mDNS 01222020 0', 'wrong invariant-id', '82160e6e-d9c4-45ef-bd19-01573ab11b61'],
+
+ ['vfmodule customization-id match',
+ false, 'mDNS 01222020 0', '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a', 'c9b32003-febc-44e0-a97f-7630fa7fa4a0'],
+ ];
+
+ each(isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDifferProvider).test('isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer: when %s should return %s', (description, expected, vnfModelName, invariantUuid, customizationUuid) => {
+ const serviceModelId : string = 'a243da28-c11e-45a8-9f26-0284a9a789bc';
+ spyOn(store, 'getState').and.returnValue({
+ service : {
+ serviceHierarchy : {
+ [serviceModelId] : {
+ vnfs : {
+ [vnfModelName] : {
+ vfModules : {
+ vfModuleModelName : {
+ invariantUuid : invariantUuid,
+ customizationUuid : customizationUuid
+ }
+ }
+ }
}
}
- },
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
- "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
- "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
- "lineOfBusiness": "ONAP",
- "platformName": "xxx1",
- "modelInfo": {
- "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
- "modelVersion": "5.0",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
- "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
- "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
- },
- "legacyRegion": "11111111",
- "instanceParams": [{}]
- },
- "2017-388_ADIOD-vPE 0": {
- "inMaint": false,
- "rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 0",
- "isMissingData": false,
- "trackById": "nib719t5vca",
- "vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
- "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
- "legacyRegion": "11111",
- "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
- "platformName": "platform",
- "lineOfBusiness": "zzz1",
- "instanceParams": [{}],
- "modelInfo": {
- "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
- "modelName": "2017-388_ADIOD-vPE",
- "modelVersion": "4.0",
- "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
- "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
- },
- "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
- },
- "2017-388_ADIOD-vPE 1": {
- "inMaint": false,
- "rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 1",
- "isMissingData": false,
- "trackById": "cv7l1ak8vpe",
- "vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 1",
- "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
- "legacyRegion": "123",
- "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
- "platformName": "platform",
- "lineOfBusiness": "ONAP",
- "instanceParams": [{}],
- "modelInfo": {
- "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
- "modelName": "2017-388_ADIOD-vPE",
- "modelVersion": "1.0",
- "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
- "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
- },
- "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
+ }
}
- },
- "instanceParams": [{}],
- "validationCounter": 0,
- "existingNames": {"yoav": ""},
- "existingVNFCounterMap": {
- "69e09f68-8b63-4cc9-b9ff-860960b5db09": 1,
- "afacccf6-397d-45d6-b5ae-94c39734b168": 1,
- "0903e1c0-8e03-4936-b5c2-260653b96413": 1
- },
- "existingVnfGroupCounterMap": {
- "daeb6568-cef8-417f-9075-ed259ce59f48": 0,
- "c2b300e6-45de-4e5e-abda-3032bee2de56": -1
- },
- "existingNetworksCounterMap": {"ddc3f20c-08b5-40fd-af72-c6d14636b986": 1},
- "networks": {
- "ExtVL 0": {
- "inMaint": false,
- "rollbackOnFailure": "true",
- "originalName": "ExtVL 0",
- "isMissingData": false,
- "trackById": "s6okajvv2n8",
- "networkStoreKey": "ExtVL 0",
- "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
- "legacyRegion": "12355555",
- "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
- "platformName": "platform",
- "lineOfBusiness": null,
- "instanceParams": [{}],
- "modelInfo": {
- "modelInvariantId": "379f816b-a7aa-422f-be30-17114ff50b7c",
- "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
- "modelName": "ExtVL",
- "modelVersion": "37.0",
- "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
- "modelCustomizationName": "ExtVL 0",
- "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986"
- },
- "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986"
+ });
+
+ const node = <any>{
+ data:{
+ modelInvariantId : '9fdc68e9-9f53-431c-b8a2-7e337b9a0d0a',
+ modelCustomizationId : 'c9b32003-febc-44e0-a97f-7630fa7fa4a0',
+ modelName : 'vfModuleModelName'
+ },
+ parent : {
+ data : {
+ modelName : "mDNS 01222020 0"
+ }
}
- },
- "vnfGroups": {
- "groupingservicefortest..ResourceInstanceGroup..0": {
- "inMaint": false,
- "rollbackOnFailure": "true",
- "originalName": "groupingservicefortest..ResourceInstanceGroup..0",
- "isMissingData": false,
- "trackById": "se0obn93qq",
- "vnfGroupStoreKey": "groupingservicefortest..ResourceInstanceGroup..0",
- "instanceName": "groupingservicefortestResourceInstanceGroup0",
- "instanceParams": [{}],
- "modelInfo": {
- "modelInvariantId": "4bb2e27e-ddab-4790-9c6d-1f731bc14a45",
- "modelVersionId": "daeb6568-cef8-417f-9075-ed259ce59f48",
- "modelName": "groupingservicefortest..ResourceInstanceGroup..0",
- "modelVersion": "1",
- "modelCustomizationName": "groupingservicefortest..ResourceInstanceGroup..0",
- "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48"
- },
- "uuid": "daeb6568-cef8-417f-9075-ed259ce59f48"
+ };
+
+ const isDiffCustomizationUuidResponse : boolean = service.isVfmoduleAlmostPartOfModelOnlyCustomizationUuidDiffer(node, serviceModelId);
+ expect(isDiffCustomizationUuidResponse).toEqual(expected);
+ });
+
+ each([
+ [false, true, true, false],
+ [true, true, true, true],
+ [true, true, false, true],
+ [true, false, true, true],
+ [true, false, false, false],
+ ]).
+ test('when flag is %s the UpdatedLatestVersion is %s and Vfmodule not exists on hierarchy is %s isShouldShowButtonGenericMustToBeCalled should return %s', (
+ flag: boolean,
+ isThereAnUpdatedLatestVersion: boolean,
+ isVfModuleCustomizationIdNotExistsOnModel: boolean,
+ isShouldShowButtonGenericMustToBeCalled: boolean
+ ) => {
+ let node = <any> {};
+ let serviceModelId : string = '08c5fa17-769a-4231-bd92-aed4b0ed086d';
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
+ global: {
+ "flags": {
+ "FLAG_FLASH_REPLACE_VF_MODULE": flag,
+ },
+ }
+ });
+ spyOn(service, 'isThereAnUpdatedLatestVersion').and.returnValue(isThereAnUpdatedLatestVersion);
+ spyOn(service, 'isVfModuleCustomizationIdNotExistsOnModel').and.returnValue(isVfModuleCustomizationIdNotExistsOnModel);
+
+ expect(service.isVfMoudleCouldBeUpgraded(node, serviceModelId)).toEqual(isShouldShowButtonGenericMustToBeCalled);
+ });
+
+ each([
+ ['Vfm customization uuid not exists in model', 'not-existing-customization-uuid', 'service-model-id', true],
+ ['Vfm customization uuid exists in model', 'existing-customization-uuid', 'service-model-id', false]
+ ]).
+ test('%s when vfModuleNode is %s and serviceModelId is %s ', (
+ description,
+ modelCustomizationId,
+ serviceModelId: string,
+ isExistsOnHierarchy: boolean,
+ ) => {
+
+ const vfModuleNode = { data: {
+ modelCustomizationId : modelCustomizationId
+ }};
+
+ jest.spyOn(store, 'getState').mockReturnValue(<any>{
+ service : {
+ "serviceHierarchy": {
+ [serviceModelId]: {
+ "vfModules": {
+ "module-1": {
+ "customizationUuid": "3d7f41c8-333b-4fee-b50d-5687e9c2170f",
+ },
+ "module-2": {
+ "customizationUuid": "existing-customization-uuid",
+ }
+ }
+ }
+ }
}
- },
- "instanceName": "yoav",
- "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
- "subscriptionServiceType": "TYLER SILVIA",
- "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
- "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
- "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
- "aicZoneId": "ATL53",
- "pause": null,
- "projectName": "WATKINS",
- "rollbackOnFailure": "true",
- "bulkSize": 1,
- "aicZoneName": "AAIATLTE-ATL53",
- "owningEntityName": "WayneHolland",
- "testApi": "VNF_API",
- "isEcompGeneratedNaming": false,
- "tenantName": "USP-SIP-IC-24335-T-01",
- "modelInfo": {
- "modelInvariantId": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
- "modelVersionId": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
- "modelName": "action-data",
- "modelVersion": "1.0",
- "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"
- },
- "isALaCarte": false,
- "name": "action-data",
- "version": "1.0",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
- "category": "Network L1-3",
- "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
- "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
- "serviceType": "pnf",
- "serviceRole": "Testing",
- "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"},
- "isMultiStepDesign": true
- };
-}
+ });
+ expect(service.isVfModuleCustomizationIdNotExistsOnModel(vfModuleNode, serviceModelId)).toEqual(isExistsOnHierarchy);
+
+
+ });
+
+});
function getStore() {
return {
"global": {
"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": true,
"FLAG_SERVICE_MODEL_CACHE": true,
- "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
"FLAG_SHOW_ASSIGNMENTS": true,
"FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
- "FLAG_DUPLICATE_VNF": true,
- "FLAG_DEFAULT_VNF": true,
- "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
"FLAG_A_LA_CARTE_AUDIT_INFO": true,
"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_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false,
"FLAG_1902_VNF_GROUPING": true,
"FLAG_SHOW_VERIFY_SERVICE": true,
"FLAG_ASYNC_ALACARTE_VFMODULE": true,
"FLAG_ASYNC_ALACARTE_VNF": true,
- "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true,
"FLAG_1810_AAI_LOCAL_CACHE": true,
"FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
"FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false,
"category": "Network L1-3",
"serviceType": "pnf",
"serviceRole": "Testing",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"serviceEcompNaming": "false",
"instantiationType": "Macro",
"inputs": {},
"vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}
},
"vnfs": {
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
"invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
- "name": "2017-388_ADIOD-vPE",
+ "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+ "name": "2017-388_PASQUALE-vPE",
"version": "1.0",
"customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
"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",
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"vfModules": {},
"volumeGroups": {},
"vfcInstanceGroups": {}
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
"invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
- "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
- "name": "2017-388_ADIOD-vPE",
+ "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+ "name": "2017-388_PASQUALE-vPE",
"version": "4.0",
"customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
"inputs": {},
"commands": {},
"properties": {
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
"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",
"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": {},
"properties": {
"max_instances": 1,
"vmxvre_retype": "RE-VMX",
- "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+ "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
"sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
"int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
"vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
"vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
"vmxvre_int_ctl_ip_0": "10.0.0.10",
"ecomp_generated_naming": "true",
- "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+ "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
"vnf_name": "mtnj309me6vre",
"vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
"vmxvre_volume_type_1": "HITACHI",
"vmxvre_volume_type_0": "HITACHI",
"vmxvpfe_volume_type_0": "HITACHI",
"vmxvpfe_sriov43_0_port_broadcastallow": "true",
- "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+ "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
"vnf_id": "123",
"vmxvre_oam_prefix": "24",
"availability_zone_0": "mtpocfo-kvm-az01",
- "ASN": "get_input:2017488_adiodvpe0_ASN",
+ "ASN": "get_input:2017488_pasqualevpe0_ASN",
"vmxvre_chassis_i2cid": "161",
"vmxvpfe_name_0": "vPFEXI",
- "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+ "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
"availability_zone_max_count": "1",
"vmxvre_volume_size_0": "45.0",
"vmxvre_volume_size_1": "50.0",
"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",
"vmxvpfe_flavor_name": "ns.c20r16d25.v5"
},
"type": "VF",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
"modelCustomizationName": "ExtVL 0"
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {},
"volumeGroupAllowed": true
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
"uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
"invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"version": "5",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"properties": {
"minCountInstances": 1,
"maxCountInstances": 1,
"initialCount": 1,
- "vfModuleLabel": "ADIOD_base_vPE_BV",
+ "vfModuleLabel": "PASQUALE_base_vPE_BV",
"baseModule": true
},
"inputs": {},
"volumeGroupAllowed": false
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {},
}
},
"volumeGroups": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
"uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
"invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
"customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vRE_BV",
+ "vfModuleLabel": "PASQUALE_vRE_BV",
"baseModule": false
},
"inputs": {}
},
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
"uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
"invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
"customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
"description": null,
- "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"version": "6",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
"properties": {
"minCountInstances": 0,
"maxCountInstances": null,
"initialCount": 0,
- "vfModuleLabel": "ADIOD_vPFE_BV",
+ "vfModuleLabel": "PASQUALE_vPFE_BV",
"baseModule": false
},
"inputs": {}
"ecomp_generated_naming": "true"
},
"members": {
- "vdbe_svc_vprs_proxy 0": {
+ "vdorothea_svc_vprs_proxy 0": {
"uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
"invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
- "description": "A Proxy for Service vDBE_Svc_vPRS",
- "name": "vDBE_Svc_vPRS Service Proxy",
+ "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+ "name": "vDOROTHEA_Svc_vPRS Service Proxy",
"version": "1.0",
"customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
"inputs": {},
"type": "Service Proxy",
"sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
"sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
- "sourceModelName": "vDBE_Svc_vPRS"
+ "sourceModelName": "vDOROTHEA_Svc_vPRS"
}
}
},
"modelCustomizationName": "AIC30_CONTRAIL_BASIC 0"
}
},
- "collectionResource": {},
+ "collectionResources": {},
"configurations": {},
"fabricConfigurations": {},
"serviceProxies": {},
"serviceInstance": {
"1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
"vnfs": {
- "2017-488_ADIOD-vPE 0": {
+ "2017-488_PASQUALE-vPE 0": {
"action": "None",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-488_ADIOD-vPE 0",
+ "originalName": "2017-488_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "stigekyxrqi",
"vfModules": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
- "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+ "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
"isMissingData": false,
"sdncPreReload": null,
"modelInfo": {
"modelType": "VFmodule",
"modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
"modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
- "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+ "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
"modelVersion": "5",
"modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
- "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+ "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
},
"instanceParams": [{}],
"trackById": "3oj23o7nupo"
}
}
},
- "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"lineOfBusiness": "ONAP",
"platformName": "xxx1",
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
- "modelName": "2017-488_ADIOD-vPE",
+ "modelName": "2017-488_PASQUALE-vPE",
"modelVersion": "5.0",
- "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
"modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
"uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
},
"legacyRegion": "11111111",
"instanceParams": [{}]
},
- "2017-388_ADIOD-vPE 0": {
+ "2017-388_PASQUALE-vPE 0": {
"action": "Create",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 0",
+ "originalName": "2017-388_PASQUALE-vPE 0",
"isMissingData": false,
"trackById": "nib719t5vca",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "11111",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
"modelInfo": {
"modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
"modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "4.0",
"modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
- "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
"uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
},
- "2017-388_ADIOD-vPE 1": {
+ "2017-388_PASQUALE-vPE 1": {
"action": "None",
"inMaint": false,
"rollbackOnFailure": "true",
- "originalName": "2017-388_ADIOD-vPE 1",
+ "originalName": "2017-388_PASQUALE-vPE 1",
"isMissingData": false,
"trackById": "cv7l1ak8vpe",
"vfModules": {},
- "vnfStoreKey": "2017-388_ADIOD-vPE 1",
+ "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "123",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
"modelInfo": {
"modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
"modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
- "modelName": "2017-388_ADIOD-vPE",
+ "modelName": "2017-388_PASQUALE-vPE",
"modelVersion": "1.0",
"modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
- "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+ "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
},
"uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
"trackById": "s6okajvv2n8",
"networkStoreKey": "ExtVL 0",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"legacyRegion": "12355555",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"platformName": "platform",
"subscriptionServiceType": "TYLER SILVIA",
"owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
"productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
- "lcpCloudRegionId": "JANET25",
+ "lcpCloudRegionId": "AAIAIC25",
"tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
"aicZoneId": "ATL53",
"pause": null,
"isALaCarte": false,
"name": "action-data",
"version": "1.0",
- "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+ "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
"category": "Network L1-3",
"uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
"invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
},
"lcpRegionsAndTenants": {
"lcpRegionList": [{
- "id": "JANET25",
- "name": "JANET25 (AIC)",
+ "id": "AAIAIC25",
+ "name": "AAIAIC25 (AIC)",
"isPermitted": true,
"cloudOwner": "irma-aic"
}, {"id": "hvf6", "name": "hvf6 (AIC)", "isPermitted": true, "cloudOwner": "irma-aic"}],
"lcpRegionsTenantsMap": {
- "JANET25": [{
+ "AAIAIC25": [{
"id": "092eb9e8e4b7412e8787dd091bc58e86",
"name": "USP-SIP-IC-24335-T-01",
"isPermitted": true,
"isPermitted": false
}, {"id": "18", "name": "vCarroll", "isPermitted": false}, {
"id": "9",
- "name": "vMME",
+ "name": "vFLORENCE",
"isPermitted": false
- }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+ }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
"id": "10",
"name": "vMNS",
"isPermitted": false
"id": "8",
"name": "vOTA",
"isPermitted": false
- }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+ }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
"id": "6",
- "name": "vSEGW",
+ "name": "vPorfirio",
"isPermitted": false
}, {"id": "7", "name": "vVM", "isPermitted": false}, {"id": "4", "name": "vVoiceMail", "isPermitted": false}]
},
}
}
}
+
+
+function getNetworkModelInfoFromHierarchy(){
+ return {
+ "version": "2.0",
+ "customizationUuid":"customization-id-from-hierarchy",
+ "uuid": "UUID-from-hierarchy",
+ "invariantUuid": "invariantId-from-hierarchy"
+ }
+}
+
+function getSelectedModelInfo() {
+ return {
+ "instanceModelInfo": {
+ "modelVersion": "5.0",
+ "modelCustomizationId": "model-customization-id-from-instance",
+ "modelVersionId": "UUID-from-instance",
+ "modelInvariantId": "invariantId-from-instance"
+ }
+ }
+}
+function getNetworkInstance() {
+ return {
+ "inMaint": false,
+ "instanceId": "NETWORK4_INSTANCE_ID",
+ "instanceType": "CONTRAIL30_HIMELGUARD",
+ };
+}