diff options
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 Binary files differindex 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 |