From 20903a7051c3ee2e938cd02e408021ea34e78d0c Mon Sep 17 00:00:00 2001 From: Francis Toth Date: Tue, 7 Jul 2020 09:10:33 -0400 Subject: Clean ValidatorExecutor hierarchy Signed-off-by: Francis Toth Change-Id: I9d919b1d57eac1d25c8b3874366c2cb9e906923a Issue-ID: SDC-2499 --- .../asdctool/impl/validator/ArtifactToolBL.java | 10 +-- .../asdctool/impl/validator/ValidationToolBL.java | 8 +- .../config/ValidationToolConfiguration.java | 11 ++- .../executor/ServiceValidatorExecutor.java | 50 ----------- .../TopologyTemplateValidatorExecutor.java | 100 +++++++++++++-------- .../validator/executor/VfValidatorExecutor.java | 48 ---------- .../impl/validator/utils/ElementTypeEnum.java | 79 ---------------- 7 files changed, 76 insertions(+), 230 deletions(-) delete mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java delete mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java delete mode 100644 asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java (limited to 'asdctool/src/main') 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 d53cadf362..92af43e3e8 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 @@ -28,19 +28,17 @@ import java.util.List; public class ArtifactToolBL { - private static final Logger log = Logger.getLogger(ValidationToolBL.class.getName()); + private static final Logger log = Logger.getLogger(ArtifactToolBL.class); - protected List validators; - - private boolean allValid = true; + private final List validators; @Autowired - public ArtifactToolBL( - List validators) { + public ArtifactToolBL(List validators) { this.validators = validators; } public boolean validateAll(String outputFilePath) { + boolean allValid = true; for (IArtifactValidatorExecutor validatorExec : validators) { log.debug("ValidatorExecuter " + validatorExec.getName() + " started"); if (!validatorExec.executeValidations(outputFilePath)) { 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 e9121f184c..8f9202fcb2 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 @@ -34,17 +34,15 @@ public class ValidationToolBL { private static final Logger log = Logger.getLogger(ValidationToolBL.class); - protected List validators; - - private boolean allValid = true; + private final List validators; @Autowired - public ValidationToolBL( - List validators) { + public ValidationToolBL(List validators) { this.validators = validators; } public boolean validateAll(Report report, ReportFile.TXTFile textFile) { + boolean allValid = true; for (ValidatorExecutor validatorExec: validators) { log.debug("ValidatorExecuter "+validatorExec.getName()+" started"); if (!validatorExec.executeValidations(report, textFile)) { diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java index 1c02ac685a..5fbed89ac1 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/config/ValidationToolConfiguration.java @@ -26,10 +26,9 @@ import org.openecomp.sdc.asdctool.impl.validator.ValidationToolBL; import org.openecomp.sdc.asdctool.impl.validator.executor.IArtifactValidatorExecutor; import org.openecomp.sdc.asdctool.impl.validator.executor.NodeToscaArtifactsValidatorExecutor; import org.openecomp.sdc.asdctool.impl.validator.executor.ServiceToscaArtifactsValidatorExecutor; -import org.openecomp.sdc.asdctool.impl.validator.executor.ServiceValidatorExecutor; +import org.openecomp.sdc.asdctool.impl.validator.executor.TopologyTemplateValidatorExecutor; import org.openecomp.sdc.asdctool.impl.validator.executor.VFToscaArtifactValidatorExecutor; import org.openecomp.sdc.asdctool.impl.validator.executor.ValidatorExecutor; -import org.openecomp.sdc.asdctool.impl.validator.executor.VfValidatorExecutor; import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask; import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ArtifactValidationUtils; import org.openecomp.sdc.asdctool.impl.validator.tasks.artifacts.ServiceArtifactValidationTask; @@ -78,8 +77,8 @@ import java.util.List; public class ValidationToolConfiguration { @Bean - public ServiceValidatorExecutor basicServiceValidator(JanusGraphDao janusGraphDao) { - return new ServiceValidatorExecutor(janusGraphDao); + public ValidatorExecutor basicServiceValidator(JanusGraphDao janusGraphDao) { + return TopologyTemplateValidatorExecutor.serviceValidatorExecutor(janusGraphDao); } @Bean @@ -126,8 +125,8 @@ public class ValidationToolConfiguration { } @Bean - public VfValidatorExecutor basicVfValidator(List tasks, JanusGraphDao janusGraphDao) { - return new VfValidatorExecutor(tasks, janusGraphDao); + public ValidatorExecutor basicVfValidator(List tasks, JanusGraphDao janusGraphDao) { + return TopologyTemplateValidatorExecutor.vfValidatorExecutor(tasks, janusGraphDao); } @Bean(name = "artifact-cassandra-dao") diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java deleted file mode 100644 index 27bcd1f60d..0000000000 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.impl.validator.executor; - -import org.openecomp.sdc.asdctool.impl.validator.report.Report; -import org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.TXTFile; -import org.openecomp.sdc.asdctool.impl.validator.tasks.ServiceValidationTask; -import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -@Component -public class ServiceValidatorExecutor extends TopologyTemplateValidatorExecutor implements ValidatorExecutor { - - List tasks = new ArrayList<>(); - - @Autowired(required = false) - public ServiceValidatorExecutor(JanusGraphDao janusGraphDao) { - super(janusGraphDao, "SERVICE_VALIDATOR"); - } - - @Override - public boolean executeValidations(Report report, TXTFile reportFile) { - List vertices = getVerticesToValidate(ComponentTypeEnum.SERVICE); - return validate(report, tasks, vertices, reportFile); - } -} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java index 95a9fce9af..36feb3b607 100644 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java +++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java @@ -20,19 +20,12 @@ package org.openecomp.sdc.asdctool.impl.validator.executor; -import fj.data.Either; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; import lombok.Getter; import org.openecomp.sdc.asdctool.impl.validator.report.Report; import org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.TXTFile; import org.openecomp.sdc.asdctool.impl.validator.tasks.TopologyTemplateValidationTask; +import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask; import org.openecomp.sdc.asdctool.impl.validator.utils.VertexResult; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; @@ -40,45 +33,56 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.common.log.wrappers.Logger; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; -public class TopologyTemplateValidatorExecutor { +public class TopologyTemplateValidatorExecutor implements ValidatorExecutor { - private static final Logger log = Logger.getLogger(VfValidatorExecutor.class); + private static final Logger log = Logger.getLogger(TopologyTemplateValidatorExecutor.class); private final JanusGraphDao janusGraphDao; + private final ComponentTypeEnum componentType; + private final List tasks; @Getter private final String name; - public TopologyTemplateValidatorExecutor(JanusGraphDao janusGraphDao, String name) { - this.janusGraphDao = janusGraphDao; - this.name = name; + @Autowired(required = false) + public static ValidatorExecutor serviceValidatorExecutor(JanusGraphDao janusGraphDao) { + return new TopologyTemplateValidatorExecutor( + janusGraphDao, "SERVICE_VALIDATOR", ComponentTypeEnum.SERVICE, new ArrayList<>() + ); } - protected List getVerticesToValidate(ComponentTypeEnum type) { - Map props = new EnumMap<>(GraphPropertyEnum.class); - props.put(GraphPropertyEnum.COMPONENT_TYPE, type.name()); - if (type.equals(ComponentTypeEnum.RESOURCE)) { - props.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); - } - - Either, JanusGraphOperationStatus> results = janusGraphDao - .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, props); - if (results.isRight()) { - log.error("getVerticesToValidate failed " + results.right().value()); - return new ArrayList<>(); - } - log.info("getVerticesToValidate: " + results.left().value().size() + " vertices to scan"); - return results.left().value(); + @Autowired(required = false) + public static ValidatorExecutor vfValidatorExecutor(List tasks, JanusGraphDao janusGraphDao) { + return new TopologyTemplateValidatorExecutor( + janusGraphDao, "BASIC_VF_VALIDATOR", ComponentTypeEnum.RESOURCE, tasks + ); } - protected boolean validate( - Report report, - List tasks, - List vertices, - TXTFile reportFile + private TopologyTemplateValidatorExecutor( + JanusGraphDao janusGraphDao, + String name, + ComponentTypeEnum componentType, + List tasks ) { - reportFile.reportStartValidatorRun(getName(), vertices.size()); + this.janusGraphDao = janusGraphDao; + this.name = name; + this.componentType = componentType; + this.tasks = tasks; + } + + @Override + public boolean executeValidations(Report report, TXTFile reportFile) { + List vertices = getVerticesToValidate(); + reportFile.reportStartValidatorRun(name, vertices.size()); Set failedTasks = new HashSet<>(); Set successTasks = new HashSet<>(); boolean successAllVertices = true; @@ -102,9 +106,33 @@ public class TopologyTemplateValidatorExecutor { report.addSuccess(vertex.getUniqueId(), task.getTaskName(), result); } String componentScanStatus = successAllTasks ? "success" : "failed"; - log.info("Topology Template " + vertex.getUniqueId() + " Validation finished with " + componentScanStatus); + log.info("Topology Template {} Validation finished with {}", vertex.getUniqueId(), componentScanStatus); } - reportFile.reportValidatorTypeSummary(getName(), failedTasks, successTasks); + reportFile.reportValidatorTypeSummary(name, failedTasks, successTasks); return successAllVertices; } + + private List getVerticesToValidate() { + return janusGraphDao + .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, buildProps()) + .either( + vs -> { + log.info("getVerticesToValidate: {} vertices to scan", vs.size()); + return vs; + }, + sos -> { + log.error("getVerticesToValidate failed {}", sos); + return new ArrayList<>(); + } + ); + } + + private Map buildProps() { + Map props = new EnumMap<>(GraphPropertyEnum.class); + props.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name()); + if (componentType.equals(ComponentTypeEnum.RESOURCE)) { + props.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF); + } + return props; + } } diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java deleted file mode 100644 index f8aaf5480d..0000000000 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.impl.validator.executor; - -import org.openecomp.sdc.asdctool.impl.validator.report.Report; -import org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.TXTFile; -import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask; -import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; - -public class VfValidatorExecutor extends TopologyTemplateValidatorExecutor implements ValidatorExecutor { - - private final List tasks; - - @Autowired(required = false) - public VfValidatorExecutor(List tasks, JanusGraphDao janusGraphDao) { - super(janusGraphDao, "BASIC_VF_VALIDATOR"); - this.tasks = tasks; - } - - @Override - public boolean executeValidations(Report report, TXTFile reportFile) { - List vertices = getVerticesToValidate(ComponentTypeEnum.RESOURCE); - return validate(report, tasks, vertices, reportFile); - } -} diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java deleted file mode 100644 index 3424641491..0000000000 --- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ElementTypeEnum.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.impl.validator.utils; - -import org.openecomp.sdc.asdctool.impl.validator.executor.VfValidatorExecutor; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created by chaya on 7/4/2017. - */ -public enum ElementTypeEnum { - - VF ("vf", VfValidatorExecutor.class); - //SERVICE("service", ServiceValidatorExecuter.class) - - private String elementType; - private Class clazz; - - ElementTypeEnum(String elementType, Class clazz) { - this. elementType = elementType; - this.clazz = clazz; - } - - public static ElementTypeEnum getByType(String elementType){ - for(ElementTypeEnum currType :ElementTypeEnum.values()){ - if(currType.getElementType().equals(elementType)){ - return currType; - } - } - return null; - } - - public static List getAllTypes() { - - List arrayList = new ArrayList(); - - for (ElementTypeEnum graphType : ElementTypeEnum.values()) { - arrayList.add(graphType.getElementType()); - } - return arrayList; - } - - - public String getElementType() { - return elementType; - } - - public void setElementType(String elementType) { - this.elementType = elementType; - } - - public Class getClazz() { - return clazz; - } - - public void setClazz(Class clazz) { - this.clazz = clazz; - } -} -- cgit 1.2.3-korg