Skip to content
Snippets Groups Projects
Commit e000e296 authored by tpylak's avatar tpylak
Browse files

SE-144 stop browsing the whole store directory before the DSS start (migration...

SE-144 stop browsing the whole store directory before the DSS start (migration which was done there is already irrelevant as we introduced flat store structure. And yeastX DSS starts up 30 minutes because of that)

SVN: 13091
parent c94ef5b7
No related branches found
No related tags found
No related merge requests found
...@@ -159,9 +159,9 @@ public final class ETLDaemon ...@@ -159,9 +159,9 @@ public final class ETLDaemon
} }
if (TimerUtilities.isOperational()) if (TimerUtilities.isOperational())
{ {
if (operationLog.isInfoEnabled()) if (operationLog.isDebugEnabled())
{ {
operationLog.info("Timer task interruption is operational."); operationLog.debug("Timer task interruption is operational.");
} }
} else } else
{ {
...@@ -236,53 +236,6 @@ public final class ETLDaemon ...@@ -236,53 +236,6 @@ public final class ETLDaemon
} }
} }
@Private
final static List<File> findFiles(final File root, String prefix, int maxDepth)
{
ArrayList<File> files = new ArrayList<File>();
if (maxDepth == 0)
{
if (root.getName().startsWith(prefix))
{
files.add(root);
}
} else
{
if (root.isDirectory())
{
for (File file : root.listFiles())
{
files.addAll(findFiles(file, prefix, maxDepth - 1));
}
}
}
return files;
}
@Private
final static void migrateDataStoreByRenamingObservableTypeToDataSetType(final File root)
{
final String observableTypeDirPrefix = "ObservableType_";
final String dataSetTypeDirPrefix = "DataSetType_";
final String observableTypeFilePrefix = "observable_type";
final String dataSetTypeFilePrefix = "data_set_type";
for (File file : findFiles(root, observableTypeDirPrefix, 5))
{
final File newName =
new File(file.getAbsolutePath().replaceFirst(observableTypeDirPrefix,
dataSetTypeDirPrefix));
file.renameTo(newName);
}
for (File file : findFiles(root, observableTypeFilePrefix, 10))
{
final File newName =
new File(file.getAbsolutePath().replaceFirst(observableTypeFilePrefix,
dataSetTypeFilePrefix));
file.renameTo(newName);
}
}
private final static long getHighwaterMark(final Properties properties) private final static long getHighwaterMark(final Properties properties)
{ {
return PropertyUtils.getLong(properties, return PropertyUtils.getLong(properties,
...@@ -305,7 +258,6 @@ public final class ETLDaemon ...@@ -305,7 +258,6 @@ public final class ETLDaemon
final Properties properties = parameters.getProperties(); final Properties properties = parameters.getProperties();
final File storeRootDir = getStoreRootDir(properties); final File storeRootDir = getStoreRootDir(properties);
migrateStoreRootDir(storeRootDir, authorizedLimsService.getHomeDatabaseInstance()); migrateStoreRootDir(storeRootDir, authorizedLimsService.getHomeDatabaseInstance());
migrateDataStoreByRenamingObservableTypeToDataSetType(storeRootDir);
plugin.getStorageProcessor().setStoreRootDirectory(storeRootDir); plugin.getStorageProcessor().setStoreRootDirectory(storeRootDir);
final Properties mailProperties = parameters.getMailProperties(); final Properties mailProperties = parameters.getMailProperties();
String dssCode = PropertyParametersUtil.getDataStoreCode(properties); String dssCode = PropertyParametersUtil.getDataStoreCode(properties);
......
...@@ -18,7 +18,6 @@ package ch.systemsx.cisd.etlserver; ...@@ -18,7 +18,6 @@ package ch.systemsx.cisd.etlserver;
import java.io.File; import java.io.File;
import org.testng.AssertJUnit;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import ch.rinn.restrictions.Friend; import ch.rinn.restrictions.Friend;
...@@ -33,20 +32,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; ...@@ -33,20 +32,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
@Friend(toClasses = ETLDaemon.class) @Friend(toClasses = ETLDaemon.class)
public final class MainTest extends AbstractFileSystemTestCase public final class MainTest extends AbstractFileSystemTestCase
{ {
private static final String DATA_SET_TYPE_PREFIX = "DataSetType_";
private static final String SAMPLE_PREFIX = "Sample_";
private static final String EXPERIMENT_PREFIX = "Experiment_";
private static final String PROJECT_PREFIX = "Project_";
private static final String GROUP_PREFIX = "Group_"; private static final String GROUP_PREFIX = "Group_";
private static final String INSTANCE_PREFIX = "Instance_"; private static final String INSTANCE_PREFIX = "Instance_";
private static final String DATASET_PREFIX = "Dataset_";
private final static DatabaseInstance createDatabaseInstance() private final static DatabaseInstance createDatabaseInstance()
{ {
final DatabaseInstance databaseInstancePE = new DatabaseInstance(); final DatabaseInstance databaseInstancePE = new DatabaseInstance();
...@@ -79,64 +68,4 @@ public final class MainTest extends AbstractFileSystemTestCase ...@@ -79,64 +68,4 @@ public final class MainTest extends AbstractFileSystemTestCase
assertTrue(new File(workingDirectory, INSTANCE_PREFIX + databaseInstancePE.getUuid()) assertTrue(new File(workingDirectory, INSTANCE_PREFIX + databaseInstancePE.getUuid())
.exists()); .exists());
} }
@Test
public void testMigrateDataStoreByRenamingObservableTypeToDataSetType() throws Exception
{
String observableTypeValue = "DST1";
String observableTypeDirPrefix = "ObservableType_";
File instanceDir = new File(workingDirectory, INSTANCE_PREFIX + "I1");
File groupDir = new File(instanceDir, GROUP_PREFIX + "G1");
File projectDir = new File(groupDir, PROJECT_PREFIX + "P1");
File experimentDir = new File(projectDir, EXPERIMENT_PREFIX + "E1");
File observableTypeDir =
new File(experimentDir, observableTypeDirPrefix + observableTypeValue);
File sampleDir = new File(observableTypeDir, SAMPLE_PREFIX + "S1");
File dataSetDir = new File(sampleDir, DATASET_PREFIX + "D1");
File metadataDir = new File(dataSetDir, "metadata");
File metadataDataSetDir = new File(metadataDir, "data_set");
//
// Don't break when directory does not exist
//
ETLDaemon.migrateDataStoreByRenamingObservableTypeToDataSetType(workingDirectory);
//
// Rename ObservableType_<> directory and observable_type file
//
// create directories
metadataDataSetDir.mkdirs();
assertTrue(metadataDataSetDir.exists());
assertTrue(observableTypeDir.getName()
.equals(observableTypeDirPrefix + observableTypeValue));
// create files
String observableTypeFileName = "observable_type";
File observableTypeFile = new File(metadataDataSetDir, observableTypeFileName);
observableTypeFile.createNewFile();
assertTrue(observableTypeFile.exists());
AssertJUnit.assertEquals(observableTypeFileName, metadataDataSetDir.listFiles()[0]
.getName());
assertTrue(observableTypeFile.getName().equals(observableTypeFileName));
// Do the migration
ETLDaemon.migrateDataStoreByRenamingObservableTypeToDataSetType(workingDirectory);
// check directory renamed
AssertJUnit.assertEquals(DATA_SET_TYPE_PREFIX + observableTypeValue, experimentDir
.listFiles()[0].getName());
// update variables
observableTypeDir = new File(experimentDir, DATA_SET_TYPE_PREFIX + observableTypeValue);
sampleDir = new File(observableTypeDir, SAMPLE_PREFIX + "S1");
dataSetDir = new File(sampleDir, DATASET_PREFIX + "D1");
metadataDir = new File(dataSetDir, "metadata");
metadataDataSetDir = new File(metadataDir, "data_set");
// check file renamed
AssertJUnit.assertEquals("data_set_type", metadataDataSetDir.listFiles()[0].getName());
}
} }
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