aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java')
-rw-r--r--catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/wrapper/PackageWrapperUtil.java847
1 files changed, 434 insertions, 413 deletions
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 2837fd36..6354e6a1 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
@@ -1,413 +1,434 @@
-/**
- * Copyright 2016 [ZTE] and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.openo.commontosca.catalog.wrapper;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-
-import javax.ws.rs.NotFoundException;
-
-import org.openo.commontosca.catalog.common.CommonConstant;
-import org.openo.commontosca.catalog.common.FileUtil;
-import org.openo.commontosca.catalog.common.MsbAddrConfig;
-import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
-import org.openo.commontosca.catalog.db.resource.PackageManager;
-import org.openo.commontosca.catalog.entity.EnumProcessState;
-import org.openo.commontosca.catalog.entity.EnumType;
-import org.openo.commontosca.catalog.entity.request.PackageBasicInfo;
-import org.openo.commontosca.catalog.ftp.Ftp;
-import org.openo.commontosca.catalog.model.entity.ServiceTemplate;
-import org.openo.commontosca.catalog.model.externalservice.entity.lifecycle.InstanceEntity;
-import org.openo.commontosca.catalog.model.externalservice.lifecycle.LifeCycleServiceConsumer;
-import org.openo.commontosca.catalog.common.ToolUtil;
-import org.openo.commontosca.catalog.db.entity.PackageData;
-import org.openo.commontosca.catalog.entity.CsarPackage;
-import org.openo.commontosca.catalog.entity.EnumOnboardState;
-import org.openo.commontosca.catalog.entity.EnumOperationalState;
-import org.openo.commontosca.catalog.entity.EnumUsageState;
-import org.openo.commontosca.catalog.entity.response.PackageMeta;
-import org.openo.commontosca.catalog.ftp.FtpUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-
-/**
- * @author 00164331
- *
- */
-public class PackageWrapperUtil {
- private static final Logger LOG = LoggerFactory.getLogger(PackageWrapperUtil.class);
-
-
- public static List<CsarPackage> formJson2Packages(String packageJson) {
- List<CsarPackage> packageList =
- new Gson().fromJson(packageJson, new TypeToken<List<CsarPackage>>() {}.getType());
- if (null == packageList || packageList.size() == 0) {
- throw new NotFoundException("Package do not exist");
- }
- return packageList;
- }
-
- public static long getPacakgeSize(String fileLocation) {
- File file = new File(fileLocation);
- return file.length();
- }
-
- public static PackageData getPackageData(PackageMeta meta) {
- PackageData packageData = new PackageData();
- packageData.setCreateTime(meta.getCreateTime());
- packageData.setDeletionPending(String.valueOf(meta.isDeletionPending()));
- packageData.setDownloadUri(meta.getDownloadUri());
- packageData.setFormat(meta.getFormat());
- packageData.setModifyTime(meta.getModifyTime());
- packageData.setName(meta.getName());
- packageData.setCsarId(meta.getCsarId());
- packageData.setOperationalState(meta.getOperationalState().toString());
- packageData.setProvider(meta.getProvider());
- String fileSize = meta.getSize();
- packageData.setSize(fileSize);
- packageData.setType(meta.getType());
- packageData.setUsageState(meta.getUsageState().toString());
- packageData.setVersion(meta.getVersion());
- packageData.setOnBoardState(meta.getOnBoardState());
- packageData.setProcessState(meta.getProcessState().toString());
- return packageData;
- }
-
- public static boolean isUploadEnd(String contentRange, String csarName) {
- String range = contentRange;
- range = range.replace("bytes", "").trim();
- range = range.substring(0, range.indexOf("/"));
- String size =
- contentRange.substring(contentRange.indexOf("/") + 1, contentRange.length()).trim();
- int fileSize = Integer.parseInt(size);
- String[] ranges = range.split("-");
- int startPosition = Integer.parseInt(ranges[0]);
- if (startPosition == 0) {
- // delPackageBySync(csarName);
- }
- // index start from 0
- int endPosition = Integer.parseInt(ranges[1]) + 1;
- if (endPosition >= fileSize) {
- return true;
- }
- return false;
- }
-
- public static ArrayList<PackageData> getPackageInfoById(String csarId) {
- ArrayList<PackageData> result = new ArrayList<PackageData>();
- try {
- result = PackageManager.getInstance().queryPackageByCsarId(csarId);
- } catch (CatalogResourceException e) {
- LOG.error("query package by csarId from db error ! " + e.getMessage());
- }
- return result;
- }
-
- public static PackageMeta getPackageMeta(String fileName, String fileLocation,
- PackageBasicInfo basic) {
- PackageMeta packageMeta = new PackageMeta();
- long size = getPacakgeSize(fileLocation);
- packageMeta.setFormat(basic.getFormat());
- String packageId = ToolUtil.generateId();
- packageMeta.setName(fileName.replace(CommonConstant.CSAR_SUFFIX, ""));
- packageMeta.setCsarId(packageId);
- packageMeta.setType(basic.getType().toString());
- packageMeta.setVersion(basic.getVersion());
- packageMeta.setProvider(basic.getProvider());
- packageMeta.setDeletionPending(false);
- String sizeStr = ToolUtil.getFormatFileSize(size);
- packageMeta.setSize(sizeStr);
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String currentTime = sdf1.format(new Date());
- packageMeta.setCreateTime(currentTime);
- packageMeta.setModifyTime(currentTime);
- packageMeta.setOperationalState(EnumOperationalState.Disabled);
- packageMeta.setUsageState(EnumUsageState.NotInUse);
- packageMeta.setOnBoardState(EnumOnboardState.nonOnBoarded.getValue());
- packageMeta.setProcessState(EnumProcessState.normal);
- return packageMeta;
- }
-
- public static String getPackagePath(String csarId) {
- ArrayList<PackageData> packageList = new ArrayList<PackageData>();
- String downloadUri = null;
- try {
- packageList = PackageManager.getInstance().queryPackageByCsarId(csarId);
- downloadUri = packageList.get(0).getDownloadUri();
- } catch (CatalogResourceException e) {
- LOG.error("Query CSAR package by ID failed ! csarId = " + csarId);
- }
- return downloadUri;
- }
-
-
- public static HashSet<String> instanceConvertToHashSet(ArrayList<InstanceEntity> instancelist) {
- HashSet<String> result = new HashSet<String>();
- if (instancelist != null) {
- for (InstanceEntity instance : instancelist) {
- result.add(instance.getServiceTemplateId());
- }
- }
- return result;
- }
-
- public static boolean isExistInstanceCSAR(String csarId) {
- // 查询各O(GSO、NFVO、SDNO)的资源实例数据库,查询指定csarId对应的服务模版
- ArrayList<ServiceTemplate> templateList = queryAvailableTemplatesByCsar(csarId);
- // 调生命周期的接口查询所有实例,查询实例中是否包含指定csarId对应的服务模析ID
- HashSet<String> templateSet = instanceConvertToHashSet(LifeCycleServiceConsumer.getInstances());
- if (templateList != null && templateList.size() > 0 && templateSet.size() > 0) {
- for (ServiceTemplate temp : templateList) {
- if (templateSet.contains(temp.getServiceTemplateId())) {
- return true;
- }
- }
- }
- return false;
- }
-
- public static ArrayList<ServiceTemplate> queryAvailableTemplatesByCsar(String csarId) {
- return null;
- // ArrayList<ServiceTemplate> resultlist = new ArrayList<ServiceTemplate>();
- // String filter = LDAPUtil.getObjectClassFilter(LDAPConstant.OBJECTCLASS_CSAR);
- // String result =
- // LDAPDataFactory.getInstance().queryData(EnumLDAPData.SERVICETEMPLATE, null, false,
- // filter);
- // Type type = new TypeToken<ArrayList<ServiceTemplate>>() {}.getType();
- // ArrayList<ServiceTemplate> templateList = new Gson().fromJson(result, type);
- // for (ServiceTemplate temp : templateList) {
- // if (temp.getCsarid().equals(csarId)) {
- // resultlist.add(temp);
- // }
- // }
- // return resultlist;
- }
-
- // public static void publishDeletionPendingStatusCometdMessage(String csarid) {
- // try {
- // Map<String, Object> cometdMessage = new HashMap<String, Object>();
- // cometdMessage.put("csarid", csarid);
- // cometdMessage.put("status", "deletionPending");
- // CometdService.getInstance().publish(CommonConstant.COMETD_CHANNEL_PACKAGE_DELETE,
- // cometdMessage);
- // } catch (CometdException e) {
- // LOG.error("publish delfinish cometdmsg fail.", e);
- // }
- // }
-
- /**
- * @param ftpUrl
- * @return
- */
- public static Ftp getFtpDetail(String ftpUrl) {
- Ftp ftp = new Ftp();
- int index1 = ftpUrl.indexOf("ftp://");
- int index2 = ftpUrl.indexOf("@");
- String userPassSubString = ftpUrl.substring(index1, index2);
- int index3 = userPassSubString.indexOf(":");
- String userName = userPassSubString.substring(0, index3);
- String pass = userPassSubString.substring(index3 + 1);
- String subString1 = ftpUrl.substring(index2 + 1);
- int index4 = subString1.indexOf("/");
- String ipPortSubString = subString1.substring(0, index4);
- int index5 = ipPortSubString.indexOf(":");
- String ip = ipPortSubString.substring(0, index5);
- String port = ipPortSubString.substring(index5 + 1);
- int index6 = ftpUrl.lastIndexOf("/");
- String path = ftpUrl.substring(0, index6);
- ftp.setIpAddr(ip);
- ftp.setPath(path);
- ftp.setPort(Integer.valueOf(port));
- ftp.setPwd(pass);
- ftp.setUserName(userName);
- return ftp;
- }
-
- /**
- * @param ftpUrl
- * @return
- */
- // public static String getFtpDir(String ftpUrl) {
- // // TODO Auto-generated method stub
- // return null;
- // }
-
- /**
- * @param ftpUrl
- * @return
- */
- public static String getPackageName(String ftpUrl) {
- int index = ftpUrl.lastIndexOf("/");
- String packageName = ftpUrl.substring(index);
- return packageName;
- }
-
- public static void downPackageFromFtp(String ftpUrl, String tempDirName) {
- Ftp ftp = new Ftp();
- ftp = PackageWrapperUtil.getFtpDetail(ftpUrl);
- String remoteBaseDir = ftp.getPath();
- try {
- FtpUtil.startDown(ftp, tempDirName, remoteBaseDir);
- } catch (Exception e) {
- LOG.error("Down package from ftp failed !");
- }
- }
-
- /**
- * @param dbResult
- * @return
- */
- public static ArrayList<PackageMeta> packageDataList2PackageMetaList(
- 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);
- }
- return metas;
- }
-
- public static EnumOnboardState getEnumByValue(String value) {
- if (value == "non-onBoarded") {
- return EnumOnboardState.nonOnBoarded;
- } else {
- return EnumOnboardState.onBoarded;
- }
- }
-
- private static PackageMeta packageData2PackageMeta(PackageData packageData) {
- PackageMeta meta = new PackageMeta();
- meta.setCsarId(packageData.getCsarId());
- meta.setCreateTime(packageData.getCreateTime());
- meta.setDeletionPending(Boolean.getBoolean(packageData.getDeletionPending()));
- String packageUri =
- packageData.getDownloadUri() + packageData.getName() + CommonConstant.CSAR_SUFFIX;
- String packageUrl = getUrl(packageUri);
- meta.setDownloadUri(packageUrl);
- meta.setFormat(packageData.getFormat());
- meta.setModifyTime(packageData.getModifyTime());
- meta.setName(packageData.getName());
- meta.setOperationalState(EnumOperationalState.valueOf(packageData.getOperationalState()));
- meta.setProvider(packageData.getProvider());
- meta.setSize(packageData.getSize());
- meta.setType(packageData.getType());
- meta.setUsageState(EnumUsageState.valueOf(packageData.getUsageState()));
- meta.setVersion(packageData.getVersion());
- meta.setOnBoardState(packageData.getOnBoardState());
- meta.setProcessState(EnumProcessState.valueOf(packageData.getProcessState()));
- return meta;
- }
-
- public static String getUrl(String uri) {
- String url = null;
- if ((MsbAddrConfig.getMsbAddress().endsWith("/")) && uri.startsWith("/")) {
- url = MsbAddrConfig.getMsbAddress() + uri.substring(1);
- }
- url = MsbAddrConfig.getMsbAddress() + uri;
- String urlresult = url.replace("\\", "/");
- return urlresult;
- }
-
- public static String getLocalPath(String uri) {
- File srcDir = new File(uri);
- String localPath = srcDir.getAbsolutePath();
- return localPath.replace("\\", "/");
- }
-
- /**
- * @param fileLocation
- * @return
- */
- public static PackageBasicInfo getPacageBasicInfo(String fileLocation) {
- PackageBasicInfo basicInfo = new PackageBasicInfo();
- String unzipDir = ToolUtil.getUnzipDir(fileLocation);
- boolean isXmlCsar = false;
- try {
- String tempfolder = unzipDir;
- ArrayList<String> unzipFiles = FileUtil.unzip(fileLocation, tempfolder);
- if (unzipFiles.isEmpty()) {
- isXmlCsar = true;
- }
- for (String unzipFile : unzipFiles) {
- if (unzipFile.endsWith(CommonConstant.CSAR_META)) {
- basicInfo = readCsarMeta(unzipFile);
- }
- if (ToolUtil.isYamlFile(new File(unzipFile))) {
- isXmlCsar = false;
- }
- }
- } catch (IOException e) {
- LOG.error("judge package type error !");
- }
- if (isXmlCsar) {
- basicInfo.setFormat(CommonConstant.PACKAGE_XML_FORMAT);
- } else {
- basicInfo.setFormat(CommonConstant.PACKAGE_YAML_FORMAT);
- }
- return basicInfo;
- }
-
- /**
- * @param unzipFile
- * @return
- */
- private static PackageBasicInfo readCsarMeta(String unzipFile) {
- PackageBasicInfo basicInfo = new PackageBasicInfo();
- File file = new File(unzipFile);
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(file));
- String tempString = null;
- while ((tempString = reader.readLine()) != null) {
- if (tempString.startsWith(CommonConstant.CSAR_TYPE_META)) {
- int count = tempString.indexOf(":") + 1;
- basicInfo.setType(EnumType.valueOf(tempString.substring(count)));
- }
- if (tempString.startsWith(CommonConstant.CSAR_PROVIDER_META)) {
- int count = tempString.indexOf(":") + 1;
- basicInfo.setProvider(tempString.substring(count));
- }
- if (tempString.startsWith(CommonConstant.CSAR_VERSION_META)) {
- int count = tempString.indexOf(":") + 1;
- basicInfo.setVersion(tempString.substring(count));
- }
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e1) {
- }
- }
- }
- return basicInfo;
- }
-}
+/**
+ * Copyright 2016 [ZTE] and others.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openo.commontosca.catalog.wrapper;
+
+import com.google.gson.Gson;
+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.MsbAddrConfig;
+import org.openo.commontosca.catalog.common.ToolUtil;
+import org.openo.commontosca.catalog.db.entity.PackageData;
+import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
+import org.openo.commontosca.catalog.db.resource.PackageManager;
+import org.openo.commontosca.catalog.entity.CsarPackage;
+import org.openo.commontosca.catalog.entity.EnumOnboardState;
+import org.openo.commontosca.catalog.entity.EnumOperationalState;
+import org.openo.commontosca.catalog.entity.EnumProcessState;
+import org.openo.commontosca.catalog.entity.EnumType;
+import org.openo.commontosca.catalog.entity.EnumUsageState;
+import org.openo.commontosca.catalog.entity.request.PackageBasicInfo;
+import org.openo.commontosca.catalog.entity.response.PackageMeta;
+import org.openo.commontosca.catalog.ftp.Ftp;
+import org.openo.commontosca.catalog.ftp.FtpUtil;
+import org.openo.commontosca.catalog.model.entity.ServiceTemplate;
+import org.openo.commontosca.catalog.model.externalservice.entity.lifecycle.InstanceEntity;
+import org.openo.commontosca.catalog.model.externalservice.lifecycle.LifeCycleServiceConsumer;
+import org.openo.commontosca.catalog.model.parser.EnumPackageFormat;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+
+import javax.ws.rs.NotFoundException;
+
+public class PackageWrapperUtil {
+ private static final Logger LOG = LoggerFactory.getLogger(PackageWrapperUtil.class);
+
+
+ /**
+ * change json to object list.
+ * @param packageJson json
+ * @return package list
+ */
+ public static List<CsarPackage> formJson2Packages(String packageJson) {
+ List<CsarPackage> packageList =
+ new Gson().fromJson(packageJson, new TypeToken<List<CsarPackage>>() {}.getType());
+ if (null == packageList || packageList.size() == 0) {
+ throw new NotFoundException("Package do not exist");
+ }
+ return packageList;
+ }
+
+ public static long getPacakgeSize(String fileLocation) {
+ File file = new File(fileLocation);
+ return file.length();
+ }
+
+ /**
+ * change package metadata to fix database.
+ * @param meta package metadata
+ * @return package data in database
+ */
+ public static PackageData getPackageData(PackageMeta meta) {
+ PackageData packageData = new PackageData();
+ packageData.setCreateTime(meta.getCreateTime());
+ packageData.setDeletionPending(String.valueOf(meta.isDeletionPending()));
+ packageData.setDownloadUri(meta.getDownloadUri());
+ packageData.setFormat(meta.getFormat());
+ packageData.setModifyTime(meta.getModifyTime());
+ packageData.setName(meta.getName());
+ packageData.setCsarId(meta.getCsarId());
+ packageData.setOperationalState(meta.getOperationalState().toString());
+ packageData.setProvider(meta.getProvider());
+ String fileSize = meta.getSize();
+ packageData.setSize(fileSize);
+ packageData.setType(meta.getType());
+ packageData.setUsageState(meta.getUsageState().toString());
+ packageData.setVersion(meta.getVersion());
+ packageData.setOnBoardState(meta.getOnBoardState());
+ packageData.setProcessState(meta.getProcessState().toString());
+ return packageData;
+ }
+
+ /**
+ * judge wether is the end of upload package.
+ * @param contentRange package sise range
+ * @param csarName package name
+ * @return boolean
+ */
+ public static boolean isUploadEnd(String contentRange, String csarName) {
+ String range = contentRange;
+ range = range.replace("bytes", "").trim();
+ range = range.substring(0, range.indexOf("/"));
+ String size =
+ contentRange.substring(contentRange.indexOf("/") + 1, contentRange.length()).trim();
+ int fileSize = Integer.parseInt(size);
+ String[] ranges = range.split("-");
+ int startPosition = Integer.parseInt(ranges[0]);
+ if (startPosition == 0) {
+ // delPackageBySync(csarName);
+ }
+ // index start from 0
+ int endPosition = Integer.parseInt(ranges[1]) + 1;
+ if (endPosition >= fileSize) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * get package detail by package id.
+ * @param csarId package id
+ * @return package detail
+ */
+ public static ArrayList<PackageData> getPackageInfoById(String csarId) {
+ ArrayList<PackageData> result = new ArrayList<PackageData>();
+ try {
+ result = PackageManager.getInstance().queryPackageByCsarId(csarId);
+ } catch (CatalogResourceException e1) {
+ LOG.error("query package by csarId from db error ! " + e1.getMessage());
+ }
+ return result;
+ }
+
+ /**
+ * get package metadata from basic info.
+ * @param fileName package name
+ * @param fileLocation the location of package
+ * @param basic basic infomation of package. include version, type and provider
+ * @return package metadata
+ */
+ public static PackageMeta getPackageMeta(String fileName, String fileLocation,
+ PackageBasicInfo basic) {
+ PackageMeta packageMeta = new PackageMeta();
+ long size = getPacakgeSize(fileLocation);
+ packageMeta.setFormat(basic.getFormat());
+ String packageId = ToolUtil.generateId();
+ packageMeta.setName(fileName.replace(CommonConstant.CSAR_SUFFIX, ""));
+ packageMeta.setCsarId(packageId);
+ packageMeta.setType(basic.getType().toString());
+ packageMeta.setVersion(basic.getVersion());
+ packageMeta.setProvider(basic.getProvider());
+ packageMeta.setDeletionPending(false);
+ String sizeStr = ToolUtil.getFormatFileSize(size);
+ packageMeta.setSize(sizeStr);
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String currentTime = sdf1.format(new Date());
+ packageMeta.setCreateTime(currentTime);
+ packageMeta.setModifyTime(currentTime);
+ packageMeta.setOperationalState(EnumOperationalState.Disabled);
+ packageMeta.setUsageState(EnumUsageState.NotInUse);
+ packageMeta.setOnBoardState(EnumOnboardState.nonOnBoarded.getValue());
+ packageMeta.setProcessState(EnumProcessState.normal);
+ return packageMeta;
+ }
+
+ /**
+ * get downloadUri from package metadata.
+ * @param csarId package id
+ * @return download uri
+ */
+ public static String getPackagePath(String csarId) {
+ ArrayList<PackageData> packageList = new ArrayList<PackageData>();
+ String downloadUri = null;
+ try {
+ packageList = PackageManager.getInstance().queryPackageByCsarId(csarId);
+ downloadUri = packageList.get(0).getDownloadUri();
+ } catch (CatalogResourceException e1) {
+ LOG.error("Query CSAR package by ID failed ! csarId = " + csarId);
+ }
+ return downloadUri;
+ }
+
+
+ /**
+ * convert instance to hashset.
+ * @param instancelist instance list
+ * @return HashSet
+ */
+ public static HashSet<String> instanceConvertToHashSet(ArrayList<InstanceEntity> instancelist) {
+ HashSet<String> result = new HashSet<String>();
+ if (instancelist != null) {
+ for (InstanceEntity instance : instancelist) {
+ result.add(instance.getServiceTemplateId());
+ }
+ }
+ return result;
+ }
+
+ /**
+ * get ftp detail information.
+ * @param ftpUrl ftp url
+ * @return ftp detail
+ */
+ public static Ftp getFtpDetail(String ftpUrl) {
+ Ftp ftp = new Ftp();
+ int index1 = ftpUrl.indexOf("ftp://");
+ int index2 = ftpUrl.indexOf("@");
+ String userPassSubString = ftpUrl.substring(index1, index2);
+ int index3 = userPassSubString.indexOf(":");
+ String userName = userPassSubString.substring(0, index3);
+ String pass = userPassSubString.substring(index3 + 1);
+ String subString1 = ftpUrl.substring(index2 + 1);
+ int index4 = subString1.indexOf("/");
+ String ipPortSubString = subString1.substring(0, index4);
+ int index5 = ipPortSubString.indexOf(":");
+ String ip = ipPortSubString.substring(0, index5);
+ String port = ipPortSubString.substring(index5 + 1);
+ int index6 = ftpUrl.lastIndexOf("/");
+ String path = ftpUrl.substring(0, index6);
+ ftp.setIpAddr(ip);
+ ftp.setPath(path);
+ ftp.setPort(Integer.valueOf(port));
+ ftp.setPwd(pass);
+ ftp.setUserName(userName);
+ return ftp;
+ }
+
+ /**
+ * get package name from ftpUrl.
+ * @param ftpUrl ftp url
+ * @return package name
+ */
+ public static String getPackageName(String ftpUrl) {
+ int index = ftpUrl.lastIndexOf("/");
+ String packageName = ftpUrl.substring(index);
+ return packageName;
+ }
+
+ /**
+ * download package from ftp.
+ * @param ftpUrl ftp url
+ * @param tempDirName temp directory
+ */
+ public static void downPackageFromFtp(String ftpUrl, String tempDirName) {
+ Ftp ftp = new Ftp();
+ ftp = PackageWrapperUtil.getFtpDetail(ftpUrl);
+ String remoteBaseDir = ftp.getPath();
+ try {
+ FtpUtil.startDown(ftp, tempDirName, remoteBaseDir);
+ } catch (Exception e1) {
+ LOG.error("Down package from ftp failed !");
+ }
+ }
+
+ /**
+ * translate package data from database to package metadata.
+ * @param dbResult data from database
+ * @return package metadata list
+ */
+ public static ArrayList<PackageMeta> packageDataList2PackageMetaList(
+ 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);
+ }
+ return metas;
+ }
+
+ /**
+ * get onboarded enum value.
+ * @param value onboard value
+ * @return enum
+ */
+ public static EnumOnboardState getEnumByValue(String value) {
+ if (value == "non-onBoarded") {
+ return EnumOnboardState.nonOnBoarded;
+ } else {
+ return EnumOnboardState.onBoarded;
+ }
+ }
+
+ private static PackageMeta packageData2PackageMeta(PackageData packageData) {
+ PackageMeta meta = new PackageMeta();
+ meta.setCsarId(packageData.getCsarId());
+ meta.setCreateTime(packageData.getCreateTime());
+ meta.setDeletionPending(Boolean.getBoolean(packageData.getDeletionPending()));
+ String packageUri =
+ packageData.getDownloadUri() + packageData.getName() + CommonConstant.CSAR_SUFFIX;
+ String packageUrl = getUrl(packageUri);
+ meta.setDownloadUri(packageUrl);
+ meta.setFormat(packageData.getFormat());
+ meta.setModifyTime(packageData.getModifyTime());
+ meta.setName(packageData.getName());
+ meta.setOperationalState(EnumOperationalState.valueOf(packageData.getOperationalState()));
+ meta.setProvider(packageData.getProvider());
+ meta.setSize(packageData.getSize());
+ meta.setType(packageData.getType());
+ meta.setUsageState(EnumUsageState.valueOf(packageData.getUsageState()));
+ meta.setVersion(packageData.getVersion());
+ meta.setOnBoardState(packageData.getOnBoardState());
+ meta.setProcessState(EnumProcessState.valueOf(packageData.getProcessState()));
+ return meta;
+ }
+
+ /**
+ * add msb address as prefix to uri.
+ * @param uri uri
+ * @return url
+ */
+ public static String getUrl(String uri) {
+ String url = null;
+ if ((MsbAddrConfig.getMsbAddress().endsWith("/")) && uri.startsWith("/")) {
+ url = MsbAddrConfig.getMsbAddress() + uri.substring(1);
+ }
+ url = MsbAddrConfig.getMsbAddress() + uri;
+ String urlresult = url.replace("\\", "/");
+ return urlresult;
+ }
+
+ /**
+ * get local path.
+ * @param uri uri
+ * @return local path
+ */
+ public static String getLocalPath(String uri) {
+ File srcDir = new File(uri);
+ String localPath = srcDir.getAbsolutePath();
+ return localPath.replace("\\", "/");
+ }
+
+ /**
+ * get package basic information.
+ * @param fileLocation package location
+ * @return package basic information
+ */
+ public static PackageBasicInfo getPacageBasicInfo(String fileLocation) {
+ PackageBasicInfo basicInfo = new PackageBasicInfo();
+ String unzipDir = ToolUtil.getUnzipDir(fileLocation);
+ boolean isXmlCsar = false;
+ try {
+ String tempfolder = unzipDir;
+ ArrayList<String> unzipFiles = FileUtil.unzip(fileLocation, tempfolder);
+ if (unzipFiles.isEmpty()) {
+ isXmlCsar = true;
+ }
+ for (String unzipFile : unzipFiles) {
+ if (unzipFile.endsWith(CommonConstant.CSAR_META)) {
+ basicInfo = readCsarMeta(unzipFile);
+ }
+ if (ToolUtil.isYamlFile(new File(unzipFile))) {
+ isXmlCsar = false;
+ }
+ }
+ } catch (IOException e1) {
+ LOG.error("judge package type error !");
+ }
+ if (isXmlCsar) {
+ basicInfo.setFormat(CommonConstant.PACKAGE_XML_FORMAT);
+ } else {
+ basicInfo.setFormat(CommonConstant.PACKAGE_YAML_FORMAT);
+ }
+ return basicInfo;
+ }
+
+ private static PackageBasicInfo readCsarMeta(String unzipFile) {
+ PackageBasicInfo basicInfo = new PackageBasicInfo();
+ File file = new File(unzipFile);
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new FileReader(file));
+ String tempString = null;
+ while ((tempString = reader.readLine()) != null) {
+ if (tempString.startsWith(CommonConstant.CSAR_TYPE_META)) {
+ int count = tempString.indexOf(":") + 1;
+ basicInfo.setType(EnumType.valueOf(tempString.substring(count)));
+ }
+ if (tempString.startsWith(CommonConstant.CSAR_PROVIDER_META)) {
+ int count = tempString.indexOf(":") + 1;
+ basicInfo.setProvider(tempString.substring(count));
+ }
+ if (tempString.startsWith(CommonConstant.CSAR_VERSION_META)) {
+ int count = tempString.indexOf(":") + 1;
+ basicInfo.setVersion(tempString.substring(count));
+ }
+ }
+ reader.close();
+ } catch (IOException e2) {
+ e2.printStackTrace();
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e1) {
+ LOG.error("close reader failed ! " + e1.getMessage());
+ }
+ }
+ }
+ return basicInfo;
+ }
+
+ /**
+ * get package format enum.
+ * @param format package format
+ * @return package format enum
+ */
+ public static EnumPackageFormat getPackageFormat(String format) {
+ if (format.equals("xml")) {
+ return EnumPackageFormat.TOSCA_XML;
+ } else if (format.equals("yml") || format.equals("yaml")) {
+ return EnumPackageFormat.TOSCA_YAML;
+ } else {
+ return null;
+ }
+ }
+}