Skip to content
Snippets Groups Projects
Commit 46be9fde authored by jakubs's avatar jakubs
Browse files

LMS-2739: fix bug introduced by deleting the dataset directory after succesful...

LMS-2739: fix bug introduced by deleting the dataset directory after succesful registration for datasets imported with marker files

SVN: 24274
parent 609b68a5
No related branches found
No related tags found
No related merge requests found
...@@ -345,12 +345,6 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat ...@@ -345,12 +345,6 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
boolean markerDeleteSucceeded = boolean markerDeleteSucceeded =
state.getMarkerFileUtility().deleteAndLogIsFinishedMarkerFile( state.getMarkerFileUtility().deleteAndLogIsFinishedMarkerFile(
isFinishedFile); isFinishedFile);
if (didOperationSucceed)
{
return markerDeleteSucceeded
&& FileUtilities.deleteRecursively(incomingDataSetFile);
}
return markerDeleteSucceeded; return markerDeleteSucceeded;
} }
}; };
......
...@@ -103,8 +103,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH ...@@ -103,8 +103,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
Properties properties = Properties properties =
createThreadPropertiesRelativeToScriptsFolder("simple-transaction.py"); createThreadPropertiesRelativeToScriptsFolder("simple-transaction.py");
createHandler(properties, false, true); createHandler(properties, false, true);
createData(); createDataWithOneSubDataSet();
ExperimentBuilder builder = new ExperimentBuilder().identifier(EXPERIMENT_IDENTIFIER); ExperimentBuilder builder = new ExperimentBuilder().identifier(EXPERIMENT_IDENTIFIER);
final Experiment experiment = builder.getExperiment(); final Experiment experiment = builder.getExperiment();
final RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails> atomicatOperationDetails = final RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails> atomicatOperationDetails =
...@@ -161,12 +160,20 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH ...@@ -161,12 +160,20 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
private void checkDirContentsAfterSuccessfulRegistration() private void checkDirContentsAfterSuccessfulRegistration()
{ {
assertFalse("The incoming data set should have been removed", incomingDataSetFile.exists()); // we should not expect the dataset directory to be removed in general case. The
// responsibility for removing directory (if the marker files are being used) should be
// solely on the jython dropboxes side. This is required for backwards compatibility as we
// have users who use this behaviour and want to keep the files inside of the dropbox even
// after it has been registered.
assertEquals(
"The incoming data set directory should be cleared by the jython dropboxes after succesful registration",
incomingDataSetFile.listFiles().length, 0);
} }
private void checkStagingDirIsEmpty() private void checkStagingDirIsEmpty()
{ {
assertEquals("[]", Arrays.asList(handler.getGlobalState().getStagingDir().list()).toString()); assertEquals("[]", Arrays.asList(handler.getGlobalState().getStagingDir().list())
.toString());
} }
@Test @Test
...@@ -400,7 +407,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH ...@@ -400,7 +407,7 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
Properties properties = Properties properties =
createThreadPropertiesRelativeToScriptsFolder("transaction-with-new-experiment.py"); createThreadPropertiesRelativeToScriptsFolder("transaction-with-new-experiment.py");
createHandler(properties, false, true); createHandler(properties, false, true);
createData(); createDataWithOneSubDataSet();
final RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails> atomicatOperationDetails = final RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails> atomicatOperationDetails =
new RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails>(); new RecordingMatcher<ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails>();
context.checking(new Expectations() context.checking(new Expectations()
...@@ -678,6 +685,8 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH ...@@ -678,6 +685,8 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
{ {
incomingDataSetFile = createDirectory(workingDirectory, "data_set"); incomingDataSetFile = createDirectory(workingDirectory, "data_set");
assertTrue(incomingDataSetFile.isDirectory());
subDataSet1 = createDirectory(incomingDataSetFile, "sub_data_set_1"); subDataSet1 = createDirectory(incomingDataSetFile, "sub_data_set_1");
subDataSet2 = createDirectory(incomingDataSetFile, "sub_data_set_2"); subDataSet2 = createDirectory(incomingDataSetFile, "sub_data_set_2");
...@@ -688,6 +697,20 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH ...@@ -688,6 +697,20 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractJythonDataSetH
FileUtilities.writeToFile(markerFile, ""); FileUtilities.writeToFile(markerFile, "");
} }
private void createDataWithOneSubDataSet()
{
incomingDataSetFile = createDirectory(workingDirectory, "data_set");
assertTrue(incomingDataSetFile.isDirectory());
subDataSet1 = createDirectory(incomingDataSetFile, "sub_data_set_1");
FileUtilities.writeToFile(new File(subDataSet1, "read1.me"), "hello world1");
markerFile = new File(workingDirectory, IS_FINISHED_PREFIX + "data_set");
FileUtilities.writeToFile(markerFile, "");
}
@Test @Test
public void testRollbackService() public void testRollbackService()
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment