diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java | 181 |
1 files changed, 97 insertions, 84 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java b/catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java index ab088ec3d8..2fedcc3b28 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/info/ArtifactTemplateInfo.java @@ -17,7 +17,6 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.be.info; import com.google.gson.Gson; @@ -50,10 +49,10 @@ import org.openecomp.sdc.exception.ResponseFormat; @Setter @NoArgsConstructor public class ArtifactTemplateInfo { + + public static final String CSAR_ARTIFACT = "artifacts"; private static final Logger log = Logger.getLogger(ArtifactTemplateInfo.class); private static final Gson gson = new Gson(); - public static final String CSAR_ARTIFACT = "artifacts"; - private static final String ARTIFACT_TEMPLATE_TYPE = "type"; private static final String FILE_NAME = "fileName"; private static final String ARTIFACT_TEMPLATE_ENV = "env"; @@ -64,14 +63,12 @@ public class ArtifactTemplateInfo { private static final String CSAR_VOLUME = "volume"; private static final String CSAR_NESTED = "nested"; private static final String DESC = "description"; - private String type; private String fileName; private String env; private boolean base; private String groupName; private String description; - private List<ArtifactTemplateInfo> relatedArtifactsInfo; public ArtifactTemplateInfo(String type, String fileName, String env, List<ArtifactTemplateInfo> relatedArtifactsInfo) { @@ -81,14 +78,14 @@ public class ArtifactTemplateInfo { this.relatedArtifactsInfo = relatedArtifactsInfo; } - public static Either<ArtifactTemplateInfo, ResponseFormat> createArtifactTemplateInfoFromJson(ComponentsUtils componentsUtils, String type, Map<String, Object> o, List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, - ArtifactTemplateInfo parentArtifact) { + public static Either<ArtifactTemplateInfo, ResponseFormat> createArtifactTemplateInfoFromJson(ComponentsUtils componentsUtils, String type, + Map<String, Object> o, + List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, + ArtifactTemplateInfo parentArtifact) { String content = gson.toJson(o); JsonObject jsonElement = new JsonObject(); ArtifactTemplateInfo resourceInfo = new ArtifactTemplateInfo(); - jsonElement = gson.fromJson(content, jsonElement.getClass()); - Map<String, Object> artifactTemplateMap = ComponentsUtils.parseJsonToObject(jsonElement.toString(), HashMap.class); if (artifactTemplateMap.containsKey(ARTIFACT_TEMPLATE_TYPE)) { resourceInfo.setType((String) artifactTemplateMap.get(ARTIFACT_TEMPLATE_TYPE)); @@ -104,8 +101,7 @@ public class ArtifactTemplateInfo { String envStr = ""; if (envObj instanceof String) { envStr = (String) envObj; - } - else if (envObj instanceof Map) { + } else if (envObj instanceof Map) { Map envMap = (Map) envObj; if (envMap.containsKey(FILE_NAME)) { envStr = (String) envMap.get(FILE_NAME); @@ -118,57 +114,45 @@ public class ArtifactTemplateInfo { } else { resourceInfo.setDescription((String) artifactTemplateMap.get(FILE_NAME)); } - boolean artifactTypeExist = false; String correctType; if (type.equalsIgnoreCase(CSAR_NESTED)) { correctType = ArtifactTypeEnum.HEAT_NESTED.getType(); - } - else if (type.equalsIgnoreCase(CSAR_VOLUME)) { + } else if (type.equalsIgnoreCase(CSAR_VOLUME)) { correctType = ArtifactTypeEnum.HEAT_VOL.getType(); - } - else if (type.equalsIgnoreCase(CSAR_NETWORK)) { + } else if (type.equalsIgnoreCase(CSAR_NETWORK)) { correctType = ArtifactTypeEnum.HEAT_NET.getType(); - } - else if (type.equalsIgnoreCase(CSAR_ARTIFACT)){ - if( parentArtifact != null) { + } else if (type.equalsIgnoreCase(CSAR_ARTIFACT)) { + if (parentArtifact != null) { correctType = ArtifactTypeEnum.HEAT_ARTIFACT.getType(); - } - else { + } else { correctType = resourceInfo.type; } - } - else if (type.equalsIgnoreCase(CSAR_HEAT)) { + } else if (type.equalsIgnoreCase(CSAR_HEAT)) { correctType = ArtifactTypeEnum.HEAT.getType(); - } - else if (type.equalsIgnoreCase(CSAR_HELM)) { + } else if (type.equalsIgnoreCase(CSAR_HELM)) { correctType = ArtifactTypeEnum.HELM.getType(); - } - else { + } else { correctType = ArtifactTypeEnum.OTHER.getType(); } Either<List<ArtifactType>, ActionStatus> allArtifactTypes = getDeploymentArtifactTypes(NodeTypeEnum.Resource); - if (allArtifactTypes.isRight()) { - BeEcompErrorManager.getInstance().logBeInvalidConfigurationError("Artifact Upload / Update", "artifactTypes", allArtifactTypes.right().value().name()); + BeEcompErrorManager.getInstance() + .logBeInvalidConfigurationError("Artifact Upload / Update", "artifactTypes", allArtifactTypes.right().value().name()); return Either.right(componentsUtils.getResponseFormat(ActionStatus.FAILED_RETRIVE_ARTIFACTS_TYPES)); } - for (ArtifactType artType : allArtifactTypes.left().value()) { - if (artType.getName().contains(correctType)) { resourceInfo.type = artType.getName(); artifactTypeExist = true; break; } } - if (!artifactTypeExist) { BeEcompErrorManager.getInstance().logBeInvalidTypeError("Artifact", "-Not supported artifact type ", correctType); - log.debug("Not supported artifact type = {}" , correctType); + log.debug("Not supported artifact type = {}", correctType); return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED, correctType)); } - Either<Boolean, ResponseFormat> eitherNeedToCreate = validateEnv(componentsUtils, createdArtifactTemplateInfoList, resourceInfo); if (eitherNeedToCreate.isRight()) { return Either.right(eitherNeedToCreate.right().value()); @@ -186,7 +170,8 @@ public class ArtifactTemplateInfo { if (o.get(key) instanceof List) { List<Map<String, Object>> artifList = (List<Map<String, Object>>) o.get(key); for (Map<String, Object> relatedArtifactsMap : artifList) { - Either<ArtifactTemplateInfo, ResponseFormat> relatedArtifact = ArtifactTemplateInfo.createArtifactTemplateInfoFromJson(componentsUtils, key, relatedArtifactsMap, createdArtifactTemplateInfoList, resourceInfo); + Either<ArtifactTemplateInfo, ResponseFormat> relatedArtifact = ArtifactTemplateInfo + .createArtifactTemplateInfoFromJson(componentsUtils, key, relatedArtifactsMap, createdArtifactTemplateInfoList, resourceInfo); if (relatedArtifact.isRight()) { return relatedArtifact; } @@ -200,32 +185,40 @@ public class ArtifactTemplateInfo { return Either.left(resourceInfo); } - private static Either<Boolean, ResponseFormat> validateIsAlreadyExist(ComponentsUtils componentsUtils, ArtifactTemplateInfo resourceInfo, List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, ArtifactTemplateInfo parentArtifact) { - + private static Either<Boolean, ResponseFormat> validateIsAlreadyExist(ComponentsUtils componentsUtils, ArtifactTemplateInfo resourceInfo, + List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, + ArtifactTemplateInfo parentArtifact) { if (parentArtifact == null) { - if (createdArtifactTemplateInfoList == null || createdArtifactTemplateInfoList.isEmpty()) + if (createdArtifactTemplateInfoList == null || createdArtifactTemplateInfoList.isEmpty()) { return Either.left(true); + } for (ArtifactTemplateInfo createdArtifact : createdArtifactTemplateInfoList) { - if (createdArtifact.getType().equalsIgnoreCase(resourceInfo.getType()) && createdArtifact.getFileName().equalsIgnoreCase(resourceInfo.getFileName())) { - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR, resourceInfo.getFileName(), createdArtifact.type)); + if (createdArtifact.getType().equalsIgnoreCase(resourceInfo.getType()) && createdArtifact.getFileName() + .equalsIgnoreCase(resourceInfo.getFileName())) { + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR, resourceInfo.getFileName(), createdArtifact.type)); } } return Either.left(true); } else { List<ArtifactTemplateInfo> relatedArtifacts = parentArtifact.getRelatedArtifactsInfo(); - if (relatedArtifacts == null || relatedArtifacts.isEmpty()) + if (relatedArtifacts == null || relatedArtifacts.isEmpty()) { return Either.left(true); + } for (ArtifactTemplateInfo relatedArtifact : relatedArtifacts) { - if (relatedArtifact.getType().equalsIgnoreCase(resourceInfo.getType()) && relatedArtifact.getFileName().equalsIgnoreCase(resourceInfo.getFileName())) { - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR, resourceInfo.getFileName(), parentArtifact.getFileName())); + if (relatedArtifact.getType().equalsIgnoreCase(resourceInfo.getType()) && relatedArtifact.getFileName() + .equalsIgnoreCase(resourceInfo.getFileName())) { + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR, resourceInfo.getFileName(), + parentArtifact.getFileName())); } } return Either.left(true); } } - private static Either<Boolean, ResponseFormat> validateParentType(ComponentsUtils componentsUtils, ArtifactTemplateInfo resourceInfo, ArtifactTemplateInfo parentArtifact) { - + private static Either<Boolean, ResponseFormat> validateParentType(ComponentsUtils componentsUtils, ArtifactTemplateInfo resourceInfo, + ArtifactTemplateInfo parentArtifact) { if (parentArtifact == null) { return Either.left(true); } @@ -233,78 +226,99 @@ public class ArtifactTemplateInfo { return Either.left(true); } if (resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), parentArtifact.getFileName(), parentArtifact.getType())); + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), + parentArtifact.getFileName(), parentArtifact.getType())); } - if ((resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NET.getType()) || resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_VOL.getType())) - && !parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), parentArtifact.getFileName(), parentArtifact.getType())); + if ((resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NET.getType()) || resourceInfo.getType() + .equalsIgnoreCase(ArtifactTypeEnum.HEAT_VOL.getType())) && !parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), + parentArtifact.getFileName(), parentArtifact.getType())); } if (parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NESTED.getType())) { - if (resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_ARTIFACT.getType()) || resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NESTED.getType())) { + if (resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_ARTIFACT.getType()) || resourceInfo.getType() + .equalsIgnoreCase(ArtifactTypeEnum.HEAT_NESTED.getType())) { return Either.left(true); } - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), parentArtifact.getFileName(), parentArtifact.getType())); + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), + parentArtifact.getFileName(), parentArtifact.getType())); } - if (parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType()) && resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), parentArtifact.getFileName(), parentArtifact.getType())); + if (parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType()) && resourceInfo.getType() + .equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_IN_MASTER, resourceInfo.getFileName(), resourceInfo.getType(), + parentArtifact.getFileName(), parentArtifact.getType())); } - if (parentArtifact.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT.getType())) { return Either.left(true); } return Either.left(true); } - private static Either<Boolean, ResponseFormat> validateEnv(ComponentsUtils componentsUtils, List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, ArtifactTemplateInfo resourceInfo) { - - if (createdArtifactTemplateInfoList == null || createdArtifactTemplateInfoList.isEmpty()) + private static Either<Boolean, ResponseFormat> validateEnv(ComponentsUtils componentsUtils, + List<ArtifactTemplateInfo> createdArtifactTemplateInfoList, + ArtifactTemplateInfo resourceInfo) { + if (createdArtifactTemplateInfoList == null || createdArtifactTemplateInfoList.isEmpty()) { return Either.left(true); - if (resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NESTED.getType()) || resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_ARTIFACT.getType())) + } + if (resourceInfo.getType().equalsIgnoreCase(ArtifactTypeEnum.HEAT_NESTED.getType()) || resourceInfo.getType() + .equalsIgnoreCase(ArtifactTypeEnum.HEAT_ARTIFACT.getType())) { return Either.left(true); + } for (ArtifactTemplateInfo createdArtifactTemplateInfo : createdArtifactTemplateInfoList) { // check if artifact with this name already parsed. If parsed check + // env name. it must be the same. if (resourceInfo.getFileName().equalsIgnoreCase(createdArtifactTemplateInfo.getFileName())) { - if ((resourceInfo.getEnv() == null || resourceInfo.getEnv().isEmpty()) && (createdArtifactTemplateInfo.getEnv() != null && !createdArtifactTemplateInfo.getEnv().isEmpty())) { - log.debug("Artifact file with name {} type{} already parsed but with env {}", resourceInfo.getFileName(), resourceInfo.getType(), createdArtifactTemplateInfo.getEnv()); - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); + if ((resourceInfo.getEnv() == null || resourceInfo.getEnv().isEmpty()) && (createdArtifactTemplateInfo.getEnv() != null + && !createdArtifactTemplateInfo.getEnv().isEmpty())) { + log.debug("Artifact file with name {} type{} already parsed but with env {}", resourceInfo.getFileName(), + resourceInfo.getType(), createdArtifactTemplateInfo.getEnv()); + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), + resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); } - if (resourceInfo.getEnv() != null && !resourceInfo.getEnv().isEmpty() && createdArtifactTemplateInfo.getEnv() != null && !createdArtifactTemplateInfo.getEnv().isEmpty() - && !createdArtifactTemplateInfo.getEnv().equalsIgnoreCase(resourceInfo.getEnv())) { - log.debug("Artifact file with name {} type{} env {} already parsed but with env {}", resourceInfo.getFileName(), resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv()); - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); + if (resourceInfo.getEnv() != null && !resourceInfo.getEnv().isEmpty() && createdArtifactTemplateInfo.getEnv() != null + && !createdArtifactTemplateInfo.getEnv().isEmpty() && !createdArtifactTemplateInfo.getEnv() + .equalsIgnoreCase(resourceInfo.getEnv())) { + log.debug("Artifact file with name {} type{} env {} already parsed but with env {}", resourceInfo.getFileName(), + resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv()); + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), + resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); } - if ((resourceInfo.getEnv() != null && !resourceInfo.getEnv().isEmpty()) && (createdArtifactTemplateInfo.getEnv() == null || createdArtifactTemplateInfo.getEnv().isEmpty())) { - log.debug("Artifact file with name {} type{} env {} already parsed but with env {}", resourceInfo.getFileName(), resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv()); - return Either.right(componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); + if ((resourceInfo.getEnv() != null && !resourceInfo.getEnv().isEmpty()) && (createdArtifactTemplateInfo.getEnv() == null + || createdArtifactTemplateInfo.getEnv().isEmpty())) { + log.debug("Artifact file with name {} type{} env {} already parsed but with env {}", resourceInfo.getFileName(), + resourceInfo.getType(), resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv()); + return Either.right(componentsUtils + .getResponseFormat(ActionStatus.ARTIFACT_NOT_VALID_ENV, resourceInfo.getFileName(), resourceInfo.getType(), + resourceInfo.getEnv(), createdArtifactTemplateInfo.getEnv())); } } List<ArtifactTemplateInfo> relatedArtifacts = createdArtifactTemplateInfo.getRelatedArtifactsInfo(); Either<Boolean, ResponseFormat> status = validateEnv(componentsUtils, relatedArtifacts, resourceInfo); - if (status.isRight()) + if (status.isRight()) { return status; + } } return Either.left(true); } private static Either<List<ArtifactType>, ActionStatus> getDeploymentArtifactTypes(final NodeTypeEnum parentType) { - final List<ArtifactConfiguration> deploymentArtifacts; - final List<ArtifactConfiguration> artifactConfigurationList = - ConfigurationManager.getConfigurationManager().getConfiguration().getArtifacts(); - + final List<ArtifactConfiguration> artifactConfigurationList = ConfigurationManager.getConfigurationManager().getConfiguration() + .getArtifacts(); if (parentType == NodeTypeEnum.Service) { - deploymentArtifacts = artifactConfigurationList.stream() - .filter(artifactConfiguration -> - artifactConfiguration.hasSupport(ArtifactGroupTypeEnum.DEPLOYMENT) - && artifactConfiguration.hasSupport(ComponentType.SERVICE)) - .collect(Collectors.toList()); + deploymentArtifacts = artifactConfigurationList.stream().filter( + artifactConfiguration -> artifactConfiguration.hasSupport(ArtifactGroupTypeEnum.DEPLOYMENT) && artifactConfiguration + .hasSupport(ComponentType.SERVICE)).collect(Collectors.toList()); } else { - deploymentArtifacts = artifactConfigurationList.stream() - .filter(artifactConfiguration -> - artifactConfiguration.hasSupport(ArtifactGroupTypeEnum.DEPLOYMENT) - && artifactConfiguration.hasSupport(ComponentType.RESOURCE)) - .collect(Collectors.toList()); + deploymentArtifacts = artifactConfigurationList.stream().filter( + artifactConfiguration -> artifactConfiguration.hasSupport(ArtifactGroupTypeEnum.DEPLOYMENT) && artifactConfiguration + .hasSupport(ComponentType.RESOURCE)).collect(Collectors.toList()); } final List<ArtifactType> artifactTypes = new ArrayList<>(); if (CollectionUtils.isNotEmpty(deploymentArtifacts)) { @@ -315,7 +329,6 @@ public class ArtifactTemplateInfo { }); return Either.left(artifactTypes); } - return Either.right(ActionStatus.GENERAL_ERROR); } |