diff options
author | Joshua Reich <jreich@research.att.com> | 2019-04-10 13:38:59 -0700 |
---|---|---|
committer | Pamela Dragosh <pdragosh@research.att.com> | 2019-04-11 07:28:52 -0400 |
commit | a7a144ba512654bd93b0856b1e9eb5c886060c21 (patch) | |
tree | 808acb95b4608c9e7e4e4501f4c4111e9563fa18 /controlloop/common/guard/src/main | |
parent | 92fc7744a4df901d1688b9fa8da899372ea76fd8 (diff) |
Cleanup PIP/Database-related code.
Ensure database schema/naming consistent across repos.
Ensure PIP implementation consistent across repos.
Cleanup unused imports and made sure licenses are ok.
Issue-ID: POLICY-1471
Change-Id: I20a325fe3e66e6ae400e603ec366315aea716993
Signed-off-by: Joshua Reich <jreich@research.att.com>
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
Diffstat (limited to 'controlloop/common/guard/src/main')
5 files changed, 12 insertions, 713 deletions
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 deleted file mode 100644 index 37c4e4c68..000000000 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PipEngineGetHistory.java +++ /dev/null @@ -1,405 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * guard - * ================================================================================ - * 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.guard; - -import com.att.research.xacml.api.Attribute; -import com.att.research.xacml.api.AttributeValue; -import com.att.research.xacml.api.Identifier; -import com.att.research.xacml.api.pip.PIPException; -import com.att.research.xacml.api.pip.PIPFinder; -import com.att.research.xacml.api.pip.PIPRequest; -import com.att.research.xacml.api.pip.PIPResponse; -import com.att.research.xacml.std.IdentifierImpl; -import com.att.research.xacml.std.StdMutableAttribute; -import com.att.research.xacml.std.datatypes.DataTypes; -import com.att.research.xacml.std.pip.StdMutablePIPResponse; -import com.att.research.xacml.std.pip.StdPIPRequest; -import com.att.research.xacml.std.pip.StdPIPResponse; -import com.att.research.xacml.std.pip.engines.StdConfigurableEngine; - -import java.math.BigInteger; -import java.sql.Timestamp; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Properties; -import java.util.Set; - -import javax.persistence.EntityManager; -import javax.persistence.NoResultException; -import javax.persistence.NonUniqueResultException; -import javax.persistence.Persistence; -import javax.persistence.Query; - -import org.onap.policy.drools.system.PolicyEngine; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class PipEngineGetHistory extends StdConfigurableEngine { - private static final Logger logger = LoggerFactory.getLogger(PipEngineGetHistory.class); - - // - // Base issuer string. The issuer in the policy will also contain time window information - // E.g., "com:att:research:xacml:guard:historydb:tw:10:min" - // - public static final String DEFAULT_ISSUER = "com:att:research:xacml:guard:historydb"; - public static final String DEFAULT_DESCRIPTION = "PIP for retrieving Operations History from DB"; - - private static final String XML_SCHEMA_STRING = "http://www.w3.org/2001/XMLSchema#string"; - - private static final String XACML_SUBJECT_CATEGORY_ACCESS_SUBJECT = - "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"; - private static final String XACML_ACTOR_ACTOR_ID = "urn:oasis:names:tc:xacml:1.0:actor:actor-id"; - private static final String XACML_ATTRIBUTE_CATEGORY_ACTION = - "urn:oasis:names:tc:xacml:3.0:attribute-category:action"; - private static final String XACML_OPERATION_OPERATION_ID = "urn:oasis:names:tc:xacml:1.0:operation:operation-id"; - private static final String XACML_ATTRIBUTE_CATEGORY_RESOURCE = - "urn:oasis:names:tc:xacml:3.0:attribute-category:resource"; - private static final String XACML_TARGET_TARGET_ID = "urn:oasis:names:tc:xacml:1.0:target:target-id"; - private static final String XACML_TEST_SQL_RESOURCE_OPERATIONS_COUNT = - "com:att:research:xacml:test:sql:resource:operations:count"; - - private static final PIPRequest PIP_REQUEST_ACTOR = - new StdPIPRequest(new IdentifierImpl(XACML_SUBJECT_CATEGORY_ACCESS_SUBJECT), - new IdentifierImpl(XACML_ACTOR_ACTOR_ID), new IdentifierImpl(XML_SCHEMA_STRING)); - - private static final PIPRequest PIP_REQUEST_RECIPE = - new StdPIPRequest(new IdentifierImpl(XACML_ATTRIBUTE_CATEGORY_ACTION), - new IdentifierImpl(XACML_OPERATION_OPERATION_ID), new IdentifierImpl(XML_SCHEMA_STRING)); - - private static final PIPRequest PIP_REQUEST_TARGET = - new StdPIPRequest(new IdentifierImpl(XACML_ATTRIBUTE_CATEGORY_RESOURCE), - new IdentifierImpl(XACML_TARGET_TARGET_ID), new IdentifierImpl(XML_SCHEMA_STRING)); - - public PipEngineGetHistory() { - super(); - } - - @Override - public Collection<PIPRequest> attributesRequired() { - return Collections.emptySet(); - } - - @Override - public Collection<PIPRequest> attributesProvided() { - return Collections.emptySet(); - } - - @Override - public PIPResponse getAttributes(PIPRequest pipRequest, PIPFinder pipFinder) throws PIPException { - logger.debug("Entering FeqLimiter PIP"); - - /* - * First check to see if the issuer is set and then match it - */ - String string; - if ((string = pipRequest.getIssuer()) == null) { - - logger.debug("No issuer in the request..."); - logger.debug("FeqLimiter PIP - No issuer in the request!"); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - } else { - // Notice, we are checking here for the base issuer prefix. - if (!string.contains(this.getIssuer())) { - logger.debug("Requested issuer '{}' does not match {}", string, getIssuer()); - logger.debug("FeqLimiter PIP - Issuer {} does not match with: {}", string, this.getIssuer()); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - } - } - - String[] s1 = string.split("tw:"); - String[] s2 = s1[1].split(":"); - String timeWindowVal = s2[0];// number [of minutes, hours, days...] - String timeWindowScale = s2[1];// e.g., minute, hour, day, week, month, year - - String actor = null; - String operation = null; - String target = null; - try { - actor = getActor(pipFinder).iterator().next(); - operation = getRecipe(pipFinder).iterator().next(); - target = getTarget(pipFinder).iterator().next(); - } catch (Exception e) { - logger.debug("could not retrieve actor, operation, or target from PIP finder", e); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - } - - String timeWindow = timeWindowVal + " " + timeWindowScale; - - logger.debug("Going to query DB about: {} {} {} {}", actor, operation, target, timeWindow); - int countFromDb = getCountFromDb(actor, operation, target, timeWindow); - - StdMutablePIPResponse stdPipResponse = new StdMutablePIPResponse(); - - this.addIntegerAttribute(stdPipResponse, new IdentifierImpl(XACML_ATTRIBUTE_CATEGORY_RESOURCE), - new IdentifierImpl(XACML_TEST_SQL_RESOURCE_OPERATIONS_COUNT), countFromDb, pipRequest); - - return new StdPIPResponse(stdPipResponse); - } - - @Override - public void configure(String id, Properties properties) throws PIPException { - super.configure(id, properties); - - if (this.getDescription() == null) { - this.setDescription(DEFAULT_DESCRIPTION); - } - if (this.getIssuer() == null) { - this.setIssuer(DEFAULT_ISSUER); - } - } - - private PIPResponse getAttribute(PIPRequest pipRequest, PIPFinder pipFinder) { - PIPResponse pipResponse = null; - - try { - pipResponse = pipFinder.getMatchingAttributes(pipRequest, this); - } catch (PIPException ex) { - logger.error("getAttribute threw:", ex); - return null; - } - if (pipResponse == null) { - return null; - } - if (pipResponse.getStatus() != null && !pipResponse.getStatus().isOk()) { - if (logger.isWarnEnabled()) { - logger.warn("PIP response error {}: {}", pipRequest.getAttributeId().stringValue(), - pipResponse.getStatus()); - } - return null; - } - if (pipResponse.getAttributes() != null && pipResponse.getAttributes().isEmpty()) { - if (logger.isWarnEnabled()) { - logger.warn("No attributes in POP response {}: {}", pipRequest.getAttributeId().stringValue(), - pipResponse.getStatus()); - } - return null; - } - return pipResponse; - } - - private Set<String> getActor(PIPFinder pipFinder) { - /* - * Get the AT&T UID from either the subject id or the attuid property - */ - PIPResponse pipResponseAttUid = this.getAttribute(PIP_REQUEST_ACTOR, pipFinder); - if (pipResponseAttUid == null) { - return new HashSet<>(); - } - - /* - * Iterate over all of the returned results and do the LDAP requests - */ - Collection<Attribute> listAttUids = pipResponseAttUid.getAttributes(); - Set<String> setAttUids = new HashSet<>(); - for (Attribute attributeAttUid : listAttUids) { - Iterator<AttributeValue<String>> iterAttributeValues = attributeAttUid.findValues(DataTypes.DT_STRING); - if (iterAttributeValues != null) { - while (iterAttributeValues.hasNext()) { - String attuid = iterAttributeValues.next().getValue(); - if (attuid != null) { - setAttUids.add(attuid); - } - } - } - } - - return setAttUids; - } - - private Set<String> getRecipe(PIPFinder pipFinder) { - /* - * Get the AT&T UID from either the subject id or the attuid property - */ - PIPResponse pipResponseAttUid = this.getAttribute(PIP_REQUEST_RECIPE, pipFinder); - if (pipResponseAttUid == null) { - return new HashSet<>(); - } - - /* - * Iterate over all of the returned results and do the LDAP requests - */ - Collection<Attribute> listAttUids = pipResponseAttUid.getAttributes(); - Set<String> setAttUids = new HashSet<>(); - for (Attribute attributeAttUid : listAttUids) { - Iterator<AttributeValue<String>> iterAttributeValues = attributeAttUid.findValues(DataTypes.DT_STRING); - if (iterAttributeValues != null) { - while (iterAttributeValues.hasNext()) { - String attuid = iterAttributeValues.next().getValue(); - if (attuid != null) { - setAttUids.add(attuid); - } - } - } - } - - return setAttUids; - } - - private void addIntegerAttribute(StdMutablePIPResponse stdPipResponse, Identifier category, Identifier attributeId, - int value, PIPRequest pipRequest) { - AttributeValue<BigInteger> attributeValue = null; - try { - attributeValue = DataTypes.DT_INTEGER.createAttributeValue(value); - } catch (Exception ex) { - logger.error("Failed to convert {} to an AttributeValue<Boolean>", value, ex); - } - if (attributeValue != null) { - stdPipResponse.addAttribute(new StdMutableAttribute(category, attributeId, attributeValue, - pipRequest.getIssuer()/* this.getIssuer() */, false)); - } - } - - private Set<String> getTarget(PIPFinder pipFinder) { - /* - * Get the AT&T UID from either the subject id or the attuid property - */ - PIPResponse pipResponseAttUid = this.getAttribute(PIP_REQUEST_TARGET, pipFinder); - if (pipResponseAttUid == null) { - return new HashSet<>(); - } - - /* - * Iterate over all of the returned results and do the LDAP requests - */ - Collection<Attribute> listAttUids = pipResponseAttUid.getAttributes(); - Set<String> setAttUids = new HashSet<>(); - for (Attribute attributeAttUid : listAttUids) { - Iterator<AttributeValue<String>> iterAttributeValues = attributeAttUid.findValues(DataTypes.DT_STRING); - if (iterAttributeValues != null) { - while (iterAttributeValues.hasNext()) { - String attuid = iterAttributeValues.next().getValue(); - if (attuid != null) { - setAttUids.add(attuid); - } - } - } - } - - return setAttUids; - } - - private static int getCountFromDb(String actor, String operation, String target, String timeWindow) { - // DB Properties - Properties props = new Properties(); - props.put(Util.ECLIPSE_LINK_KEY_URL, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_URL)); - props.put(Util.ECLIPSE_LINK_KEY_USER, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_USER)); - props.put(Util.ECLIPSE_LINK_KEY_PASS, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_PASS)); - - - EntityManager em = null; - String opsHistPu = System.getProperty("OperationsHistoryPU"); - if (!"TestOperationsHistoryPU".equals(opsHistPu)) { - opsHistPu = "OperationsHistoryPU"; - } else { - props.clear(); - } - - try { - 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); - return -1; - } - - long now = new Date().getTime(); - long diff; - try { - diff = now - getMsFromTimeWindow(timeWindow); - } catch (Exception ex) { - logger.error("PIP thread got Exception ", ex); - return -1; - } - - StringBuilder sqlBuilder = new StringBuilder(); - sqlBuilder.append("select count(*) as count from operationshistory10 where outcome<>'Failure_Guard'"); - sqlBuilder.append(" and actor= ?"); - sqlBuilder.append(" and operation= ?"); - sqlBuilder.append(" and target= ?"); - sqlBuilder.append(" and endtime between '"); - sqlBuilder.append(new Timestamp(diff)); - sqlBuilder.append("' and '"); - sqlBuilder.append(new Timestamp(now)); - sqlBuilder.append('\''); - - Query nq = em.createNativeQuery(sqlBuilder.toString()); - nq.setParameter(1, actor); - nq.setParameter(2, operation); - nq.setParameter(3, target); - - int ret = -1; - try { - ret = ((Number) nq.getSingleResult()).intValue(); - } catch (NoResultException | NonUniqueResultException ex) { - logger.error("getCountFromDb threw: ", ex); - return -1; - } - - em.close(); - - return ret; - } - - /** - * Get the Millisecond time from a time window string. - * - * @param timeWindow the time window string to parse - * @return the millisecond time from the time window string - * @throws PIPException On invalid time window strings - */ - private static long getMsFromTimeWindow(String timeWindowString) throws PIPException { - long ms = 0; - double multiplier = 0; - - String[] split = timeWindowString.split(" "); - if (split.length != 2) { - throw new PIPException("Invalid Value Unit pair for SQL"); - } - - ms = Long.parseLong(split[0]); - - if ("SECOND".compareToIgnoreCase(split[1]) == 0) { - multiplier = 1000; - } else if ("MINUTE".compareToIgnoreCase(split[1]) == 0) { - multiplier = 60000; - } else if ("HOUR".compareToIgnoreCase(split[1]) == 0) { - multiplier = 3.6e+6; - } else if ("DAY".compareToIgnoreCase(split[1]) == 0) { - multiplier = 8.64e+7; - } else if ("WEEK".compareToIgnoreCase(split[1]) == 0) { - multiplier = 6.048e+8; - } else if ("MONTH".compareToIgnoreCase(split[1]) == 0) { - multiplier = 2.628e+9; - } else if ("QUARTER".compareToIgnoreCase(split[1]) == 0) { - multiplier = 2.628e+9 * 3; - } else if ("YEAR".compareToIgnoreCase(split[1]) == 0) { - multiplier = 3.154e+10; - } else { - logger.error("{} not supported", split[1]); - } - - ms *= multiplier; - return ms; - } -} diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PipEngineGetStatus.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PipEngineGetStatus.java deleted file mode 100644 index b61ab5d73..000000000 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PipEngineGetStatus.java +++ /dev/null @@ -1,296 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * guard - * ================================================================================ - * Copyright (C) 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.guard; - -import com.att.research.xacml.api.Attribute; -import com.att.research.xacml.api.AttributeValue; -import com.att.research.xacml.api.Identifier; -import com.att.research.xacml.api.pip.PIPException; -import com.att.research.xacml.api.pip.PIPFinder; -import com.att.research.xacml.api.pip.PIPRequest; -import com.att.research.xacml.api.pip.PIPResponse; -import com.att.research.xacml.std.IdentifierImpl; -import com.att.research.xacml.std.StdMutableAttribute; -import com.att.research.xacml.std.datatypes.DataTypes; -import com.att.research.xacml.std.pip.StdMutablePIPResponse; -import com.att.research.xacml.std.pip.StdPIPRequest; -import com.att.research.xacml.std.pip.StdPIPResponse; -import com.att.research.xacml.std.pip.engines.StdConfigurableEngine; - -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Properties; -import java.util.Set; - -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.NoResultException; -import javax.persistence.Persistence; -import javax.persistence.Query; - -import org.onap.policy.drools.system.PolicyEngine; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class PipEngineGetStatus extends StdConfigurableEngine { - private static final Logger logger = LoggerFactory.getLogger(PipEngineGetStatus.class); - - // - // Base issuer string. The issuer in the policy will contain the operations - // E.g., "org:onap:policy:guard:status:clname:testcl" - // - public static final String DEFAULT_ISSUER = "org:onap:policy:guard:status"; - public static final String DEFAULT_DESCRIPTION = "PIP for retrieving Operation Status from DB"; - - private static final String XML_SCHEMA_STRING = "http://www.w3.org/2001/XMLSchema#string"; - - private static final String XACML_ATTRIBUTE_CATEGORY_RESOURCE = - "urn:oasis:names:tc:xacml:3.0:attribute-category:resource"; - private static final String XACML_TARGET_TARGET_ID = "urn:oasis:names:tc:xacml:1.0:target:target-id"; - private static final String XACML_TEST_SQL_RESOURCE_OPERATIONS_STATUS = - "com:att:research:xacml:test:sql:resource:operations:status"; - - private static final PIPRequest PIP_REQUEST_TARGET = - new StdPIPRequest(new IdentifierImpl(XACML_ATTRIBUTE_CATEGORY_RESOURCE), - new IdentifierImpl(XACML_TARGET_TARGET_ID), new IdentifierImpl(XML_SCHEMA_STRING)); - - public PipEngineGetStatus() { - super(); - } - - @Override - public Collection<PIPRequest> attributesRequired() { - return Collections.emptySet(); - } - - @Override - public Collection<PIPRequest> attributesProvided() { - return Collections.emptySet(); - } - - @Override - public PIPResponse getAttributes(PIPRequest pipRequest, PIPFinder pipFinder) throws PIPException { - logger.debug("Entering Status PIP"); - - /* - * First check to see if the issuer is set and then match it - */ - String issuer; - if ((issuer = pipRequest.getIssuer()) == null) { - - logger.debug("No issuer in the request..."); - logger.debug("Status PIP - No issuer in the request!"); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - - } else if (!issuer.contains(this.getIssuer())) { - // Notice, we are checking here for the base issuer prefix. - logger.debug("Requested issuer '{}' does not match {}", issuer, getIssuer()); - logger.debug("Status PIP - Issuer {} does not match with: {}", issuer, this.getIssuer()); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - } - - String[] s1 = issuer.split("clname:"); - String clname = s1[1]; - String target = null; - try { - target = getTarget(pipFinder).iterator().next(); - } catch (Exception e) { - logger.debug("could not retrieve target from PIP finder", e); - return StdPIPResponse.PIP_RESPONSE_EMPTY; - } - - logger.debug("Going to query DB about: clname={}, target={}", clname, target); - String statusFromDb = getStatusFromDb(clname, target); - - StdMutablePIPResponse stdPipResponse = new StdMutablePIPResponse(); - - this.addStringAttribute(stdPipResponse, new IdentifierImpl(XACML_ATTRIBUTE_CATEGORY_RESOURCE), - new IdentifierImpl(XACML_TEST_SQL_RESOURCE_OPERATIONS_STATUS), statusFromDb, pipRequest); - - return new StdPIPResponse(stdPipResponse); - } - - @Override - public void configure(String id, Properties properties) throws PIPException { - super.configure(id, properties); - - if (this.getDescription() == null) { - this.setDescription(DEFAULT_DESCRIPTION); - } - if (this.getIssuer() == null) { - this.setIssuer(DEFAULT_ISSUER); - } - } - - private PIPResponse getAttribute(PIPRequest pipRequest, PIPFinder pipFinder) { - PIPResponse pipResponse = null; - - try { - pipResponse = pipFinder.getMatchingAttributes(pipRequest, this); - } catch (PIPException ex) { - logger.error("getAttribute threw", ex); - return null; - } - if (pipResponse == null) { - return null; - } - if (pipResponse.getStatus() != null && !pipResponse.getStatus().isOk()) { - logger.warn("PIP response error {}: {}", pipRequest.getAttributeId().stringValue(), - pipResponse.getStatus()); - return null; - } - if (pipResponse.getAttributes() != null && pipResponse.getAttributes().isEmpty()) { - logger.warn("No attributes in POP response {}: {}", pipRequest.getAttributeId().stringValue(), - pipResponse.getStatus()); - return null; - } - return pipResponse; - } - - private void addStringAttribute(StdMutablePIPResponse stdPipResponse, Identifier category, Identifier attributeId, - String value, PIPRequest pipRequest) { - AttributeValue<String> attributeValue = null; - try { - attributeValue = DataTypes.DT_STRING.createAttributeValue(value); - } catch (Exception ex) { - logger.error("Failed to convert {} to an AttributeValue<String>", value, ex); - } - if (attributeValue != null) { - stdPipResponse.addAttribute(new StdMutableAttribute(category, attributeId, attributeValue, - pipRequest.getIssuer()/* this.getIssuer() */, false)); - } - } - - private Set<String> getTarget(PIPFinder pipFinder) { - /* - * Get the UID from either the subject id or the uid property - */ - PIPResponse pipResponseUid = this.getAttribute(PIP_REQUEST_TARGET, pipFinder); - if (pipResponseUid == null) { - return new HashSet<>(); - } - - /* - * Iterate over all of the returned results and do the LDAP requests - */ - Collection<Attribute> listUids = pipResponseUid.getAttributes(); - Set<String> setUids = new HashSet<>(); - for (Attribute attributeUid : listUids) { - Iterator<AttributeValue<String>> iterAttributeValues = attributeUid.findValues(DataTypes.DT_STRING); - if (iterAttributeValues == null) { - continue; - } - while (iterAttributeValues.hasNext()) { - String uid = iterAttributeValues.next().getValue(); - if (uid == null) { - continue; - } - setUids.add(uid); - } - } - return setUids; - } - - private static String getStatusFromDb(String clname, String target) { - // - // DB Properties - // - Properties props = new Properties(); - try { - props.put(Util.ECLIPSE_LINK_KEY_URL, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_URL)); - props.put(Util.ECLIPSE_LINK_KEY_USER, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_USER)); - props.put(Util.ECLIPSE_LINK_KEY_PASS, PolicyEngine.manager.getEnvironmentProperty(Util.ONAP_KEY_PASS)); - } catch (NullPointerException e) { - logger.error("getStatusFromDb: when setting properties", e); - } - // - // Set opsHistPu to the correct value and clear properties if necessary. - // - String opsHistPu = System.getProperty("OperationsHistoryPU"); - if (!"TestOperationsHistoryPU".equals(opsHistPu)) { - opsHistPu = "OperationsHistoryPU"; - } else { - props.clear(); - } - // - // Set up the EntityManager - // - EntityManagerFactory emf = null; - EntityManager em = null; - try { - emf = Persistence.createEntityManagerFactory(opsHistPu, props); - } catch (Exception ex) { - logger.error("PIP thread got Exception. Can't connect to Operations History DB -- {}", opsHistPu); - logger.error("getStatusFromDb threw", ex); - return null; - } - try { - em = emf.createEntityManager(); - } catch (Exception ex) { - logger.error("PIP thread got Exception. Problem creating EntityManager"); - logger.error("getStatusFromDb threw", ex); - emf.close(); - return null; - } - // - // Create the query - // - String sql = "select outcome from operationshistory10 where" - + " clname= ?" - + " and target= ?" - + " order by endtime desc limit 1"; - Query nq = em.createNativeQuery(sql); - nq.setParameter(1, clname); - nq.setParameter(2, target); - logger.debug("SQL query: {}, {}, {}", sql, clname, target); - // - // Run the query - // - String ret = null; - try { - ret = ((String)nq.getSingleResult()); - } catch (NoResultException ex) { - logger.debug("NoResultException for getSingleResult()", ex); - ret = "NO_MATCHING_ENTRY"; - } catch (Exception ex) { - logger.error("getStatusFromDB threw an exception", ex); - } - if (ret != null) { - logger.debug("SQL query result: {}", ret); - } - // - // Clean up and return the result - // - try { - em.close(); - } catch (Exception ex) { - logger.error("getStatusFromDB threw an exception", ex); - } - try { - emf.close(); - } catch (Exception ex) { - logger.error("getStatusFromDB threw an exception", ex); - } - return ret; - } -} diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java index 8b4c832da..6d1fd315e 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlHelper.java @@ -242,11 +242,11 @@ public class PolicyGuardXacmlHelper { while (itAttr.hasNext()) { Attribute currentAttr = itAttr.next(); String attributeId = currentAttr.getAttributeId().stringValue(); - if ("urn:oasis:names:tc:xacml:1.0:request:request-id".equals(attributeId)) { + if ("urn:org:onap:guard:request:request-id".equals(attributeId)) { Iterator<AttributeValue<?>> itValues = currentAttr.getValues().iterator(); reqIdFromXacmlResponse = UUID.fromString(itValues.next().getValue().toString()); } - if ("urn:oasis:names:tc:xacml:1.0:operation:operation-id".equals(attributeId)) { + if ("urn:org:onap:guard:operation:operation-id".equals(attributeId)) { Iterator<AttributeValue<?>> itValues = currentAttr.getValues().iterator(); operationFromXacmlResponse = itValues.next().getValue().toString(); } diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlRequestAttributes.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlRequestAttributes.java index da03addf9..c888f94c1 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlRequestAttributes.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuardXacmlRequestAttributes.java @@ -7,9 +7,9 @@ * 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. @@ -28,27 +28,27 @@ import com.att.research.xacml.std.annotations.XACMLSubject; @XACMLRequest(ReturnPolicyIdList = true, CombinedDecision = true) public class PolicyGuardXacmlRequestAttributes { - @XACMLSubject(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:clname:clname-id") + @XACMLSubject(includeInResults = true, attributeId = "urn:org:onap:guard:clname:clname-id") String clnameId; - @XACMLSubject(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:actor:actor-id") + @XACMLSubject(includeInResults = true, attributeId = "urn:org:onap:guard:actor:actor-id") String actorId; - @XACMLAction(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:operation:operation-id") + @XACMLAction(includeInResults = true, attributeId = "urn:org:onap:guard:operation:operation-id") String operationId; - @XACMLResource(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:target:target-id") + @XACMLResource(includeInResults = true, attributeId = "urn:org:onap:guard:target:target-id") String targetId; - @XACMLResource(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:request:request-id") + @XACMLResource(includeInResults = true, attributeId = "urn:org:onap:guard:request:request-id") String requestId; - @XACMLResource(includeInResults = true, attributeId = "urn:oasis:names:tc:xacml:1.0:request:vf-count") + @XACMLResource(includeInResults = true, attributeId = "urn:org:onap:guard:request:vf-count") Integer vfCount; /** * Construct an instance. - * + * * @param clnameId the control loop Id * @param actorId the actor Id * @param operationId the operation Id diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java index d159bd425..6298774bb 100644 --- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java +++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/Util.java @@ -69,7 +69,7 @@ public final class Util { * Junit props */ protected static final String PU_KEY = "OperationsHistoryPU"; - protected static final String JUNITPU = "TestOperationsHistoryPU"; + protected static final String JUNITPU = "OperationsHistoryPUTest"; private static final Logger logger = LoggerFactory.getLogger(Util.class); |