Add action and reducer for vfModule pause instantiation. 82/106882/5
authorAlexey Sandler <alexey.sandler@intl.att.com>
Thu, 30 Apr 2020 10:31:30 +0000 (13:31 +0300)
committerAlexey Sandler <alexey.sandler@intl.att.com>
Sun, 3 May 2020 10:52:41 +0000 (13:52 +0300)
Issue-ID: VID-821
Signed-off-by: Alexey Sandler <alexey.sandler@intl.att.com>
Change-Id: Ia7735aa147752dd8bcd5cca820585324f14988ed
Signed-off-by: Alexey Sandler <alexey.sandler@intl.att.com>
vid-webpack-master/src/app/shared/models/serviceInstanceActions.ts
vid-webpack-master/src/app/shared/models/vfModuleInstance.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.actions.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts

index 0c8756d..808c3df 100644 (file)
@@ -8,7 +8,7 @@ export enum ServiceInstanceActions{
   Resume = "Resume",
   Update_Delete = 'Update_Delete',
   None_Delete = 'None_Delete',
-  None_Upgrade = 'None_Upgrade'
+  None_Upgrade = 'None_Upgrade',
 }
 export enum ServiceAction {
   INSTANTIATE = 'INSTANTIATE',
@@ -26,3 +26,6 @@ export enum JobStatus {
   COMPLETED_WITH_ERRORS = 'COMPLETED_WITH_ERRORS',
   CREATING = 'CREATING'
 }
+export enum PauseStatus {
+  AFTER_COMPLETION = 'afterCompletion',
+}
index ed5a072..7aedab4 100644 (file)
@@ -1,4 +1,5 @@
 import {ChildNodeInstance} from "./nodeInstance";
+import {PauseStatus} from "./serviceInstanceActions";
 
 export class VfModuleInstance extends ChildNodeInstance{
   volumeGroupName: string;
@@ -7,6 +8,7 @@ export class VfModuleInstance extends ChildNodeInstance{
   statusMessage?: string;
   tenantId? :string;
   lcpCloudRegionId?: string;
+  pauseInstantiation?: PauseStatus;
 
   constructor() {
     super();
index 40c1ea9..82e2409 100644 (file)
@@ -11,6 +11,7 @@ export enum VfModuleActions {
   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",
 }
 
 
@@ -89,6 +90,13 @@ export interface UndoDeleteActionVfModuleInstanceAction extends Action {
   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,
@@ -174,3 +182,11 @@ export const deleteVFModuleField: ActionCreator<DeleteVFModuleField> = (modelNam
   serviceId,
   deleteFieldName
 });
+
+export const pauseActionVFModuleInstance: ActionCreator<PauseVFModuleInstanciationAction> = (dynamicModelName, vnfStoreKey, serviceId, vfModuleModelName) => ({
+  type: VfModuleActions.PAUSE_ACTION_VFMODULE_INSTANCE,
+  dynamicModelName,
+  vnfStoreKey,
+  serviceId,
+  vfModuleModelName
+});
index 7ec221a..e73fe0c 100644 (file)
@@ -2,7 +2,7 @@ import {
   CreateVFModuleInstanceAction,
   DeleteActionVfModuleInstanceAction,
   DeleteVFModuleField,
-  DeleteVfModuleInstanceAction,
+  DeleteVfModuleInstanceAction, PauseVFModuleInstanciationAction,
   UndoDeleteActionVfModuleInstanceAction,
   UpdateVFModluePosition,
   UpdateVFModuleField,
@@ -238,6 +238,19 @@ test('#UNDO_DELETE_ACTION_VF_MODULE_INSTANCE %s', (description, dynamicModelName
   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>{
@@ -362,4 +375,44 @@ function getDeleteRedux() {
     }
   }
 }
+
+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'
+  }
+}
 });
index 8efecf2..294536d 100644 (file)
@@ -1,15 +1,22 @@
 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";
 
 
@@ -69,6 +76,16 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS
       }
       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);