X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=validation.git;a=blobdiff_plain;f=ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fakraino%2Fvalidation%2Fui%2Fservice%2FIntegratedResultService.java;h=e97b5d1274fa9b63f2bd0a98067916b87f62a48d;hp=001559097b1e7181a0c30e57a383073f4ab2836a;hb=147ecf7bf79ea9967a121d0038103151a38ebef2;hpb=e6b82a7ccd840c8b089ae4d5e69930fd0dd5ef35 diff --git a/ui/src/main/java/org/akraino/validation/ui/service/IntegratedResultService.java b/ui/src/main/java/org/akraino/validation/ui/service/IntegratedResultService.java index 0015590..e97b5d1 100644 --- a/ui/src/main/java/org/akraino/validation/ui/service/IntegratedResultService.java +++ b/ui/src/main/java/org/akraino/validation/ui/service/IntegratedResultService.java @@ -33,12 +33,8 @@ import java.util.Set; import javax.annotation.Nonnull; import org.akraino.validation.ui.client.nexus.NexusExecutorClient; -import org.akraino.validation.ui.client.nexus.resources.ValidationNexusTestResult; -import org.akraino.validation.ui.data.BlueprintLayer; -import org.akraino.validation.ui.data.Lab; -import org.akraino.validation.ui.data.SubmissionData; import org.akraino.validation.ui.entity.LabInfo; -import org.akraino.validation.ui.entity.LabSilo; +import org.akraino.validation.ui.entity.Submission; import org.akraino.validation.ui.entity.ValidationDbTestResult; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.web.support.UserUtils; @@ -60,9 +56,6 @@ public class IntegratedResultService { @Autowired private DbSubmissionAdapter submissionService; - @Autowired - private SiloService siloService; - @Autowired NexusExecutorClient nexusService; @@ -72,194 +65,174 @@ public class IntegratedResultService { @Autowired DbResultAdapter dbAdapter; - public List getLabsFromNexus() + public List getLabsFromNexus() throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, IllegalArgumentException, ParseException { - List labs = new ArrayList(); + List labs = new ArrayList(); for (String cLabSilo : nexusService.getResource(null)) { - for (LabSilo silo : siloService.getSilos()) { - if (silo.getSilo().equals(cLabSilo)) { - labs.add(silo.getLab().getLab()); + for (LabInfo labInfo : labService.getLabs()) { + if (labInfo.getSilo().equals(cLabSilo)) { + labs.add(labInfo.getLab()); } } } return labs; } - public List getBlueprintNamesOfLabFromNexus(@Nonnull Lab lab) + public List getBlueprintNamesOfLabFromNexus(@Nonnull String lab) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, IllegalArgumentException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } - } - if (siloText == null) { - throw new IllegalArgumentException("Could not retrieve blueprint names of lab : " + lab.toString()); + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - List blueprintNames = new ArrayList(); - List cBlueprintNames = nexusService.getResource(siloText); - for (String cBlueprintName : cBlueprintNames) { - if (!cBlueprintName.equals("job")) { - blueprintNames.add(cBlueprintName); + List cNames = nexusService.getResource(labService.getLab(lab).getSilo()); + List rNames = new ArrayList(); + for (String cName : cNames) { + if (cName.equals("family") || cName.equals("ta") || cName.equals("job")) { + continue; } + rNames.add(cName); } - return blueprintNames; + return rNames; } - public List getBlueprintVersionsFromNexus(@Nonnull String name, @Nonnull Lab lab) + public List getBlueprintVersionsFromNexus(@Nonnull String name, @Nonnull String lab) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, IllegalArgumentException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } - } - if (siloText == null) { - throw new IllegalArgumentException("Could not retrieve silo of the lab : " + lab.toString()); + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - return nexusService.getResource(siloText, name); + return nexusService.getResource(labInfo.getSilo(), name); } - public List getBlueprintTimeStampsFromNexus(@Nonnull String name, @Nonnull String version, @Nonnull Lab lab) - throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, - UniformInterfaceException, NoSuchAlgorithmException, IOException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } + public List getBlueprintTimeStampsFromNexus(@Nonnull String name, @Nonnull String version, + @Nonnull String lab) throws JsonParseException, JsonMappingException, KeyManagementException, + ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, ParseException { + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - if (siloText == null) { - throw new IllegalArgumentException("Could not retrieve silo of the lab : " + lab.toString()); - } - return nexusService.getResource(siloText, name, version); + return nexusService.getResource(labInfo.getSilo(), name, version); } - public List getResultsFromNexus(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, int noTimestamps) + public List getResultsFromNexus(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, int noTimestamps) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, IllegalArgumentException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - if (siloText == null) { - throw new IllegalArgumentException("Could not retrieve silo of the lab : " + lab.toString()); - } - return nexusService.getResults(name, version, siloText, noTimestamps); + return nexusService.getResults(name, version, labInfo.getSilo(), noTimestamps); } - public ValidationNexusTestResult getResultFromNexus(@Nonnull String name, @Nonnull String version, @Nonnull Lab lab, + public ValidationDbTestResult getResultFromNexus(@Nonnull String name, @Nonnull String version, @Nonnull String lab, @Nonnull String timestamp) throws JsonParseException, JsonMappingException, IOException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, NullPointerException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - if (siloText == null) { - throw new IllegalArgumentException("Could not retrieve silo of the lab : " + lab.toString()); + ValidationDbTestResult vNexusResult = nexusService.getResult(name, version, labInfo.getSilo(), timestamp); + if (!dbAdapter.checkValidityOfNexusResult(vNexusResult)) { + return null; } - return nexusService.getResult(name, version, siloText, timestamp); + vNexusResult.setLab(labInfo); + return vNexusResult; } - public ValidationNexusTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, Boolean allLayers, Boolean optional, boolean outcome) + public ValidationDbTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, Boolean allLayers, Boolean optional, boolean outcome) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, NullPointerException, IOException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - if (siloText == null) { - throw new IllegalArgumentException("Lab does not exist: " + lab.toString()); + ValidationDbTestResult vNexusResult = nexusService.getLastResultBasedOnOutcome(name, version, labInfo.getSilo(), + allLayers, optional, outcome); + if (!dbAdapter.checkValidityOfNexusResult(vNexusResult)) { + return null; } - return nexusService.getLastResultBasedOnOutcome(name, version, siloText, allLayers, optional, outcome); + vNexusResult.setLab(labInfo); + return vNexusResult; } - public ValidationNexusTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, @Nonnull List layers, Boolean optional, boolean outcome) + public ValidationDbTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, @Nonnull List layers, Boolean optional, boolean outcome) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, NullPointerException, IOException, ParseException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - if (siloText == null) { - throw new IllegalArgumentException("Lab does not exist: " + lab.toString()); + ValidationDbTestResult vNexusResult = nexusService.getLastResultBasedOnOutcome(name, version, labInfo.getSilo(), + layers, optional, outcome); + if (!dbAdapter.checkValidityOfNexusResult(vNexusResult)) { + return null; } - return nexusService.getLastResultBasedOnOutcome(name, version, siloText, layers, optional, outcome); + vNexusResult.setLab(labInfo); + return vNexusResult; } - public List getBasedOnDateFromNexus(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, @Nonnull Date date) + public List getBasedOnDateFromNexus(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, @Nonnull Date date) throws JsonParseException, JsonMappingException, IOException, ParseException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, NullPointerException { - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(lab)) { - siloText = silo.getSilo(); - } - } - if (siloText == null) { - throw new IllegalArgumentException("Lab does not exist: " + lab.toString()); + LabInfo labInfo = labService.getLab(lab); + if (labInfo == null) { + throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString()); } - return nexusService.getResults(name, version, siloText, date); - } - - public Set getLabsFromDb() { - Set labs = new HashSet(); - for (ValidationDbTestResult result : dbAdapter.getValidationTestResults()) { - labs.add(result.getLab().getLab()); + List vNexusResults = new ArrayList(); + List vResults = nexusService.getResults(name, version, labInfo.getSilo(), date); + if (vResults != null && vResults.size() > 1) { + for (ValidationDbTestResult vNexusResult : vResults) { + if (dbAdapter.checkValidityOfNexusResult(vNexusResult)) { + vNexusResult.setLab(labInfo); + vNexusResults.add(vNexusResult); + } + } } - return labs; + return vNexusResults; } - public Set getBlueprintNamesOfLabFromDb(Lab lab) { + public Set getBlueprintNamesOfLabFromDb(String lab) { Set blueprintNames = new HashSet(); for (ValidationDbTestResult result : dbAdapter.getValidationTestResults()) { if (result.getLab().getLab().equals(lab)) { - blueprintNames.add(result.getBlueprintName()); + blueprintNames.add(result.getBlueprintInstance().getBlueprint().getBlueprintName()); } } return blueprintNames; } - public Set getBlueprintVersionsFromDb(String name, Lab lab) { + public Set getBlueprintVersionsFromDb(String name, String lab) { Set blueprintVersions = new HashSet(); for (ValidationDbTestResult result : dbAdapter.getValidationTestResults()) { - if (result.getLab().getLab().equals(lab) && result.getBlueprintName().equals(name)) { - blueprintVersions.add(result.getVersion()); + if (result.getLab().getLab().equals(lab) + && result.getBlueprintInstance().getBlueprint().getBlueprintName().equals(name)) { + blueprintVersions.add(result.getBlueprintInstance().getVersion()); } } return blueprintVersions; } - public ValidationNexusTestResult getResults(@Nonnull String submissionId) + public ValidationDbTestResult getResults(@Nonnull String submissionId) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, NullPointerException, ParseException { - SubmissionData submissionData = submissionService.getSubmissionData(submissionId); - ValidationNexusTestResult vNexusResult = dbAdapter.readResultFromDb(submissionId); - return vNexusResult == null - ? this.getResultFromNexus(submissionData.getValidationNexusTestResult().getBlueprintName(), - submissionData.getValidationNexusTestResult().getVersion(), - submissionData.getTimeslot().getLab().getLab(), - submissionData.getValidationNexusTestResult().getTimestamp()) - : vNexusResult; + Submission submission = submissionService.getSubmission(submissionId); + ValidationDbTestResult vDbResult = dbAdapter.readResultFromDb(submissionId); + return vDbResult == null ? this.getResultFromNexus( + submission.getValidationDbTestResult().getBlueprintInstance().getBlueprint().getBlueprintName(), + submission.getValidationDbTestResult().getBlueprintInstance().getVersion(), + submission.getTimeslot().getLabInfo().getLab(), submission.getValidationDbTestResult().getTimestamp()) + : vDbResult; } - public ValidationNexusTestResult getResult(@Nonnull String name, @Nonnull String version, @Nonnull Lab lab, + public ValidationDbTestResult getResult(@Nonnull String name, @Nonnull String version, @Nonnull String lab, @Nonnull String timestamp) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, NullPointerException, IOException, ParseException { @@ -267,29 +240,29 @@ public class IntegratedResultService { if (actualLabInfo == null) { return null; } - ValidationNexusTestResult vNexusResult = dbAdapter.readResultFromDb(lab, timestamp); - return vNexusResult == null ? this.getResultFromNexus(name, version, lab, timestamp) : vNexusResult; + ValidationDbTestResult vDbResult = dbAdapter.readResultFromDb(lab, timestamp); + return vDbResult == null ? this.getResultFromNexus(name, version, lab, timestamp) : vDbResult; } - public ValidationNexusTestResult getLastResultBasedOnOutcome(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, Boolean allLayers, Boolean optional, boolean outcome) + public ValidationDbTestResult getLastResultBasedOnOutcome(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, Boolean allLayers, Boolean optional, boolean outcome) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, NullPointerException, ParseException { LabInfo actualLabInfo = labService.getLab(lab); if (actualLabInfo == null) { return null; } - List vNexusResults = dbAdapter.readResultFromDb(name, version, lab, null, allLayers, + List vDbResults = dbAdapter.readResultFromDb(name, version, lab, null, allLayers, optional, outcome); - if (vNexusResults != null) { - vNexusResults.removeIf(entry -> entry.getDateOfStorage() == null); + if (vDbResults != null) { + vDbResults.removeIf(entry -> entry.getDateStorage() == null); DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); - Collections.sort(vNexusResults, new Comparator() { + Collections.sort(vDbResults, new Comparator() { @Override - public int compare(ValidationNexusTestResult vNexusResult1, ValidationNexusTestResult vNexusResult2) { + public int compare(ValidationDbTestResult vDbResult1, ValidationDbTestResult vDbResult2) { try { - return dateFormat.parse(vNexusResult2.getDateOfStorage()) - .compareTo(dateFormat.parse(vNexusResult1.getDateOfStorage())); + return dateFormat.parse(vDbResult2.getDateStorage()) + .compareTo(dateFormat.parse(vDbResult1.getDateStorage())); } catch (ParseException e) { LOGGER.error(EELFLoggerDelegate.errorLogger, "Error when parsing date. " + UserUtils.getStackTrace(e)); @@ -297,30 +270,30 @@ public class IntegratedResultService { } } }); - return vNexusResults.get(0); + return vDbResults.get(0); } return this.getLastResultBasedOnOutcomeFromNexus(name, version, lab, allLayers, optional, outcome); } - public ValidationNexusTestResult getLastResultBasedOnOutcome(@Nonnull String name, @Nonnull String version, - @Nonnull Lab lab, List layers, Boolean optional, boolean outcome) + public ValidationDbTestResult getLastResultBasedOnOutcome(@Nonnull String name, @Nonnull String version, + @Nonnull String lab, List layers, Boolean optional, boolean outcome) throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, NullPointerException, ParseException { LabInfo actualLabInfo = labService.getLab(lab); if (actualLabInfo == null) { return null; } - List vNexusResults = dbAdapter.readResultFromDb(name, version, lab, layers, null, - optional, outcome); - if (vNexusResults != null) { - vNexusResults.removeIf(entry -> entry.getDateOfStorage() == null); + List vDbResults = dbAdapter.readResultFromDb(name, version, lab, layers, null, optional, + outcome); + if (vDbResults != null && vDbResults.size() > 0) { + vDbResults.removeIf(entry -> entry.getDateStorage() == null); DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); - Collections.sort(vNexusResults, new Comparator() { + Collections.sort(vDbResults, new Comparator() { @Override - public int compare(ValidationNexusTestResult vNexusResult1, ValidationNexusTestResult vNexusResult2) { + public int compare(ValidationDbTestResult vDbResult1, ValidationDbTestResult vDbResult2) { try { - return dateFormat.parse(vNexusResult2.getDateOfStorage()) - .compareTo(dateFormat.parse(vNexusResult1.getDateOfStorage())); + return dateFormat.parse(vDbResult2.getDateStorage()) + .compareTo(dateFormat.parse(vDbResult2.getDateStorage())); } catch (ParseException e) { LOGGER.error(EELFLoggerDelegate.errorLogger, "Error when parsing date. " + UserUtils.getStackTrace(e)); @@ -328,7 +301,7 @@ public class IntegratedResultService { } } }); - return vNexusResults.get(0); + return vDbResults.get(0); } return this.getLastResultBasedOnOutcomeFromNexus(name, version, lab, layers, optional, outcome); }