+ 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();
+ private final AtomicLong decisionCounter = new AtomicLong();
+ private final AtomicLong pushCounter = new AtomicLong();
+ private final AtomicLong deleteCounter = new AtomicLong();
+ private final AtomicLong createPolicyCounter = new AtomicLong();
+ private final AtomicLong updatePolicyCounter = new AtomicLong();
+ private final AtomicLong createDictionaryCounter = new AtomicLong();
+ private final AtomicLong updateDictionaryCounter = new AtomicLong();
+ private final AtomicLong getDictionaryCounter = new AtomicLong();
+ private final AtomicLong policyEngineImportCounter = new AtomicLong();
+ private final AtomicLong deprecatedCounter = new AtomicLong();
+ private final AtomicLong metricCounter = new AtomicLong();
+ private final AtomicLong notificationCounter = new AtomicLong();
+
+ /**
+ * Gets the config.
+ *
+ * @param configRequestParameters the config request parameters
+ * @param clientEncoding the client encoding
+ * @param requestId the request ID
+ * @return the config
+ */
+ @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+ @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+ @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP)")
+ @RequestMapping(value = "/getConfig", method = RequestMethod.POST)
+ @ResponseBody
+ public ResponseEntity<Collection<PolicyConfig>> getConfig(
+ @RequestBody ConfigRequestParameters configRequestParameters,
+ @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+ @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+ Collection<PolicyConfig> policyConfig = null;
+ HttpStatus status = HttpStatus.UNAUTHORIZED;
+ // Check Permissions.
+ if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getConfig")) {
+ GetConfigService getConfigService = new GetConfigService(configRequestParameters, requestID);
+ policyConfig = getConfigService.getResult();
+ status = getConfigService.getResponseCode();
+ }
+ configCounter.incrementAndGet();
+ return new ResponseEntity<>(policyConfig, status);
+ }
+
+ @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+ @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+ @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP) using PolicyName")
+ @RequestMapping(value = "/getConfigByPolicyName", method = RequestMethod.POST)
+ @ResponseBody
+ @Deprecated
+ public ResponseEntity<Collection<PolicyConfig>> getConfigByPolicyName(
+ @RequestBody ConfigNameRequest configNameRequest,
+ @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+ @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+ Collection<PolicyConfig> policyConfig = null;
+ HttpStatus status = HttpStatus.UNAUTHORIZED;
+ // Check Permissions.
+ if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getConfigByPolicyName")) {
+ ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+ configRequestParameters.setPolicyName(configNameRequest.getPolicyName());
+ GetConfigService getConfigService = new GetConfigService(configRequestParameters, requestID);
+ policyConfig = getConfigService.getResult();
+ status = getConfigService.getResponseCode();
+ }
+ configNameCounter.incrementAndGet();
+ return new ResponseEntity<>(policyConfig, status);
+ }
+
+ @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+ @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+ @ApiOperation(value = "Gets the list of configuration policies from the PDP")
+ @RequestMapping(value = "/listConfig", method = RequestMethod.POST)
+ @ResponseBody
+ public ResponseEntity<Collection<String>> listConfig(@RequestBody ConfigRequestParameters configRequestParameters,
+ @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+ @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+ Collection<String> results = null;
+ HttpStatus status = HttpStatus.UNAUTHORIZED;
+ // Check Permissions.
+ if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "listConfig")) {
+ ListConfigService listConfigService = new ListConfigService(configRequestParameters, requestID);
+ results = listConfigService.getResult();
+ status = listConfigService.getResponseCode();
+ }
+ configCounter.incrementAndGet();
+ return new ResponseEntity<>(results, status);
+ }
+
+ /**
+ * List Policy.
+ *
+ * @param ConfigNameRequest the config request parameters
+ * @param clientEncoding the client encoding
+ * @param requestId the request ID
+ * @return the response entity
+ */
+ @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+ @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+ @ApiOperation(value = "Gets the list of policies from the PDP")
+ @PostMapping(value = "/listPolicy")
+ @ResponseBody
+ public ResponseEntity<Collection<String>> listPolicy(@RequestBody ConfigNameRequest configNameRequest,
+ @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+ @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestId) {
+ Collection<String> results = null;
+ HttpStatus status = HttpStatus.UNAUTHORIZED;
+ logger.info("Operation: listPolicy - " + configNameRequest);
+ // Check Permissions.
+ if (PDPApiAuth.checkPermissions(clientEncoding, requestId, "listPolicy")) {
+ ListPolicyService listPolicyService = new ListPolicyService(configNameRequest);
+ results = listPolicyService.getResult();
+ status = listPolicyService.getResponseCode();
+ }
+ configCounter.incrementAndGet();
+ return new ResponseEntity<>(results, status);
+ }
+
+ @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+ @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+ @ApiOperation(value = "Gets the policy metrics from the PolicyAccessPoint(PAP)")
+ @RequestMapping(value = "/getMetrics", method = RequestMethod.GET)
+ @ResponseBody
+ public ResponseEntity<MetricsResponse> getMetrics(
+ @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+ @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+ MetricsResponse response = null;
+ HttpStatus status = HttpStatus.UNAUTHORIZED;
+ // Check Permissions.
+ if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getMetrics")) {
+ GetMetricsService getMetricsService = new GetMetricsService(requestID);
+ response = getMetricsService.getResult();
+ status = getMetricsService.getResponseCode();
+ }
+ metricCounter.incrementAndGet();
+ return new ResponseEntity<>(response, status);
+ }