diff options
author | Francis Toth <francis.toth@yoppworks.com> | 2020-04-19 20:55:37 -0400 |
---|---|---|
committer | Ojas Dubey <Ojas.Dubey@amdocs.com> | 2020-05-12 04:59:28 +0000 |
commit | 7717944e41ecbb9447a56d870821b6d494e7ebe3 (patch) | |
tree | 79feba0fd633acabb306332bdcce7fe87aad9ddb /asdctool/src/main/java/org | |
parent | 88af509e836976b545e071cfe562bf70258c6c70 (diff) |
Remove outputFullFilePath from ValidationConfigManager
This commit aims to extract the outputFullFilePath field from ValidationConfigManager in order to improve testability. This commit contains multiple minor modifications resulting from bubbling up the outputFullFilePath static field to where it is actually set. Most of the modifications result from changing the signature of the functions which formerly relied on ValidationConfigManager.getOutputFullFilePath.
Change-Id: I0a28e527cabe606de8af62b8dcbc4b4e70db98ed
Signed-off-by: Francis Toth <francis.toth@yoppworks.com>
Issue-ID: SDC-2499
Diffstat (limited to 'asdctool/src/main/java/org')
20 files changed, 323 insertions, 328 deletions
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ArtifactToolBL.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ArtifactToolBL.java index 2b63193a1e..ebd548202b 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ArtifactToolBL.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ArtifactToolBL.java @@ -7,9 +7,9 @@ * 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. @@ -27,31 +27,29 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.List; public class ArtifactToolBL { - - private static Logger log = Logger.getLogger(ValidationToolBL.class.getName()); - - protected List<IArtifactValidatorExecuter> validators; - - private boolean allValid = true; - - @Autowired - public ArtifactToolBL( - List<IArtifactValidatorExecuter> validators) { - this.validators = validators; - } - - public boolean validateAll() { - for (IArtifactValidatorExecuter validatorExec: validators) { - log.debug("ValidatorExecuter "+validatorExec.getName()+" started"); - if (!validatorExec.executeValidations()) { - allValid = false; - log.debug("ValidatorExecuter "+validatorExec.getName()+" finished with warnings"); - } - else { - log.debug("ValidatorExecuter "+validatorExec.getName()+" finished successfully"); - } - } - return allValid; - } + private static Logger log = Logger.getLogger(ValidationToolBL.class.getName()); + + protected List<IArtifactValidatorExecuter> validators; + + private boolean allValid = true; + + @Autowired + public ArtifactToolBL( + List<IArtifactValidatorExecuter> validators) { + this.validators = validators; + } + + public boolean validateAll(String outputFilePath) { + for (IArtifactValidatorExecuter validatorExec : validators) { + log.debug("ValidatorExecuter " + validatorExec.getName() + " started"); + if (!validatorExec.executeValidations(outputFilePath)) { + allValid = false; + log.debug("ValidatorExecuter " + validatorExec.getName() + " finished with warnings"); + } else { + log.debug("ValidatorExecuter " + validatorExec.getName() + " finished successfully"); + } + } + return allValid; + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java index ae25c3106e..c73e4d4c03 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/ValidationToolBL.java @@ -45,10 +45,10 @@ public class ValidationToolBL { this.validators = validators; } - public boolean validateAll() { + public boolean validateAll(String outputFilePath) { for (ValidatorExecuter validatorExec: validators) { log.debug("ValidatorExecuter "+validatorExec.getName()+" started"); - if (!validatorExec.executeValidations()) { + if (!validatorExec.executeValidations(outputFilePath)) { allValid = false; log.debug("ValidatorExecuter "+validatorExec.getName()+" finished with warnings"); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java index 3c09a54735..6178fe3f60 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationConfigManager.java @@ -26,32 +26,21 @@ package org.openecomp.sdc.asdctool.impl.validator.config; import java.util.function.Supplier; -public class ValidationConfigManager { +public final class ValidationConfigManager { + private static final String REPORT_OUTPUT_FILE_NAME = "/reportOutput.txt"; private static final String CSV_FILE_PREFIX = "/csvSummary_"; private static final String CSV_EXT = ".csv"; public static final String DEFAULT_CSV_PATH = "summary.csv"; - private static String outputFullFilePath; - private static String outputFilePath; - private ValidationConfigManager() { } - public static String csvReportFilePath(String outputPath, Supplier<Long> getTime) { - return outputPath + CSV_FILE_PREFIX + getTime.get() + CSV_EXT; - } - - public static String getOutputFullFilePath() { - return outputFullFilePath; + public static String txtReportFilePath(String outputPath) { + return outputPath + REPORT_OUTPUT_FILE_NAME; } - public static String getOutputFilePath() { - return outputFilePath; - } - - public static void setOutputFullFilePath(String outputPath) { - ValidationConfigManager.outputFilePath = outputPath; - ValidationConfigManager.outputFullFilePath = outputPath + "/reportOutput.txt"; + public static String csvReportFilePath(String outputPath, Supplier<Long> getTime) { + return outputPath + CSV_FILE_PREFIX + getTime.get() + CSV_EXT; } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java index a5e7d7873b..9007d8ce05 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ArtifactValidatorExecuter.java @@ -7,9 +7,9 @@ * 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. @@ -49,111 +49,116 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -public class ArtifactValidatorExecuter{ - - protected JanusGraphDao janusGraphDao; - protected ToscaOperationFacade toscaOperationFacade; - - public ArtifactValidatorExecuter(JanusGraphDao janusGraphDao, - ToscaOperationFacade toscaOperationFacade) { - this.janusGraphDao = janusGraphDao; - this.toscaOperationFacade = toscaOperationFacade; - } - - private static Logger log = Logger.getLogger(ArtifactValidatorExecuter.class.getName()); - - protected String name; - - public void setName(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - - - public Map<String, List<Component>> getVerticesToValidate(VertexTypeEnum type, Map<GraphPropertyEnum, Object> hasProps){ - Map<String, List<Component>> result = new HashMap<>(); - Either<List<GraphVertex>, JanusGraphOperationStatus> resultsEither = janusGraphDao - .getByCriteria(type, hasProps); - if (resultsEither.isRight()) { - log.error("getVerticesToValidate failed "+ resultsEither.right().value()); - return result; - } - System.out.println("getVerticesToValidate: "+resultsEither.left().value().size()+" vertices to scan"); - List<GraphVertex> componentsList = resultsEither.left().value(); - componentsList.forEach(vertex -> { - String ivariantUuid = (String)vertex.getMetadataProperty(GraphPropertyEnum.INVARIANT_UUID); - if(!result.containsKey(ivariantUuid)){ - List<Component> compList = new ArrayList<Component>(); - result.put(ivariantUuid, compList); - } - List<Component> compList = result.get(ivariantUuid); - - ComponentParametersView filter = new ComponentParametersView(true); - filter.setIgnoreArtifacts(false); - - Either<Component, StorageOperationStatus> toscaElement = toscaOperationFacade.getToscaElement(vertex.getUniqueId(), filter); - if (toscaElement.isRight()) { - log.error("getVerticesToValidate: failed to find element"+ vertex.getUniqueId()+" staus is" + toscaElement.right().value()); - }else{ - compList.add(toscaElement.left().value()); - } - - }); - - return result; - } - - public boolean validate( Map<String, List<Component>> vertices) { - boolean result = true; - long time = System.currentTimeMillis(); - String fileName = ValidationConfigManager.getOutputFilePath() + this.getName() + "_"+ time + ".csv"; - try(Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "utf-8"))) { - writer.write("name, UUID, invariantUUID, state, version\n"); - Collection<List<Component>> collection = vertices.values(); - for(List<Component> compList: collection ){ - Set<String> artifactEsId = new HashSet<>(); - for(Component component: compList ){ - Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts(); - Optional<ArtifactDefinition> op = toscaArtifacts.values(). - stream().filter(a -> artifactEsId.contains(a.getEsId())).findAny(); - if(op.isPresent()){ - result = false; - writeModuleResultToFile(writer, compList); - writer.flush(); - break; - }else{ - artifactEsId.addAll(toscaArtifacts.values().stream().map(ArtifactDefinition::getEsId).collect(Collectors.toList())) ; - } - } - - } - - } catch (Exception e) { - log.error("Failed to fetch vf resources ", e); - return false; - } finally { - janusGraphDao.commit(); - } - return result; - } - - private void writeModuleResultToFile(Writer writer, List<Component> components) { - try { - // "service name, service id, state, version - for(Component component: components ){ - StringBuffer sb = new StringBuffer(component.getName()); - sb.append(",").append(component.getUniqueId()).append(",").append(component.getInvariantUUID()).append(",").append(component.getLifecycleState()).append(",").append(component.getVersion()); - - sb.append("\n"); - writer.write(sb.toString()); - } - } catch (IOException e) { - log.error("Failed to write module result to file ", e); - } - } +public class ArtifactValidatorExecuter { + + protected JanusGraphDao janusGraphDao; + protected ToscaOperationFacade toscaOperationFacade; + + public ArtifactValidatorExecuter(JanusGraphDao janusGraphDao, + ToscaOperationFacade toscaOperationFacade) { + this.janusGraphDao = janusGraphDao; + this.toscaOperationFacade = toscaOperationFacade; + } + + private static Logger log = Logger.getLogger(ArtifactValidatorExecuter.class.getName()); + + protected String name; + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + + public Map<String, List<Component>> getVerticesToValidate(VertexTypeEnum type, + Map<GraphPropertyEnum, Object> hasProps) { + Map<String, List<Component>> result = new HashMap<>(); + Either<List<GraphVertex>, JanusGraphOperationStatus> resultsEither = janusGraphDao + .getByCriteria(type, hasProps); + if (resultsEither.isRight()) { + log.error("getVerticesToValidate failed " + resultsEither.right().value()); + return result; + } + System.out.println("getVerticesToValidate: " + resultsEither.left().value().size() + " vertices to scan"); + List<GraphVertex> componentsList = resultsEither.left().value(); + componentsList.forEach(vertex -> { + String ivariantUuid = (String) vertex.getMetadataProperty(GraphPropertyEnum.INVARIANT_UUID); + if (!result.containsKey(ivariantUuid)) { + List<Component> compList = new ArrayList<Component>(); + result.put(ivariantUuid, compList); + } + List<Component> compList = result.get(ivariantUuid); + + ComponentParametersView filter = new ComponentParametersView(true); + filter.setIgnoreArtifacts(false); + + Either<Component, StorageOperationStatus> toscaElement = toscaOperationFacade + .getToscaElement(vertex.getUniqueId(), filter); + if (toscaElement.isRight()) { + log.error( + "getVerticesToValidate: failed to find element" + vertex.getUniqueId() + " staus is" + toscaElement + .right().value()); + } else { + compList.add(toscaElement.left().value()); + } + + }); + + return result; + } + + public boolean validate(Map<String, List<Component>> vertices, String outputFilePath) { + boolean result = true; + long time = System.currentTimeMillis(); + String fileName = outputFilePath + this.getName() + "_" + time + ".csv"; + try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "utf-8"))) { + writer.write("name, UUID, invariantUUID, state, version\n"); + Collection<List<Component>> collection = vertices.values(); + for (List<Component> compList : collection) { + Set<String> artifactEsId = new HashSet<>(); + for (Component component : compList) { + Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts(); + Optional<ArtifactDefinition> op = toscaArtifacts.values(). + stream().filter(a -> artifactEsId.contains(a.getEsId())).findAny(); + if (op.isPresent()) { + result = false; + writeModuleResultToFile(writer, compList); + writer.flush(); + break; + } else { + artifactEsId.addAll(toscaArtifacts.values().stream().map(ArtifactDefinition::getEsId) + .collect(Collectors.toList())); + } + } + + } + + } catch (Exception e) { + log.error("Failed to fetch vf resources ", e); + return false; + } finally { + janusGraphDao.commit(); + } + return result; + } + + private void writeModuleResultToFile(Writer writer, List<Component> components) { + try { + // "service name, service id, state, version + for (Component component : components) { + StringBuffer sb = new StringBuffer(component.getName()); + sb.append(",").append(component.getUniqueId()).append(",").append(component.getInvariantUUID()) + .append(",").append(component.getLifecycleState()).append(",").append(component.getVersion()); + + sb.append("\n"); + writer.write(sb.toString()); + } + } catch (IOException e) { + log.error("Failed to write module result to file ", e); + } + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/IArtifactValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/IArtifactValidatorExecuter.java index a0d700c67d..1b3c0375e7 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/IArtifactValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/IArtifactValidatorExecuter.java @@ -7,9 +7,9 @@ * 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. @@ -21,9 +21,8 @@ package org.openecomp.sdc.asdctool.impl.validator.executers; public interface IArtifactValidatorExecuter { - boolean executeValidations(); + + boolean executeValidations(String outputFilePath); + String getName(); - - - } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/NodeToscaArtifactsValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/NodeToscaArtifactsValidatorExecuter.java index 9fa92200ac..6a52e07dd2 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/NodeToscaArtifactsValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/NodeToscaArtifactsValidatorExecuter.java @@ -7,9 +7,9 @@ * 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. @@ -32,34 +32,33 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class NodeToscaArtifactsValidatorExecuter extends ArtifactValidatorExecuter implements IArtifactValidatorExecuter{ - protected String name; - - public NodeToscaArtifactsValidatorExecuter(JanusGraphDao janusGraphDao, - ToscaOperationFacade toscaOperationFacade) { - super(janusGraphDao, toscaOperationFacade); - setName("RESOURCE_TOSCA_ARTIFACTS"); - } - @Override - public boolean executeValidations() { - - Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); - hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); - hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - - Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.NODE_TYPE, hasProps); - return validate(vertices); - - } +public class NodeToscaArtifactsValidatorExecuter extends ArtifactValidatorExecuter implements + IArtifactValidatorExecuter { - @Override - public String getName() { - return name; - } - + protected String name; - public void setName(String name) { - this.name = name; - } + public NodeToscaArtifactsValidatorExecuter(JanusGraphDao janusGraphDao, + ToscaOperationFacade toscaOperationFacade) { + super(janusGraphDao, toscaOperationFacade); + setName("RESOURCE_TOSCA_ARTIFACTS"); + } + @Override + public boolean executeValidations(String outputFilePath) { + Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); + hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); + hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); + + Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.NODE_TYPE, hasProps); + return validate(vertices, outputFilePath); + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceToscaArtifactsValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceToscaArtifactsValidatorExecutor.java index aad803e672..21a8065dff 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceToscaArtifactsValidatorExecutor.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceToscaArtifactsValidatorExecutor.java @@ -7,9 +7,9 @@ * 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. @@ -34,33 +34,32 @@ import java.util.List; import java.util.Map; @org.springframework.stereotype.Component -public class ServiceToscaArtifactsValidatorExecutor extends ArtifactValidatorExecuter implements IArtifactValidatorExecuter{ - - @Autowired - public ServiceToscaArtifactsValidatorExecutor(JanusGraphDao janusGraphDao, - ToscaOperationFacade toscaOperationFacade) { - super(janusGraphDao, toscaOperationFacade); - setName("SERVICE_TOSCA_ARTIFACTS"); - } +public class ServiceToscaArtifactsValidatorExecutor extends ArtifactValidatorExecuter implements + IArtifactValidatorExecuter { - @Override - public boolean executeValidations() { - Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); - hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); - hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - - Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps); - return validate(vertices); - } + @Autowired + public ServiceToscaArtifactsValidatorExecutor(JanusGraphDao janusGraphDao, + ToscaOperationFacade toscaOperationFacade) { + super(janusGraphDao, toscaOperationFacade); + setName("SERVICE_TOSCA_ARTIFACTS"); + } - @Override - public String getName() { - return name; - } - + @Override + public boolean executeValidations(String outputFilePath) { + Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); + hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name()); + hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - public void setName(String name) { - this.name = name; - } + Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps); + return validate(vertices, outputFilePath); + } + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java index a52fb370d5..6d580d0bb4 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ServiceValidatorExecuter.java @@ -45,9 +45,9 @@ public class ServiceValidatorExecuter extends TopologyTemplateValidatorExecuter } @Override - public boolean executeValidations() { + public boolean executeValidations(String outputFilePath) { List<GraphVertex> vertices = getVerticesToValidate(ComponentTypeEnum.SERVICE); - return validate(tasks, vertices); + return validate(tasks, vertices, outputFilePath); } @Override diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java index ca027cb3ed..b7195dec09 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/TopologyTemplateValidatorExecuter.java @@ -7,9 +7,9 @@ * 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. @@ -68,34 +68,35 @@ public class TopologyTemplateValidatorExecuter { protected List<GraphVertex> getVerticesToValidate(ComponentTypeEnum type) { Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class); props.put(GraphPropertyEnum.COMPONENT_TYPE, type.name()); - if(type.equals(ComponentTypeEnum.RESOURCE)) { + if (type.equals(ComponentTypeEnum.RESOURCE)) { props.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); } Either<List<GraphVertex>, JanusGraphOperationStatus> results = janusGraphDao .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props); if (results.isRight()) { - log.error("getVerticesToValidate failed "+ results.right().value()); + log.error("getVerticesToValidate failed " + results.right().value()); return new ArrayList<>(); } - log.info("getVerticesToValidate: "+results.left().value().size()+" vertices to scan"); + log.info("getVerticesToValidate: " + results.left().value().size() + " vertices to scan"); return results.left().value(); } - protected boolean validate(List<? extends TopologyTemplateValidationTask> tasks, List<GraphVertex> vertices) { - ReportManager.reportStartValidatorRun(getName(), vertices.size()); + protected boolean validate(List<? extends TopologyTemplateValidationTask> tasks, List<GraphVertex> vertices, + String outputFilePath) { + ReportManager.reportStartValidatorRun(getName(), vertices.size(), outputFilePath); Set<String> failedTasks = new HashSet<>(); Set<String> successTasks = new HashSet<>(); boolean successAllVertices = true; int vertexNum = 0; int verticesSize = vertices.size(); - for (GraphVertex vertex: vertices) { + for (GraphVertex vertex : vertices) { vertexNum++; boolean successAllTasks = true; - for (TopologyTemplateValidationTask task: tasks) { - ReportManager.reportStartTaskRun(vertex, task.getTaskName()); - VertexResult result = task.validate(vertex); + for (TopologyTemplateValidationTask task : tasks) { + ReportManager.reportStartTaskRun(vertex, task.getTaskName(), outputFilePath); + VertexResult result = task.validate(vertex, outputFilePath); if (!result.getStatus()) { failedTasks.add(task.getTaskName()); successAllVertices = false; @@ -103,13 +104,13 @@ public class TopologyTemplateValidatorExecuter { } else if (successAllTasks && vertexNum == verticesSize) { successTasks.add(task.getTaskName()); } - ReportManager.printValidationTaskStatus(vertex, task.getTaskName(), result.getStatus()); + ReportManager.printValidationTaskStatus(vertex, task.getTaskName(), result.getStatus(), outputFilePath); ReportManager.reportTaskEnd(vertex.getUniqueId(), task.getTaskName(), result); } - String componentScanStatus = successAllTasks? "success" : "failed"; - log.info("Topology Template "+vertex.getUniqueId()+" Validation finished with "+componentScanStatus); + String componentScanStatus = successAllTasks ? "success" : "failed"; + log.info("Topology Template " + vertex.getUniqueId() + " Validation finished with " + componentScanStatus); } - ReportManager.reportValidatorTypeSummary(getName(), failedTasks, successTasks); + ReportManager.reportValidatorTypeSummary(getName(), failedTasks, successTasks, outputFilePath); return successAllVertices; } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VFToscaArtifactValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VFToscaArtifactValidatorExecutor.java index f1c9af681c..b5347a2579 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VFToscaArtifactValidatorExecutor.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VFToscaArtifactValidatorExecutor.java @@ -7,9 +7,9 @@ * 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. @@ -33,35 +33,32 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class VFToscaArtifactValidatorExecutor extends ArtifactValidatorExecuter implements IArtifactValidatorExecuter{ - - public VFToscaArtifactValidatorExecutor(JanusGraphDao janusGraphDao, - ToscaOperationFacade toscaOperationFacade) { - super(janusGraphDao, toscaOperationFacade); - setName("VF_TOSCA_ARTIFACTS"); - } - @Override - public boolean executeValidations() { - - Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); - hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); - hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); - hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); - - Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps); - return validate( vertices); - - } +public class VFToscaArtifactValidatorExecutor extends ArtifactValidatorExecuter implements IArtifactValidatorExecuter { - @Override - public String getName() { - return name; - } - + public VFToscaArtifactValidatorExecutor(JanusGraphDao janusGraphDao, + ToscaOperationFacade toscaOperationFacade) { + super(janusGraphDao, toscaOperationFacade); + setName("VF_TOSCA_ARTIFACTS"); + } - public void setName(String name) { - this.name = name; - } - + @Override + public boolean executeValidations(String outputFilePath) { + Map<GraphPropertyEnum, Object> hasProps = new HashMap<>(); + hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name()); + hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); + hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name()); + Map<String, List<Component>> vertices = getVerticesToValidate(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps); + return validate(vertices, outputFilePath); + + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java index 3164b6c625..db41cb57a8 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/ValidatorExecuter.java @@ -25,6 +25,6 @@ package org.openecomp.sdc.asdctool.impl.validator.executers; */ public interface ValidatorExecuter { - boolean executeValidations(); + boolean executeValidations(String outputFilePath); String getName(); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java index 181495ad44..dc4ebabf5c 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executers/VfValidatorExecuter.java @@ -43,9 +43,9 @@ public class VfValidatorExecuter extends TopologyTemplateValidatorExecuter imple } @Override - public boolean executeValidations() { + public boolean executeValidations(String outputFilePath) { List<GraphVertex> vertices = getVerticesToValidate(ComponentTypeEnum.RESOURCE); - return validate(tasks, vertices); + return validate(tasks, vertices, outputFilePath); } @Override diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java index ee05d586f9..576848dcdc 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/TopologyTemplateValidationTask.java @@ -27,7 +27,7 @@ import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; * Created by chaya on 7/5/2017. */ public interface TopologyTemplateValidationTask { - VertexResult validate(GraphVertex vertex); + VertexResult validate(GraphVertex vertex, String outputFilePath); String getTaskName(); String getTaskResultStatus(); void setTaskResultStatus(String status); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java index 11c80eae70..6da79cf681 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtils.java @@ -60,13 +60,14 @@ public class ArtifactValidationUtils { this.topologyTemplateOperation = topologyTemplateOperation; } - public ArtifactsVertexResult validateArtifactsAreInCassandra(GraphVertex vertex, String taskName, List<ArtifactDataDefinition> artifacts) { + public ArtifactsVertexResult validateArtifactsAreInCassandra(GraphVertex vertex, String taskName, + List<ArtifactDataDefinition> artifacts, String outputFilePath) { ArtifactsVertexResult result = new ArtifactsVertexResult(true); - for(ArtifactDataDefinition artifact:artifacts) { + for (ArtifactDataDefinition artifact : artifacts) { boolean isArtifactExist = isArtifactInCassandra(artifact.getEsId()); String status = isArtifactExist ? "Artifact " + artifact.getEsId() + " is in Cassandra" : - "Artifact " + artifact.getEsId() + " doesn't exist in Cassandra"; - ReportManager.writeReportLineToFile(status); + "Artifact " + artifact.getEsId() + " doesn't exist in Cassandra"; + ReportManager.writeReportLineToFile(status, outputFilePath); if (!isArtifactExist) { ReportManager.addFailedVertex(taskName, vertex.getUniqueId()); result.setStatus(false); @@ -97,13 +98,15 @@ public class ArtifactValidationUtils { return artifacts; } - public ArtifactsVertexResult validateTopologyTemplateArtifacts(GraphVertex vertex, String taskName) { + public ArtifactsVertexResult validateTopologyTemplateArtifacts(GraphVertex vertex, String taskName, + String outputFilePath) { ArtifactsVertexResult result = new ArtifactsVertexResult(); ComponentParametersView paramView = new ComponentParametersView(); paramView.disableAll(); paramView.setIgnoreArtifacts(false); paramView.setIgnoreComponentInstances(false); - Either<ToscaElement, StorageOperationStatus> toscaElementEither = topologyTemplateOperation.getToscaElement(vertex.getUniqueId(), paramView); + Either<ToscaElement, StorageOperationStatus> toscaElementEither = topologyTemplateOperation + .getToscaElement(vertex.getUniqueId(), paramView); if (toscaElementEither.isRight()) { result.setStatus(false); return result; @@ -123,14 +126,14 @@ public class ArtifactValidationUtils { if (instanceArtifacts != null) { instanceArtifacts.forEach((key, artifactMap) -> - allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()))); + allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()))); } if (instanceDeploymentArtifacts != null) { instanceDeploymentArtifacts.forEach((key, artifactMap) -> - allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()))); + allArtifacts.addAll(addRelevantArtifacts(artifactMap.getMapToscaDataDefinition()))); } - return validateArtifactsAreInCassandra(vertex, taskName, allArtifacts); + return validateArtifactsAreInCassandra(vertex, taskName, allArtifacts, outputFilePath); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java index 3b47a81c40..7caaa3cfa4 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ServiceArtifactValidationTask.java @@ -39,7 +39,7 @@ public class ServiceArtifactValidationTask extends ServiceValidationTask { } @Override - public ArtifactsVertexResult validate(GraphVertex vertex) { - return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName()); + public ArtifactsVertexResult validate(GraphVertex vertex, String outputFilePath) { + return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName(), outputFilePath); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java index c445521f53..eb65b0c04c 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/VfArtifactValidationTask.java @@ -40,7 +40,7 @@ public class VfArtifactValidationTask extends VfValidationTask { } @Override - public VertexResult validate(GraphVertex vertex) { - return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName()); + public VertexResult validate(GraphVertex vertex, String outputFilePath) { + return artifactValidationUtils.validateTopologyTemplateArtifacts(vertex, getTaskName(), outputFilePath); } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java index d45c896799..47f00dc421 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/tasks/moduleJson/ModuleJsonTask.java @@ -7,9 +7,9 @@ * 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. @@ -59,7 +59,7 @@ public class ModuleJsonTask extends ServiceValidationTask { } @Override - public VertexResult validate(GraphVertex vertex) { + public VertexResult validate(GraphVertex vertex, String outputFilePath) { if (!isAfterSubmitForTesting(vertex)) { return new VertexResult(true); } @@ -69,7 +69,8 @@ public class ModuleJsonTask extends ServiceValidationTask { paramView.setIgnoreArtifacts(false); paramView.setIgnoreGroups(false); paramView.setIgnoreComponentInstances(false); - Either<ToscaElement, StorageOperationStatus> toscaElementEither = topologyTemplateOperation.getToscaElement(vertex.getUniqueId(), paramView); + Either<ToscaElement, StorageOperationStatus> toscaElementEither = topologyTemplateOperation + .getToscaElement(vertex.getUniqueId(), paramView); if (toscaElementEither.isRight()) { return new VertexResult(false); } @@ -77,42 +78,47 @@ public class ModuleJsonTask extends ServiceValidationTask { Map<String, MapGroupsDataDefinition> instGroups = element.getInstGroups(); Map<String, MapArtifactDataDefinition> instDeploymentArtifacts = element.getInstDeploymentArtifacts(); - for (Map.Entry<String, MapGroupsDataDefinition> pair : Optional.ofNullable(instGroups).orElse(Collections.emptyMap()).entrySet()) { + for (Map.Entry<String, MapGroupsDataDefinition> pair : Optional.ofNullable(instGroups) + .orElse(Collections.emptyMap()).entrySet()) { MapGroupsDataDefinition groups = pair.getValue(); if (groups != null && !groups.getMapToscaDataDefinition().isEmpty()) { - return new VertexResult(findCoordinateModuleJson(pair, instDeploymentArtifacts, vertex)); + return new VertexResult(findCoordinateModuleJson(pair, instDeploymentArtifacts, vertex, outputFilePath)); } return new VertexResult(true); } return new VertexResult(true); } - private boolean findCoordinateModuleJson(Map.Entry<String, MapGroupsDataDefinition> pair, Map<String, MapArtifactDataDefinition> instDeploymentArtifacts, GraphVertex vertex) { + private boolean findCoordinateModuleJson(Map.Entry<String, MapGroupsDataDefinition> pair, + Map<String, MapArtifactDataDefinition> instDeploymentArtifacts, GraphVertex vertex, String outputFilePath) { String groupKey = pair.getKey(); String[] split = groupKey.split("\\."); - String instanceName = split[split.length-1]; + String instanceName = split[split.length - 1]; MapArtifactDataDefinition deploymentsArtifacts = instDeploymentArtifacts.get(groupKey); if (deploymentsArtifacts != null && !deploymentsArtifacts.getMapToscaDataDefinition().isEmpty()) { - List<ArtifactDataDefinition> moduleJsonArtifacts = deploymentsArtifacts.getMapToscaDataDefinition().values().stream().filter(artifact -> { - String artifactName = artifact.getArtifactName(); - if (artifactName.startsWith(instanceName) && artifactName.endsWith("modules.json")) { - return true; - } - return false; - }).collect(Collectors.toList()); + List<ArtifactDataDefinition> moduleJsonArtifacts = deploymentsArtifacts.getMapToscaDataDefinition().values() + .stream().filter(artifact -> { + String artifactName = artifact.getArtifactName(); + if (artifactName.startsWith(instanceName) && artifactName.endsWith("modules.json")) { + return true; + } + return false; + }).collect(Collectors.toList()); if (moduleJsonArtifacts.size() > 0) { - String status = "Instance "+instanceName+" has a corresponding modules.json file: "+moduleJsonArtifacts.get(0).getArtifactName(); - ReportManager.writeReportLineToFile(status); + String status = + "Instance " + instanceName + " has a corresponding modules.json file: " + moduleJsonArtifacts.get(0) + .getArtifactName(); + ReportManager.writeReportLineToFile(status, outputFilePath); return true; } } - String status = "Instance "+instanceName+" doesn't have a corresponding modules.json file"; - ReportManager.writeReportLineToFile(status); + String status = "Instance " + instanceName + " doesn't have a corresponding modules.json file"; + ReportManager.writeReportLineToFile(status, outputFilePath); ReportManager.addFailedVertex(getTaskName(), vertex.getUniqueId()); return false; } - private boolean isAfterSubmitForTesting(GraphVertex vertex){ + private boolean isAfterSubmitForTesting(GraphVertex vertex) { List allowedStates = new ArrayList<>(Arrays.asList(LifecycleStateEnum.CERTIFIED.name())); return allowedStates.contains(vertex.getMetadataProperty(GraphPropertyEnum.STATE)); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java index feef9eaf01..78910df439 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java @@ -22,7 +22,6 @@ package org.openecomp.sdc.asdctool.impl.validator.utils; import org.apache.commons.lang.text.StrBuilder; -import org.openecomp.sdc.asdctool.impl.validator.config.ValidationConfigManager; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,28 +39,27 @@ import java.util.Set; public class ReportManager { private static Logger log = LoggerFactory.getLogger(ReportManager.class); - private static String reportOutputFilePath; + private static final Map<String, Set<String>> failedVerticesPerTask = new HashMap<>(); private static final Map<String, Map<String, VertexResult>> resultsPerVertex = new HashMap<>(); - public static ReportManager make(String csvReportFilePath) { - return new ReportManager(csvReportFilePath); + public static ReportManager make(String csvReportFilePath, String txtReportFilePath) { + return new ReportManager(csvReportFilePath, txtReportFilePath); } - private ReportManager(String csvReportFilePath) { + private ReportManager(String csvReportFilePath, String txtReportFilePath) { try { initCsvFile(csvReportFilePath); - initReportFile(); + initReportFile(txtReportFilePath); } catch (IOException e) { log.info("Init file failed - {}", e.getClass().getSimpleName(), e); } } - private void initReportFile() throws IOException { - reportOutputFilePath = ValidationConfigManager.getOutputFullFilePath(); + private void initReportFile(String txtReportFilePath) throws IOException { StrBuilder sb = new StrBuilder(); sb.appendln("-----------------------Validation Tool Results:-------------------------"); - Files.write(Paths.get(reportOutputFilePath), sb.toString().getBytes()); + Files.write(Paths.get(txtReportFilePath), sb.toString().getBytes()); } private void initCsvFile(String csvReportFilePath) throws IOException { @@ -87,51 +85,52 @@ public class ReportManager { failedVerticesPerTask.put(taskName, failedVertices); } - public static void printValidationTaskStatus(GraphVertex vertexScanned, String taskName, boolean success) { + public static void printValidationTaskStatus(GraphVertex vertexScanned, String taskName, boolean success, + String outputFilePath) { String successStatus = success ? "success" : "failed"; String line = "-----------------------Vertex: " + vertexScanned.getUniqueId() + ", Task " + taskName + " " + successStatus + "-----------------------"; StrBuilder sb = new StrBuilder(); sb.appendln(line); - writeReportLineToFile(line); + writeReportLineToFile(line, outputFilePath); } - public static void writeReportLineToFile(String message) { + public static void writeReportLineToFile(String message, String outputFilePath) { try { - Files.write(Paths.get(reportOutputFilePath), new StrBuilder().appendNewLine().toString().getBytes(), + Files.write(Paths.get(outputFilePath), new StrBuilder().appendNewLine().toString().getBytes(), StandardOpenOption.APPEND); - Files.write(Paths.get(reportOutputFilePath), message.getBytes(), StandardOpenOption.APPEND); + Files.write(Paths.get(outputFilePath), message.getBytes(), StandardOpenOption.APPEND); } catch (IOException e) { log.info("write to file failed - {}", e.getClass().getSimpleName(), e); } } public static void reportValidatorTypeSummary(String validatorName, Set<String> failedTasksNames, - Set<String> successTasksNames) { + Set<String> successTasksNames, String outputFilePath) { StrBuilder sb = new StrBuilder(); sb.appendln( "-----------------------ValidatorExecuter " + validatorName + " Validation Summary-----------------------"); sb.appendln("Failed tasks: " + failedTasksNames); sb.appendln("Success tasks: " + successTasksNames); - writeReportLineToFile(sb.toString()); + writeReportLineToFile(sb.toString(), outputFilePath); } - public static void reportStartValidatorRun(String validatorName, int componenentsNum) { + public static void reportStartValidatorRun(String validatorName, int componenentsNum, String outputFilePath) { StrBuilder sb = new StrBuilder(); sb.appendln("------ValidatorExecuter " + validatorName + " Validation Started, on " + componenentsNum + " components---------"); - writeReportLineToFile(sb.toString()); + writeReportLineToFile(sb.toString(), outputFilePath); } - public static void reportStartTaskRun(GraphVertex vertex, String taskName) { + public static void reportStartTaskRun(GraphVertex vertex, String taskName, String outputFilePath) { StrBuilder sb = new StrBuilder(); sb.appendln("-----------------------Vertex: " + vertex.getUniqueId() + ", Task " + taskName + " Started-----------------------"); - writeReportLineToFile(sb.toString()); + writeReportLineToFile(sb.toString(), outputFilePath); } - public static void reportEndOfToolRun(String csvReportFilePath) { + public static void reportEndOfToolRun(String csvReportFilePath, String outputFilePath) { StrBuilder sb = new StrBuilder(); sb.appendln("-----------------------------------Validator Tool Summary-----------------------------------"); failedVerticesPerTask.forEach((taskName, failedVertices) -> { @@ -140,7 +139,7 @@ public class ReportManager { sb.append("FailedVertices: " + failedVertices); sb.appendNewLine(); }); - writeReportLineToFile(sb.toString()); + writeReportLineToFile(sb.toString(), outputFilePath); printAllResults(csvReportFilePath); } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ArtifactValidatorTool.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ArtifactValidatorTool.java index 063f3f6a29..0978f4ebd7 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ArtifactValidatorTool.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ArtifactValidatorTool.java @@ -31,14 +31,14 @@ public class ArtifactValidatorTool { public static void main(String[] args) { String outputPath = args[0]; - ValidationConfigManager.setOutputFullFilePath(outputPath); + String txtReportFilePath = ValidationConfigManager.txtReportFilePath(outputPath); String appConfigDir = args[1]; AnnotationConfigApplicationContext context = initContext(appConfigDir); ArtifactToolBL validationToolBL = context.getBean(ArtifactToolBL.class); System.out.println("Start ArtifactValidation Tool"); - Boolean result = validationToolBL.validateAll(); + Boolean result = validationToolBL.validateAll(txtReportFilePath); if (result) { System.out.println("ArtifactValidation finished successfully"); System.exit(0); diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java index 23b9c18d3f..d98a26b7ed 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java @@ -41,7 +41,7 @@ public class ValidationTool { public static void main(String[] args) { String outputPath = args[0]; - ValidationConfigManager.setOutputFullFilePath(outputPath); + String txtReportFilePath = ValidationConfigManager.txtReportFilePath(outputPath); String csvReportFilePath = ValidationConfigManager.csvReportFilePath(outputPath, System::currentTimeMillis); String appConfigDir = args[1]; @@ -49,8 +49,8 @@ public class ValidationTool { ValidationToolBL validationToolBL = context.getBean(ValidationToolBL.class); log.info("Start Validation Tool"); - boolean result = validationToolBL.validateAll(); - ReportManager.reportEndOfToolRun(csvReportFilePath); + boolean result = validationToolBL.validateAll(txtReportFilePath); + ReportManager.reportEndOfToolRun(csvReportFilePath, txtReportFilePath); if (result) { log.info("Validation finished successfully"); System.exit(0); |