try {
if (vserverName != null) {
aaiHostURL = PolicyEngine.manager.getEnvironmentProperty("aai.url");
- aaiUser = PolicyEngine.manager.getEnvironmentProperty("aai.user");
+ aaiUser = PolicyEngine.manager.getEnvironmentProperty("aai.username");
aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
String aaiGetQueryByVserver = "/aai/v11/nodes/vservers?vserver-name=";
String url = aaiHostURL + aaiGetQueryByVserver;
String vnfName = event.AAI.get("generic-vnf.vnf-name");
String vnfID = event.AAI.get("generic-vnf.vnf-id");
+ aaiHostURL = PolicyEngine.manager.getEnvironmentProperty("aai.url");
+ aaiUser = PolicyEngine.manager.getEnvironmentProperty("aai.username");
+ aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
+
try {
if (vnfName != null) {
- aaiHostURL = PolicyEngine.manager.getEnvironmentProperty("aai.url");
- aaiUser = PolicyEngine.manager.getEnvironmentProperty("aai.user");
- aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
String aaiGetQueryByVnfName = "/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=";
String url = aaiHostURL + aaiGetQueryByVnfName;
logger.info("url: " + url);
response = AAIManager.getQueryByVnfName(url, aaiUser, aaiPassword, requestID, vnfName);
} else if (vnfID != null) {
- aaiHostURL = PolicyEngine.manager.getEnvironmentProperty("aai.url");
- aaiUser = PolicyEngine.manager.getEnvironmentProperty("aai.user");
- aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
String aaiGetQueryByVnfID = "/aai/v11/network/generic-vnfs/generic-vnf/";
String url = aaiHostURL + aaiGetQueryByVnfID;
logger.info("url: " + url);
@GET
@Path("/v8/network/generic-vnfs/generic-vnf/{vnfId}")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String aaiGetQuery (@PathParam("vnfID") String vnfId)
{
@GET
@Path("/v11/network/generic-vnfs/generic-vnf?vnf-name={vnfName}")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String getByVnfName (@PathParam("vnfName") String vnfName)
{
@GET
@Path("/v11/network/generic-vnfs/generic-vnf/{vnfId}")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String getByVnfId (@PathParam("vnfId") String vnfId)
{
@GET
@Path("/v11/nodes/vservers?vserver-name={vserverName}")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String getByVserverName (@PathParam("vserverName") String vserverName)
{
package org.onap.policy.simulators;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
@Path("/api/nslcm/v1")
public class VfcSimulatorJaxRs {
@POST
@Path("/ns/{nsInstanceId}/heal")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String vfcPostQuery(@PathParam("nsInstanceId") String nsInstanceId,
@Context final HttpServletResponse response)
@GET
@Path("/jobs/{jobId}")
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String vfcGetQuery(@PathParam("jobId") String jobId) {
return "{\"jobId\" : "+jobId+",\"responseDescriptor\" : {\"progress\" : \"40\",\"status\" : \"finished\",\"statusDescription\" : \"OMC VMs are decommissioned in VIM\",\"errorCode\" : null,\"responseId\": 101 ,\"responseHistoryList\": [{\"progress\" : \"40\",\"status\" : \"proccessing\",\"statusDescription\" : \"OMC VMs are decommissioned in VIM\",\"errorCode\" : null,\"responseId\" : \"1\"}, {\"progress\" : \"41\",\"status\" : \"proccessing\",\"statusDescription\" : \"OMC VMs are decommissioned in VIM\",\"errorCode\" : null,\"responseId\" : \"2\"}]}}";
$params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
$event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName() )
$manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName, requestID == $event.requestID )
- $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.closedLoopControlName, onset.requestID == $event.requestID, getGuardApprovalStatus() == "Permit" )
+ $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.closedLoopControlName, onset.requestID == $event.requestID, "Permit".equalsIgnoreCase(getGuardApprovalStatus()) )
$lock : TargetLock (requestID == $event.requestID)
then
// to the CallGuardTask() and set the first argument to null
// (instead of XacmlPdpEngine).
//
- boolean guardEnabled = false;
+ boolean guardEnabled = true;
if(guardEnabled){
PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
- if("Permit".equals($guardResponse.result)){
+ if("Permit".equalsIgnoreCase($guardResponse.result)){
modify($operation){setGuardApprovalStatus($guardResponse.result)};
}
$params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
$event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName() )
$manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName, requestID == $event.requestID )
- $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.closedLoopControlName, onset.requestID == $event.requestID, getGuardApprovalStatus() == "Permit" )
+ $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.closedLoopControlName, onset.requestID == $event.requestID, "Permit".equalsIgnoreCase(getGuardApprovalStatus()) )
$lock : TargetLock (requestID == $event.requestID)
then
//
- if("Permit".equals($guardResponse.result)){
+ if("Permit".equalsIgnoreCase($guardResponse.result)){
modify($operation){setGuardApprovalStatus($guardResponse.result)};
}
return org.onap.policy.simulators.Util.buildVfcSim();
}
+ public static HttpServletServer buildGuardSim() throws InterruptedException, IOException {
+ return org.onap.policy.simulators.Util.buildGuardSim();
+ }
+
private static String generatePolicy(String ruleContents,
String closedLoopControlName,
String policyScope,
import java.util.HashMap;
import java.util.UUID;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
import org.onap.policy.controlloop.VirtualControlLoopNotification;
import org.onap.policy.controlloop.policy.ControlLoopPolicy;
import org.onap.policy.controlloop.policy.TargetType;
+import org.onap.policy.drools.http.server.HttpServletServer;
import org.onap.policy.drools.impl.PolicyEngineJUnitImpl;
+import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.guard.PolicyGuard;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private KieSession kieSession;
private Util.Pair<ControlLoopPolicy, String> pair;
- private PolicyEngineJUnitImpl engine;
+ private PolicyEngineJUnitImpl engine;
+
+ static {
+ /* Set environment properties */
+ PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:6666");
+ PolicyEngine.manager.setEnvironmentProperty("aai.username", "AAI");
+ PolicyEngine.manager.setEnvironmentProperty("aai.password", "AAI");
+
+ PolicyEngine.manager.setEnvironmentProperty("guard.url", "http://localhost:6669/pdp/api/getDecision");
+ PolicyEngine.manager.setEnvironmentProperty("guard.username", "GUARD");
+ PolicyEngine.manager.setEnvironmentProperty("guard.password", "GUARD");
+ }
+
+ @BeforeClass
+ public static void setUpSimulator() {
+ try {
+ Util.buildAaiSim();
+ Util.buildGuardSim();
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @AfterClass
+ public static void tearDownSimulator() {
+ HttpServletServer.factory.destroy();
+ }
@Test
public void successTest() {
* See if Guard permits this action, if it does
* not then the test should fail
*/
- if (((VirtualControlLoopNotification)obj).message.contains("Guard result: Permit")) {
+ if (((VirtualControlLoopNotification)obj).message.contains("Guard result: PERMIT")) {
/*
* A notification should be sent out of the Policy
event.target = "generic-vnf.vnf-id";
event.closedLoopAlarmStart = Instant.now();
event.AAI = new HashMap<>();
- event.AAI.put("cloud-region.identity-url", "foo");
- event.AAI.put("vserver.selflink", "bar");
- event.AAI.put("vserver.is-closed-loop-disabled", "false");
event.AAI.put("generic-vnf.vnf-id", "testGenericVnfId");
event.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
kieSession.insert(event);
- Thread.sleep(1000);
+ Thread.sleep(2000);
}
/**
event.closedLoopAlarmStart = Instant.now().minusSeconds(5);
event.closedLoopAlarmEnd = Instant.now();
event.AAI = new HashMap<>();
- event.AAI.put("cloud-region.identity-url", "foo");
- event.AAI.put("vserver.selflink", "bar");
- event.AAI.put("vserver.is-closed-loop-disabled", "false");
event.AAI.put("generic-vnf.vnf-id", "testGenericVnfId");
event.closedLoopEventStatus = ControlLoopEventStatus.ABATED;
kieSession.insert(event);
event.target = "generic-vnf.vnf-id";
event.closedLoopAlarmStart = Instant.now();
event.AAI = new HashMap<>();
- event.AAI.put("cloud-region.identity-url", "foo");
- event.AAI.put("vserver.selflink", "bar");
- event.AAI.put("vserver.is-closed-loop-disabled", "false");
event.AAI.put("generic-vnf.vnf-id", "testGenericVnfID");
event.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
kieSession.insert(event);