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));
}
/**
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)));
}
/**
@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())),
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));
}
/**
@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())),