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.
*/
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{
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());
// 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");
}
bRMSPush.pushRules();
}
}
+
+ public PolicyEngine getPolicyEngine() {
+ return BRMSGateway.getPolicyEngine();
+ }
}