diff options
Diffstat (limited to 'vnfmarket-be/vnf-sdk-marketplace')
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 @@ <dependency> <groupId>org.onap.cli</groupId> <artifactId>oclip-grpc-client</artifactId> - <version>3.0.0</version> + <version>4.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> 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 <String> args) throws VTPException { + return this.makeRpc(args, VTP_EXECUTION_GRPC_TIMEOUT); + } + + protected Result makeRpc(List <String> 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<String> args) throws VTPException, IOException { - Result result = this.makeRpc(args); + return this.makeRpcAndGetJson(args, VTP_EXECUTION_GRPC_TIMEOUT); + } + + protected JsonNode makeRpcAndGetJson(List<String> 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 <String, String> 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 @@ -<?xml version = "1.0" encoding = "UTF-8"?> -<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" - xmlns = "http://java.sun.com/xml/ns/javaee" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee - http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" +<?xml version = "1.0" encoding = "UTF-8"?> +<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" + xmlns = "http://java.sun.com/xml/ns/javaee" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> - <servlet> - <servlet-name>Jersey RESTful Application</servlet-name> - <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> - <init-param> - <param-name>jersey.config.server.provider.packages</param-name> + <servlet> + <servlet-name>Jersey RESTful Application</servlet-name> + <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> + <init-param> + <param-name>jersey.config.server.provider.packages</param-name> <param-value>io.swagger.jaxrs.listing, org.onap.vnfsdk.marketplace.resource, org.onap.vtp.error, org.onap.vtp.scenario, org.onap.vtp.execution - </param-value> - </init-param> + </param-value> + </init-param> <init-param> <param-name>jersey.config.server.provider.classnames</param-name> - <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>Jersey RESTful Application</servlet-name> - <url-pattern>/onapapi/vnfsdk-marketplace/v1/*</url-pattern> + <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>Jersey RESTful Application</servlet-name> + <url-pattern>/onapapi/vnfsdk-marketplace/v1/*</url-pattern> </servlet-mapping> - + <servlet> <servlet-name>Jersey2Config</servlet-name> <servlet-class>io.swagger.jersey.config.JerseyJaxrsConfig</servlet-class> |