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.apache.commons.httpclient.HttpException;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.portalsdk.core.web.support.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
@Autowired
private DbSubmissionAdapter submissionService;
- @Autowired
- private SiloService siloService;
-
@Autowired
NexusExecutorClient nexusService;
@Autowired
- LabService labService;
-
- @Autowired
- DbResultAdapter dbAdapter;
+ DbAdapter dbAdapter;
- public List<Lab> getLabsFromNexus()
+ public List<String> getLabsFromNexus()
throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException,
UniformInterfaceException, NoSuchAlgorithmException, IOException, IllegalArgumentException, ParseException {
- List<Lab> labs = new ArrayList<Lab>();
+ List<String> labs = new ArrayList<String>();
for (String cLabSilo : nexusService.getResource(null)) {
- for (LabSilo silo : siloService.getSilos()) {
- if (silo.getSilo().equals(cLabSilo)) {
- labs.add(silo.getLab().getLab());
+ for (LabInfo labInfo : dbAdapter.getLabs()) {
+ if (labInfo.getSilo().equals(cLabSilo)) {
+ labs.add(labInfo.getLab());
}
}
}
return labs;
}
- public List<String> getBlueprintNamesOfLabFromNexus(@Nonnull Lab lab)
+ public List<String> 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 = dbAdapter.getLab(lab);
+ if (labInfo == null) {
+ throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString());
}
- List<String> blueprintNames = new ArrayList<String>();
- List<String> cBlueprintNames = nexusService.getResource(siloText);
- for (String cBlueprintName : cBlueprintNames) {
- if (!cBlueprintName.equals("job")) {
- blueprintNames.add(cBlueprintName);
+ List<String> rNames = new ArrayList<String>();
+ try {
+ List<String> cNames = nexusService.getResource(dbAdapter.getLab(lab).getSilo() + "/bluval_results");
+ for (String cName : cNames) {
+ if (cName.equals("family") || cName.equals("ta") || cName.equals("job")) {
+ continue;
+ }
+ rNames.add(cName);
}
+ } catch (HttpException ex) {
+ LOGGER.warn(EELFLoggerDelegate.auditLogger,
+ "Error when retrieving blueprint names from nexus" + UserUtils.getStackTrace(ex));
}
- return blueprintNames;
+ return rNames;
}
- public List<String> getBlueprintVersionsFromNexus(@Nonnull String name, @Nonnull Lab lab)
+ public List<String> 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 = dbAdapter.getLab(lab);
+ if (labInfo == null) {
+ throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString());
}
- return nexusService.getResource(siloText, name);
+ return nexusService.getResource(labInfo.getSilo() + "/bluval_results", name);
}
- public List<String> 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<String> getBlueprintTimeStampsFromNexus(@Nonnull String name, @Nonnull String version,
+ @Nonnull String lab) throws JsonParseException, JsonMappingException, KeyManagementException,
+ ClientHandlerException, UniformInterfaceException, NoSuchAlgorithmException, IOException, ParseException {
+ LabInfo labInfo = dbAdapter.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());
+ List<String> timestamps = new ArrayList<String>();
+ try {
+ timestamps = nexusService.getResource(labInfo.getSilo() + "/bluval_results", name, version);
+ } catch (HttpException ex) {
+ LOGGER.warn(EELFLoggerDelegate.auditLogger,
+ "Error when retrieving blueprint names from nexus" + UserUtils.getStackTrace(ex));
}
- return nexusService.getResource(siloText, name, version);
+ return timestamps;
}
- public List<ValidationNexusTestResult> getResultsFromNexus(@Nonnull String name, @Nonnull String version,
- @Nonnull Lab lab, int noTimestamps)
+ public List<ValidationDbTestResult> 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 = dbAdapter.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 = dbAdapter.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 (vNexusResult != null && dbAdapter.checkValidityOfNexusResult(vNexusResult)) {
+ vNexusResult.setLab(labInfo);
+ return vNexusResult;
}
- return nexusService.getResult(name, version, siloText, timestamp);
+ return null;
}
- 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 = dbAdapter.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 (vNexusResult != null && dbAdapter.checkValidityOfNexusResult(vNexusResult)) {
+ vNexusResult.setLab(labInfo);
+ return vNexusResult;
}
- return nexusService.getLastResultBasedOnOutcome(name, version, siloText, allLayers, optional, outcome);
+ return null;
}
- public ValidationNexusTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version,
- @Nonnull Lab lab, @Nonnull List<BlueprintLayer> layers, Boolean optional, boolean outcome)
+ public ValidationDbTestResult getLastResultBasedOnOutcomeFromNexus(@Nonnull String name, @Nonnull String version,
+ @Nonnull String lab, @Nonnull List<String> 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 = dbAdapter.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 (vNexusResult != null && dbAdapter.checkValidityOfNexusResult(vNexusResult)) {
+ vNexusResult.setLab(labInfo);
+ return vNexusResult;
}
- return nexusService.getLastResultBasedOnOutcome(name, version, siloText, layers, optional, outcome);
+ return null;
}
- public List<ValidationNexusTestResult> getBasedOnDateFromNexus(@Nonnull String name, @Nonnull String version,
- @Nonnull Lab lab, @Nonnull Date date)
+ public List<ValidationDbTestResult> 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 = dbAdapter.getLab(lab);
+ if (labInfo == null) {
+ throw new IllegalArgumentException("Could not retrieve lab : " + lab.toString());
}
- return nexusService.getResults(name, version, siloText, date);
- }
-
- public Set<Lab> getLabsFromDb() {
- Set<Lab> labs = new HashSet<Lab>();
- for (ValidationDbTestResult result : dbAdapter.getValidationTestResults()) {
- labs.add(result.getLab().getLab());
+ List<ValidationDbTestResult> vNexusResults = new ArrayList<ValidationDbTestResult>();
+ List<ValidationDbTestResult> 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<String> getBlueprintNamesOfLabFromDb(Lab lab) {
+ public Set<String> getBlueprintNamesOfLabFromDb(String lab) {
Set<String> blueprintNames = new HashSet<String>();
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<String> getBlueprintVersionsFromDb(String name, Lab lab) {
+ public Set<String> getBlueprintVersionsFromDb(String name, String lab) {
Set<String> blueprintVersions = new HashSet<String>();
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 {
- LabInfo actualLabInfo = labService.getLab(lab);
+ LabInfo actualLabInfo = dbAdapter.getLab(lab);
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);
+ LabInfo actualLabInfo = dbAdapter.getLab(lab);
if (actualLabInfo == null) {
return null;
}
- List<ValidationNexusTestResult> vNexusResults = dbAdapter.readResultFromDb(name, version, lab, null, allLayers,
+ List<ValidationDbTestResult> 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<ValidationNexusTestResult>() {
+ Collections.sort(vDbResults, new Comparator<ValidationDbTestResult>() {
@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));
}
}
});
- 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<BlueprintLayer> layers, Boolean optional, boolean outcome)
+ public ValidationDbTestResult getLastResultBasedOnOutcome(@Nonnull String name, @Nonnull String version,
+ @Nonnull String lab, List<String> layers, Boolean optional, boolean outcome)
throws JsonParseException, JsonMappingException, KeyManagementException, ClientHandlerException,
UniformInterfaceException, NoSuchAlgorithmException, IOException, NullPointerException, ParseException {
- LabInfo actualLabInfo = labService.getLab(lab);
+ LabInfo actualLabInfo = dbAdapter.getLab(lab);
if (actualLabInfo == null) {
return null;
}
- List<ValidationNexusTestResult> vNexusResults = dbAdapter.readResultFromDb(name, version, lab, layers, null,
- optional, outcome);
- if (vNexusResults != null) {
- vNexusResults.removeIf(entry -> entry.getDateOfStorage() == null);
+ List<ValidationDbTestResult> 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<ValidationNexusTestResult>() {
+ Collections.sort(vDbResults, new Comparator<ValidationDbTestResult>() {
@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));
}
}
});
- return vNexusResults.get(0);
+ return vDbResults.get(0);
}
return this.getLastResultBasedOnOutcomeFromNexus(name, version, lab, layers, optional, outcome);
}