Modify the bug about uploadPackage and queryPackageById
authornancylizi <li.zi30@zte.com.cn>
Mon, 26 Sep 2016 02:51:22 +0000 (10:51 +0800)
committernancylizi <li.zi30@zte.com.cn>
Mon, 26 Sep 2016 02:51:22 +0000 (10:51 +0800)
Issue-id:TOSCA-77

Change-Id: I2697f150bca4404bd2c806c9669961c2ddba6de2
Signed-off-by: nancylizi <li.zi30@zte.com.cn>
catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapper.java
catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java
catalog-core/catalog-mgr/src/test/java/org/openo/commontosca/catalog/wrapper/PackageWrapperTest.java

index 0f54f03..dbe570c 100644 (file)
@@ -70,13 +70,8 @@ public class PackageWrapper {
     ArrayList<PackageData> dbResult = new ArrayList<PackageData>();
     ArrayList<PackageMeta> result = new ArrayList<PackageMeta>();
     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();
   }
 
   /**
index 6354e6a..75d02af 100644 (file)
@@ -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<PackageData> dbResult) {
     ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
     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("\\", "/");
index 4622542..d6dc15b 100644 (file)
@@ -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());