aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java')
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java293
1 files changed, 155 insertions, 138 deletions
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java
index 0f947347..710736ff 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpEntity;
-import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.onap.vnfsdk.marketplace.common.CommonConstant;
import org.onap.vnfsdk.marketplace.msb.MsbDetails;
@@ -32,144 +31,162 @@ import org.onap.vnfsdk.marketplace.onboarding.entity.OnBoradingRequest;
import org.onap.vnfsdk.marketplace.rest.RestConstant;
import org.onap.vnfsdk.marketplace.rest.RestResponse;
import org.onap.vnfsdk.marketplace.rest.RestfulClient;
+import org.onap.vnfsdk.marketplace.common.FileUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class FunctionTestExceutor
-{
- private static final Logger logger = LoggerFactory.getLogger(FunctionTestExceutor.class);
-
- private FunctionTestExceutor()
- {}
-
- /**
- * Interface to Send Request to Start Function test
- * @param onBoradFuncTestReq
- * @return
- */
- public static String execFunctionTest(OnBoradingRequest onBoradFuncTestReq)
- {
- String packagePath = onBoradFuncTestReq.getPackagePath() + File.separator + onBoradFuncTestReq.getPackageName();
- logger.info("Package file path Function test:" + packagePath);
-
- String funcTestId = null;
- MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
- if(null == oMsbDetails)
- {
- logger.error("Failed to get MSB details during execFunctionTest !!!");
- return funcTestId;
- }
-
- try (
- FileInputStream ifs = new FileInputStream(packagePath);
- InputStream inStream = new BufferedInputStream(ifs);
- ) {
-
-
- //IP and Port needs to be configured !!!
- RestResponse rsp = RestfulClient.post(oMsbDetails.getDefaultServer().getHost(),
- Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),
- CommonConstant.functionTest.FUNCTEST_URL,buildRequest(inStream));
- if(!checkValidResponse(rsp))
- {
- return funcTestId;
- }
-
- logger.error("Response for Function Test :" , rsp.getResult());
- funcTestId = rsp.getResult();
- return funcTestId.replaceAll("\"", "");
- }
- catch (FileNotFoundException exp)
- {
- logger.error("Fine not fond Exception for file:" , onBoradFuncTestReq.getPackagePath());
- logger.error("Fine not fond Exception for :" , exp);
- }
- catch (IOException e)
- {
- logger.error("IOException:" , e);
- }
-
- return funcTestId;
- }
-
- /**
- * Interface to get Function Test Results
- * @param key
- * @return
- */
- public static String getTestResultsByFuncTestKey(String key)
- {
- MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
- if(null == oMsbDetails)
- {
- logger.error("Failed to get MSB details during getTestResultsByFuncTestKey !!!");
- return null;
- }
-
- logger.info("getTestResultsByFuncTestKey for Function Test Results for :" + key);
- RestResponse rspGet = RestfulClient.get(oMsbDetails.getDefaultServer().getHost(),
- Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),
- CommonConstant.functionTest.FUNCTEST_RESULT_URL + key);
- if(!checkValidResponse(rspGet))
- {
- logger.error("Failed to convert String Json Response to TestResults list:" + rspGet.getResult());
- return null;
- }
- logger.info("Function Test Results for Key:" + key + "Response:" + rspGet.getResult());
- return rspGet.getResult();
- }
-
- /**
- * Interface to get Function Test Results
- * @param key
- * @return
- */
- public static String executeFunctionTest(String strJsonRequest)
- {
- logger.info("executeFunctionTest Test request Received:" + strJsonRequest);
- MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
- if(null == oMsbDetails)
- {
- logger.error("Failed to get MSB details during getTestResultsByFuncTestKey !!!");
- return null;
- }
-
- logger.info("getTestResultsByFuncTestKey for Function Test Results for :" + strJsonRequest);
- RestResponse rspGet = RestfulClient.sendPostRequest(oMsbDetails.getDefaultServer().getHost(),
- oMsbDetails.getDefaultServer().getPort(),
- CommonConstant.functionTest.FUNCTEST_RESULT_URL,
- strJsonRequest);
- if(!checkValidResponse(rspGet))
- {
- logger.error("Failed to convert String Json Response to TestResults list:" + rspGet.getResult());
- return null;
- }
- logger.info("executeFunctionTest Function Test Result: " + rspGet.getResult());
- return rspGet.getResult();
- }
-
- /**
- * Check Response is Valid
- * @param rsp
- * @return
- */
- private static boolean checkValidResponse(RestResponse rsp)
- {
- if (rsp.getStatusCode() == null || rsp.getResult() == null
- || (RestConstant.RESPONSE_CODE_200 != rsp.getStatusCode() && RestConstant.RESPONSE_CODE_201 != rsp.getStatusCode()))
- {
- return false;
- }
- return true;
- }
-
- @SuppressWarnings("deprecation")
- private static HttpEntity buildRequest(InputStream inputStream)
- throws FileNotFoundException {
- MultipartEntityBuilder builder = MultipartEntityBuilder.create();
- builder.seContentType(ContentType.MULTIPART_FORM_DATA);
- builder.addBinaryBody("file", inputStream);
- return builder.build();
- }
+/* CALL Flow: onBoardingHandler --> FunctionTestHook--> FunctionTestExecutor */
+public class FunctionTestExceutor {
+ private static final Logger logger = LoggerFactory.getLogger(FunctionTestExceutor.class);
+
+ private FunctionTestExceutor() {
+ //Empty constructor
+ }
+
+ /**
+ * Interface to Send Request to Start Function test
+ *
+ * @param onBoradFuncTestReq
+ * @return null (in case of failure) or function Test Id
+ */
+ public static String execFunctionTest(OnBoradingRequest onBoradFuncTestReq) {
+
+ String funcTestId = null;
+
+ String packagePath = onBoradFuncTestReq.getPackagePath() + File.separator + onBoradFuncTestReq.getPackageName();
+ logger.info("Package file path Function test:" + packagePath);
+
+ // Validate package path
+ if (false == FileUtil.validatePath(packagePath)) {
+ logger.error("Failed to validate path");
+ return funcTestId;
+ }
+
+ MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
+ if (null == oMsbDetails) {
+ logger.error("Failed to get MSB details during execFunctionTest !!!");
+ return funcTestId;
+ }
+
+ try (FileInputStream ifs = new FileInputStream(packagePath);
+ InputStream inStream = new BufferedInputStream(ifs);) {
+
+ // Validate input stream
+ if (false == FileUtil.validateStream(ifs)) {
+ logger.error("Failed to validate file stream");
+ return funcTestId;
+ }
+
+ // IP and Port needs to be configured !!!
+ RestResponse rsp = RestfulClient.post(oMsbDetails.getDefaultServer().getHost(),
+ Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),
+ CommonConstant.functionTest.FUNCTEST_URL, buildRequest(inStream));
+ if (!checkValidResponse(rsp)) {
+ logger.error("Failed to validate response");
+ return funcTestId;
+ }
+
+ funcTestId = rsp.getResult();
+ logger.info("Response for Function Test :", funcTestId);
+
+ return funcTestId.replaceAll("\"", "");
+ } catch (NumberFormatException e) {
+ logger.error("Invalid port number :", oMsbDetails.getDefaultServer().getPort());
+ } catch (FileNotFoundException exp) {
+ logger.error("File not found Exception for file:", onBoradFuncTestReq.getPackagePath());
+ logger.error("File not found Exception for :", exp);
+ } catch (IOException e) {
+ logger.error("IOException:", e);
+ }
+
+ return funcTestId;
+ }
+
+ /**
+ * Interface to get Function Test Results
+ *
+ * @param key
+ * @return null or resultkey
+ */
+ public static String getTestResultsByFuncTestKey(String key) {
+
+ // Input key cannot be null- no need to validate
+
+ String result = null;
+ MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
+ if (null == oMsbDetails) {
+ logger.error("Failed to get MSB details during getTestResultsByFuncTestKey !!!");
+ return result;
+ }
+
+ logger.info("GetTestResultsByFuncTestKey for Function Test Results for :" + key);
+ RestResponse rspGet = RestfulClient.get(oMsbDetails.getDefaultServer().getHost(),
+ Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),
+ CommonConstant.functionTest.FUNCTEST_RESULT_URL + key);
+ if (false == checkValidResponse(rspGet)) {
+ logger.error("Failed to convert String Json Response to TestResults list:" + rspGet.getResult());
+ return result;
+ }
+
+ result = rspGet.getResult();
+ logger.info("Function Test Results for Key:" + key + "Response:" + rspGet.getResult());
+ return result;
+ }
+
+ /**
+ * Interface to get Function Test Results
+ *
+ * @param strJsonRequest
+ * @return
+ */
+ public static String executeFunctionTest(String strJsonRequest) {
+
+ String result = null;
+ if (null == strJsonRequest) {
+ logger.error("Invalid input- Input is null");
+ return result;
+ }
+
+ logger.info("ExecuteFunctionTest Test request Received:" + strJsonRequest);
+
+ MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
+ if (null == oMsbDetails) {
+ logger.error("Failed to get MSB details during getTestResultsByFuncTestKey !!!");
+ return result;
+ }
+
+ logger.info("GetTestResultsByFuncTestKey for Function Test Results for :" + strJsonRequest);
+ RestResponse rspGet = RestfulClient.sendPostRequest(oMsbDetails.getDefaultServer().getHost(),
+ oMsbDetails.getDefaultServer().getPort(), CommonConstant.functionTest.FUNCTEST_RESULT_URL,
+ strJsonRequest);
+ if (false == checkValidResponse(rspGet)) {
+ logger.error("Failed to convert String Json Response to TestResults list:" + rspGet.getResult());
+ return result;
+ }
+
+ result = rspGet.getResult();
+ logger.info("ExecuteFunctionTest Function Test Result: " + rspGet.getResult());
+ return result;
+ }
+
+ /**
+ * Check Response is Valid
+ *
+ * @param rsp
+ * @return valid or invalid
+ */
+ private static boolean checkValidResponse(RestResponse rsp) {
+ if ((null == rsp.getStatusCode()) || (null == rsp.getResult())
+ || (RestConstant.RESPONSE_CODE_200 != rsp.getStatusCode()
+ && RestConstant.RESPONSE_CODE_201 != rsp.getStatusCode())) {
+ return false;
+ }
+ return true;
+ }
+
+ private static HttpEntity buildRequest(InputStream inputStream) throws FileNotFoundException {
+ MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+ builder.addBinaryBody("file", inputStream);
+ return builder.build();
+ }
}
-