Prevent upgrade for base vf module with add on
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / shared.tree.service.ts
index 249f9ec..8470317 100644 (file)
@@ -1,7 +1,7 @@
 import {Injectable} from "@angular/core";
 import {NgRedux} from "@angular-redux/store";
 import {AppState} from "../../../shared/store/reducers";
-import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
+import {PauseStatus, ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
 import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data";
 import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service";
 import * as _ from "lodash";
@@ -28,19 +28,21 @@ export class SharedTreeService {
    * @param dynamicInputs - from the instance
    * @param isEcompGeneratedNaming
    ************************************************************/
-  selectedVNF: string = null;
+  selectedNF: string = null;
 
-
-  getSelectedVNF(): string {
-    return this.selectedVNF;
+  getSelectedNF(): string {
+    return this.selectedNF;
   }
 
-  setSelectedVNF(node): void {
+  setSelectedNF(node): void {
     if (_.isNil(node) || node.data.type !== 'VF') {
-      this.selectedVNF = null;
-    } else {
-      this.selectedVNF = node.data.vnfStoreKey;
+      this.selectedNF = null;
+    } else if (node.data.type === 'VF'){
+      this.selectedNF = node.data.vnfStoreKey;
+    } else if (node.data.type === 'PNF'){
+      this.selectedNF = node.data.pnfStoreKey;
     }
+
   }
 
   /**
@@ -222,6 +224,26 @@ export class SharedTreeService {
     }
   }
 
+  shouldShowRemovePause(node) : boolean {
+    if(FeatureFlagsService.getFlagState(Features.FLAG_2008_REMOVE_PAUSE_INSTANTIATION, this._store)){
+      return node.pauseInstantiation === PauseStatus.AFTER_COMPLETION;
+    }
+    return false;
+  }
+  
+  showPauseWithOrchStatus(node): boolean {
+    if(node.orchStatus == "Active"){
+      return false;
+    }
+    return true;
+  }
+
+  shouldShowPauseInstantiation(node): boolean {
+    if(FeatureFlagsService.getFlagState(Features.FLAG_2008_REMOVE_PAUSE_INSTANTIATION, this._store)){
+      return (FeatureFlagsService.getFlagState(Features.FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION, this._store) && node.pauseInstantiation == null);
+    }
+    return (FeatureFlagsService.getFlagState(Features.FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION, this._store));
+  }
   /****************************************************
    * should return true if customer can upgrade a VFM *
    ****************************************************/
@@ -232,7 +254,10 @@ export class SharedTreeService {
 
   isVfMoudleCouldBeUpgraded(node, serviceModelId): boolean{
     return (FeatureFlagsService.getFlagState(Features.FLAG_FLASH_REPLACE_VF_MODULE, this._store) &&
-      (this.isThereAnUpdatedLatestVersion(serviceModelId) || this.isVfModuleCustomizationIdNotExistsOnModel(node, serviceModelId)))
+    (this.isThereAnUpdatedLatestVersion(serviceModelId) || this.isVfModuleCustomizationIdNotExistsOnModel(node, serviceModelId)) && 
+    (this.upgradeAllowedForBm(node,serviceModelId))) 
+
+    
   }
 
   isVfModuleCustomizationIdNotExistsOnModel(vfModuleNode, serviceModelId) {
@@ -538,4 +563,38 @@ export class SharedTreeService {
       !_.isNil(model.max) ? String(model.max) : Constants.ModelInfo.UNLIMITED_DEFAULT
     );
   }
+
+  isAddPositionFlagTrue():boolean{
+    return FeatureFlagsService.getFlagState(Features.FLAG_2008_CREATE_VFMODULE_INSTANTIATION_ORDER_NUMBER, this._store);
+  }
+
+  upgradeAllowedForBm(node, serviceModelId):boolean {
+
+    if(FeatureFlagsService.getFlagState(Features.FLAG_2012_UPGRADE_BASE_MODULE_FLAG, this._store)){
+      let returnValue = false;
+      if(node.data.type == 'VFmodule') {
+        let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId];
+        let vnf = node.parent.data.modelName;
+        let baseModuleFlag= (serviceHierarchy.vnfs[vnf].vfModules[node.data.modelName].properties.baseModule) ? true: false;
+
+        if(baseModuleFlag) {
+          if(node.parent.children.length >1) {
+            return returnValue;
+          }
+          else {
+            returnValue = true;
+          }
+        }else {
+          returnValue = true;
+        }
+
+      } else {
+        returnValue= true
+      }
+      
+      return returnValue;
+    } else {
+      return true;
+    }
+  }
 }