aboutsummaryrefslogtreecommitdiffstats
path: root/policy-executor-stub
diff options
context:
space:
mode:
authorToineSiebelink <toine.siebelink@est.tech>2024-09-16 15:42:30 +0100
committerToineSiebelink <toine.siebelink@est.tech>2024-09-17 09:24:42 +0100
commit6191d41c8d8ee20f0388172faf57e2bf8bbf8862 (patch)
treebfedd60f8b2ba705dec2b1fec96243e0e7515e33 /policy-executor-stub
parentfc49910404bf3868788e4b8d91d93047ce297f4d (diff)
Policy Executor API: Add Prefix in Yaml
- Remove servers from yaml. - Add prefix to path in yaml. - Remove basepath prefix from Controller Impl. - Added policy server port to 8093. - Exposed docker env. vars for policy services. Issue-ID: CPS-2291 Change-Id: Idcc9e23f9d63bad2480537dc8d39523fe82b4b83 Signed-off-by: ToineSiebelink <toine.siebelink@est.tech> Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Diffstat (limited to 'policy-executor-stub')
-rw-r--r--policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java22
-rw-r--r--policy-executor-stub/src/main/resources/application.yml5
-rw-r--r--policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy8
3 files changed, 13 insertions, 22 deletions
diff --git a/policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java b/policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java
index 5b3a9931a0..cdd26c96e9 100644
--- a/policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java
+++ b/policy-executor-stub/src/main/java/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubController.java
@@ -20,12 +20,12 @@
package org.onap.cps.policyexecutor.stub.controller;
-import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.onap.cps.policyexecutor.stub.api.PolicyExecutorApi;
import org.onap.cps.policyexecutor.stub.model.NcmpDelete;
import org.onap.cps.policyexecutor.stub.model.PolicyExecutionRequest;
@@ -34,18 +34,15 @@ import org.onap.cps.policyexecutor.stub.model.Request;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
-@RequestMapping("${rest.api.policy-executor-base-path}")
@RequiredArgsConstructor
+@Slf4j
public class PolicyExecutorStubController implements PolicyExecutorApi {
private final ObjectMapper objectMapper;
-
private static final Pattern ERROR_CODE_PATTERN = Pattern.compile("(\\d{3})");
-
private int decisionCounter = 0;
@Override
@@ -53,25 +50,24 @@ public class PolicyExecutorStubController implements PolicyExecutorApi {
final String action,
final PolicyExecutionRequest policyExecutionRequest,
final String authorization) {
+ log.info("Stub Policy Executor Invoked (only supports 'delete' operations)");
if (policyExecutionRequest.getRequests().isEmpty()) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
final Request firstRequest = policyExecutionRequest.getRequests().iterator().next();
- if ("ncmp-delete-schema:1.0.0".equals(firstRequest.getSchema())) {
+ log.info("1st Request Schema:{}", firstRequest.getSchema());
+ if (firstRequest.getSchema().contains("ncmp-delete-schema:1.0.0")) {
return handleNcmpDeleteSchema(firstRequest);
}
+ log.warn("This stub only supports 'delete' operations");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
private ResponseEntity<PolicyExecutionResponse> handleNcmpDeleteSchema(final Request request) {
- final NcmpDelete ncmpDelete;
- try {
- ncmpDelete = objectMapper.readValue((String) request.getData(), NcmpDelete.class);
- } catch (final JsonProcessingException e) {
- return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
- }
+ final NcmpDelete ncmpDelete = objectMapper.convertValue(request.getData(), NcmpDelete.class);
final String targetIdentifier = ncmpDelete.getTargetIdentifier();
+
if (targetIdentifier == null) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
@@ -97,7 +93,7 @@ public class PolicyExecutorStubController implements PolicyExecutorApi {
decision = "deny";
message = "Only FDNs containing 'cps-is-great' are allowed";
}
-
+ log.info("Decision: {} ({})", decision, message);
final PolicyExecutionResponse policyExecutionResponse =
new PolicyExecutionResponse(decisionId, decision, message);
diff --git a/policy-executor-stub/src/main/resources/application.yml b/policy-executor-stub/src/main/resources/application.yml
index f713a157fe..8ed5742a41 100644
--- a/policy-executor-stub/src/main/resources/application.yml
+++ b/policy-executor-stub/src/main/resources/application.yml
@@ -15,6 +15,5 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-rest:
- api:
- policy-executor-base-path: /policy-executor/api
+server:
+ port: 8093
diff --git a/policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy b/policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy
index efb12ac619..064e0234a3 100644
--- a/policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy
+++ b/policy-executor-stub/src/test/groovy/org/onap/cps/policyexecutor/stub/controller/PolicyExecutorStubControllerSpec.groovy
@@ -108,15 +108,11 @@ class PolicyExecutorStubControllerSpec extends Specification {
}
def 'Execute policy action with invalid json for request data.'() {
- given: 'a policy execution request'
- def request = new Request('ncmp-delete-schema:1.0.0', 'invalid json')
- def policyExecutionRequest = new PolicyExecutionRequest('some decision type', [request])
- def requestBody = objectMapper.writeValueAsString(policyExecutionRequest)
when: 'request is posted'
def response = mockMvc.perform(post(url)
.header('Authorization','some string')
.contentType(MediaType.APPLICATION_JSON)
- .content(requestBody))
+ .content('invalid json'))
.andReturn().response
then: 'response status is Bad Request'
assert response.status == HttpStatus.BAD_REQUEST.value()
@@ -143,7 +139,7 @@ class PolicyExecutorStubControllerSpec extends Specification {
def createRequestBody(decisionType, schema, targetIdentifier) {
def ncmpDelete = new NcmpDelete(targetIdentifier: targetIdentifier)
- def request = new Request(schema, objectMapper.writeValueAsString(ncmpDelete))
+ def request = new Request(schema, ncmpDelete)
def policyExecutionRequest = new PolicyExecutionRequest(decisionType, [request])
return objectMapper.writeValueAsString(policyExecutionRequest)
}