From 43162d627da7aea95ab3ae92a2264b621f96b2be Mon Sep 17 00:00:00 2001 From: Jakub Dudycz Date: Tue, 6 Feb 2018 16:22:11 +0100 Subject: DesignServicesImpl sonar fixes Change-Id: I55159c7b26463965c0d0bee147b4a5f808a6c55a Issue-ID: APPC-571 Signed-off-by: Jakub Dudycz --- .../design/services/impl/DesignServicesImpl.java | 144 ++++++++++++--------- .../services/impl/RequestValidationException.java | 8 ++ 2 files changed, 88 insertions(+), 64 deletions(-) create mode 100644 appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java (limited to 'appc-inbound/appc-design-services') diff --git a/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/DesignServicesImpl.java b/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/DesignServicesImpl.java index 0016a52df..eb1594bfa 100644 --- a/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/DesignServicesImpl.java +++ b/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/DesignServicesImpl.java @@ -24,7 +24,14 @@ package org.onap.appc.design.services.impl; +import com.google.common.util.concurrent.Futures; import java.util.concurrent.Future; +import org.onap.appc.design.dbervices.DbResponseProcessor; +import org.onap.appc.design.dbervices.DesignDBService; +import org.onap.appc.design.services.util.DesignServiceConstants; +import org.onap.appc.design.validator.ValidatorService; +import org.onap.appc.design.xinterface.XInterfaceService; +import org.onap.appc.design.xinterface.XResponseProcessor; import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceInput; import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceOutput; import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceOutputBuilder; @@ -39,121 +46,130 @@ import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.data.DataBuilder; import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.status.StatusBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -import org.onap.appc.design.dbervices.DbResponseProcessor; -import org.onap.appc.design.dbervices.DesignDBService; -import org.onap.appc.design.services.util.DesignServiceConstants; -import org.onap.appc.design.validator.ValidatorResponseProcessor; -import org.onap.appc.design.validator.ValidatorService; -import org.onap.appc.design.xinterface.XInterfaceService; -import org.onap.appc.design.xinterface.XResponseProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.Futures; - public class DesignServicesImpl implements DesignServicesService { private static final Logger log = LoggerFactory.getLogger(DesignServicesImpl.class); + private static final String RECEIVED_REQUEST_STR = "Received Request: "; + private static final String WITH_PAYLOAD_STR = " with Payload :"; + private static final String ACTION_STR = " Action : "; @Override public Future> dbservice(DbserviceInput input) { - log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + - input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload()); - - + log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR + + input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload()); + DbserviceOutputBuilder outputBuilder = new DbserviceOutputBuilder(); DataBuilder databuilder = new DataBuilder(); - StatusBuilder statusBuilder = new StatusBuilder(); + StatusBuilder statusBuilder = new StatusBuilder(); - try{ + try { DesignDBService dbservices = DesignDBService.initialise(); - DbResponseProcessor responseProcessor = new DbResponseProcessor(); - String response = responseProcessor.parseResponse(dbservices.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), input.getDesignRequest().getRequestId()), input.getDesignRequest().getAction()); + DbResponseProcessor responseProcessor = new DbResponseProcessor(); + String response = responseProcessor.parseResponse(dbservices + .execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), + input.getDesignRequest().getRequestId()), input.getDesignRequest().getAction()); log.info("Response in for Design Service : " + response); databuilder.setBlock(response); databuilder.setRequestId(input.getDesignRequest().getRequestId()); statusBuilder.setCode("400"); - statusBuilder.setMessage("success"); - } - catch(Exception e){ - log.error("Error" + e.getMessage()); - e.printStackTrace(); + statusBuilder.setMessage("success"); + } catch (Exception e) { + log.error("Error", e); statusBuilder.setCode("401"); - statusBuilder.setMessage(e.getMessage()); + statusBuilder.setMessage(e.getMessage()); } outputBuilder.setData(databuilder.build()); outputBuilder.setStatus(statusBuilder.build()); - RpcResult result = RpcResultBuilder.status(true).withResult(outputBuilder.build()).build(); + RpcResult result = RpcResultBuilder.status(true) + .withResult(outputBuilder.build()).build(); return Futures.immediateFuture(result); } @Override public Future> xinterfaceservice(XinterfaceserviceInput input) { - log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + - input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload()); + log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR + + input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload()); XinterfaceserviceOutputBuilder outputBuilder = new XinterfaceserviceOutputBuilder(); DataBuilder databuilder = new DataBuilder(); - StatusBuilder statusBuilder = new StatusBuilder(); + StatusBuilder statusBuilder = new StatusBuilder(); try { - XInterfaceService xInterfaceService = new XInterfaceService(); - XResponseProcessor responseProcessor = new XResponseProcessor(); - String response = responseProcessor.parseResponse(xInterfaceService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload()), input.getDesignRequest().getAction()); + XInterfaceService xInterfaceService = new XInterfaceService(); + XResponseProcessor responseProcessor = new XResponseProcessor(); + String response = responseProcessor.parseResponse( + xInterfaceService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload()), + input.getDesignRequest().getAction()); databuilder.setBlock(response); databuilder.setRequestId(input.getDesignRequest().getRequestId()); statusBuilder.setCode("400"); - statusBuilder.setMessage("success"); + statusBuilder.setMessage("success"); } catch (Exception e) { - e.printStackTrace(); + log.error("An error occurred in xInterfaceService", e); statusBuilder.setCode("401"); - statusBuilder.setMessage(e.getMessage()); - } + statusBuilder.setMessage(e.getMessage()); + } outputBuilder.setData(databuilder.build()); outputBuilder.setStatus(statusBuilder.build()); - RpcResult result = RpcResultBuilder.status(true).withResult(outputBuilder.build()).build(); + RpcResult result = RpcResultBuilder.status(true) + .withResult(outputBuilder.build()).build(); return Futures.immediateFuture(result); } @Override public Future> validator(ValidatorInput input) { - log.info("Received Request: " + input.getDesignRequest().getRequestId() + " Action : " + - input.getDesignRequest().getAction() + " with Payload :" + input.getDesignRequest().getPayload() + " and Data Type = " + input.getDesignRequest().getDataType()); + log.info(RECEIVED_REQUEST_STR + input.getDesignRequest().getRequestId() + ACTION_STR + + input.getDesignRequest().getAction() + WITH_PAYLOAD_STR + input.getDesignRequest().getPayload() + + " and Data Type = " + input.getDesignRequest().getDataType()); ValidatorOutputBuilder outputBuilder = new ValidatorOutputBuilder(); - StatusBuilder statusBuilder = new StatusBuilder(); - - + StatusBuilder statusBuilder = new StatusBuilder(); + + build(input, statusBuilder); + + outputBuilder.setStatus(statusBuilder.build()); + + RpcResult result = RpcResultBuilder.status(true) + .withResult(outputBuilder.build()).build(); + return Futures.immediateFuture(result); + } + + private void build(ValidatorInput input, StatusBuilder statusBuilder) { try { - if(input.getDesignRequest().getDataType() == null || input.getDesignRequest().getDataType().isEmpty()) - throw new Exception ("Data Type required for validate Serivce"); - if(input.getDesignRequest().getAction()== null || input.getDesignRequest().getAction().isEmpty()) - throw new Exception ("Action required for validate Serivce"); - - - if(! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_JSON) && - ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_YAML) && - ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_XML) && - ! input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_VELOCITY)) - throw new Exception ("Request Data format " + input.getDesignRequest().getDataType() - + " is not supported by validate Service : Supported data types are : XML, YAML, VELOCITY, JSON "); - - ValidatorService validatorService = new ValidatorService(); - ValidatorResponseProcessor responseProcessor = new ValidatorResponseProcessor(); - String response = validatorService.execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), input.getDesignRequest().getDataType()); + if (input.getDesignRequest().getDataType() == null || input.getDesignRequest().getDataType().isEmpty()) { + throw new RequestValidationException("Data Type required for validate Serivce"); + } + if (input.getDesignRequest().getAction() == null || input.getDesignRequest().getAction().isEmpty()) { + throw new RequestValidationException("Action required for validate Serivce"); + } + + if (validateInput(input)) { + throw new RequestValidationException("Request Data format " + input.getDesignRequest().getDataType() + + " is not supported by validate Service : Supported data types are : XML, YAML, VELOCITY, JSON "); + } + + ValidatorService validatorService = new ValidatorService(); + String response = validatorService + .execute(input.getDesignRequest().getAction(), input.getDesignRequest().getPayload(), + input.getDesignRequest().getDataType()); statusBuilder.setCode("400"); - statusBuilder.setMessage(response); + statusBuilder.setMessage(response); } catch (Exception e) { - e.printStackTrace(); + log.error("An error occurred in validator", e); statusBuilder.setCode("401"); - statusBuilder.setMessage(e.getMessage()); - } - - outputBuilder.setStatus(statusBuilder.build()); + statusBuilder.setMessage(e.getMessage()); + } + } - RpcResult result = RpcResultBuilder.status(true).withResult(outputBuilder.build()).build(); - return Futures.immediateFuture(result); + private boolean validateInput(ValidatorInput input) { + return !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_JSON) && + !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_YAML) && + !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_XML) && + !input.getDesignRequest().getDataType().equals(DesignServiceConstants.DATA_TYPE_VELOCITY); } } diff --git a/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java b/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java new file mode 100644 index 000000000..052246338 --- /dev/null +++ b/appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/impl/RequestValidationException.java @@ -0,0 +1,8 @@ +package org.onap.appc.design.services.impl; + +public class RequestValidationException extends Exception{ + + public RequestValidationException(String message) { + super(message); + } +} -- cgit 1.2.3-korg