X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-model%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fmodel%2Foperations%2Fimpl%2FCsarOperation.java;h=0e88d6b0813e032b1c08b2d156e09d3c965db0ff;hb=dfc9cdee69426b48d683e119dda9fae9154e6fde;hp=88edb1fd9ea9ba396b35b91e264708a6742c91db;hpb=e849acfa8d05d86d5f57a3e45f1e2acaf023cb93;p=sdc.git diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java index 88edb1fd9e..0e88d6b081 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java @@ -20,134 +20,90 @@ package org.openecomp.sdc.be.model.operations.impl; -import java.io.File; -import java.io.FileFilter; -import java.io.IOException; -import java.nio.file.Files; -import java.util.Map; - -import javax.annotation.PostConstruct; - -import org.apache.commons.io.filefilter.WildcardFileFilter; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.common.util.ZipUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; - import fj.data.Either; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.common.log.wrappers.Logger; + +import javax.annotation.PostConstruct; +import java.util.Map; @org.springframework.stereotype.Component("csar-operation") public class CsarOperation { - private static Logger log = LoggerFactory.getLogger(CsarOperation.class.getName()); - - @javax.annotation.Resource - private OnboardingClient onboardingClient; - - public static void main(String[] args) { - - CsarOperation csarOperation = new CsarOperation(); - csarOperation.init(); - - String csarUuid = "70025CF6081B489CA7B1CBA583D5278D"; - Either, StorageOperationStatus> csar = csarOperation.getCsar(csarUuid, null); - System.out.println(csar.left().value()); - - } - - @PostConstruct - public void init() { - - } - - public Either, StorageOperationStatus> getMockCsar(String csarUuid) { - File dir = new File("/var/tmp/mockCsar"); - FileFilter fileFilter = new WildcardFileFilter("*.csar"); - File[] files = dir.listFiles(fileFilter); - for (int i = 0; i < files.length; i++) { - File csar = files[i]; - if (csar.getName().startsWith(csarUuid)) { - log.debug("Found CSAR file {} matching the passed csarUuid {}", csar.getAbsolutePath(), csarUuid); - byte[] data; - try { - data = Files.readAllBytes(csar.toPath()); - } catch (IOException e) { - log.debug("Error reading mock file for CSAR, error: {}", e); - return Either.right(StorageOperationStatus.NOT_FOUND); - } - Map readZip = ZipUtil.readZip(data); - return Either.left(readZip); - } - } - log.debug("Couldn't find mock file for CSAR starting with {}", csarUuid); - return Either.right(StorageOperationStatus.CSAR_NOT_FOUND); - } - - /** - * get csar from remote repository - * - * @param csarUuid - * @return - */ - public Either, StorageOperationStatus> getCsar(String csarUuid, User user) { - - Either, StorageOperationStatus> result = onboardingClient.getCsar(csarUuid, user.getUserId()); - - if (result.isRight()) { - log.debug("Cannot find csar {}. Staus returned is {}", csarUuid, result.right().value()); - } else { - Map values = result.left().value(); - if (values != null) { - log.debug("The returned files are {}", values.keySet()); - } - } - - return result; - } - - @SuppressWarnings("unchecked") - public Either getCsarLatestVersion(String csarUuid, User user) { - - Either result = onboardingClient.getPackages(user.getUserId()); - - if (result.isRight()) { - log.debug("Cannot find version for package with Id {}. Status returned is {}", csarUuid, result.right().value()); - } else { - String latestVersion = null; - JsonElement root = new JsonParser().parse(result.left().value()); - JsonArray csarsInfo = root.getAsJsonObject().get("results").getAsJsonArray(); - for (JsonElement csarInfo : csarsInfo) { - Map csarInfoMap = new Gson().fromJson(csarInfo, Map.class); - if(csarInfoMap.get("packageId").equals(csarUuid)){ - String curVersion = csarInfoMap.get("version"); - if(latestVersion == null || isGreater(latestVersion, curVersion)){ - latestVersion = curVersion; - } - } - } - if (latestVersion != null) { - result = Either.left(latestVersion); - } else { - log.debug("The returned packages are {}. Failed to find latest version for package with Id {}. ", result.left().value(), csarUuid); - result = Either.right(StorageOperationStatus.NOT_FOUND); - } - } - - return result; - } - - private boolean isGreater(String latestVersion, String currentVersion) { - return Double.parseDouble(latestVersion) < Double.parseDouble(currentVersion); - } - - public OnboardingClient getOnboardingClient() { - return onboardingClient; - } + private static final Logger log = Logger.getLogger(CsarOperation.class.getName()); + + @javax.annotation.Resource + private OnboardingClient onboardingClient; + + @PostConstruct + public void init() { + + } + + /** + * get csar from remote repository + * + * @param csarUuid + * @return + */ + public Either, StorageOperationStatus> getCsar(String csarUuid, User user) { + + Either, StorageOperationStatus> result = onboardingClient.getCsar(csarUuid, user.getUserId()); + + if (result.isRight()) { + log.debug("Cannot find csar {}. Staus returned is {}", csarUuid, result.right().value()); + } else { + Map values = result.left().value(); + if (values != null) { + log.debug("The returned files are {}", values.keySet()); + } + } + + return result; + } + + @SuppressWarnings("unchecked") + public Either getCsarLatestVersion(String csarUuid, User user) { + + Either result = onboardingClient.getPackages(user.getUserId()); + + if (result.isRight()) { + log.debug("Cannot find version for package with Id {}. Status returned is {}", csarUuid, result.right().value()); + } else { + String latestVersion = null; + JsonElement root = new JsonParser().parse(result.left().value()); + JsonArray csarsInfo = root.getAsJsonObject().get("results").getAsJsonArray(); + for (JsonElement csarInfo : csarsInfo) { + Map csarInfoMap = new Gson().fromJson(csarInfo, Map.class); + if(csarInfoMap.get("packageId").equals(csarUuid)){ + String curVersion = csarInfoMap.get("version"); + if(latestVersion == null || isGreater(latestVersion, curVersion)){ + latestVersion = curVersion; + } + } + } + if (latestVersion != null) { + result = Either.left(latestVersion); + } else { + log.debug("The returned packages are {}. Failed to find latest version for package with Id {}. ", result.left().value(), csarUuid); + result = Either.right(StorageOperationStatus.NOT_FOUND); + } + } + + return result; + } + + private boolean isGreater(String latestVersion, String currentVersion) { + return Double.parseDouble(latestVersion) < Double.parseDouble(currentVersion); + } + + public OnboardingClient getOnboardingClient() { + return onboardingClient; + } }