Skip to content

Commit d02f88d

Browse files
committed
VAL-405 Add a fallback if the previous release was not found from Module Storage Coordinator
1 parent dbfa64c commit d02f88d

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/main/java/org/ihtsdo/rvf/core/service/MysqlValidationService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.springframework.beans.factory.annotation.Value;
1515
import org.springframework.stereotype.Service;
1616
import org.springframework.util.CollectionUtils;
17-
import org.springframework.util.StringUtils;
1817

1918
import java.sql.SQLException;
2019
import java.util.*;
@@ -70,7 +69,7 @@ public ValidationStatusReport runRF2MysqlValidations(ValidationRunConfig validat
7069
MysqlExecutionConfig executionConfig = releaseVersionLoader.createExecutionConfig(validationConfig);
7170
this.schemasToRemove.add(executionConfig.getProspectiveVersion());
7271

73-
if (!StringUtils.hasLength(validationConfig.getPreviousRelease())) {
72+
if (validationConfig.getLocalPreviousReleaseFile() == null) {
7473
executionConfig.setPreviousVersion(emptyRf2File);
7574
}
7675
if (validationConfig.getLocalDependencyReleaseFile() == null || executionConfig.isStandAloneProduct()) {

src/main/java/org/ihtsdo/rvf/core/service/ValidationVersionLoader.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ihtsdo.rvf.core.service;
22

3+
import jakarta.annotation.PostConstruct;
34
import org.apache.commons.io.FileUtils;
45
import org.apache.commons.io.IOUtils;
56
import org.ihtsdo.otf.resourcemanager.ManualResourceConfiguration;
@@ -10,6 +11,7 @@
1011
import org.ihtsdo.otf.snomedboot.ReleaseImporter;
1112
import org.ihtsdo.rvf.core.service.config.MysqlExecutionConfig;
1213
import org.ihtsdo.rvf.core.service.config.ValidationJobResourceConfig;
14+
import org.ihtsdo.rvf.core.service.config.ValidationReleaseStorageConfig;
1315
import org.ihtsdo.rvf.core.service.config.ValidationRunConfig;
1416
import org.ihtsdo.rvf.core.service.pojo.ValidationStatusReport;
1517
import org.ihtsdo.rvf.core.service.util.RvfReleaseDbSchemaNameGenerator;
@@ -64,11 +66,20 @@ public class ValidationVersionLoader {
6466
@Autowired
6567
private ResourceDataLoader resourceLoader;
6668

69+
@Autowired
70+
private ValidationReleaseStorageConfig releaseStorageConfig;
71+
private ResourceManager releaseSourceManager;
72+
6773
@Value("${rvf.generate.mysql.binary.archive}")
6874
private boolean generateBinaryArchive;
6975

7076
private final Logger logger = LoggerFactory.getLogger(ValidationVersionLoader.class);
7177

78+
@PostConstruct
79+
public void init() {
80+
releaseSourceManager = new ResourceManager(releaseStorageConfig, cloudResourceLoader);
81+
}
82+
7283
public void loadPreviousVersion(MysqlExecutionConfig executionConfig) throws BusinessServiceException, IOException {
7384
if (executionConfig.getPreviousVersion().endsWith(ZIP_FILE_EXTENSION)) {
7485
String rvfDbSchema = loadRelease(executionConfig.getPreviousVersion(), executionConfig.getExcludedRF2Files());
@@ -360,6 +371,10 @@ public void downloadPreviousReleaseAndDependencyFiles(ValidationRunConfig valida
360371
File tempFile = File.createTempFile(validationConfig.getRunId() + "_DEPENDENCY_RF2", ZIP_FILE_EXTENSION);
361372
Files.copy(dependencyFile.toPath(), tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
362373
validationConfig.setLocalDependencyReleaseFile(tempFile);
374+
validationConfig.setExtensionDependency(dependency.getFilename());
375+
logger.info("Dependency {} found from Module Storage Coordinator", dependency.getFilename());
376+
} else {
377+
logger.info("Other dependency {} found from Module Storage Coordinator", dependency.getFilename());
363378
}
364379
Files.delete(dependencyFile.toPath());
365380
}
@@ -382,6 +397,18 @@ public void downloadPreviousReleaseAndDependencyFiles(ValidationRunConfig valida
382397
Files.delete(releaseFile.toPath());
383398
} else {
384399
logger.info("Previous release {} not found from Module Storage Coordinator", validationConfig.getPreviousRelease());
400+
401+
// Fallback to the old versioned content bucket
402+
InputStream previousStream = releaseSourceManager.readResourceStreamOrNullIfNotExists(validationConfig.getPreviousRelease());
403+
if (previousStream != null) {
404+
File previousFile = File.createTempFile(validationConfig.getRunId() + "_PREVIOUS_RF2", ZIP_FILE_EXTENSION);
405+
try (OutputStream out = new FileOutputStream(previousFile)) {
406+
IOUtils.copy(previousStream, out);
407+
} finally {
408+
IOUtils.closeQuietly(previousStream, null);
409+
}
410+
validationConfig.setLocalPreviousReleaseFile(previousFile);
411+
}
385412
}
386413
}
387414
}

0 commit comments

Comments
 (0)