aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/PapRestControllerV1.java9
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeleteControllerV1.java44
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeployControllerV1.java29
3 files changed, 42 insertions, 40 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PapRestControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/PapRestControllerV1.java
index ccdebc33..c4b7b4a4 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/PapRestControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/PapRestControllerV1.java
@@ -33,6 +33,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response.ResponseBuilder;
+import org.onap.policy.models.base.PfModelException;
/**
* Version v1 common superclass to provide REST endpoints for PAP component.
@@ -117,4 +118,12 @@ public class PapRestControllerV1 {
return respBuilder.header(REQUEST_ID_NAME, requestId);
}
+
+ /**
+ * Functions that throw {@link PfModelException}.
+ */
+ @FunctionalInterface
+ public static interface RunnableWithPfEx {
+ public void run() throws PfModelException;
+ }
}
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeleteControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeleteControllerV1.java
index ad8b5081..47b77bdc 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeleteControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeleteControllerV1.java
@@ -86,18 +86,7 @@ public class PdpGroupDeleteControllerV1 extends PapRestControllerV1 {
public Response deleteGroup(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
@ApiParam(value = "PDP Group Name", required = true) @PathParam("name") String groupName) {
- try {
- provider.deleteGroup(groupName);
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
- .entity(new PdpGroupDeleteResponse()).build();
-
- } catch (PfModelException | PfModelRuntimeException e) {
- logger.warn("delete group failed", e);
- PdpGroupDeleteResponse resp = new PdpGroupDeleteResponse();
- resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
- return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
- requestId).entity(resp).build();
- }
+ return doOperation(requestId, "delete group failed", () -> provider.deleteGroup(groupName));
}
/**
@@ -135,18 +124,8 @@ public class PdpGroupDeleteControllerV1 extends PapRestControllerV1 {
public Response deletePolicy(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
@ApiParam(value = "PDP Policy Name", required = true) @PathParam("name") String policyName) {
- try {
- provider.undeploy(new ToscaPolicyIdentifierOptVersion(policyName, null));
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
- .entity(new PdpGroupDeleteResponse()).build();
-
- } catch (PfModelException | PfModelRuntimeException e) {
- logger.warn("undeploy policy failed", e);
- PdpGroupDeleteResponse resp = new PdpGroupDeleteResponse();
- resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
- return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
- requestId).entity(resp).build();
- }
+ return doOperation(requestId, "undeploy policy failed",
+ () -> provider.undeploy(new ToscaPolicyIdentifierOptVersion(policyName, null)));
}
/**
@@ -187,13 +166,26 @@ public class PdpGroupDeleteControllerV1 extends PapRestControllerV1 {
@ApiParam(value = "PDP Policy Name", required = true) @PathParam("name") String policyName,
@ApiParam(value = "PDP Policy Version", required = true) @PathParam("version") String version) {
+ return doOperation(requestId, "undeploy policy failed",
+ () -> provider.undeploy(new ToscaPolicyIdentifierOptVersion(policyName, version)));
+ }
+
+ /**
+ * Invokes an operation.
+ *
+ * @param requestId request ID
+ * @param errmsg error message to log if the operation throws an exception
+ * @param runnable operation to invoke
+ * @return a {@link PdpGroupDeleteResponse} response entity
+ */
+ private Response doOperation(UUID requestId, String errmsg, RunnableWithPfEx runnable) {
try {
- provider.undeploy(new ToscaPolicyIdentifierOptVersion(policyName, version));
+ runnable.run();
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
.entity(new PdpGroupDeleteResponse()).build();
} catch (PfModelException | PfModelRuntimeException e) {
- logger.warn("undeploy policy failed", e);
+ logger.warn(errmsg, e);
PdpGroupDeleteResponse resp = new PdpGroupDeleteResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeployControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeployControllerV1.java
index d3e6c006..a9e3d5c7 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeployControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/depundep/PdpGroupDeployControllerV1.java
@@ -86,18 +86,7 @@ public class PdpGroupDeployControllerV1 extends PapRestControllerV1 {
public Response deployGroup(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
@ApiParam(value = "List of PDP Group Configuration", required = true) PdpGroups groups) {
- try {
- provider.createOrUpdateGroups(groups);
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
- .entity(new PdpGroupDeployResponse()).build();
-
- } catch (PfModelException | PfModelRuntimeException e) {
- logger.warn("create groups failed", e);
- PdpGroupDeployResponse resp = new PdpGroupDeployResponse();
- resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
- return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
- requestId).entity(resp).build();
- }
+ return doOperation(requestId, "create groups failed", () -> provider.createOrUpdateGroups(groups));
}
/**
@@ -136,13 +125,25 @@ public class PdpGroupDeployControllerV1 extends PapRestControllerV1 {
@ApiParam(value = "PDP Policies; only the name is required",
required = true) PdpDeployPolicies policies) {
+ return doOperation(requestId, "deploy policies failed", () -> provider.deployPolicies(policies));
+ }
+
+ /**
+ * Invokes an operation.
+ *
+ * @param requestId request ID
+ * @param errmsg error message to log if the operation throws an exception
+ * @param runnable operation to invoke
+ * @return a {@link PdpGroupDeployResponse} response entity
+ */
+ private Response doOperation(UUID requestId, String errmsg, RunnableWithPfEx runnable) {
try {
- provider.deployPolicies(policies);
+ runnable.run();
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
.entity(new PdpGroupDeployResponse()).build();
} catch (PfModelException | PfModelRuntimeException e) {
- logger.warn("deploy policies failed", e);
+ logger.warn(errmsg, e);
PdpGroupDeployResponse resp = new PdpGroupDeployResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),