From d420472a3a9d6346cb559bbbb910d02b6e0739a2 Mon Sep 17 00:00:00 2001 From: Temoc Rodriguez Date: Wed, 13 Sep 2017 12:23:46 -0700 Subject: Move credential information out of persistence.xml Move credential information out of persistence.xml. Define properties file which will contain the credentials instead. Access db using new properties file. Issue-ID: POLICY-55 Change-Id: I01ad0611c053ad4285de2a225fca7920a3b1bc8f Signed-off-by: Temoc Rodriguez --- controlloop/common/eventmanager/pom.xml | 6 +++++ .../eventmanager/ControlLoopOperationManager.java | 25 ++++++++++++++++----- .../src/main/resources/META-INF/persistence.xml | 6 +---- .../org/onap/policy/guard/PIPEngineGetHistory.java | 19 ++++++++++++++-- .../main/resources/operation_history.properties | 26 ++++++++++++++++++++++ 5 files changed, 69 insertions(+), 13 deletions(-) create mode 100644 controlloop/common/guard/src/main/resources/operation_history.properties diff --git a/controlloop/common/eventmanager/pom.xml b/controlloop/common/eventmanager/pom.xml index a3227cbc1..93ff56cba 100644 --- a/controlloop/common/eventmanager/pom.xml +++ b/controlloop/common/eventmanager/pom.xml @@ -40,6 +40,12 @@ 2.5 provided + + com.att.research.xacml + xacml + 1.0.0 + provided + org.onap.policy.drools-applications actorServiceProvider diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java index 7751a4108..503a6fbb3 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java @@ -20,11 +20,13 @@ package org.onap.policy.controlloop.eventmanager; +import java.io.InputStream; import java.io.Serializable; import java.sql.Timestamp; import java.time.Instant; import java.util.AbstractMap; import java.util.LinkedList; +import java.util.Properties; import javax.persistence.EntityManager; import javax.persistence.Persistence; @@ -37,6 +39,7 @@ import org.onap.policy.controlloop.ControlLoopException; import org.onap.policy.controlloop.ControlLoopOperation; import org.onap.policy.controlloop.VirtualControlLoopEvent; import org.onap.policy.controlloop.actor.appc.APPCActorServiceProvider; +import org.onap.policy.controlloop.actor.appclcm.AppcLcmActorServiceProvider; import org.onap.policy.controlloop.actor.vfc.VFCActorServiceProvider; import org.onap.policy.controlloop.policy.Policy; import org.onap.policy.controlloop.policy.PolicyResult; @@ -44,7 +47,6 @@ import org.onap.policy.controlloop.actor.so.SOActorServiceProvider; import org.onap.policy.so.SOResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.onap.policy.controlloop.actor.appclcm.AppcLcmActorServiceProvider; public class ControlLoopOperationManager implements Serializable { @@ -216,10 +218,10 @@ public class ControlLoopOperationManager implements Serializable { case "SO": SOActorServiceProvider SOAsp = new SOActorServiceProvider(); this.operationRequest = SOAsp.constructRequest((VirtualControlLoopEvent)onset, operation.operation, this.policy); - + // Save the operation this.currentOperation = operation; - + return operationRequest; case "VFC": this.operationRequest = VFCActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset, operation.operation, this.policy); @@ -364,9 +366,9 @@ public class ControlLoopOperationManager implements Serializable { } return PolicyResult.FAILURE; } - + } - + return null; } @@ -512,13 +514,24 @@ public class ControlLoopOperationManager implements Serializable { private void storeOperationInDataBase(){ + // DB Properties + Properties props = new Properties(); + try (InputStream is = org.onap.policy.guard.PIPEngineGetHistory.class.getResourceAsStream(org.onap.policy.guard.PIPEngineGetHistory.OPS_HIST_PROPS_LOC)){ + props.load(is); + } catch (Exception ex) { + logger.error("getCountFromDB threw: ", ex); + return; + } String OpsHistPU = System.getProperty("OperationsHistoryPU"); if(OpsHistPU == null || !OpsHistPU.equals("TestOperationsHistoryPU")){ OpsHistPU = "OperationsHistoryPU"; } + else{ + props.clear(); + } EntityManager em; try{ - em = Persistence.createEntityManagerFactory(OpsHistPU).createEntityManager(); + em = Persistence.createEntityManagerFactory(OpsHistPU, props).createEntityManager(); }catch(Exception e){ logger.error("storeOperationInDataBase threw: ", e); return; diff --git a/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml b/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml index 27c64b60a..827e2562b 100644 --- a/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml +++ b/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml @@ -11,12 +11,8 @@ - - - + - - diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java index 3e93bd761..6be59d668 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PIPEngineGetHistory.java @@ -20,6 +20,8 @@ package org.onap.policy.guard; +import java.io.IOException; +import java.io.InputStream; import java.math.BigInteger; import java.sql.Timestamp; import java.util.Collection; @@ -64,7 +66,8 @@ public class PIPEngineGetHistory extends StdConfigurableEngine{ private static final Logger logger = LoggerFactory.getLogger(PIPEngineGetHistory.class); - public static final String DEFAULT_DESCRIPTION = "PIP for retrieving Operations History from DB"; + public static final String DEFAULT_DESCRIPTION = "PIP for retrieving Operations History from DB"; + public static final String OPS_HIST_PROPS_LOC = "/operation_history.properties"; // // Base issuer string. The issuer in the policy will also contain time window information @@ -305,13 +308,25 @@ public class PIPEngineGetHistory extends StdConfigurableEngine{ private static int getCountFromDB(String actor, String operation, String target, String timeWindow){ + // DB Properties + Properties props = new Properties(); + try (InputStream is = org.onap.policy.guard.PIPEngineGetHistory.class.getResourceAsStream(OPS_HIST_PROPS_LOC)){ + props.load(is); + } catch (IOException ex) { + logger.error("getCountFromDB threw: ", ex); + return -1; + } + EntityManager em = null; String OpsHistPU = System.getProperty("OperationsHistoryPU"); if(OpsHistPU == null || !OpsHistPU.equals("TestOperationsHistoryPU")){ OpsHistPU = "OperationsHistoryPU"; } + else{ + props.clear(); + } try{ - em = Persistence.createEntityManagerFactory(OpsHistPU).createEntityManager(); + em = Persistence.createEntityManagerFactory(OpsHistPU, props).createEntityManager(); }catch(Exception ex){ logger.error("PIP thread got Exception. Can't connect to Operations History DB -- {}", OpsHistPU); logger.error("getCountFromDB threw: ", ex); diff --git a/controlloop/common/guard/src/main/resources/operation_history.properties b/controlloop/common/guard/src/main/resources/operation_history.properties new file mode 100644 index 000000000..8c374a85b --- /dev/null +++ b/controlloop/common/guard/src/main/resources/operation_history.properties @@ -0,0 +1,26 @@ +#/*- +# * ============LICENSE_START======================================================= +# * guard +# * ================================================================================ +# * Copyright (C) 2017 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========================================================= +# */ + +# +# Maria DB Operation History Credentials +# +javax.persistence.jdbc.user=root +javax.persistence.jdbc.password=aaaa +javax.persistence.jdbc.url=jdbc:mariadb://localhost:3306/policy -- cgit 1.2.3-korg