target = getAttribute(pipFinder, PIP_REQUEST_TARGET);
logger.debug("Going to query DB about: clname={}, target={}", clname, target);
- String outcome = doDatabaseQuery(clname, target);
+ String outcome = doDatabaseQuery(clname);
logger.debug("Query result is: {}", outcome);
StdMutablePIPResponse pipResponse = new StdMutablePIPResponse();
return new StdPIPResponse(pipResponse);
}
- private String doDatabaseQuery(String clname, String target) {
- logger.info("Querying operations history for {} {}", clname, target);
+ private String doDatabaseQuery(String clname) {
+ logger.info("Querying operations history for {}", clname);
//
// Only can query if we have an EntityManager
//
//
return em.createQuery("select e.outcome from Dbao e"
+ " where e.closedLoopName= ?1"
- + " and e.target= ?2"
+ " order by e.endtime desc",
String.class)
.setParameter(1, clname)
- .setParameter(2, target)
.setMaxResults(1)
.getSingleResult();
} catch (NoResultException e) {
// Use reflection to run getCountFromDB
//
Method method = GetOperationOutcomePip.class.getDeclaredMethod("doDatabaseQuery",
- String.class,
String.class);
method.setAccessible(true);
//
// Test pipEngine
//
- String outcome = (String) method.invoke(pipEngine, "testcl1", "testtarget1");
+ String outcome = (String) method.invoke(pipEngine, "testcl1");
assertThat(outcome).isNull();
//
// Insert entry
//
// Test pipEngine
//
- outcome = (String) method.invoke(pipEngine, "testcl1", "testtarget1");
+ outcome = (String) method.invoke(pipEngine, "testcl1");
//
// outcome should be "1"
//
//
insertEntry("testcl1", "testtarget1", "2");
insertEntry("testcl2", "testtarget2", "3");
- insertEntry("testcl1", "testtarget2", "4");
//
// Test pipEngine
//
- outcome = (String) method.invoke(pipEngine, "testcl1", "testtarget1");
+ outcome = (String) method.invoke(pipEngine, "testcl1");
assertEquals("2", outcome);
- outcome = (String) method.invoke(pipEngine, "testcl2", "testtarget2");
+ outcome = (String) method.invoke(pipEngine, "testcl2");
assertEquals("3", outcome);
- outcome = (String) method.invoke(pipEngine, "testcl1", "testtarget2");
- assertEquals("4", outcome);
-
//
// Shut it down
//
pipEngine.shutdown();
- assertThat(method.invoke(pipEngine, "testcl1", "testtarget2")).isNull();
+ assertThat(method.invoke(pipEngine, "testcl1")).isNull();
}
private void insertEntry(String cl, String target, String outcome) {
import org.apache.commons.io.IOUtils;
import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.common.utils.coder.StandardYamlCoder;
+import org.onap.policy.common.utils.resources.ResourceUtils;
import org.onap.policy.models.decisions.concepts.DecisionRequest;
import org.onap.policy.models.decisions.concepts.DecisionResponse;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
/*
* Replace function placeholders with appropriate values
*/
- try (Stream<String> stream = Files.lines(Paths.get(xacmlProtoFilename))) {
- return stream.map(s -> s.replace("UNIQUE_ID", uniqueId))
- .map(s -> s.replace("CONTROL_LOOP_ONE", cLOne))
- .map(s -> s.replace("CONTROL_LOOP_TWO", cLTwo))
- .collect(Collectors.joining(XacmlPolicyUtils.LINE_SEPARATOR));
- } catch (IOException e) {
- throw new ToscaPolicyConversionException(
- "Error while generating XACML policy for coordination directive", e);
+ String policyXml = ResourceUtils.getResourceAsString(xacmlProtoFilename);
+ if (policyXml == null) {
+ throw new ToscaPolicyConversionException("Error while generating XACML policy for coordination directive");
}
+ policyXml = policyXml.replace("UNIQUE_ID", uniqueId);
+ policyXml = policyXml.replace("CONTROL_LOOP_ONE", cLOne);
+ policyXml = policyXml.replace("CONTROL_LOOP_TWO", cLTwo);
+
+ return policyXml;
+
}
}
//
insertOperationEvent(requestCl1Node1, OPEN);
//
- // Try cl2 on node2, cl1 only open on node1: should get permit
- //
- requestAndCheckDecision(requestCl2Node2, PERMIT);
- //
// Open cl2 on node2
//
insertOperationEvent(requestCl2Node2, OPEN);
//
Dbao newEntry = new Dbao();
newEntry.setActor(properties.get("actor").toString());
- newEntry.setOperation(properties.get("recipe").toString());
+ newEntry.setOperation(properties.get("operation").toString());
newEntry.setClosedLoopName(properties.get("clname").toString());
newEntry.setOutcome(outcome);
newEntry.setStarttime(Date.from(Instant.now().minusMillis(20000)));
"resource": {
"guard": {
"actor": "SDNR",
- "recipe": "ModifyConfig",
+ "operation": "ModifyConfig",
"clname": "ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459",
"target": "node1"
}
"resource": {
"guard": {
"actor": "SDNR",
- "recipe": "ModifyConfigANR",
+ "operation": "ModifyConfigANR",
"clname": "ControlLoop-vSONH-7d4baf04-8875-4d1f-946d-06b874048b61",
"target": "node1"
}