From b761c64db074de56defbf049748d74bdeb7cff6b Mon Sep 17 00:00:00 2001 From: Kanagaraj Manickam k00365106 Date: Fri, 2 Aug 2019 14:38:20 +0530 Subject: Update rpc Issue-ID: VNFSDK-424 Change-Id: I88ed722a3b1483603b7948cbfc60f4959e497aab Signed-off-by: Kanagaraj Manickam k00365106 --- vnfmarket-be/vnf-sdk-marketplace/pom.xml | 2 +- .../src/main/java/org/onap/vtp/VTPResource.java | 39 +++++++++++++++------ .../onap/vtp/execution/VTPExecutionResource.java | 2 ++ .../src/main/resources/vtp.properties | 4 ++- .../src/main/webapp/WEB-INF/web.xml | 40 +++++++++++----------- 5 files changed, 55 insertions(+), 32 deletions(-) diff --git a/vnfmarket-be/vnf-sdk-marketplace/pom.xml b/vnfmarket-be/vnf-sdk-marketplace/pom.xml index bb19cc39..0b3c639c 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/pom.xml +++ b/vnfmarket-be/vnf-sdk-marketplace/pom.xml @@ -35,7 +35,7 @@ org.onap.cli oclip-grpc-client - 3.0.0 + 4.0.0-SNAPSHOT org.apache.cxf diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/VTPResource.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/VTPResource.java index 7d408e4b..1c1c6336 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/VTPResource.java +++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/VTPResource.java @@ -46,6 +46,7 @@ public class VTPResource { protected static int VTP_TEST_CENTER_PORT; // NOSONAR protected static String VTP_ARTIFACT_STORE; // NOSONAR protected static String VTP_EXECUTION_TEMP_STORE; // NOSONAR + protected static int VTP_EXECUTION_GRPC_TIMEOUT; // NOSONAR protected static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US); // NOSONAR @@ -59,21 +60,28 @@ public class VTPResource { VTP_TEST_CENTER_PORT = Integer.parseInt(prp.getProperty("vtp.grpc.port")); VTP_ARTIFACT_STORE = prp.getProperty("vtp.artifact.store"); VTP_EXECUTION_TEMP_STORE = prp.getProperty("vtp.file.store"); + VTP_EXECUTION_GRPC_TIMEOUT = Integer.parseInt(prp.getProperty("vtp.grpc.timeout")) * 1000 ; } catch (Exception e) { // NOSONAR LOG.error(e.getMessage()); } } protected Result makeRpc(List args) throws VTPException { + return this.makeRpc(args, VTP_EXECUTION_GRPC_TIMEOUT); + } + + protected Result makeRpc(List args, int timeout) throws VTPException { Result result = null; String requestId = UUID.randomUUID().toString(); try { - result = OpenRemoteCli.run( - VTP_TEST_CENTER_IP, VTP_TEST_CENTER_PORT, requestId, - args); + result = new OpenRemoteCli( + VTP_TEST_CENTER_IP, + VTP_TEST_CENTER_PORT, + timeout, + requestId).run(args); } catch(OpenInterfaceGrpcClient.OpenInterfaceGrpcTimeoutExecption e) { throw new VTPException( - new VTPError().setHttpStatus(HttpStatus.SC_GATEWAY_TIMEOUT).setMessage("Timeout.").setCode(VTPError.TIMEOUT)); + new VTPError().setHttpStatus(HttpStatus.SC_GATEWAY_TIMEOUT).setMessage("Timed out. Please use request-id to track the progress.").setCode(VTPError.TIMEOUT)); } catch (Exception e) { throw new VTPException(new VTPError().setMessage(e.getMessage())); } @@ -91,22 +99,33 @@ public class VTPResource { } protected JsonNode makeRpcAndGetJson(List args) throws VTPException, IOException { - Result result = this.makeRpc(args); + return this.makeRpcAndGetJson(args, VTP_EXECUTION_GRPC_TIMEOUT); + } + + protected JsonNode makeRpcAndGetJson(List args, int timeout) throws VTPException, IOException { + Result result = this.makeRpc(args, timeout); ObjectMapper mapper = new ObjectMapper(); JsonNode resultJson = mapper.readTree(result.getOutput()); return resultJson; } - protected Output makeRpc(String scenario, String requestId, String profile, String testCase, JsonNode argsJsonNode) throws VTPException { + return this.makeRpc(scenario, requestId, profile, testCase, argsJsonNode, VTP_EXECUTION_GRPC_TIMEOUT); + } + + protected Output makeRpc(String scenario, String requestId, String profile, String testCase, JsonNode argsJsonNode, int timeout) throws VTPException { Output output = null; ObjectMapper mapper = new ObjectMapper(); Map args = mapper.convertValue(argsJsonNode, Map.class); try { - output = OpenRemoteCli.invoke(VTP_TEST_CENTER_IP, VTP_TEST_CENTER_PORT, scenario, profile, testCase, requestId, args); - } catch(OpenInterfaceGrpcClient.OpenInterfaceGrpcTimeoutExecption e) { - throw new VTPException( - new VTPError().setHttpStatus(HttpStatus.SC_GATEWAY_TIMEOUT).setMessage(e.getMessage()).setCode(VTPError.TIMEOUT)); + output = new OpenRemoteCli( + VTP_TEST_CENTER_IP, + VTP_TEST_CENTER_PORT, + timeout, + requestId).invoke(scenario, profile, testCase, args); + } catch(OpenInterfaceGrpcClient.OpenInterfaceGrpcTimeoutExecption e) { + throw new VTPException( + new VTPError().setHttpStatus(HttpStatus.SC_GATEWAY_TIMEOUT).setMessage("Timed out. Please use request-id to track the progress.").setCode(VTPError.TIMEOUT)); } catch (Exception e) { throw new VTPException( new VTPError().setMessage(e.getMessage())); diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/execution/VTPExecutionResource.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/execution/VTPExecutionResource.java index 70ec6e6a..1427a578 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/execution/VTPExecutionResource.java +++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/execution/VTPExecutionResource.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.UUID; import javax.ws.rs.Consumes; +import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -51,6 +52,7 @@ import org.onap.vtp.error.VTPError.VTPException; import org.onap.vtp.execution.model.VTPTestExecution; import org.onap.vtp.execution.model.VTPTestExecution.VTPTestExecutionList; import org.open.infc.grpc.Output; +import org.open.infc.grpc.Result; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/resources/vtp.properties b/vnfmarket-be/vnf-sdk-marketplace/src/main/resources/vtp.properties index e2b9f87c..d0e89d81 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/src/main/resources/vtp.properties +++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/resources/vtp.properties @@ -15,4 +15,6 @@ vtp.grpc.server = localhost vtp.grpc.port = 50051 vtp.artifact.store = /tmp/data/vtp-artifacts -vtp.file.store = /tmp/data/vtp-tmp-files \ No newline at end of file +vtp.file.store = /tmp/data/vtp-tmp-files +#60 seconds +vtp.grpc.timeout = 60 \ No newline at end of file diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/webapp/WEB-INF/web.xml b/vnfmarket-be/vnf-sdk-marketplace/src/main/webapp/WEB-INF/web.xml index 89a84034..da5ee65f 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/src/main/webapp/WEB-INF/web.xml +++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/webapp/WEB-INF/web.xml @@ -1,32 +1,32 @@ - - + - - Jersey RESTful Application - org.glassfish.jersey.servlet.ServletContainer - - jersey.config.server.provider.packages + + Jersey RESTful Application + org.glassfish.jersey.servlet.ServletContainer + + jersey.config.server.provider.packages io.swagger.jaxrs.listing, org.onap.vnfsdk.marketplace.resource, org.onap.vtp.error, org.onap.vtp.scenario, org.onap.vtp.execution - - + + jersey.config.server.provider.classnames - org.glassfish.jersey.media.multipart.MultiPartFeature - - 1 - - - Jersey RESTful Application - /onapapi/vnfsdk-marketplace/v1/* + org.glassfish.jersey.media.multipart.MultiPartFeature + + 1 + + + Jersey RESTful Application + /onapapi/vnfsdk-marketplace/v1/* - + Jersey2Config io.swagger.jersey.config.JerseyJaxrsConfig -- cgit 1.2.3-korg