Policy 1707 commit to LF
[policy/engine.git] / BRMSGateway / src / main / java / org / openecomp / policy / brmsInterface / BRMSHandler.java
index 2cc1787..6771342 100644 (file)
@@ -29,15 +29,13 @@ import org.openecomp.policy.api.PDPNotification;
 import org.openecomp.policy.api.PolicyConfig;
 import org.openecomp.policy.api.PolicyConfigStatus;
 import org.openecomp.policy.api.PolicyEngine;
+import org.openecomp.policy.api.PolicyException;
 import org.openecomp.policy.api.RemovedPolicy;
+import org.openecomp.policy.common.logging.flexlogger.Logger;
 import org.openecomp.policy.utils.BackUpHandler;
-
 import org.openecomp.policy.xacml.api.XACMLErrorConstants;
-
 //import org.apache.log4j.Logger;
-
 import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
-import org.openecomp.policy.common.logging.flexlogger.Logger;
 
 /**
  * BRMSHandler: Notification Handler which listens for PDP Notifications. 
@@ -47,24 +45,25 @@ import org.openecomp.policy.common.logging.flexlogger.Logger;
  */
 public class BRMSHandler implements BackUpHandler{
        
-//     private static final Logger logger = Logger.getLogger(BRMSHandler.class.getName());
        private static final Logger logger = FlexLogger.getLogger(BRMSHandler.class.getName());
-       // This Values are fixed for BRMS based rules. Don't change until they are changed during creation in PAP-ADMIN. 
-       //private static final String ecompName = "DROOLS";
-       //private static final String configName = "BRMS_RAW_RULE";
        
        private BRMSPush bRMSPush = null;
        
-       public BRMSHandler(String propertiesFile) throws Exception{
-               bRMSPush = new BRMSPush(propertiesFile, this);
+       public BRMSHandler(String propertiesFile) throws PolicyException{
+               setBRMSPush(new BRMSPush(propertiesFile, this));
+       }
+
+       public void setBRMSPush(BRMSPush brmsPush) {
+               this.bRMSPush = brmsPush;
        }
 
        @Override
        public void notificationReceived(PDPNotification notification) {
                logger.info("Notification Recieved");
                logger.info(notification.getNotificationType().toString());
-               bRMSPush.initiate();
-               if(BRMSPush.getBackUpMonitor().getFlag()){
+               Boolean flag = BRMSPush.getBackUpMonitor().getFlag();
+               bRMSPush.initiate(flag);
+               if(flag){
                        logger.info("Master Application performing on Notification ");
                        runOnNotification(notification);
                }else{
@@ -80,10 +79,8 @@ public class BRMSHandler implements BackUpHandler{
                        logger.info(removedPolicy.getVersionNo());
                        if(removedPolicy.getPolicyName().contains("_BRMS_")){
                                try{
-                                       String name = removedPolicy.getPolicyName().substring(removedPolicy.getPolicyName().indexOf("_BRMS_")+6, removedPolicy.getPolicyName().length());
-                                       name= name.substring(name.indexOf("_")+1,name.length());
-                                       logger.info("Policy Removed with this policy Name : " + name);
-                                       bRMSPush.removeRule(name);
+                                       logger.info("Policy Removed with this policy Name : " + removedPolicy.getPolicyName());
+                                       bRMSPush.removeRule(removedPolicy.getPolicyName());
                                        removed = true;
                                }catch(Exception e){
                                        logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW+"Rertriving policy failed " + e.getMessage());
@@ -107,17 +104,15 @@ public class BRMSHandler implements BackUpHandler{
                                // Checking the Name is correct or not. 
                                if(updatedPolicy.getPolicyName().contains("_BRMS_")){
                                        try{
-                                               PolicyEngine policyEngine = BRMSGateway.getPolicyEngine();
+                                               PolicyEngine policyEngine = getPolicyEngine();
                                                if(policyEngine!=null){
                                                        ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
                                                        configRequestParameters.setPolicyName(updatedPolicy.getPolicyName());
                                                        Collection<PolicyConfig> policyConfigs = policyEngine.getConfig(configRequestParameters);
                                                        for(PolicyConfig policyConfig: policyConfigs){
                                                                if(policyConfig.getPolicyConfigStatus().equals(PolicyConfigStatus.CONFIG_RETRIEVED)){
-                                                                       String name = policyConfig.getPolicyName().substring(policyConfig.getPolicyName().indexOf("_BRMS_")+6, policyConfig.getPolicyName().length());
-                                                                       name= name.substring(name.indexOf("_")+1,name.length());
-                                                                       logger.info("Policy Retrieved with this Name notified: " + name);
-                                                                   bRMSPush.addRule(name,policyConfig.toOther(),policyConfig.getResponseAttributes());
+                                                                       logger.info("Policy Retrieved with this Name notified: " + policyConfig.getPolicyName());
+                                                                   bRMSPush.addRule(policyConfig.getPolicyName(),policyConfig.toOther(),policyConfig.getResponseAttributes());
                                                                }else{
                                                                        logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR +"Fail to retrieve policy so rule will not be pushed to PolicyRepo !!!!\n\n");
                                                                }
@@ -131,4 +126,8 @@ public class BRMSHandler implements BackUpHandler{
                        bRMSPush.pushRules();
                }
        }
+
+       public PolicyEngine getPolicyEngine() {
+               return BRMSGateway.getPolicyEngine();
+       }
 }