summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/pom.xml5
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/msb/MsbRegistration.java135
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestExceutor.java138
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestHook.java71
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/validatelifecycle/LifecycleTestHook.java69
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/wrapper/PackageWrapper.java17
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/test/resources/clearwater_ns.csarbin9710 -> 4600 bytes
7 files changed, 206 insertions, 229 deletions
diff --git a/vnfmarket-be/vnf-sdk-marketplace/pom.xml b/vnfmarket-be/vnf-sdk-marketplace/pom.xml
index d281b973..6a526b52 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/pom.xml
+++ b/vnfmarket-be/vnf-sdk-marketplace/pom.xml
@@ -191,6 +191,11 @@
<version>2.4</version>
</dependency>
<!-- UT end -->
+ <dependency>
+ <groupId>org.onap.vnfsdk.validation</groupId>
+ <artifactId>validation-csar</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
<profiles>
<profile>
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/msb/MsbRegistration.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/msb/MsbRegistration.java
index 50f46583..1278c2ee 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/msb/MsbRegistration.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/msb/MsbRegistration.java
@@ -38,9 +38,9 @@ import org.slf4j.LoggerFactory;
public class MsbRegistration {
private static final Logger LOGGER = LoggerFactory.getLogger(MsbRegistration.class);
-
+
private static MsbRegistration oMsbRegistration = new MsbRegistration();
-
+
private static final String MSB_REGISTION_FILE = "etc/microservice/marketplace_rest.json";
private static final String MSB_REGISTION_URL = "/openoapi/microservices/v1/services?createOrUpdate=false";
private static final String MSB_UN_REGISTION_URL = "/openoapi/microservices/v1/services/{0}/version/{1}/nodes/{2}/{3}";
@@ -49,12 +49,12 @@ public class MsbRegistration {
private static final String PORT = "port";
private static final String SERVICE_NAME = "serviceName";
private static final String VERSION = "version";
-
+
private boolean bRegistrationStatus = false;
-
+
private MsbRegistration () {
}
-
+
public static MsbRegistration getInstance()
{
return oMsbRegistration;
@@ -63,43 +63,43 @@ public class MsbRegistration {
* Interface to handle MSB Registration
* @return
*/
- public int register()
- {
+ public int register()
+ {
File file = new File(MSB_REGISTION_FILE);
- if(!file.exists())
+ if(!file.exists())
{
- LOGGER.info("Stop registering as can't find msb registion file:" + file.getAbsolutePath());
+ LOGGER.info("Stop registering as can't find msb registion file:" + file.getAbsolutePath());
return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FILE_NOT_EXISTS;
}
Map<?, ?> msbRegistionBodyMap = getMsbRegistrationData();
if(null == msbRegistionBodyMap)
{
- LOGGER.info("Reading data from msb registion file failed:" + file.getAbsolutePath());
+ LOGGER.info("Reading data from msb registion file failed:" + file.getAbsolutePath());
return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FILE_NOT_EXISTS;
}
LOGGER.info("Registering body: " + JsonUtil.toJson(msbRegistionBodyMap));
bRegistrationStatus = sendRequest(msbRegistionBodyMap);
-
- return bRegistrationStatus
- ? CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS
+
+ return bRegistrationStatus
+ ? CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS
: CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
}
- private Map<?, ?> getMsbRegistrationData()
- {
+ private Map<?, ?> getMsbRegistrationData()
+ {
Map<?, ?> msbRegistionBodyMap = null;
- try
+ try
{
ObjectMapper mapper = new ObjectMapper();
byte[] bytes = Files.readAllBytes(Paths.get(MSB_REGISTION_FILE));
msbRegistionBodyMap = mapper.readValue(bytes, Map.class);
-
+
replaceLocalIp(msbRegistionBodyMap);
- }
- catch(IOException e)
+ }
+ catch(IOException e)
{
LOGGER.error("Failed to get microservice bus registration body, " + e);
}
@@ -111,84 +111,80 @@ public class MsbRegistration {
* @param msbRegistionBodyMap
* @return
*/
- private boolean sendRequest(Map<?, ?> msbRegistionBodyMap)
+ private boolean sendRequest(Map<?, ?> msbRegistionBodyMap)
{
LOGGER.info("Start registering to microservice bus");
- String rawData = JsonUtil.toJson(msbRegistionBodyMap);
+ String rawData = JsonUtil.toJson(msbRegistionBodyMap);
MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
if(null == oMsbDetails) {
LOGGER.info("MSB Details is NULL , Registration Failed !!!");
return false;
- }
+ }
RestResponse oResponse = RestfulClient.sendPostRequest(oMsbDetails.getDefaultServer().getHost(),
oMsbDetails.getDefaultServer().getPort(),
MSB_REGISTION_URL, rawData);
-
+
if(null == oResponse){
LOGGER.info("Null Unregister Response for " + MSB_REGISTION_URL);
return false;
- }
- LOGGER.info("Response Code Received for MBS Registration:" + oResponse.getStatusCode());
+ }
+ LOGGER.info("Response Code Received for MBS Registration:" + oResponse.getStatusCode());
return isSuccess(oResponse.getStatusCode()) ? true : false;
}
-
- public int unRegister()
+
+ public int unRegister()
{
if(!bRegistrationStatus){
- return CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS;
+ return CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS;
}
-
+
MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
if(null == oMsbDetails){
LOGGER.info("MSB Details is NULL , Registration Failed !!!");
return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
}
-
+
File file = new File(MSB_REGISTION_FILE);
if(!file.exists()){
- LOGGER.info("Stop registering as can't find msb registion file:" + file.getAbsolutePath());
- return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FILE_NOT_EXISTS;
- }
-
- Map<?, ?> msbRegistionBodyMap = getMsbRegistrationData();
- if(null == msbRegistionBodyMap){
- LOGGER.info("Reading data from msb registion file failed:" + file.getAbsolutePath());
+ LOGGER.info("Stop registering as can't find msb registion file:" + file.getAbsolutePath());
return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FILE_NOT_EXISTS;
}
-
- String serviceName = (String)msbRegistionBodyMap.get(SERVICE_NAME);
- String version = (String)msbRegistionBodyMap.get(VERSION);
-
- @SuppressWarnings("unchecked")
- List<Map<String, String>> nodes = (List<Map<String, String>>)msbRegistionBodyMap.get(NODES);
- if((null == serviceName ) || (null == version ) || (null == nodes ))
- {
- LOGGER.info("Readed data is Invalid from msb registion file:" + file.getAbsolutePath());
+
+ try {
+ Map<?, ?> msbRegistionBodyMap = getMsbRegistrationData();
+
+ String serviceName = (String)msbRegistionBodyMap.get(SERVICE_NAME);
+ String version = (String)msbRegistionBodyMap.get(VERSION);
+
+ @SuppressWarnings("unchecked")
+ List<Map<String, String>> nodes = (List<Map<String, String>>)msbRegistionBodyMap.get(NODES);
+
+ Map<String, String> node = nodes.get(0);
+ String ip = node.get(IP);
+ String port = node.get(PORT);
+
+ String url = MessageFormat.format(MSB_UN_REGISTION_URL, serviceName, version, ip, port);
+ LOGGER.info("Start Unregister to microservice bus, url: " + url);
+
+ RestResponse oResponse = RestfulClient.delete(oMsbDetails.getDefaultServer().getHost(),
+ Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),url);
+
+ if(null == oResponse) {
+ LOGGER.info("Null Unregister Response for " + url);
+ return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
+ }
+ LOGGER.info("Unregister Response " + oResponse.getStatusCode());
+ return isSuccess(oResponse.getStatusCode()) ?
+ CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS :
+ CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
+ } catch(NullPointerException e) {
+ LOGGER.info("Readed data is Invalid from msb registion file:" + file.getAbsolutePath(), e);
return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FILE_NOT_EXISTS;
}
-
- Map<String, String> node = nodes.get(0);
- String ip = node.get(IP);
- String port = node.get(PORT);
-
- String url = MessageFormat.format(MSB_UN_REGISTION_URL, serviceName, version, ip, port);
- LOGGER.info("Start Unregister to microservice bus, url: " + url);
-
- RestResponse oResponse = RestfulClient.delete(oMsbDetails.getDefaultServer().getHost(),
- Integer.parseInt(oMsbDetails.getDefaultServer().getPort()),url);
-
- if(null == oResponse) {
- LOGGER.info("Null Unregister Response for " + url);
- return CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
- }
- LOGGER.info("Unregister Response " + oResponse.getStatusCode());
- return isSuccess(oResponse.getStatusCode()) ?
- CommonConstant.MsbRegisterCode.MSDB_REGISTER_SUCESS :
- CommonConstant.MsbRegisterCode.MSDB_REGISTER_FAILED;
}
@SuppressWarnings("unchecked")
- private void replaceLocalIp(Map<?, ?> msbRegistionBodyMap)
+ private void replaceLocalIp(Map<?, ?> msbRegistionBodyMap)
{
List<Map<String, String>> nodes = (List<Map<String, String>>)msbRegistionBodyMap.get(NODES);
Map<String, String> node = nodes.get(0);
@@ -203,15 +199,16 @@ public class MsbRegistration {
node.put(IP, ipAddress);
LOGGER.info("Local ip: " + ipAddress);
- }
- catch(UnknownHostException e)
+ }
+ catch(UnknownHostException e)
{
LOGGER.error("Unable to get IP address, " + e);
}
}
- private boolean isSuccess(int httpCode)
+ private boolean isSuccess(int httpCode)
{
return (httpCode == 200 || httpCode == 201) ? true : false;
}
}
+
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 17422c44..0f947347 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
@@ -19,101 +19,96 @@ import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
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.common.FileUtil;
import org.onap.vnfsdk.marketplace.msb.MsbDetails;
import org.onap.vnfsdk.marketplace.msb.MsbDetailsHolder;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class FunctionTestExceutor
+public class FunctionTestExceutor
{
- private static final Logger logger = LoggerFactory.getLogger(FunctionTestExceutor.class);
-
+ private static final Logger logger = LoggerFactory.getLogger(FunctionTestExceutor.class);
+
private FunctionTestExceutor()
{}
-
+
/**
- * Interface to Send Request to Start Function test
+ * 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;
+
+ String funcTestId = null;
MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
if(null == oMsbDetails)
{
logger.error("Failed to get MSB details during execFunctionTest !!!");
return funcTestId;
}
-
- FileInputStream ifs = null;
- InputStream inStream = null;
-
- try
- {
- ifs = new FileInputStream(packagePath);
- inStream = new BufferedInputStream(ifs);
-
+
+ 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()),
+ 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("\"", "");
+ 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);
- }
- finally
+ }
+ catch (IOException e)
{
- FileUtil.closeInputStream(inStream);
- FileUtil.closeFileStream(ifs);
- }
- return funcTestId;
+ logger.error("IOException:" , e);
+ }
+
+ return funcTestId;
}
-
+
/**
* Interface to get Function Test Results
* @param key
* @return
*/
- public static String getTestResultsByFuncTestKey(String key)
- {
+ 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()),
+
+ 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))
{
@@ -122,15 +117,15 @@ public class FunctionTestExceutor
}
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)
- {
+ public static String executeFunctionTest(String strJsonRequest)
+ {
logger.info("executeFunctionTest Test request Received:" + strJsonRequest);
MsbDetails oMsbDetails = MsbDetailsHolder.getMsbDetails();
if(null == oMsbDetails)
@@ -138,10 +133,10 @@ public class FunctionTestExceutor
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(),
+
+ 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))
@@ -151,47 +146,16 @@ public class FunctionTestExceutor
}
logger.info("executeFunctionTest Function Test Result: " + rspGet.getResult());
return rspGet.getResult();
- }
-
- /**
- * Interface to get Function Test Results
- * @param key
- * @return
- */
- public static String getTestResultsByFuncTestKeyMsb(String key)
- {
- logger.info("getTestResultsByFuncTestKey for Function Test Results for :" + key);
-
- Map<String, String> paramsMap = new HashMap<String, String>();
- paramsMap.put(CommonConstant.HttpContext.URL, CommonConstant.functionTest.FUNCTEST_RESULT_URL + key);
- paramsMap.put(CommonConstant.HttpContext.METHOD_TYPE, CommonConstant.MethodType.GET);
-
- /*RestfulResponse response = RestfulUtil.sendRestRequest(paramsMap, null, null);
- if(!checkValidRestResponse(response))
- {
- logger.error("Respone for getTestResultsByFuncTestKeyMsb is not valid !!!");
- return null;
- }
-
- if(null != response.getResponseContent())
- {
- logger.info("Function Test Results via MSB for Key:" + key + "Response:" + response.getResponseContent());
- }
- else
- {
- logger.info("NULL Function Test Results via MSB for Key:" + key);
- } */
- return null;
- }
-
+ }
+
/**
* Check Response is Valid
* @param rsp
* @return
*/
- private static boolean checkValidResponse(RestResponse rsp)
+ private static boolean checkValidResponse(RestResponse rsp)
{
- if (rsp.getStatusCode() == null || rsp.getResult() == null
+ if (rsp.getStatusCode() == null || rsp.getResult() == null
|| (RestConstant.RESPONSE_CODE_200 != rsp.getStatusCode() && RestConstant.RESPONSE_CODE_201 != rsp.getStatusCode()))
{
return false;
@@ -199,15 +163,6 @@ public class FunctionTestExceutor
return true;
}
- /*private static boolean checkValidRestResponse(RestfulResponse rsp)
- {
- if ((rsp == null) || (RestConstant.RESPONSE_CODE_200 != rsp.getStatus() && RestConstant.RESPONSE_CODE_201 != rsp.getStatus()))
- {
- return false;
- }
- return true;
- }*/
-
@SuppressWarnings("deprecation")
private static HttpEntity buildRequest(InputStream inputStream)
throws FileNotFoundException {
@@ -217,3 +172,4 @@ public class FunctionTestExceutor
return builder.build();
}
}
+
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestHook.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestHook.java
index e5ec7e6e..d89a36e1 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestHook.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/functiontest/FunctionTestHook.java
@@ -32,7 +32,7 @@ import org.onap.vnfsdk.marketplace.onboarding.entity.ResultKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class FunctionTestHook
+public class FunctionTestHook
{
private static final Logger logger = LoggerFactory.getLogger(FunctionTestHook.class);
@@ -42,26 +42,26 @@ public class FunctionTestHook
* @return
*/
public int exec(OnBoradingRequest onBoradingReq)
- {
+ {
logger.info("OnboradingRequest received for Package:" + onBoradingReq.getCsarId() + " Path:"+ onBoradingReq.getPackagePath());
buildResultPath(onBoradingReq);
-
+
OnBoardingResult oFuncTestResult = new OnBoardingResult();
buildFunctResponse(onBoradingReq,oFuncTestResult);
updateResult(oFuncTestResult);
//STEP 1:Check Package Exists
- //---------------------------
+ //---------------------------
if(!FileUtil.checkFileExists(onBoradingReq.getPackagePath()))
{
- logger.info("Package Not Found at Path:" + onBoradingReq.getPackagePath() + ", Package Id:" + onBoradingReq.getCsarId());
+ logger.info("Package Not Found at Path:" + onBoradingReq.getPackagePath() + ", Package Id:" + onBoradingReq.getCsarId());
oFuncTestResult.setOperFinished(true);
oFuncTestResult.setOperStatus(EnumResult.FAIL.getIndex());
buildFuncTestResponse(oFuncTestResult,CommonConstant.functionTest.FUNCTEST_PACKAGE_EXISTS,EnumOperationStatus.FAILED.getIndex());
- updateResult(oFuncTestResult);
+ updateResult(oFuncTestResult);
return EnumResult.FAIL.getIndex();
- }
+ }
buildFuncTestResponse(oFuncTestResult,CommonConstant.functionTest.FUNCTEST_PACKAGE_EXISTS,EnumOperationStatus.SUCCESS.getIndex());
updateResult(oFuncTestResult);
@@ -70,13 +70,13 @@ public class FunctionTestHook
//---------------------------------------
String functestResultKey = FunctionTestExceutor.execFunctionTest(onBoradingReq);
if(null == functestResultKey)
- {
+ {
oFuncTestResult.setOperFinished(true);
- oFuncTestResult.setOperStatus(EnumResult.FAIL.getIndex());
+ oFuncTestResult.setOperStatus(EnumResult.FAIL.getIndex());
buildFuncTestResponse(oFuncTestResult,CommonConstant.functionTest.FUNCTEST_EXEC,EnumOperationStatus.FAILED.getIndex());
- updateResult(oFuncTestResult);
+ updateResult(oFuncTestResult);
return EnumResult.FAIL.getIndex();
- }
+ }
oFuncTestResult.setOperFinished(true);
oFuncTestResult.setOperStatus(EnumResult.SUCCESS.getIndex());
@@ -87,15 +87,15 @@ public class FunctionTestHook
//-------------------------------------------------
storeFuncTestResultKey(onBoradingReq,functestResultKey);
- return (oFuncTestResult.getOperStatus() == EnumResult.SUCCESS.getIndex())
+ return (oFuncTestResult.getOperStatus() == EnumResult.SUCCESS.getIndex())
? EnumResult.SUCCESS.getIndex() : EnumResult.FAIL.getIndex();
}
/**
- *
+ *
* @param onBoradingReq
*/
- private void buildResultPath(OnBoradingRequest onBoradingReq)
+ private void buildResultPath(OnBoradingRequest onBoradingReq)
{
String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId();
if(!FileUtil.checkFileExists(filePath))
@@ -105,11 +105,11 @@ public class FunctionTestHook
}
/**
- *
+ *
* @param packageData
* @return
*/
- public static String getFuncTestResults(PackageData packageData)
+ public static String getFuncTestResults(PackageData packageData)
{
logger.info("Function Test results request for Package:" + packageData.getCsarId());
ResultKey keydata = getFuncTestResultKey(packageData);
@@ -117,7 +117,7 @@ public class FunctionTestHook
{
logger.info("Function Test key Not Found for Package Id:",packageData.getCsarId());
return null;
- }
+ }
return FunctionTestExceutor.getTestResultsByFuncTestKey(keydata.getKey());
}
@@ -126,14 +126,14 @@ public class FunctionTestHook
* @param onBoradingReq
* @param resultKey
*/
- private void storeFuncTestResultKey(OnBoradingRequest onBoradingReq,String resultKey)
+ private void storeFuncTestResultKey(OnBoradingRequest onBoradingReq,String resultKey)
{
//Currently we will make JSON and Store JSON to Package Path)
//-------------------------------------------------------------------------------
- String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId() + File.separator + "functestResultKey.json";
+ String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId() + File.separator + "functestResultKey.json";
logger.info("Function test Results Key for Package Id:" + onBoradingReq.getCsarId() + ", Key:" + resultKey + " Path" + filePath);
-
+
ResultKey oResultKey = new ResultKey();
oResultKey.setCsarId(onBoradingReq.getCsarId());
oResultKey.setOperTypeId(CommonConstant.functionTest.FUNCTEST_OPERTYPE_ID);
@@ -146,12 +146,12 @@ public class FunctionTestHook
* Store Function test Execution Results
* @param oFuncTestResult
*/
- private void updateResult(OnBoardingResult oFuncTestResult)
- {
+ private void updateResult(OnBoardingResult oFuncTestResult)
+ {
//STore Results to DB(Currently we will make JSON and Store JSON to Package Path)
//-------------------------------------------------------------------------------
logger.info("Function test Status for Package Id:" + oFuncTestResult.getCsarId() + ", Result:" + ToolUtil.objectToString(oFuncTestResult));
- String filePath = getResultStorePath() + File.separator + oFuncTestResult.getCsarId() + File.separator + "functionTest.json";
+ String filePath = getResultStorePath() + File.separator + oFuncTestResult.getCsarId() + File.separator + "functionTest.json";
FileUtil.writeJsonDatatoFile(filePath,oFuncTestResult);
}
@@ -160,7 +160,7 @@ public class FunctionTestHook
* @param onBoradingReq
* @param oFuncTestResult
*/
- private void buildFunctResponse(OnBoradingRequest onBoradingReq, OnBoardingResult oFuncTestResult)
+ private void buildFunctResponse(OnBoradingRequest onBoradingReq, OnBoardingResult oFuncTestResult)
{
oFuncTestResult.setOperFinished(false);
oFuncTestResult.setCsarId(onBoradingReq.getCsarId());
@@ -174,36 +174,36 @@ public class FunctionTestHook
functTesExec.setOperId(CommonConstant.functionTest.FUNCTEST_EXEC);
functTesExec.setStatus(EnumOperationStatus.NOTSTARTED.getIndex());
- List<OnBoardingOperResult> operResult = new ArrayList<OnBoardingOperResult>();
+ List<OnBoardingOperResult> operResult = new ArrayList<>();
operResult.add(oPackageExists);
- operResult.add(functTesExec);
+ operResult.add(functTesExec);
oFuncTestResult.setOperResult(operResult);
}
- public static OnBoardingResult getOnBoardingResult(PackageData packageData)
+ public static OnBoardingResult getOnBoardingResult(PackageData packageData)
{
- String filePath = getResultStorePath() + File.separator + packageData.getCsarId() +File.separator + "functionTest.json";
+ String filePath = getResultStorePath() + File.separator + packageData.getCsarId() +File.separator + "functionTest.json";
logger.info("On Boarding Status for Package Id:" + packageData.getCsarId() + ", Result Path:" + filePath);
return (OnBoardingResult)FileUtil.readJsonDatafFromFile(filePath,OnBoardingResult.class);
}
- private static ResultKey getFuncTestResultKey(PackageData packageData)
+ private static ResultKey getFuncTestResultKey(PackageData packageData)
{
String fileName = getResultStorePath() + File.separator + packageData.getCsarId() + File.separator + "functestResultKey.json";
-
+
logger.info("Func Test Result key for Package Id:" + packageData.getCsarId() + ", Result Path:" + fileName);
- return (ResultKey) FileUtil.readJsonDatafFromFile(fileName,ResultKey.class);
+ return (ResultKey) FileUtil.readJsonDatafFromFile(fileName,ResultKey.class);
}
-
- private static String getResultStorePath()
+
+ private static String getResultStorePath()
{
return org.onap.vnfsdk.marketplace.filemanage.http.ToolUtil.getHttpServerAbsolutePath();
}
- private void buildFuncTestResponse(OnBoardingResult oFuncTestResult, String opreKey, int operStatusVal)
- {
+ private void buildFuncTestResponse(OnBoardingResult oFuncTestResult, String opreKey, int operStatusVal)
+ {
List<OnBoardingOperResult> operStatusList = oFuncTestResult.getOperResult();
for(OnBoardingOperResult operObj: operStatusList)
{
@@ -215,3 +215,4 @@ public class FunctionTestHook
}
}
}
+
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/validatelifecycle/LifecycleTestHook.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/validatelifecycle/LifecycleTestHook.java
index b3d6bf19..6170d9bb 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/validatelifecycle/LifecycleTestHook.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/onboarding/hooks/validatelifecycle/LifecycleTestHook.java
@@ -32,7 +32,7 @@ import org.onap.vnfsdk.marketplace.onboarding.entity.ResultKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class LifecycleTestHook
+public class LifecycleTestHook
{
private static final Logger logger = LoggerFactory.getLogger(LifecycleTestHook.class);
@@ -42,37 +42,37 @@ public class LifecycleTestHook
* @return
*/
public int exec(OnBoradingRequest onBoradingReq)
- {
+ {
logger.info("OnboradingRequest Lifecycle Request received for Package:" + onBoradingReq.getCsarId() + " Path:"+ onBoradingReq.getPackagePath());
buildResultPath(onBoradingReq);
-
+
OnBoardingResult olifecycleTestResult = new OnBoardingResult();
buildlifecycleTestResponse(onBoradingReq,olifecycleTestResult);
updateResult(olifecycleTestResult);
-
+
if(null == onBoradingReq.getCsarIdCatalouge() || onBoradingReq.getCsarIdCatalouge().isEmpty())
- {
+ {
olifecycleTestResult.setOperFinished(true);
- olifecycleTestResult.setOperStatus(EnumResult.FAIL.getIndex());
+ olifecycleTestResult.setOperStatus(EnumResult.FAIL.getIndex());
buildFuncTestResponse(olifecycleTestResult,CommonConstant.LifeCycleTest.LIFECYCLE_TEST_EXEC,EnumOperationStatus.FAILED.getIndex());
- updateResult(olifecycleTestResult);
+ updateResult(olifecycleTestResult);
return EnumResult.FAIL.getIndex();
}
-
+
LifeCycleTestReq oLifeCycleTestReq = new LifeCycleTestReq();
populateLifeCycleReq(onBoradingReq,oLifeCycleTestReq);
-
+
//STEP 2: Execute Life Cycle Test and Get Result Back !!!!
//---------------------------------------------------------
String lifecycleTestResultKey = LifecycleTestExceutor.execlifecycleTest(onBoradingReq,oLifeCycleTestReq);
if(null == lifecycleTestResultKey)
- {
+ {
olifecycleTestResult.setOperFinished(true);
- olifecycleTestResult.setOperStatus(EnumResult.FAIL.getIndex());
+ olifecycleTestResult.setOperStatus(EnumResult.FAIL.getIndex());
buildFuncTestResponse(olifecycleTestResult,CommonConstant.LifeCycleTest.LIFECYCLE_TEST_EXEC,EnumOperationStatus.FAILED.getIndex());
- updateResult(olifecycleTestResult);
+ updateResult(olifecycleTestResult);
return EnumResult.FAIL.getIndex();
}
@@ -85,24 +85,24 @@ public class LifecycleTestHook
//-------------------------------------------------
storelifecycleResultKey(onBoradingReq,lifecycleTestResultKey);
- return (olifecycleTestResult.getOperStatus() == EnumResult.SUCCESS.getIndex())
+ return (olifecycleTestResult.getOperStatus() == EnumResult.SUCCESS.getIndex())
? EnumResult.SUCCESS.getIndex() : EnumResult.FAIL.getIndex();
}
- private void populateLifeCycleReq(OnBoradingRequest onBoradingReq, LifeCycleTestReq oLifeCycleTestReq)
- {
+ private void populateLifeCycleReq(OnBoradingRequest onBoradingReq, LifeCycleTestReq oLifeCycleTestReq)
+ {
oLifeCycleTestReq.setCsarId(onBoradingReq.getCsarId());
oLifeCycleTestReq.setLabVimId(oLifeCycleTestReq.getLabVimId());
-
- List<String> vimIds = new ArrayList<String>();
+
+ List<String> vimIds = new ArrayList<>();
oLifeCycleTestReq.setVimIds(vimIds);
}
/**
- *
+ *
* @param onBoradingReq
*/
- private void buildResultPath(OnBoradingRequest onBoradingReq)
+ private void buildResultPath(OnBoradingRequest onBoradingReq)
{
String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId();
if(!FileUtil.checkFileExists(filePath))
@@ -115,12 +115,12 @@ public class LifecycleTestHook
* Store Function test Execution Results
* @param oFuncTestResult
*/
- private void updateResult(OnBoardingResult oFuncTestResult)
- {
+ private void updateResult(OnBoardingResult oFuncTestResult)
+ {
//STore Results to DB(Currently we will make JSON and Store JSON to Package Path)
//-------------------------------------------------------------------------------
logger.info("Lifecycle test Status for Package Id:" + oFuncTestResult.getCsarId() + ", Result:" + ToolUtil.objectToString(oFuncTestResult));
- String filePath = getResultStorePath() + File.separator + oFuncTestResult.getCsarId() + File.separator + "lifecycleTest.json";
+ String filePath = getResultStorePath() + File.separator + oFuncTestResult.getCsarId() + File.separator + "lifecycleTest.json";
FileUtil.writeJsonDatatoFile(filePath,oFuncTestResult);
}
@@ -129,7 +129,7 @@ public class LifecycleTestHook
* @param onBoradingReq
* @param oFuncTestResult
*/
- private void buildlifecycleTestResponse(OnBoradingRequest onBoradingReq, OnBoardingResult oTestResult)
+ private void buildlifecycleTestResponse(OnBoradingRequest onBoradingReq, OnBoardingResult oTestResult)
{
oTestResult.setOperFinished(false);
oTestResult.setCsarId(onBoradingReq.getCsarId());
@@ -139,14 +139,14 @@ public class LifecycleTestHook
lifecycleTestExec.setOperId(CommonConstant.LifeCycleTest.LIFECYCLE_TEST_EXEC);
lifecycleTestExec.setStatus(EnumOperationStatus.NOTSTARTED.getIndex());
- List<OnBoardingOperResult> operResult = new ArrayList<OnBoardingOperResult>();
- operResult.add(lifecycleTestExec);
+ List<OnBoardingOperResult> operResult = new ArrayList<>();
+ operResult.add(lifecycleTestExec);
oTestResult.setOperResult(operResult);
}
- public static OnBoardingResult getOnBoardingResult(PackageData packageData)
+ public static OnBoardingResult getOnBoardingResult(PackageData packageData)
{
- String filePath = getResultStorePath() + File.separator + packageData.getCsarId() +File.separator + "lifecycleTest.json";
+ String filePath = getResultStorePath() + File.separator + packageData.getCsarId() +File.separator + "lifecycleTest.json";
logger.info("On Boarding Status for Package Id:" + packageData.getCsarId() + ", Result Path:" + filePath);
return (OnBoardingResult)FileUtil.readJsonDatafFromFile(filePath,OnBoardingResult.class);
@@ -157,14 +157,14 @@ public class LifecycleTestHook
* @param onBoradingReq
* @param resultKey
*/
- private void storelifecycleResultKey(OnBoradingRequest onBoradingReq,String resultKey)
+ private void storelifecycleResultKey(OnBoradingRequest onBoradingReq,String resultKey)
{
//Currently we will make JSON and Store JSON to Package Path)
//-------------------------------------------------------------------------------
- String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId() + File.separator + "lifecycleTestResultKey.json";
+ String filePath = getResultStorePath() + File.separator + onBoradingReq.getCsarId() + File.separator + "lifecycleTestResultKey.json";
logger.info("Function test Results Key for Package Id:" + onBoradingReq.getCsarId() + ", Key:" + resultKey + " Path" + filePath);
-
+
ResultKey oResultKey = new ResultKey();
oResultKey.setCsarId(onBoradingReq.getCsarId());
oResultKey.setOperTypeId(CommonConstant.LifeCycleTest.LIFECYCLE_TEST_OPERTYPE_ID);
@@ -172,14 +172,14 @@ public class LifecycleTestHook
FileUtil.writeJsonDatatoFile(filePath,oResultKey);
}
-
- private static String getResultStorePath()
+
+ private static String getResultStorePath()
{
return org.onap.vnfsdk.marketplace.filemanage.http.ToolUtil.getHttpServerAbsolutePath();
}
- private void buildFuncTestResponse(OnBoardingResult oFuncTestResult, String opreKey, int operStatusVal)
- {
+ private void buildFuncTestResponse(OnBoardingResult oFuncTestResult, String opreKey, int operStatusVal)
+ {
List<OnBoardingOperResult> operStatusList = oFuncTestResult.getOperResult();
for(OnBoardingOperResult operObj: operStatusList)
{
@@ -191,3 +191,4 @@ public class LifecycleTestHook
}
}
}
+
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/wrapper/PackageWrapper.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/wrapper/PackageWrapper.java
index b3773c5f..9178931e 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/wrapper/PackageWrapper.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vnfsdk/marketplace/wrapper/PackageWrapper.java
@@ -58,6 +58,8 @@ import org.onap.vnfsdk.marketplace.onboarding.onboardmanager.OnBoardingHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.onap.validation.csar.CsarValidator;
+
import net.sf.json.JSONObject;
public class PackageWrapper {
@@ -230,6 +232,21 @@ public class PackageWrapper {
uploadedInputStream.close();
+ try {
+ CsarValidator cv = new CsarValidator(packageId, fileLocation);
+
+ if (!cv.validateCsar()) {
+ LOG.error("Could not validate failed");
+ return Response.status(Status.EXPECTATION_FAILED).build();
+ }
+
+
+ } catch (Exception e) {
+ LOG.error("CSAR validation panicked");
+ return Response.status(Status.EXPECTATION_FAILED).build();
+ }
+
+
PackageBasicInfo basicInfo = PackageWrapperUtil.getPacageBasicInfo(fileLocation);
UploadPackageResponse result = new UploadPackageResponse();
Boolean isEnd = PackageWrapperUtil.isUploadEnd(contentRange);
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/test/resources/clearwater_ns.csar b/vnfmarket-be/vnf-sdk-marketplace/src/test/resources/clearwater_ns.csar
index f2794795..3d89ab6d 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/test/resources/clearwater_ns.csar
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/test/resources/clearwater_ns.csar
Binary files differ