New Optimization Policy
[policy/engine.git] / ONAP-PDP-REST / src / main / java / org / onap / policy / pdp / rest / api / services / GetConfigService.java
index 58d5c8f..1744aa8 100644 (file)
@@ -36,6 +36,7 @@ import javax.json.JsonObjectBuilder;
 import org.onap.policy.api.ConfigRequestParameters;
 import org.onap.policy.api.PolicyConfigException;
 import org.onap.policy.api.PolicyConfigStatus;
+import org.onap.policy.api.PolicyConfigType;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.pdp.rest.api.models.PDPResponse;
@@ -143,11 +144,48 @@ public class GetConfigService {
                 policyConfig.setProperty(stdStatus.getProperty());
                 policyConfig.setResponseAttributes(stdStatus.getResponseAttributes());
                 policyConfig.setType(stdStatus.getType());
+                policyConfig.setPolicyType(getPolicyType(stdStatus.getPolicyName()));
                 result.add(policyConfig);
             }
         }
         return result;
     }
+    
+    // Returns PolicyConfigType based on policyName. 
+    private PolicyConfigType getPolicyType(String policyName) {
+        if(policyName != null) {
+            String name = policyName;
+            if(name.endsWith(".xml")){
+                name = name.substring(0, name.substring(0, name.lastIndexOf('.')).lastIndexOf('.'));
+            }
+            name = name.substring(name.lastIndexOf('.')+1);
+            PolicyConfigType extType = extendedServices(name);
+            if(extType != null) return extType;
+            if (name.startsWith("Config_BRMS_Param_")) {
+                return PolicyConfigType.BRMS_PARAM;
+            } else if(name.startsWith("Config_BRMS_Raw_")) {
+                return PolicyConfigType.BRMS_RAW;
+            } else if(name.startsWith("Config_Fault_")) {
+                return PolicyConfigType.ClosedLoop_Fault;
+            } else if(name.startsWith("Config_FW_")) {
+                return PolicyConfigType.Firewall;
+            } else if(name.startsWith("Config_PM_")) {
+                return PolicyConfigType.ClosedLoop_PM;
+            } else if(name.startsWith("Config_MS_")) {
+                return PolicyConfigType.MicroService;
+            } else if(name.startsWith("Config_OOF_")) {
+               return PolicyConfigType.Optimization;
+            } else if(name.startsWith("Config_")) {
+                return PolicyConfigType.Base;
+            }
+        }
+        return null;
+    }
+
+    public PolicyConfigType extendedServices(String policyName) {
+        // For extended services policyName will be required. 
+        return null;
+    }
 
     // Filter logic required for results comparing with requests. 
     private Collection<PolicyConfig> filterResults(