diff options
Diffstat (limited to 'BRMSGateway/src/main/java/org/onap/policy/brmsInterface/BRMSHandler.java')
-rw-r--r-- | BRMSGateway/src/main/java/org/onap/policy/brmsInterface/BRMSHandler.java | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/BRMSGateway/src/main/java/org/onap/policy/brmsInterface/BRMSHandler.java b/BRMSGateway/src/main/java/org/onap/policy/brmsInterface/BRMSHandler.java deleted file mode 100644 index b460fb87b..000000000 --- a/BRMSGateway/src/main/java/org/onap/policy/brmsInterface/BRMSHandler.java +++ /dev/null @@ -1,189 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Engine - * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.brmsInterface; - -import java.util.ArrayList; -import java.util.Collection; - -import org.onap.policy.api.ConfigRequestParameters; -import org.onap.policy.api.LoadedPolicy; -import org.onap.policy.api.NotificationType; -import org.onap.policy.api.PDPNotification; -import org.onap.policy.api.PolicyConfig; -import org.onap.policy.api.PolicyConfigStatus; -import org.onap.policy.api.PolicyEngine; -import org.onap.policy.api.PolicyException; -import org.onap.policy.api.RemovedPolicy; -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; -import org.onap.policy.utils.BackUpHandler; -import org.onap.policy.xacml.api.XACMLErrorConstants; - -/** - * BRMSHandler: Notification Handler which listens for PDP Notifications. - * Take action only for BRMS policies. - * - * @version 0.3 - */ -public class BRMSHandler implements BackUpHandler{ - - private static final Logger logger = FlexLogger.getLogger(BRMSHandler.class.getName()); - - private BRMSPush bRMSPush = null; - - public BRMSHandler(String propertiesFile) throws PolicyException{ - setBRMSPush(new BRMSPush(propertiesFile, this)); - } - - public void setBRMSPush(BRMSPush brmsPush) { - this.bRMSPush = brmsPush; - } - - /* - * This Method is executed upon notification by the Policy Engine API Notification. - * (non-Javadoc) - * @see org.onap.policy.utils.BackUpHandler#notificationReceived(org.onap.policy.api.PDPNotification) - */ - @Override - public void notificationReceived(PDPNotification notification) { - logger.info("Notification Recieved"); - logger.info(notification.getNotificationType().toString()); - Boolean flag = BRMSPush.getBackUpMonitor().getFlag(); - bRMSPush.initiate(flag); - if(flag){ - logger.info("Master Application performing on Notification "); - runOnNotification(notification); - }else{ - logger.info("Slave application Skipping Notification.. "); - } - } - - /* - * Executed when a policy is removed from PDP. - */ - private void removedPolicies(Collection<RemovedPolicy> removedPolicies){ - Boolean removed = false; - logger.info("Removed Policies"); - for(RemovedPolicy removedPolicy: removedPolicies){ - logger.info(removedPolicy.getPolicyName()); - logger.info(removedPolicy.getVersionNo()); - if(removedPolicy.getPolicyName().contains("_BRMS_")){ - try{ - 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(), e); - } - } - } - Boolean failureFlag; - int i = 0; - do{ - failureFlag = false; - if(removed){ - try{ - bRMSPush.pushRules(); - }catch(PolicyException e){ - //Upon Notification failure - failureFlag = true; - bRMSPush.rotateURLs(); - logger.error("Failure during Push Operation " , e); - } - } - i++; - }while(failureFlag && i< bRMSPush.urlListSize()); - } - - /* - * This method is executed if BRMSGW is "MASTER" - * (non-Javadoc) - * @see org.onap.policy.utils.BackUpHandler#runOnNotification(org.onap.policy.api.PDPNotification) - */ - @Override - public void runOnNotification(PDPNotification notification){ - // reset the BRMSPush data structures - bRMSPush.resetDS(); - if(notification.getNotificationType().equals(NotificationType.REMOVE)){ - removedPolicies(notification.getRemovedPolicies()); - }else if(notification.getNotificationType().equals(NotificationType.UPDATE)|| notification.getNotificationType().equals(NotificationType.BOTH)){ - logger.info("Updated Policies: \n"); - ArrayList<PolicyConfig> brmsPolicies = addedPolicies(notification); - Boolean successFlag = false; - for(int i=0; !successFlag && i< bRMSPush.urlListSize(); i++){ - if(i!=0){ - for(PolicyConfig policyConfig: brmsPolicies){ - logger.info("Policy Retry with this Name notified: " + policyConfig.getPolicyName()); - bRMSPush.addRule(policyConfig.getPolicyName(),policyConfig.toOther(),policyConfig.getResponseAttributes()); - } - } - try{ - bRMSPush.pushRules(); - successFlag = true; - }catch(PolicyException e){ - //Upon Notification failure - successFlag = false; - bRMSPush.rotateURLs(); - logger.error("Failure during Push Operation " , e); - } - } - } - } - - /* - * Executed when a policy is added to PDP. - */ - private ArrayList<PolicyConfig> addedPolicies(PDPNotification notification) { - ArrayList<PolicyConfig> result = new ArrayList<>(); - for(LoadedPolicy updatedPolicy: notification.getLoadedPolicies()){ - logger.info("policyName : " + updatedPolicy.getPolicyName()); - logger.info("policyVersion :" + updatedPolicy.getVersionNo()); - logger.info("Matches: " + updatedPolicy.getMatches()); - // Checking the Name is correct or not. - if(updatedPolicy.getPolicyName().contains("_BRMS_")){ - try{ - 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)){ - logger.info("Policy Retrieved with this Name notified: " + policyConfig.getPolicyName()); - result.add(policyConfig); - 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"); - } - } - } - }catch(Exception e){ - logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW+"Rertriving policy failed " + e.getMessage(), e); - } - } - } - return result; - } - - public PolicyEngine getPolicyEngine() { - return BRMSGateway.getPolicyEngine(); - } -} |