Resume = "Resume",
Update_Delete = 'Update_Delete',
None_Delete = 'None_Delete',
- None_Upgrade = 'None_Upgrade'
+ None_Upgrade = 'None_Upgrade',
}
export enum ServiceAction {
INSTANTIATE = 'INSTANTIATE',
COMPLETED_WITH_ERRORS = 'COMPLETED_WITH_ERRORS',
CREATING = 'CREATING'
}
+export enum PauseStatus {
+ AFTER_COMPLETION = 'afterCompletion',
+}
import {ChildNodeInstance} from "./nodeInstance";
+import {PauseStatus} from "./serviceInstanceActions";
export class VfModuleInstance extends ChildNodeInstance{
volumeGroupName: string;
statusMessage?: string;
tenantId? :string;
lcpCloudRegionId?: string;
+ pauseInstantiation?: PauseStatus;
constructor() {
super();
UNDO_UPGRADE_VFMODULE_ACTION = "UNDO_UPGRADE_VFMODULE_ACTION",
UPDATE_VFMODULE_FEILD = "UPDATE_VFMODULE_FEILD",
DELETE_VFMODULE_FIELD = "DELETE_VFMODULE_FEILD",
+ PAUSE_ACTION_VFMODULE_INSTANCE = "PAUSE_ACTION_VFMODULE_INSTANCE",
}
vfModuleModelName: string;
}
+export interface PauseVFModuleInstanciationAction extends Action {
+ dynamicModelName: string;
+ vnfStoreKey : string;
+ serviceId: string;
+ vfModuleModelName : string;
+}
+
export const removeVfModuleInstance: ActionCreator<DeleteVfModuleInstanceAction> = (modelName, serviceModelId, vfName, vnfStoreKey, dynamicModelName) => ({
type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
modelName: modelName,
serviceId,
deleteFieldName
});
+
+export const pauseActionVFModuleInstance: ActionCreator<PauseVFModuleInstanciationAction> = (dynamicModelName, vnfStoreKey, serviceId, vfModuleModelName) => ({
+ type: VfModuleActions.PAUSE_ACTION_VFMODULE_INSTANCE,
+ dynamicModelName,
+ vnfStoreKey,
+ serviceId,
+ vfModuleModelName
+});
CreateVFModuleInstanceAction,
DeleteActionVfModuleInstanceAction,
DeleteVFModuleField,
- DeleteVfModuleInstanceAction,
+ DeleteVfModuleInstanceAction, PauseVFModuleInstanciationAction,
UndoDeleteActionVfModuleInstanceAction,
UpdateVFModluePosition,
UpdateVFModuleField,
expect(vfModule.action).toEqual(ServiceInstanceActions.None);
});
+ each([
+ ['for the first vfModule', 'dynamicModelName1', 'afterCompletion'],
+ ['for the third vfModule', 'dynamicModelName3', 'afterCompletion'],
+ ['for the last vfModule', 'dynamicModelName5', 'afterCompletion'],
+ ]).
+test('#PAUSE_ACTION_VF_MODULE_INSTANTIATION %s', (description: string, dynamicModelName:string, pauseInstantiation: string) => {
+ let vfModule = vfModuleReducer(<any>getPausedRedux(), getPausedActionVfModule(dynamicModelName))
+ .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName'][dynamicModelName];
+
+ expect(vfModule).toBeDefined();
+ expect(vfModule.pauseInstantiation).toEqual(pauseInstantiation);
+});
+
test('#UPGRADE_VFMODULE', () => {
let vfModule = vfModuleReducer(<any>getReduxState(),
<UpgradeVfModuleInstanceAction>{
}
}
}
+
+function getPausedRedux() {
+ return {
+ serviceHierarchy: {
+ 'serviceModelId': {}
+ },
+ serviceInstance: {
+ 'serviceModelId': {
+ vnfs: {
+ 'vnfStoreKey': {
+ vfModules: {
+ 'vfModuleModelName': {
+ 'dynamicModelName1': {
+ },
+ 'dynamicModelName2': {
+ },
+ 'dynamicModelName3': {
+ },
+ 'dynamicModelName4': {
+ },
+ 'dynamicModelName5': {
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+function getPausedActionVfModule(dynamicModelName: string) {
+ return <PauseVFModuleInstanciationAction>{
+ type: VfModuleActions.PAUSE_ACTION_VFMODULE_INSTANCE,
+ dynamicModelName: dynamicModelName,
+ vnfStoreKey: 'vnfStoreKey',
+ serviceId: 'serviceModelId',
+ vfModuleModelName: 'vfModuleModelName'
+ }
+}
});
import {Action} from "redux";
import * as _ from "lodash";
import {
- CreateVFModuleInstanceAction, DeleteActionVfModuleInstanceAction, DeleteVFModuleField,
- DeleteVfModuleInstanceAction, UndoDeleteActionVfModuleInstanceAction, UpdateVFModluePosition, UpdateVFModuleField,
- UpdateVFModuleInstanceAction, UpgradeVfModuleInstanceAction,
+ CreateVFModuleInstanceAction,
+ DeleteActionVfModuleInstanceAction,
+ DeleteVFModuleField,
+ DeleteVfModuleInstanceAction,
+ PauseVFModuleInstanciationAction,
+ UndoDeleteActionVfModuleInstanceAction,
+ UpdateVFModluePosition,
+ UpdateVFModuleField,
+ UpdateVFModuleInstanceAction,
+ UpgradeVfModuleInstanceAction,
VfModuleActions,
} from "./vfModule.actions";
import {ServiceInstance} from "../../../models/serviceInstance";
import {VfModuleMap} from "../../../models/vfModulesMap";
import {ServiceState} from "../main.reducer";
-import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {PauseStatus, ServiceInstanceActions} from "../../../models/serviceInstanceActions";
import {updateServiceValidationCounter} from "../reducersHelper";
}
return Object.assign({}, state);
}
+ case VfModuleActions.PAUSE_ACTION_VFMODULE_INSTANCE : {
+ const pauseVfModuleAction = (<PauseVFModuleInstanciationAction>action);
+ let newState = _.cloneDeep(state);
+
+ newState.serviceInstance[pauseVfModuleAction.serviceId].vnfs[pauseVfModuleAction.vnfStoreKey]
+ .vfModules[pauseVfModuleAction.vfModuleModelName][pauseVfModuleAction.dynamicModelName]
+ .pauseInstantiation = PauseStatus.AFTER_COMPLETION;
+ return newState;
+ }
+
case VfModuleActions.DELETE_ACTION_VF_MODULE_INSTANCE : {
const deleteAction = (<DeleteActionVfModuleInstanceAction>action);
let newState = _.cloneDeep(state);