aboutsummaryrefslogtreecommitdiffstats
path: root/models-interactions/model-impl
diff options
context:
space:
mode:
Diffstat (limited to 'models-interactions/model-impl')
-rw-r--r--models-interactions/model-impl/sdnc/pom.xml12
-rw-r--r--models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java57
-rw-r--r--models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/DemoTest.java2
-rw-r--r--models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java141
-rw-r--r--models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseDescriptorTest.java3
-rw-r--r--models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseTest.java7
-rw-r--r--models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/util/SerializationTest.java2
-rw-r--r--models-interactions/model-impl/so/pom.xml12
-rw-r--r--models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java73
-rw-r--r--models-interactions/model-impl/so/src/test/java/org/onap/policy/so/DummyWorkingMemory.java316
-rw-r--r--models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java73
-rw-r--r--models-interactions/model-impl/vfc/pom.xml12
-rw-r--r--models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java57
-rw-r--r--models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java110
14 files changed, 198 insertions, 679 deletions
diff --git a/models-interactions/model-impl/sdnc/pom.xml b/models-interactions/model-impl/sdnc/pom.xml
index 8bc0776e4..6a0a38720 100644
--- a/models-interactions/model-impl/sdnc/pom.xml
+++ b/models-interactions/model-impl/sdnc/pom.xml
@@ -52,22 +52,10 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>6.5.0.Final</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.onap.policy.common</groupId>
<artifactId>policy-endpoints</artifactId>
<version>${policy.common.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-management</artifactId>
- <version>${policy.drools-pdp.version}</version>
- <scope>provided</scope>
- </dependency>
</dependencies>
</project>
diff --git a/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java b/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java
index 864ddf506..3679625ec 100644
--- a/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java
+++ b/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java
@@ -22,17 +22,14 @@
package org.onap.policy.sdnc;
-
import com.google.gson.JsonSyntaxException;
import java.util.HashMap;
import java.util.Map;
-import org.drools.core.WorkingMemory;
import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.rest.RestManager;
import org.onap.policy.rest.RestManager.Pair;
import org.onap.policy.sdnc.util.Serialization;
@@ -46,31 +43,41 @@ public final class SdncManager implements Runnable {
private String username;
private String password;
private SdncRequest sdncRequest;
- private WorkingMemory workingMem;
+ private SdncCallback callback;
private static final Logger logger = LoggerFactory.getLogger(SdncManager.class);
// The REST manager used for processing REST calls for this Sdnc manager
private RestManager restManager;
+ public interface SdncCallback {
+ public void onCallback(SdncResponse response);
+ }
+
/**
* Constructor.
*
- * @param wm Drools working memory
+ * @param cb Callback method
* @param request request
*/
- public SdncManager(WorkingMemory wm, SdncRequest request) {
- if (wm == null || request == null) {
+ public SdncManager(SdncCallback cb, SdncRequest request, String url,
+ String user, String password) {
+ if (cb == null || request == null) {
throw new IllegalArgumentException(
- "the parameters \"wm\" and \"request\" on the SdncManager constructor may not be null"
+ "the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null"
);
}
- workingMem = wm;
- sdncRequest = request;
+ this.callback = cb;
+ this.sdncRequest = request;
+ if (url == null) {
+ throw new IllegalArgumentException(
+ "the \"url\" parameter on the SdncManager constructor may not be null"
+ );
+ }
+ this.sdncUrlBase = url;
+ this.username = user;
+ this.password = password;
restManager = new RestManager();
-
- setSdncParams(getPeManagerEnvProperty("sdnc.url"), getPeManagerEnvProperty("sdnc.username"),
- getPeManagerEnvProperty("sdnc.password"));
}
/**
@@ -108,12 +115,12 @@ public final class SdncManager implements Runnable {
sdncRequestJson);
} catch (Exception e) {
logger.info(e.getMessage(), e);
- workingMem.insert(responseError);
+ this.callback.onCallback(responseError);
return;
}
if (httpDetails == null) {
- workingMem.insert(responseError);
+ this.callback.onCallback(responseError);
return;
}
@@ -132,7 +139,7 @@ public final class SdncManager implements Runnable {
);
}
- workingMem.insert(response);
+ this.callback.onCallback(response);
} catch (JsonSyntaxException e) {
logger.info("Failed to deserialize into SdncResponse {}", e.getLocalizedMessage(), e);
} catch (Exception e) {
@@ -147,22 +154,4 @@ public final class SdncManager implements Runnable {
protected void setRestManager(final RestManager restManager) {
this.restManager = restManager;
}
-
- /**
- * This method reads and validates environmental properties coming from the policy engine. Null properties cause
- * an {@link IllegalArgumentException} runtime exception to be thrown
- * @param enginePropertyName name of the parameter to retrieve
- * @return the property value
- */
-
- private String getPeManagerEnvProperty(String enginePropertyName) {
- String enginePropertyValue = PolicyEngine.manager.getEnvironmentProperty(enginePropertyName);
- if (enginePropertyValue == null) {
- throw new IllegalArgumentException(
- "The value of policy engine manager environment property \""
- + enginePropertyName + "\" may not be null"
- );
- }
- return enginePropertyValue;
- }
}
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/DemoTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/DemoTest.java
index 53be3382b..1c18d9c8f 100644
--- a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/DemoTest.java
+++ b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/DemoTest.java
@@ -19,8 +19,6 @@
package org.onap.policy.sdnc;
-import java.util.LinkedList;
-
import org.junit.Test;
import org.onap.policy.sdnc.util.Serialization;
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java
index ca6df0d0b..2a1cc6984 100644
--- a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java
+++ b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java
@@ -25,34 +25,24 @@ package org.onap.policy.sdnc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.endsWith;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.startsWith;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.util.ArrayList;
-import java.util.List;
import java.util.UUID;
-
-import org.drools.core.WorkingMemory;
-import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.rest.RestManager;
import org.onap.policy.rest.RestManager.Pair;
+import org.onap.policy.sdnc.SdncManager.SdncCallback;
import org.onap.policy.sdnc.util.Serialization;
-public class SdncManagerTest {
- private static WorkingMemory mockedWorkingMemory;
-
+public class SdncManagerTest implements SdncCallback {
private RestManager mockedRestManager;
private Pair<Integer, String> httpResponsePutOk;
@@ -65,7 +55,6 @@ public class SdncManagerTest {
@BeforeClass
public static void beforeTestSdncManager() {
- mockedWorkingMemory = mock(WorkingMemory.class);
}
/**
@@ -74,13 +63,13 @@ public class SdncManagerTest {
@Before
public void setupMockedRest() {
mockedRestManager = mock(RestManager.class);
-
+
httpResponsePutOk = mockedRestManager.new Pair<>(202, Serialization.gsonPretty.toJson(response));
httpResponseGetOk = mockedRestManager.new Pair<>(200, Serialization.gsonPretty.toJson(response));
httpResponseBadResponse = mockedRestManager.new Pair<>(202, Serialization.gsonPretty.toJson(null));
httpResponseErr = mockedRestManager.new Pair<>(200, null);
}
-
+
/**
* Create the request and response before.
*/
@@ -92,7 +81,7 @@ public class SdncManagerTest {
SdncHealRequestHeaderInfo additionalParams = new SdncHealRequestHeaderInfo();
additionalParams.setSvcAction("Go Home");
additionalParams.setSvcRequestId("My Request");
-
+
SdncHealRequest healRequest = new SdncHealRequest();
healRequest.setRequestHeaderInfo(additionalParams);
healRequest.setServiceInfo(serviceInfo);
@@ -112,87 +101,48 @@ public class SdncManagerTest {
response.setRequestId(request.getRequestId().toString());
response.setResponseOutput(responseDescriptor);
}
-
- /**
- * After Test clean up.
- */
- @After
- public void afterTestSdncManager() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().remove("sdnc.password");
- PolicyEngine.manager.getEnvironment().remove("sdnc.username");
- PolicyEngine.manager.getEnvironment().remove("sdnc.url");
- }
@Test
public void testSdncInitiation() throws InterruptedException {
try {
- new SdncManager(null, null);
+ new SdncManager(null, null, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
assertEquals(
- "the parameters \"wm\" and \"request\" on the SdncManager constructor may not be null",
+ "the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null",
e.getMessage()
);
}
-
- try {
- new SdncManager(mockedWorkingMemory, null);
- fail("test should throw an exception here");
- }
- catch (IllegalArgumentException e) {
- assertEquals(
- "the parameters \"wm\" and \"request\" on the SdncManager constructor may not be null",
- e.getMessage()
- );
- }
-
- try {
- new SdncManager(mockedWorkingMemory, request);
- fail("test should throw an exception here");
- }
- catch (IllegalArgumentException e) {
- assertEquals(
- "The value of policy engine manager environment property \"sdnc.url\" may not be null",
- e.getMessage()
- );
- }
-
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
+
try {
- new SdncManager(mockedWorkingMemory, request);
+ new SdncManager(this, null, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
assertEquals(
- "The value of policy engine manager environment property \"sdnc.username\" may not be null",
+ "the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null",
e.getMessage()
);
}
-
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
+
try {
- new SdncManager(mockedWorkingMemory, request);
+ new SdncManager(this, request, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
assertEquals(
- "The value of policy engine manager environment property \"sdnc.password\" may not be null",
+ "the \"url\" parameter on the SdncManager constructor may not be null",
e.getMessage()
);
}
-
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "Toto");
- new SdncManager(mockedWorkingMemory, request);
+
+ new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Toto");
}
@Test
public void testSdncExecutionException() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "Exception");
-
- SdncManager manager = new SdncManager(mockedWorkingMemory, request);
+ SdncManager manager = new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Exception");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
@@ -200,85 +150,76 @@ public class SdncManagerTest {
when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Exception"), anyMap(), anyString(), anyString()))
.thenThrow(new RuntimeException("OzException"));
-
+
managerThread.join(100);
}
-
+
@Test
public void testSdncExecutionNull() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "Null");
-
- SdncManager manager = new SdncManager(mockedWorkingMemory, request);
+ SdncManager manager = new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Null");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
managerThread.start();
-
+
when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Null"), anyMap(), anyString(), anyString()))
.thenReturn(null);
-
+
managerThread.join(100);
}
@Test
public void testSdncExecutionError0() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "Error0");
-
- SdncManager manager = new SdncManager(mockedWorkingMemory, request);
+ SdncManager manager = new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Error0");
manager.setRestManager(mockedRestManager);
-
+
Thread managerThread = new Thread(manager);
managerThread.start();
-
+
when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Error0"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponseErr);
-
+
managerThread.join(100);
}
@Test
public void testSdncExecutionBadResponse() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "BadResponse");
-
- SdncManager manager = new SdncManager(mockedWorkingMemory, request);
+ SdncManager manager = new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "BadResponse");
manager.setRestManager(mockedRestManager);
-
+
Thread managerThread = new Thread(manager);
managerThread.start();
-
+
when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponseBadResponse);
-
+
managerThread.join(100);
}
-
+
@Test
public void testSdncExecutionOk() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("sdnc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("sdnc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("sdnc.password", "OK");
-
- SdncManager manager = new SdncManager(mockedWorkingMemory, request);
+ SdncManager manager = new SdncManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "OOK");
manager.setRestManager(mockedRestManager);
-
+
Thread managerThread = new Thread(manager);
managerThread.start();
when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponsePutOk);
-
+
when(mockedRestManager.get(endsWith("1234"), eq("Dorothy"), eq("OK"), anyMap()))
.thenReturn(httpResponseGetOk);
-
+
managerThread.join(100);
}
+
+ @Override
+ public void onCallback(SdncResponse response) {
+ //
+ // Nothing really to do
+ //
+ }
}
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseDescriptorTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseDescriptorTest.java
index 09591639f..a397bdcab 100644
--- a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseDescriptorTest.java
+++ b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseDescriptorTest.java
@@ -25,9 +25,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
-import java.util.ArrayList;
-import java.util.List;
-
import org.junit.Test;
public class SdncResponseDescriptorTest {
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseTest.java
index 18c64aa0b..b36a72810 100644
--- a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseTest.java
+++ b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncResponseTest.java
@@ -25,7 +25,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
-
import org.junit.Test;
public class SdncResponseTest {
@@ -35,15 +34,15 @@ public class SdncResponseTest {
SdncResponse response = new SdncResponse();
assertNotNull(response);
assertNotEquals(0, response.hashCode());
-
+
String requestId = "Get Home";
response.setRequestId(requestId);
assertEquals(requestId, response.getRequestId());
-
+
SdncResponseOutput responseDescriptor = new SdncResponseOutput();
response.setResponseOutput(responseDescriptor);
assertEquals(responseDescriptor, response.getResponseOutput());
-
+
assertNotEquals(0, response.hashCode());
}
}
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/util/SerializationTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/util/SerializationTest.java
index 5ac910a17..9dfb3742e 100644
--- a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/util/SerializationTest.java
+++ b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/util/SerializationTest.java
@@ -21,8 +21,6 @@
package org.onap.policy.sdnc.util;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
diff --git a/models-interactions/model-impl/so/pom.xml b/models-interactions/model-impl/so/pom.xml
index 030d34976..59bda9041 100644
--- a/models-interactions/model-impl/so/pom.xml
+++ b/models-interactions/model-impl/so/pom.xml
@@ -43,12 +43,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>6.5.0.Final</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.onap.policy.models.policy-models-interactions.model-impl</groupId>
<artifactId>rest</artifactId>
<version>${project.version}</version>
@@ -60,12 +54,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-management</artifactId>
- <version>${policy.drools-pdp.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.25.1</version>
diff --git a/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java b/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java
index 4c9ba66bd..888afe2ae 100644
--- a/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java
+++ b/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java
@@ -30,11 +30,9 @@ import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-import org.drools.core.WorkingMemory;
import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.rest.RestManager;
import org.onap.policy.rest.RestManager.Pair;
import org.onap.policy.so.util.Serialization;
@@ -66,10 +64,21 @@ public final class SoManager {
private long restGetTimeout = GET_REQUEST_WAIT_INTERVAL;
+ private String url;
+ private String user;
+ private String password;
+
+ public interface SoCallback {
+ public void onSoResponseWrapper(SoResponseWrapper wrapper);
+ }
+
/**
* Default constructor.
*/
- public SoManager() {
+ public SoManager(String url, String user, String password) {
+ this.url = url;
+ this.user = user;
+ this.password = password;
restManager = new RestManager();
}
@@ -106,10 +115,10 @@ public final class SoManager {
* except the vfModuleInstanceId is always null.
*
*/
- public Future<SoResponse> asyncSoRestCall(final String requestId, final WorkingMemory wm,
+ public Future<SoResponse> asyncSoRestCall(final String requestId, final SoCallback callback,
final String serviceInstanceId, final String vnfInstanceId,
final SoRequest request) {
- return asyncSoRestCall(requestId, wm, serviceInstanceId, vnfInstanceId, null, request);
+ return asyncSoRestCall(requestId, callback, serviceInstanceId, vnfInstanceId, null, request);
}
/**
@@ -117,7 +126,7 @@ public final class SoManager {
* Drools working memory.
*
* @param requestId the request id
- * @param wm the Drools working memory
+ * @param callback callback method
* @param serviceInstanceId service instance id to construct the request url
* @param vnfInstanceId vnf instance id to construct the request url
* @param vfModuleInstanceId vfModule instance id to construct the request url (required in case of delete vf
@@ -126,12 +135,13 @@ public final class SoManager {
* @return a concurrent Future for the thread that handles the request
*/
public Future<SoResponse> asyncSoRestCall(final String requestId,
- final WorkingMemory wm,
+ final SoCallback callback,
final String serviceInstanceId,
final String vnfInstanceId,
- final String vfModuleInstanceId, final SoRequest request) {
- return executors.submit(new AsyncSoRestCallThread(requestId, wm, serviceInstanceId, vnfInstanceId,
- vfModuleInstanceId, request));
+ final String vfModuleInstanceId,
+ final SoRequest request) {
+ return executors.submit(new AsyncSoRestCallThread(requestId, callback, serviceInstanceId, vnfInstanceId,
+ vfModuleInstanceId, request, this.url, this.user, this.password));
}
/**
@@ -139,11 +149,14 @@ public final class SoManager {
*/
private class AsyncSoRestCallThread implements Callable<SoResponse> {
final String requestId;
- final WorkingMemory wm;
+ final SoCallback callback;
final String serviceInstanceId;
final String vnfInstanceId;
final String vfModuleInstanceId;
final SoRequest request;
+ final String baseUrl;
+ final String user;
+ final String password;
/**
* Constructor, sets the context of the request.
@@ -156,15 +169,21 @@ public final class SoManager {
* @param request the request itself
*/
private AsyncSoRestCallThread(final String requestId,
- final WorkingMemory wm, final String serviceInstanceId,
+ final SoCallback callback, final String serviceInstanceId,
final String vnfInstanceId, final String vfModuleInstanceId,
- final SoRequest request) {
+ final SoRequest request,
+ final String url,
+ final String user,
+ final String password) {
this.requestId = requestId;
- this.wm = wm;
+ this.callback = callback;
this.serviceInstanceId = serviceInstanceId;
this.vnfInstanceId = vnfInstanceId;
this.vfModuleInstanceId = vfModuleInstanceId;
this.request = request;
+ this.baseUrl = url;
+ this.user = user;
+ this.password = password;
}
/**
@@ -172,37 +191,39 @@ public final class SoManager {
*/
@Override
public SoResponse call() {
- String urlBase = PolicyEngine.manager.getEnvironmentProperty("so.url");
- String username = PolicyEngine.manager.getEnvironmentProperty("so.username");
- String password = PolicyEngine.manager.getEnvironmentProperty("so.password");
// Create a JSON representation of the request
String soJson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create().toJson(request);
- String url = null;
+ String initialUrl = null;
Pair<Integer, String> httpResponse = null;
if (request.getOperationType() != null && request.getOperationType()
.equals(SoOperationType.SCALE_OUT)) {
- url = urlBase + "/serviceInstantiation/v7/serviceInstances/" + serviceInstanceId + "/vnfs/"
+ initialUrl = this.baseUrl + "/serviceInstantiation/v7/serviceInstances/" + serviceInstanceId + "/vnfs/"
+ vnfInstanceId + "/vfModules/scaleOut";
- NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, url, soJson);
- httpResponse = restManager.post(url, username, password, createSimpleHeaders(), MEDIA_TYPE, soJson);
+ NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, initialUrl, soJson);
+ httpResponse = restManager.post(initialUrl, this.user, this.password, createSimpleHeaders(),
+ MEDIA_TYPE, soJson);
} else if (request.getOperationType() != null && request.getOperationType()
.equals(SoOperationType.DELETE_VF_MODULE)) {
- url = urlBase + "/serviceInstances/v7/" + serviceInstanceId + "/vnfs/" + vnfInstanceId
+ initialUrl = this.baseUrl + "/serviceInstances/v7/" + serviceInstanceId + "/vnfs/" + vnfInstanceId
+ "/vfModules/" + vfModuleInstanceId;
- NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, url, soJson);
- httpResponse = restManager.delete(url, username, password, createSimpleHeaders(), MEDIA_TYPE, soJson);
+ NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, initialUrl, soJson);
+ httpResponse = restManager.delete(initialUrl, this.user, this.password, createSimpleHeaders(),
+ MEDIA_TYPE, soJson);
} else {
return null;
}
// Process the response from SO
- SoResponse response = waitForSoOperationCompletion(urlBase, username, password, url, httpResponse);
+ SoResponse response = waitForSoOperationCompletion(this.baseUrl, this.user, this.password, initialUrl,
+ httpResponse);
// Return the response to Drools in its working memory
SoResponseWrapper soWrapper = new SoResponseWrapper(response, requestId);
- wm.insert(soWrapper);
+ if (this.callback != null) {
+ this.callback.onSoResponseWrapper(soWrapper);
+ }
return response;
}
diff --git a/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/DummyWorkingMemory.java b/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/DummyWorkingMemory.java
deleted file mode 100644
index caffef43d..000000000
--- a/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/DummyWorkingMemory.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * so
- * ================================================================================
- * Copyright (C) 2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.so;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.drools.core.WorkingMemory;
-import org.drools.core.WorkingMemoryEntryPoint;
-import org.drools.core.common.InternalFactHandle;
-import org.drools.core.impl.InternalKnowledgeBase;
-import org.drools.core.spi.AsyncExceptionHandler;
-import org.drools.core.spi.GlobalResolver;
-import org.kie.api.event.kiebase.KieBaseEventListener;
-import org.kie.api.event.rule.AgendaEventListener;
-import org.kie.api.event.rule.RuleRuntimeEventListener;
-import org.kie.api.runtime.Environment;
-import org.kie.api.runtime.ObjectFilter;
-import org.kie.api.runtime.process.ProcessInstance;
-import org.kie.api.runtime.process.WorkItemManager;
-import org.kie.api.runtime.rule.Agenda;
-import org.kie.api.runtime.rule.AgendaFilter;
-import org.kie.api.runtime.rule.FactHandle;
-import org.kie.api.runtime.rule.FactHandle.State;
-import org.kie.api.runtime.rule.QueryResults;
-import org.kie.api.time.SessionClock;
-
-public class DummyWorkingMemory implements WorkingMemory {
-
- @Override
- public void addEventListener(RuleRuntimeEventListener listener) {
- }
-
- @Override
- public void addEventListener(AgendaEventListener listener) {
- }
-
- @Override
- public void addEventListener(KieBaseEventListener listener) {
- }
-
- @Override
- public void removeEventListener(RuleRuntimeEventListener listener) {
- }
-
- @Override
- public void removeEventListener(AgendaEventListener listener) {
- }
-
- @Override
- public void removeEventListener(KieBaseEventListener listener) {
- }
-
- @Override
- public Collection<RuleRuntimeEventListener> getRuleRuntimeEventListeners() {
- return null;
- }
-
- @Override
- public Collection<AgendaEventListener> getAgendaEventListeners() {
- return null;
- }
-
- @Override
- public Collection<KieBaseEventListener> getKieBaseEventListeners() {
- return null;
- }
-
- @Override
- public FactHandle insert(Object object, boolean dynamic) {
- return null;
- }
-
- @Override
- public FactHandle insert(Object object) {
- return null;
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public String getEntryPointId() {
- return null;
- }
-
- @Override
- public void retract(FactHandle handle) {
- }
-
- @Override
- public void delete(FactHandle handle) {
- }
-
- @Override
- public void delete(FactHandle handle, State fhState) {
-
-
- }
-
- @Override
- public void update(FactHandle handle, Object object) {
- }
-
- @Override
- public void update(FactHandle handle, Object object, String... modifiedProperties) {
- }
-
- @Override
- public Collection<? extends Object> getObjects() {
- return null;
- }
-
- @Override
- public Collection<? extends Object> getObjects(ObjectFilter filter) {
- return null;
- }
-
- @Override
- public <T extends FactHandle> Collection<T> getFactHandles() {
- return null;
- }
-
- @Override
- public <T extends FactHandle> Collection<T> getFactHandles(ObjectFilter filter) {
- return null;
- }
-
- @Override
- public long getFactCount() {
- return 0;
- }
-
- @Override
- public Agenda getAgenda() {
- return null;
- }
-
- @Override
- public void setGlobal(String identifier, Object value) {
- }
-
- @Override
- public Object getGlobal(String identifier) {
- return null;
- }
-
- @Override
- public Environment getEnvironment() {
- return null;
- }
-
- @Override
- public void setGlobalResolver(GlobalResolver globalResolver) {
- }
-
- @Override
- public GlobalResolver getGlobalResolver() {
- return null;
- }
-
- @Override
- public InternalKnowledgeBase getKnowledgeBase() {
- return null;
- }
-
- @Override
- public int fireAllRules() {
- return 0;
- }
-
- @Override
- public int fireAllRules(AgendaFilter agendaFilter) {
- return 0;
- }
-
- @Override
- public int fireAllRules(int fireLimit) {
- return 0;
- }
-
- @Override
- public int fireAllRules(AgendaFilter agendaFilter, int fireLimit) {
- return 0;
- }
-
- @Override
- public Object getObject(FactHandle handle) {
- return null;
- }
-
- @Override
- public FactHandle getFactHandle(Object object) {
- return null;
- }
-
- @Override
- public FactHandle getFactHandleByIdentity(Object object) {
- return null;
- }
-
- @Override
- public Iterator<?> iterateObjects() {
- return null;
- }
-
- @Override
- public Iterator<?> iterateObjects(ObjectFilter filter) {
- return null;
- }
-
- @Override
- public Iterator<InternalFactHandle> iterateFactHandles() {
- return null;
- }
-
- @Override
- public Iterator<InternalFactHandle> iterateFactHandles(ObjectFilter filter) {
- return null;
- }
-
- @Override
- public void setFocus(String focus) {
- }
-
- @Override
- public QueryResults getQueryResults(String query, Object... arguments) {
- return null;
- }
-
- @Override
- public void setAsyncExceptionHandler(AsyncExceptionHandler handler) {
- }
-
- @Override
- public void clearAgenda() {
- }
-
- @Override
- public void clearAgendaGroup(String group) {
- }
-
- @Override
- public void clearActivationGroup(String group) {
- }
-
- @Override
- public void clearRuleFlowGroup(String group) {
- }
-
- @Override
- public ProcessInstance startProcess(String processId) {
- return null;
- }
-
- @Override
- public ProcessInstance startProcess(String processId, Map<String, Object> parameters) {
- return null;
- }
-
- @Override
- public Collection<ProcessInstance> getProcessInstances() {
- return null;
- }
-
- @Override
- public ProcessInstance getProcessInstance(long id) {
- return null;
- }
-
- @Override
- public ProcessInstance getProcessInstance(long id, boolean readOnly) {
- return null;
- }
-
- @Override
- public WorkItemManager getWorkItemManager() {
- return null;
- }
-
- @Override
- public void halt() {
- }
-
- @Override
- public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String id) {
- return null;
- }
-
- @Override
- public SessionClock getSessionClock() {
- return null;
- }
-
-}
diff --git a/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java b/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java
index 4d7228ff7..03ac06dd5 100644
--- a/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java
+++ b/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java
@@ -40,16 +40,15 @@ import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
-import org.drools.core.WorkingMemory;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.onap.policy.drools.system.PolicyEngine;
+import org.onap.policy.so.SoManager.SoCallback;
-public class SoManagerTest {
+public class SoManagerTest implements SoCallback {
private static final String BASE_URI = "http://localhost:46553/TestSOManager";
private static final String BASE_SO_URI = BASE_URI + "/SO";
private static HttpServer server;
@@ -86,7 +85,7 @@ public class SoManagerTest {
@Test
public void testServiceInstantiation() throws IOException {
- SoManager manager = new SoManager();
+ SoManager manager = new SoManager(null, null, null);
assertNotNull(manager);
manager.setRestGetTimeout(100);
@@ -161,19 +160,13 @@ public class SoManagerTest {
@Test
public void testVfModuleCreation() throws IOException {
- SoManager manager = new SoManager();
+ SoManager manager = new SoManager("http:/localhost:99999999", "sean", "citizen");
assertNotNull(manager);
manager.setRestGetTimeout(100);
- PolicyEngine.manager.setEnvironmentProperty("so.username", "sean");
- PolicyEngine.manager.setEnvironmentProperty("so.password", "citizen");
-
- WorkingMemory wm = new DummyWorkingMemory();
-
SoRequest soRequest = new SoRequest();
soRequest.setOperationType(SoOperationType.SCALE_OUT);
- PolicyEngine.manager.setEnvironmentProperty("so.url", "http:/localhost:99999999");
- Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm,
+ Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this,
UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -182,8 +175,9 @@ public class SoManagerTest {
fail("test should not throw an exception");
}
- PolicyEngine.manager.setEnvironmentProperty("so.url", BASE_SO_URI);
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ manager = new SoManager(BASE_SO_URI, "sean", "citizen");
+ manager.setRestGetTimeout(100);
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), soRequest);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -201,7 +195,7 @@ public class SoManagerTest {
request.getRequestStatus().setRequestState("ONGOING");
request.setOperationType(SoOperationType.SCALE_OUT);
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -212,7 +206,7 @@ public class SoManagerTest {
request.setRequestType("ReturnCompleted");
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -222,7 +216,7 @@ public class SoManagerTest {
}
request.setRequestType("ReturnFailed");
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -235,7 +229,7 @@ public class SoManagerTest {
request.setRequestType("ReturnOnging200");
request.setRequestScope(new Integer(10).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -247,7 +241,7 @@ public class SoManagerTest {
request.setRequestType("ReturnOnging202");
request.setRequestScope(new Integer(20).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -260,7 +254,7 @@ public class SoManagerTest {
// Test timeout after 20 attempts for a response
request.setRequestType("ReturnOnging202");
request.setRequestScope(new Integer(21).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -272,7 +266,7 @@ public class SoManagerTest {
// Test bad response after 3 attempts for a response
request.setRequestType("ReturnBadAfterWait");
request.setRequestScope(new Integer(3).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -284,19 +278,13 @@ public class SoManagerTest {
@Test
public void testVfModuleDeletion() {
- SoManager manager = new SoManager();
+ SoManager manager = new SoManager("http:/localhost:99999999", "sean", "citizen");
assertNotNull(manager);
manager.setRestGetTimeout(100);
- PolicyEngine.manager.setEnvironmentProperty("so.username", "sean");
- PolicyEngine.manager.setEnvironmentProperty("so.password", "citizen");
-
- WorkingMemory wm = new DummyWorkingMemory();
-
SoRequest soRequest = new SoRequest();
soRequest.setOperationType(SoOperationType.DELETE_VF_MODULE);
- PolicyEngine.manager.setEnvironmentProperty("so.url", "http:/localhost:99999999");
- Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm,
+ Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this,
UUID.randomUUID().toString(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -305,8 +293,10 @@ public class SoManagerTest {
fail("test should not throw an exception");
}
- PolicyEngine.manager.setEnvironmentProperty("so.url", BASE_SO_URI);
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ manager = new SoManager(BASE_SO_URI, "sean", "citizen");
+ manager.setRestGetTimeout(100);
+
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -324,7 +314,7 @@ public class SoManagerTest {
request.getRequestStatus().setRequestState("ONGOING");
request.setOperationType(SoOperationType.DELETE_VF_MODULE);
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -335,7 +325,7 @@ public class SoManagerTest {
request.setRequestType("ReturnCompleted");
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -345,7 +335,7 @@ public class SoManagerTest {
}
request.setRequestType("ReturnFailed");
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -358,7 +348,7 @@ public class SoManagerTest {
request.setRequestType("ReturnOnging200");
request.setRequestScope(new Integer(10).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -370,7 +360,7 @@ public class SoManagerTest {
request.setRequestType("ReturnOnging202");
request.setRequestScope(new Integer(20).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -383,7 +373,7 @@ public class SoManagerTest {
// Test timeout after 20 attempts for a response
request.setRequestType("ReturnOnging202");
request.setRequestScope(new Integer(21).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -395,7 +385,7 @@ public class SoManagerTest {
// Test bad response after 3 attempts for a response
request.setRequestType("ReturnBadAfterWait");
request.setRequestScope(new Integer(3).toString());
- asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), wm, UUID.randomUUID().toString(),
+ asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
try {
SoResponse response = asyncRestCallFuture.get();
@@ -404,4 +394,11 @@ public class SoManagerTest {
fail("test should not throw an exception");
}
}
+
+ @Override
+ public void onSoResponseWrapper(SoResponseWrapper wrapper) {
+ //
+ // Nothing really needed to do
+ //
+ }
}
diff --git a/models-interactions/model-impl/vfc/pom.xml b/models-interactions/model-impl/vfc/pom.xml
index 9a36cd2e8..d0b473316 100644
--- a/models-interactions/model-impl/vfc/pom.xml
+++ b/models-interactions/model-impl/vfc/pom.xml
@@ -52,23 +52,11 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>6.5.0.Final</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.onap.policy.common</groupId>
<artifactId>policy-endpoints</artifactId>
<version>${policy.common.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-management</artifactId>
- <version>${policy.drools-pdp.version}</version>
- <scope>provided</scope>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java b/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java
index 695b1b189..850f37552 100644
--- a/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java
+++ b/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java
@@ -26,11 +26,9 @@ import com.google.gson.JsonSyntaxException;
import java.util.HashMap;
import java.util.Map;
-import org.drools.core.WorkingMemory;
import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.rest.RestManager;
import org.onap.policy.rest.RestManager.Pair;
import org.onap.policy.vfc.util.Serialization;
@@ -43,31 +41,41 @@ public final class VfcManager implements Runnable {
private String username;
private String password;
private VfcRequest vfcRequest;
- private WorkingMemory workingMem;
+ private VfcCallback callback;
private static final Logger logger = LoggerFactory.getLogger(VfcManager.class);
// The REST manager used for processing REST calls for this VFC manager
private RestManager restManager;
+ public interface VfcCallback {
+ void onResponse(VfcResponse responseError);
+ }
+
/**
* Constructor.
*
- * @param wm Drools working memory
+ * @param cb Callback method to call when response
* @param request request
+ * @param url URL to VFC component
+ * @param user username
+ * @param pwd password
*/
- public VfcManager(WorkingMemory wm, VfcRequest request) {
- if (wm == null || request == null) {
+ public VfcManager(VfcCallback cb, VfcRequest request, String url, String user, String pwd) {
+ if (cb == null || request == null) {
throw new IllegalArgumentException(
- "the parameters \"wm\" and \"request\" on the VfcManager constructor may not be null");
+ "the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null");
}
- workingMem = wm;
+ if (url == null) {
+ throw new IllegalArgumentException(
+ "the \"url\" parameter on the VfcManager constructor may not be null");
+ }
+ callback = cb;
vfcRequest = request;
+ vfcUrlBase = url;
+ username = user;
+ password = pwd;
restManager = new RestManager();
-
- // use getPEManagerEnvProperty() for required properties; others are optional
- setVfcParams(getPeManagerEnvProperty("vfc.url"), PolicyEngine.manager.getEnvironmentProperty("vfc.username"),
- PolicyEngine.manager.getEnvironmentProperty("vfc.password"));
}
/**
@@ -101,12 +109,12 @@ public final class VfcManager implements Runnable {
httpDetails = restManager.post(vfcUrl, username, password, headers, "application/json", vfcRequestJson);
} catch (Exception e) {
logger.error(e.getMessage(), e);
- workingMem.insert(responseError);
+ this.callback.onResponse(responseError);
return;
}
if (httpDetails == null) {
- workingMem.insert(responseError);
+ this.callback.onResponse(responseError);
return;
}
@@ -142,7 +150,7 @@ public final class VfcManager implements Runnable {
if (httpDetailsGet.first == 200
&& ("finished".equalsIgnoreCase(responseStatus) || "error".equalsIgnoreCase(responseStatus))) {
logger.debug("VFC Heal Status {}", responseGet.getResponseDescriptor().getStatus());
- workingMem.insert(responseGet);
+ this.callback.onResponse(responseGet);
break;
}
Thread.sleep(20000);
@@ -151,7 +159,7 @@ public final class VfcManager implements Runnable {
&& (responseGet.getResponseDescriptor().getStatus() != null)
&& (!responseGet.getResponseDescriptor().getStatus().isEmpty())) {
logger.debug("VFC timeout. Status: ({})", responseGet.getResponseDescriptor().getStatus());
- workingMem.insert(responseGet);
+ this.callback.onResponse(responseGet);
}
} catch (JsonSyntaxException e) {
logger.error("Failed to deserialize into VfcResponse {}", e.getLocalizedMessage(), e);
@@ -171,21 +179,4 @@ public final class VfcManager implements Runnable {
protected void setRestManager(final RestManager restManager) {
this.restManager = restManager;
}
-
- /**
- * This method reads and validates environmental properties coming from the policy engine. Null
- * properties cause an {@link IllegalArgumentException} runtime exception to be thrown
- *
- * @param string the name of the parameter to retrieve
- * @return the property value
- */
-
- private String getPeManagerEnvProperty(String enginePropertyName) {
- String enginePropertyValue = PolicyEngine.manager.getEnvironmentProperty(enginePropertyName);
- if (enginePropertyValue == null) {
- throw new IllegalArgumentException("The value of policy engine manager environment property \""
- + enginePropertyName + "\" may not be null");
- }
- return enginePropertyValue;
- }
}
diff --git a/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java b/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java
index f8a5c5287..15534dbbb 100644
--- a/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java
+++ b/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java
@@ -24,7 +24,6 @@ package org.onap.policy.vfc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.endsWith;
@@ -37,18 +36,14 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-import org.drools.core.WorkingMemory;
-import org.junit.After;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
-import org.onap.policy.drools.system.PolicyEngine;
import org.onap.policy.rest.RestManager;
import org.onap.policy.rest.RestManager.Pair;
+import org.onap.policy.vfc.VfcManager.VfcCallback;
import org.onap.policy.vfc.util.Serialization;
-public class VfcManagerTest {
- private static WorkingMemory mockedWorkingMemory;
+public class VfcManagerTest implements VfcCallback {
private RestManager mockedRestManager;
@@ -60,11 +55,6 @@ public class VfcManagerTest {
private VfcRequest request;
private VfcResponse response;
- @BeforeClass
- public static void beforeTestVfcManager() {
- mockedWorkingMemory = mock(WorkingMemory.class);
- }
-
/**
* Set up the mocked REST manager.
*/
@@ -118,64 +108,43 @@ public class VfcManagerTest {
response.setResponseDescriptor(responseDescriptor);
}
- /**
- * Remove the environnment.
- */
- @After
- public void tearDown() {
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
- }
-
@Test
public void testVfcInitiation() {
try {
- new VfcManager(null, null);
+ new VfcManager(null, null, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
- assertEquals("the parameters \"wm\" and \"request\" on the VfcManager constructor may not be null",
+ assertEquals("the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null",
e.getMessage());
}
try {
- new VfcManager(mockedWorkingMemory, null);
+ new VfcManager(this, null, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
- assertEquals("the parameters \"wm\" and \"request\" on the VfcManager constructor may not be null",
+ assertEquals("the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null",
e.getMessage());
}
try {
- new VfcManager(mockedWorkingMemory, request);
+ new VfcManager(this, request, null, null, null);
fail("test should throw an exception here");
}
catch (IllegalArgumentException e) {
- assertEquals("The value of policy engine manager environment property \"vfc.url\" may not be null",
+ assertEquals("the \"url\" parameter on the VfcManager constructor may not be null",
e.getMessage());
}
- // add url; username & password are not required
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- new VfcManager(mockedWorkingMemory, request);
+ new VfcManager(this, request, "http://somewhere.over.the.rainbow", null, null);
- // url & username, but no password
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
-
- // url, username, and password
- PolicyEngine.manager.getEnvironment().put("vfc.password", "Toto");
- new VfcManager(mockedWorkingMemory, request);
+ new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Toto");
}
@Test
public void testVfcExecutionException() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("vfc.password", "Exception");
-
- VfcManager manager = new VfcManager(mockedWorkingMemory, request);
+ VfcManager manager = new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Exception");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
@@ -191,94 +160,62 @@ public class VfcManagerTest {
.thenThrow(new RuntimeException("OzException"));
managerThread.join();
-
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
}
@Test
public void testVfcExecutionNull() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("vfc.password", "Null");
-
- VfcManager manager = new VfcManager(mockedWorkingMemory, request);
+ VfcManager manager = new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Null");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
managerThread.start();
- when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
+ when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
eq("Dorothy"), eq("Null"), anyMap(), anyString(), anyString()))
.thenReturn(null);
managerThread.join();
-
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
}
@Test
public void testVfcExecutionError0() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("vfc.password", "Error0");
-
- VfcManager manager = new VfcManager(mockedWorkingMemory, request);
+ VfcManager manager = new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Error0");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
managerThread.start();
- when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
+ when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
eq("Dorothy"), eq("Error0"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponseErr);
managerThread.join();
-
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
}
@Test
public void testVfcExecutionBadResponse() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("vfc.password", "BadResponse");
-
- VfcManager manager = new VfcManager(mockedWorkingMemory, request);
+ VfcManager manager = new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "BadResponse");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
managerThread.start();
- when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
+ when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponseBadResponse);
managerThread.join();
-
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
}
@Test
public void testVfcExecutionOk() throws InterruptedException {
- PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow");
- PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy");
- PolicyEngine.manager.getEnvironment().put("vfc.password", "OK");
-
- VfcManager manager = new VfcManager(mockedWorkingMemory, request);
+ VfcManager manager = new VfcManager(this, request, "http://somewhere.over.the.rainbow", "Dorothy", "Ok");
manager.setRestManager(mockedRestManager);
Thread managerThread = new Thread(manager);
managerThread.start();
- when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
+ when(mockedRestManager.post(startsWith("http://somewhere.over.the.rainbow"),
eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString()))
.thenReturn(httpResponsePutOk);
@@ -286,9 +223,12 @@ public class VfcManagerTest {
.thenReturn(httpResponseGetOk);
managerThread.join();
+ }
- PolicyEngine.manager.getEnvironment().remove("vfc.password");
- PolicyEngine.manager.getEnvironment().remove("vfc.username");
- PolicyEngine.manager.getEnvironment().remove("vfc.url");
+ @Override
+ public void onResponse(VfcResponse responseError) {
+ //
+ // Nothing needs to be done
+ //
}
}