From f8a3c48b5ca94ffb04903b252c032073d17c83a9 Mon Sep 17 00:00:00 2001 From: nancylizi Date: Mon, 26 Sep 2016 10:51:22 +0800 Subject: Modify the bug about uploadPackage and queryPackageById Issue-id:TOSCA-77 Change-Id: I2697f150bca4404bd2c806c9669961c2ddba6de2 Signed-off-by: nancylizi --- .../catalog/wrapper/PackageWrapper.java | 121 ++++++++++----------- .../catalog/wrapper/PackageWrapperUtil.java | 25 +++-- .../catalog/wrapper/PackageWrapperTest.java | 19 ++-- 3 files changed, 86 insertions(+), 79 deletions(-) (limited to 'catalog-core/catalog-mgr') diff --git a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapper.java b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapper.java index 0f54f03f..dbe570c8 100644 --- a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapper.java +++ b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapper.java @@ -70,13 +70,8 @@ public class PackageWrapper { ArrayList dbResult = new ArrayList(); ArrayList result = new ArrayList(); dbResult = PackageWrapperUtil.getPackageInfoById(csarId); - if (dbResult.size() != 0) { result = PackageWrapperUtil.packageDataList2PackageMetaList(dbResult); return Response.ok(result).build(); - } else { - String errorMsg = "get package info by Id error !"; - return RestUtil.getRestException(errorMsg); - } } /** @@ -89,12 +84,7 @@ public class PackageWrapper { */ public Response uploadPackage(InputStream uploadedInputStream, FormDataContentDisposition fileDetail, HttpHeaders head) throws Exception { - PackageBasicInfo basicInfo = new PackageBasicInfo(); - String tempDirName = null; int fileSize = 0; - String fileName = ""; - UploadPackageResponse result = new UploadPackageResponse(); - PackageMeta packageMeta = new PackageMeta(); if (uploadedInputStream == null) { LOG.info("the uploadStream is null"); return Response.serverError().build(); @@ -103,65 +93,68 @@ public class PackageWrapper { LOG.info("the fileDetail is null"); return Response.serverError().build(); } + LOG.info("the fileDetail = " + ToolUtil.objectToString(fileDetail)); + String contentRange = null; + String fileName = ""; + fileName = ToolUtil.processFileName(fileDetail.getFileName()); + String tempDirName = null; + tempDirName = ToolUtil.getTempDir(CommonConstant.CATALOG_CSAR_DIR_NAME, fileName); + if (head != null) { + contentRange = head.getHeaderString(CommonConstant.HTTP_HEADER_CONTENT_RANGE); + } + LOG.info("store package chunk file, fileName:" + fileName + ",contentRange:" + contentRange); + if (ToolUtil.isEmptyString(contentRange)) { + fileSize = uploadedInputStream.available(); + contentRange = "0-" + fileSize + "/" + fileSize; + } + String fileLocation = + ToolUtil.storeChunkFileInLocal(tempDirName, fileName, uploadedInputStream); + LOG.info("the fileLocation when upload package is :" + fileLocation); + uploadedInputStream.close(); - try { - String contentRange = null; - fileName = ToolUtil.processFileName(fileDetail.getFileName()); - tempDirName = ToolUtil.getTempDir(CommonConstant.CATALOG_CSAR_DIR_NAME, fileName); - if (head != null) { - contentRange = head.getHeaderString(CommonConstant.HTTP_HEADER_CONTENT_RANGE); - } - LOG.debug("store package chunk file, fileName:" + fileName + ",contentRange:" + contentRange); - if (ToolUtil.isEmptyString(contentRange)) { - fileSize = uploadedInputStream.available(); - contentRange = "0-" + fileSize + "/" + fileSize; - } - String fileLocation = - ToolUtil.storeChunkFileInLocal(tempDirName, fileName, uploadedInputStream); - LOG.info("the fileLocation when upload package is :" + fileLocation); - uploadedInputStream.close(); + PackageBasicInfo basicInfo = new PackageBasicInfo(); + basicInfo = PackageWrapperUtil.getPacageBasicInfo(fileLocation); + String path = basicInfo.getType().toString() + File.separator + basicInfo.getProvider() + + File.separator + fileName.replace(".csar", "") + File.separator + basicInfo.getVersion(); + LOG.info("dest path is : " + path); + PackageMeta packageMeta = new PackageMeta(); + packageMeta = PackageWrapperUtil.getPackageMeta(fileName, fileLocation, basicInfo); + String dowloadUri = File.separator + path + File.separator; + String destPath = File.separator + path; + packageMeta.setDownloadUri(dowloadUri); + LOG.info("packageMeta = " + ToolUtil.objectToString(packageMeta)); + Boolean isEnd = PackageWrapperUtil.isUploadEnd(contentRange, fileName); + if (isEnd) { + String serviceTemplateId = null; + boolean uploadResult = FileManagerFactory.createFileManager().upload(tempDirName, destPath); + if (uploadResult == true) { + PackageData packageData = PackageWrapperUtil.getPackageData(packageMeta); + PackageData packateDbData = PackageManager.getInstance().addPackage(packageData); + LOG.info("Store package data to database succed ! packateDbData = " + + ToolUtil.objectToString(packateDbData)); + try { + String tempCsarPath = tempDirName + File.separator + fileName; + serviceTemplateId = ModelParserFactory.getInstance().parse(packageMeta.getCsarId(), + tempCsarPath, PackageWrapperUtil.getPackageFormat(packageMeta.getFormat())); + LOG.info("Package parse success ! serviceTemplateId = " + serviceTemplateId); + } catch (Exception e1) { + LOG.error("Parse package error ! "); + PackageManager.getInstance().deletePackage(packateDbData.getCsarId()); + throw new Exception(e1); + } - basicInfo = PackageWrapperUtil.getPacageBasicInfo(fileLocation); - String path = - basicInfo.getType().toString() + File.separator + basicInfo.getProvider() - + File.separator + fileName.replace(".csar", "") + File.separator - + basicInfo.getVersion(); - LOG.info("dest path is : " + path); - packageMeta = PackageWrapperUtil.getPackageMeta(fileName, fileLocation, basicInfo); - String dowloadUri = File.separator + path + File.separator; - String destPath = File.separator + path; - packageMeta.setDownloadUri(dowloadUri); - LOG.info("packageMeta = " + ToolUtil.objectToString(packageMeta)); - Boolean isEnd = PackageWrapperUtil.isUploadEnd(contentRange, fileName); - if (isEnd) { - boolean uploadResult = FileManagerFactory.createFileManager().upload(tempDirName, destPath); - if (uploadResult == true) { - try { - String tempCsarPath = tempDirName + File.separator + fileName; - ModelParserFactory.getInstance().parse(packageMeta.getCsarId(), - tempCsarPath , PackageWrapperUtil.getPackageFormat(packageMeta.getFormat())); - } catch (CatalogResourceException e1) { - LOG.error("parse package error ! " + e1.getMessage()); - } - PackageData packageData = PackageWrapperUtil.getPackageData(packageMeta); - PackageManager.getInstance().addPackage(packageData); + if (null != packateDbData || null == serviceTemplateId) { + PackageManager.getInstance().deletePackage(packateDbData.getCsarId()); } - LOG.info("upload package file end, fileName:" + fileName); - } - result.setCsarId(packageMeta.getCsarId()); - return Response.ok(result).build(); - } catch (Exception e1) { - LOG.error("upload package fail.", e1); - String csarId = packageMeta.getCsarId(); - if (csarId != null) { - PackageManager.getInstance().deletePackage(csarId); - } - return RestUtil.getRestException(e1.getMessage()); - } finally { - if (tempDirName != null) { - ToolUtil.deleteDir(new File(tempDirName)); } + LOG.info("upload package file end, fileName:" + fileName); + } + UploadPackageResponse result = new UploadPackageResponse(); + result.setCsarId(packageMeta.getCsarId()); + if (tempDirName != null) { + ToolUtil.deleteDir(new File(tempDirName)); } + return Response.ok(result).build(); } /** diff --git a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java index 6354e6a1..75d02af6 100644 --- a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java +++ b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java @@ -21,6 +21,7 @@ import com.google.gson.reflect.TypeToken; import org.openo.commontosca.catalog.common.CommonConstant; import org.openo.commontosca.catalog.common.FileUtil; +import org.openo.commontosca.catalog.common.HttpServerAddrConfig; import org.openo.commontosca.catalog.common.MsbAddrConfig; import org.openo.commontosca.catalog.common.ToolUtil; import org.openo.commontosca.catalog.db.entity.PackageData; @@ -277,10 +278,12 @@ public class PackageWrapperUtil { ArrayList dbResult) { ArrayList metas = new ArrayList(); PackageMeta meta = new PackageMeta(); - for (int i = 0; i < dbResult.size(); i++) { - PackageData data = dbResult.get(i); - meta = packageData2PackageMeta(data); - metas.add(meta); + if (dbResult.size() > 0) { + for (int i = 0; i < dbResult.size(); i++) { + PackageData data = dbResult.get(i); + meta = packageData2PackageMeta(data); + metas.add(meta); + } } return metas; } @@ -317,7 +320,11 @@ public class PackageWrapperUtil { meta.setUsageState(EnumUsageState.valueOf(packageData.getUsageState())); meta.setVersion(packageData.getVersion()); meta.setOnBoardState(packageData.getOnBoardState()); - meta.setProcessState(EnumProcessState.valueOf(packageData.getProcessState())); + String processState = packageData.getProcessState(); + if (processState.equals("deletefail")) { + processState = "deleteFailed"; + } + meta.setProcessState(EnumProcessState.valueOf(processState)); return meta; } @@ -328,8 +335,12 @@ public class PackageWrapperUtil { */ public static String getUrl(String uri) { String url = null; - if ((MsbAddrConfig.getMsbAddress().endsWith("/")) && uri.startsWith("/")) { - url = MsbAddrConfig.getMsbAddress() + uri.substring(1); +// if ((MsbAddrConfig.getMsbAddress().endsWith("/")) && uri.startsWith("/")) { +// url = MsbAddrConfig.getMsbAddress() + uri.substring(1); +// } +// url = MsbAddrConfig.getMsbAddress() + uri; + if ((HttpServerAddrConfig.getHttpServerAddress().endsWith("/")) && uri.startsWith("/")) { + url = HttpServerAddrConfig.getHttpServerAddress() + uri.substring(1); } url = MsbAddrConfig.getMsbAddress() + uri; String urlresult = url.replace("\\", "/"); diff --git a/catalog-core/catalog-mgr/src/test/java/org/openo/commontosca/catalog/wrapper/PackageWrapperTest.java b/catalog-core/catalog-mgr/src/test/java/org/openo/commontosca/catalog/wrapper/PackageWrapperTest.java index 4622542b..d6dc15b9 100644 --- a/catalog-core/catalog-mgr/src/test/java/org/openo/commontosca/catalog/wrapper/PackageWrapperTest.java +++ b/catalog-core/catalog-mgr/src/test/java/org/openo/commontosca/catalog/wrapper/PackageWrapperTest.java @@ -43,6 +43,9 @@ import org.openo.commontosca.catalog.entity.EnumProcessState; import org.openo.commontosca.catalog.entity.EnumUsageState; import org.openo.commontosca.catalog.entity.response.CsarFileUriResponse; import org.openo.commontosca.catalog.entity.response.PackageMeta; +import org.openo.commontosca.catalog.model.parser.EnumPackageFormat; +import org.openo.commontosca.catalog.model.parser.ModelParserFactory; +import org.openo.commontosca.catalog.model.parser.yaml.zte.ToscaYamlModelParser; import java.io.File; import java.io.FileInputStream; @@ -55,19 +58,18 @@ import javax.ws.rs.core.Response; public class PackageWrapperTest { private static String resourcePath; - - static { - MsbAddrConfig.setMsbAddress("http://127.0.0.1:80"); - } static { + MsbAddrConfig.setMsbAddress("http://10.74.44.28:80"); HttpServerAddrConfig.setHttpServerAddress("http://127.0.0.1:8080"); - } - - static { HttpServerPathConfig.setHttpServerPath("../tomcat/webapps/ROOT/"); + + CatalogAppConfiguration configuration = new CatalogAppConfiguration(); + Config.setConfigration(configuration); + Config.getConfigration().setParserType("zte"); + ModelParserFactory.getInstance().put(EnumPackageFormat.TOSCA_YAML, new TestYamlModelParser()); } - + private static PackageManager manager; @@ -135,6 +137,7 @@ public class PackageWrapperTest { e3.printStackTrace(); } } + assertNotNull(result); assertEquals(200, result.getStatus()); assertNotNull(result.getEntity()); -- cgit 1.2.3-korg