Skip to content

Commit 34e57cf

Browse files
committed
Fix runner metadata failures
1 parent 6d53efe commit 34e57cf

2 files changed

Lines changed: 22 additions & 48 deletions

File tree

  • seqware-pipeline/src/main/java/net/sourceforge/seqware/pipeline/runner
  • seqware-webservice/src/test/java/net/sourceforge/seqware/pipeline/runner

seqware-pipeline/src/main/java/net/sourceforge/seqware/pipeline/runner/Runner.java

Lines changed: 9 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -212,19 +212,20 @@ public static void getSyntax(OptionParser parser, String errorMessage) {
212212
System.exit(-1);
213213
}
214214

215-
private void writeProcessingAccessionToFile(File file, boolean append) {
215+
private void writeStringToFile(File file, boolean append, String output) {
216216
int maxTries = (Integer) options.valueOf("metadata-tries-number");
217217
for (int i = 0; i <= maxTries; i++) {
218+
Log.fatal("On try " + i + " of " + maxTries);
218219
// Break on success
219-
if (LockingFileTools.lockAndWrite(file, processingAccession + System.getProperty("line.separator"), append)) {
220+
if (LockingFileTools.lockAndWrite(file, output, append)) {
220221
break;
221222
} // Sleep if going to try again
222223
else if (i < maxTries) {
223224
ProcessTools.sleep((Integer) options.valueOf("metadata-tries-delay"));
224225
} // Return error if failed on last try
225-
else {
226+
if (maxTries == i) {
226227
ReturnValue retval = new ReturnValue();
227-
retval.printAndAppendtoStderr("Could not write to processingAccession File for metadata");
228+
retval.printAndAppendtoStderr("Could not write to " + file.getAbsolutePath() + " for metadata");
228229
retval.setExitStatus(ReturnValue.METADATAINVALIDIDCHAIN);
229230
meta.update_processing_event(processingID, retval);
230231
meta.update_processing_status(processingID, ProcessingStatus.failed);
@@ -643,24 +644,7 @@ private void preProcessMetadata() {
643644

644645
try {
645646
if ((file.exists() || file.createNewFile()) && file.canWrite()) {
646-
int maxTries = (Integer) options.valueOf("metadata-tries-number");
647-
for (int i = 0; i <= maxTries; i++) {
648-
// Break on success
649-
if (LockingFileTools.lockAndAppend(file, workflowRunAccession + System.getProperty("line.separator"))) {
650-
break;
651-
} // Sleep if going to try again
652-
else if (i < maxTries) {
653-
ProcessTools.sleep((Integer) options.valueOf("metadata-tries-delay"));
654-
} // Return error if failed on last try
655-
else {
656-
ReturnValue retval = new ReturnValue();
657-
retval.printAndAppendtoStderr("Could not write to processingID File for metadata");
658-
retval.setExitStatus(ReturnValue.METADATAINVALIDIDCHAIN);
659-
meta.update_processing_event(workflowRunAccession, retval);
660-
meta.update_processing_status(workflowRunAccession, ProcessingStatus.failed);
661-
System.exit(retval.getExitStatus());
662-
}
663-
}
647+
this.writeStringToFile(file, true, workflowRunAccession + System.getProperty("line.separator"));
664648
} else {
665649
Log.error("Could not create processingAccession File for metadata");
666650
System.exit(ReturnValue.METADATAINVALIDIDCHAIN);
@@ -894,35 +878,18 @@ private void postProcessMetadata() {
894878
// Try to write to each processingIDFile until success or timeout
895879
for (File file : processingIDFiles) {
896880
Log.debug("Writing out accession to " + file.toString());
897-
int maxTries = (Integer) options.valueOf("metadata-tries-number");
898-
for (int i = 0; i <= maxTries; i++) {
899-
// Break on success
900-
if (LockingFileTools.lockAndAppend(file, processingID + System.getProperty("line.separator"))) {
901-
break;
902-
} // Sleep if going to try again
903-
else if (i < maxTries) {
904-
ProcessTools.sleep((Integer) options.valueOf("metadata-tries-delay"));
905-
} // Return error if failed on last try
906-
else {
907-
ReturnValue retval = new ReturnValue();
908-
retval.printAndAppendtoStderr("Could not write to processingID File for metadata");
909-
retval.setExitStatus(ReturnValue.METADATAINVALIDIDCHAIN);
910-
meta.update_processing_event(processingID, retval);
911-
meta.update_processing_status(processingID, ProcessingStatus.failed);
912-
System.exit(retval.getExitStatus());
913-
}
914-
}
881+
this.writeStringToFile(file, true, processingID + System.getProperty("line.separator"));
915882
}
916883
Log.debug("Completed processingIDFiles");
917884

918885
// Try to write to each processingAccessionFile until success or timeout
919886
for (File file : processingAccessionFiles) {
920887
Log.debug("Writing out to " + file.toString());
921-
writeProcessingAccessionToFile(file, true);
888+
writeStringToFile(file, true, processingAccession + System.getProperty("line.separator"));
922889
}
923890
Log.debug("Completed processingAccessionFiles");
924891
if (processingAccessionFileCheck != null) {
925-
writeProcessingAccessionToFile(processingAccessionFileCheck, false);
892+
writeStringToFile(processingAccessionFileCheck, true, processingAccession + System.getProperty("line.separator"));
926893
}
927894
Log.debug("Completed processingAccessionFileCheck");
928895
meta.update_processing_status(processingID, ProcessingStatus.success);

seqware-webservice/src/test/java/net/sourceforge/seqware/pipeline/runner/ModuleRunnerTest.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
*
3737
* @author dyuen
3838
*/
39+
3940
public class ModuleRunnerTest extends ExtendedPluginTest {
4041

4142
/**
@@ -46,27 +47,23 @@ public class ModuleRunnerTest extends ExtendedPluginTest {
4647

4748
@BeforeClass
4849
public static void beforeClass() {
49-
System.out.println("beforeClass");
5050
BasicTestDatabaseCreator.resetDatabaseWithUsers();
5151
Reports.triggerProvenanceReport();
5252
}
5353

5454
@Before
5555
@Override
5656
public void setUp() {
57-
System.out.println("before setUp");
5857
instance = new ModuleRunner();
59-
System.out.println("before call to super");
6058
super.setUp();
61-
System.out.println("after setUp");
6259
}
6360

6461
public ModuleRunnerTest() {
6562
}
6663

6764
@Test
68-
public void normalRunTest() throws IOException {
69-
System.out.println("testNormalRun");
65+
public void normalParentAccessionRunTest() throws IOException {
66+
System.out.println("normalParentAccessionRunTest");
7067
Path parentAccession = Files.createTempFile("accession", "test");
7168
FileUtils.write(parentAccession.toFile(), "836");
7269
exit.expectSystemExitWithStatus(ReturnValue.SUCCESS);
@@ -75,6 +72,16 @@ public void normalRunTest() throws IOException {
7572
"echo");
7673
}
7774

75+
@Test
76+
public void normalAccessionFileRunTest() throws IOException {
77+
System.out.println("normalAccessionFileRunTest");
78+
Path resultAccession = Files.createTempFile("accession", "test");
79+
exit.expectSystemExitWithStatus(ReturnValue.SUCCESS);
80+
launchPlugin("--metadata", "--metadata-processing-accession-file", resultAccession.toAbsolutePath().toString(), "--module",
81+
"net.sourceforge.seqware.pipeline.modules.GenericCommandRunner", "--", "--gcr-algorithm", "bash_cp", "--gcr-command",
82+
"echo");
83+
}
84+
7885
@Test
7986
public void testBlankParentAccessionFileFail() throws IOException {
8087
System.out.println("testBlankParentAccessionFile");

0 commit comments

Comments
 (0)