X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ECOMP-PDP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fpolicy%2Fpdp%2Frest%2Fapi%2Fcontroller%2FPolicyEngineServices.java;h=48539ad83ae6a63ce62e98ae0d604af02433a355;hb=4ca818fdfb9b807562166800a086b413593d6894;hp=47afcda67625e9968b0b225aca74108ed3bd8a25;hpb=a330af579866dacbe595e2e4ad1dd29cd3c96945;p=policy%2Fengine.git diff --git a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/controller/PolicyEngineServices.java b/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/controller/PolicyEngineServices.java index 47afcda67..48539ad83 100644 --- a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/controller/PolicyEngineServices.java +++ b/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/controller/PolicyEngineServices.java @@ -58,6 +58,8 @@ import org.openecomp.policy.pdp.rest.api.services.GetDecisionService; import org.openecomp.policy.pdp.rest.api.services.GetDictionaryService; import org.openecomp.policy.pdp.rest.api.services.GetMetricsService; import org.openecomp.policy.pdp.rest.api.services.ListConfigService; +import org.openecomp.policy.pdp.rest.api.services.NotificationService; +import org.openecomp.policy.pdp.rest.api.services.NotificationService.NotificationServiceType; import org.openecomp.policy.pdp.rest.api.services.PolicyEngineImportService; import org.openecomp.policy.pdp.rest.api.services.PushPolicyService; import org.openecomp.policy.pdp.rest.api.services.SendEventService; @@ -81,8 +83,9 @@ import springfox.documentation.annotations.ApiIgnore; @Api(value = "Policy Engine Services") @RequestMapping("/") public class PolicyEngineServices { - private static Logger LOGGER = FlexLogger - .getLogger(PolicyEngineServices.class.getName()); + private static Logger logger = FlexLogger.getLogger(PolicyEngineServices.class.getName()); + private static final String NOTIFICATIONPERM = "notification"; + private final AtomicLong configCounter = new AtomicLong(); private final AtomicLong configNameCounter = new AtomicLong(); private final AtomicLong eventCounter = new AtomicLong(); @@ -97,6 +100,7 @@ public class PolicyEngineServices { private final AtomicLong policyEngineImportCounter = new AtomicLong(); private final AtomicLong deprecatedCounter = new AtomicLong(); private final AtomicLong metricCounter = new AtomicLong(); + private final AtomicLong notificationCounter = new AtomicLong(); @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"), @@ -118,8 +122,7 @@ public class PolicyEngineServices { status = getConfigService.getResponseCode(); } configCounter.incrementAndGet(); - return new ResponseEntity>(policyConfig, - status); + return new ResponseEntity<>(policyConfig, status); } @ApiImplicitParams({ @@ -136,8 +139,7 @@ public class PolicyEngineServices { Collection policyConfig = null; HttpStatus status = HttpStatus.UNAUTHORIZED; // Check Permissions. - if (PDPApiAuth.checkPermissions(clientEncoding, requestID, - "getConfigByPolicyName")) { + if (PDPApiAuth.checkPermissions(clientEncoding, requestID,"getConfigByPolicyName")) { ConfigRequestParameters configRequestParameters = new ConfigRequestParameters(); configRequestParameters.setPolicyName(configNameRequest .getPolicyName()); @@ -147,8 +149,7 @@ public class PolicyEngineServices { status = getConfigService.getResponseCode(); } configNameCounter.incrementAndGet(); - return new ResponseEntity>(policyConfig, - status); + return new ResponseEntity<>(policyConfig, status); } @ApiImplicitParams({ @@ -172,7 +173,7 @@ public class PolicyEngineServices { status = listConfigService.getResponseCode(); } configCounter.incrementAndGet(); - return new ResponseEntity>(results, status); + return new ResponseEntity<>(results, status); } @ApiImplicitParams({ @@ -194,7 +195,72 @@ public class PolicyEngineServices { status = getMetricsService.getResponseCode(); } metricCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"), + @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") }) + @ApiOperation(value = "Registers DMaaP Topic to recieve notification from Policy Engine") + @RequestMapping(value = "/getNotification", method = RequestMethod.POST) + @ResponseBody + public ResponseEntity getNotification( + @RequestBody String notificationTopic, + @RequestHeader(value = "ClientAuth", required = true) String clientEncoding, + @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) { + String policyResponse = "Error Unauthorized to use Notification Service."; + HttpStatus status = HttpStatus.UNAUTHORIZED; + // Check Permissions. + if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) { + NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.ADD); + policyResponse = notificationService.getResult(); + status = notificationService.getResponseCode(); + } + notificationCounter.incrementAndGet(); + return new ResponseEntity<>(policyResponse, status); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"), + @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") }) + @ApiOperation(value = "De-Registers DMaaP Topic to stop recieving notifications from Policy Engine") + @RequestMapping(value = "/stopNotification", method = RequestMethod.POST) + @ResponseBody + public ResponseEntity stopNotification( + @RequestBody String notificationTopic, + @RequestHeader(value = "ClientAuth", required = true) String clientEncoding, + @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) { + String policyResponse = "Error Unauthorized to use Notification Service."; + HttpStatus status = HttpStatus.UNAUTHORIZED; + // Check Permissions. + if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) { + NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.REMOVE); + policyResponse = notificationService.getResult(); + status = notificationService.getResponseCode(); + } + notificationCounter.incrementAndGet(); + return new ResponseEntity<>(policyResponse, status); + } + + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"), + @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") }) + @ApiOperation(value = "Sends Heartbeat to DMaaP Topic Registry to continue recieving notifications from Policy Engine") + @RequestMapping(value = "/sendHeartbeat", method = RequestMethod.POST) + @ResponseBody + public ResponseEntity sendHeartbeat( + @RequestBody String notificationTopic, + @RequestHeader(value = "ClientAuth", required = true) String clientEncoding, + @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) { + String policyResponse = "Error Unauthorized to use Heartbeat Service."; + HttpStatus status = HttpStatus.UNAUTHORIZED; + // Check Permissions. + if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) { + NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.HB); + policyResponse = notificationService.getResult(); + status = notificationService.getResponseCode(); + } + return new ResponseEntity<>(policyResponse, status); } @ApiImplicitParams({ @@ -217,7 +283,7 @@ public class PolicyEngineServices { status = sendEventService.getResponseCode(); } eventCounter.incrementAndGet(); - return new ResponseEntity>(policyResponse, + return new ResponseEntity<>(policyResponse, status); } @@ -242,7 +308,7 @@ public class PolicyEngineServices { status = getDecisionService.getResponseCode(); } decisionCounter.incrementAndGet(); - return new ResponseEntity(decisionResponse, status); + return new ResponseEntity<>(decisionResponse, status); } @ApiImplicitParams({ @@ -266,7 +332,7 @@ public class PolicyEngineServices { status = pushPolicyService.getResponseCode(); } pushCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -290,7 +356,7 @@ public class PolicyEngineServices { status = deletePolicyService.getResponseCode(); } deleteCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -316,13 +382,13 @@ public class PolicyEngineServices { status = createPolicyService.getResponseCode(); } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - LOGGER.error(e.getMessage()); + logger.error(e.getMessage(), e); response = "Problem with CreateUpdate Policy Service. "; status = HttpStatus.INTERNAL_SERVER_ERROR; } } createPolicyCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -348,13 +414,13 @@ public class PolicyEngineServices { status = updatePolicyService.getResponseCode(); } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - LOGGER.error(e.getMessage()); + logger.error(e.getMessage(), e); response = "Problem with CreateUpdate Policy Service. "; status = HttpStatus.INTERNAL_SERVER_ERROR; } } updatePolicyCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -378,7 +444,7 @@ public class PolicyEngineServices { status = createDictionaryService.getResponseCode(); } createDictionaryCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -402,7 +468,7 @@ public class PolicyEngineServices { status = updateDictionaryService.getResponseCode(); } updateDictionaryCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -426,7 +492,7 @@ public class PolicyEngineServices { status = getDictionaryService.getResponseCode(); } getDictionaryCounter.incrementAndGet(); - return new ResponseEntity(dictionaryResponse, + return new ResponseEntity<>(dictionaryResponse, status); } @@ -452,7 +518,7 @@ public class PolicyEngineServices { status = policyEngineImportService.getResponseCode(); } policyEngineImportCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -477,7 +543,7 @@ public class PolicyEngineServices { status = createPolicyService.getResponseCode(); } deprecatedCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -502,7 +568,7 @@ public class PolicyEngineServices { status = updatePolicyService.getResponseCode(); } deprecatedCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -527,7 +593,7 @@ public class PolicyEngineServices { status = createFirewallPolicyService.getResponseCode(); } deprecatedCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiImplicitParams({ @@ -552,7 +618,7 @@ public class PolicyEngineServices { status = updateFirewallPolicyService.getResponseCode(); } deprecatedCounter.incrementAndGet(); - return new ResponseEntity(response, status); + return new ResponseEntity<>(response, status); } @ApiOperation(value = "Gets the API Services usage Information") @@ -573,13 +639,14 @@ public class PolicyEngineServices { + "\nTotal PolicyEngine Import Calls: " + policyEngineImportCounter + "\nTotal Deprecated Policy Calls: " + deprecatedCounter - + "\nTotal Metrics Calls:" + metricCounter; + + "\nTotal Metrics Calls:" + metricCounter + + "\nTotal Notification Calls:" + notificationCounter; } @ExceptionHandler({ HttpMessageNotReadableException.class }) public ResponseEntity messageNotReadableExceptionHandler( HttpServletRequest req, HttpMessageNotReadableException exception) { - LOGGER.error("Request not readable: {}", exception); + logger.error("Request not readable: {}", exception); StringBuilder message = new StringBuilder(); message.append(exception.getMessage()); if (exception.getCause() != null) {