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 51fcf52..8470317 100644 (file)
@@ -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;
     }
+
   }
 
   /**
@@ -228,6 +230,13 @@ export class SharedTreeService {
     }
     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)){
@@ -245,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) {
@@ -555,4 +567,34 @@ export class SharedTreeService {
   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;
+    }
+  }
 }