Skip to content
Snippets Groups Projects
Commit 2cc4d77a authored by jakubs's avatar jakubs
Browse files

SSDM-912 Allow to configure temp folder used by sanity check

SVN: 32521
parent df3577db
No related branches found
No related tags found
No related merge requests found
...@@ -85,12 +85,16 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore ...@@ -85,12 +85,16 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
public static final String BATCH_SIZE_IN_BYTES = "batch-size-in-bytes"; public static final String BATCH_SIZE_IN_BYTES = "batch-size-in-bytes";
public static final String TEMP_FOLDER = "temp-folder";
private final IStatusChecker archivePrerequisiteOrNull; private final IStatusChecker archivePrerequisiteOrNull;
private final IStatusChecker unarchivePrerequisiteOrNull; private final IStatusChecker unarchivePrerequisiteOrNull;
private final boolean synchronizeArchive; private final boolean synchronizeArchive;
private final File tempFolder;
private transient IShareIdManager shareIdManager; private transient IShareIdManager shareIdManager;
private transient IEncapsulatedOpenBISService service; private transient IEncapsulatedOpenBISService service;
...@@ -110,6 +114,7 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore ...@@ -110,6 +114,7 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
this.unarchivePrerequisiteOrNull = unarchivePrerequisiteOrNull; this.unarchivePrerequisiteOrNull = unarchivePrerequisiteOrNull;
this.synchronizeArchive = PropertyUtils.getBoolean(properties, SYNCHRONIZE_ARCHIVE, true); this.synchronizeArchive = PropertyUtils.getBoolean(properties, SYNCHRONIZE_ARCHIVE, true);
this.maximumBatchSizeInBytes = PropertyUtils.getInt(properties, BATCH_SIZE_IN_BYTES, 1024 * 1024 * 1024); this.maximumBatchSizeInBytes = PropertyUtils.getInt(properties, BATCH_SIZE_IN_BYTES, 1024 * 1024 * 1024);
this.tempFolder = PropertyUtils.getDirectory(properties, TEMP_FOLDER, null);
} }
/** /**
...@@ -631,6 +636,14 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore ...@@ -631,6 +636,14 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
return shareIdManager; return shareIdManager;
} }
/**
* Temporary folder specified by "temp-folder" property of archive. Default is null.
*/
protected File getTemporaryFolder()
{
return tempFolder;
}
private IShareFinder getShareFinder() private IShareFinder getShareFinder()
{ {
Properties props = Properties props =
......
...@@ -193,7 +193,19 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin ...@@ -193,7 +193,19 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin
this.fileOperationsManagerFactory = fileOperationsManagerFactory; this.fileOperationsManagerFactory = fileOperationsManagerFactory;
this.deleteAction = deleteAction; this.deleteAction = deleteAction;
this.checksumVerificationCondition = checksumVerificationCondition; this.checksumVerificationCondition = checksumVerificationCondition;
}
private File getTempRoot()
{
File tempFolderProperty = getTemporaryFolder();
if (tempFolderProperty != null)
{
return tempFolderProperty;
}
else
{
return storeRoot;
}
} }
@Override @Override
...@@ -215,7 +227,7 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin ...@@ -215,7 +227,7 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin
try try
{ {
content = context.getHierarchicalContentProvider().asContentWithoutModifyingAccessTimestamp(dataSetCode); content = context.getHierarchicalContentProvider().asContentWithoutModifyingAccessTimestamp(dataSetCode);
temp = new File(storeRoot, STAGING_FOLDER + "/" + dataSetCode); temp = new File(getTempRoot(), STAGING_FOLDER + "/" + dataSetCode);
temp.mkdirs(); temp.mkdirs();
// We want to perform the check if the archived content is correct // We want to perform the check if the archived content is correct
// (filesizes/checksums) // (filesizes/checksums)
......
...@@ -44,7 +44,7 @@ public class TarArchiver extends RsyncArchiver ...@@ -44,7 +44,7 @@ public class TarArchiver extends RsyncArchiver
@Override @Override
public IDataSetFileOperationsManager create() public IDataSetFileOperationsManager create()
{ {
return new DistributedPackagingDataSetFileOperationsManager(properties, new TarPackageManager()); return new DistributedPackagingDataSetFileOperationsManager(properties, new TarPackageManager(properties));
} }
} }
......
...@@ -26,6 +26,7 @@ import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; ...@@ -26,6 +26,7 @@ import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.Status;
import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.filesystem.FileUtilities;
import ch.systemsx.cisd.common.filesystem.tar.Untar; import ch.systemsx.cisd.common.filesystem.tar.Untar;
import ch.systemsx.cisd.common.properties.PropertyUtils;
import ch.systemsx.cisd.common.time.TimingParameters; import ch.systemsx.cisd.common.time.TimingParameters;
import ch.systemsx.cisd.openbis.common.io.hierarchical_content.TarBasedHierarchicalContent; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.TarBasedHierarchicalContent;
import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent;
...@@ -49,6 +50,13 @@ public class TarPackageManager implements IPackageManager ...@@ -49,6 +50,13 @@ public class TarPackageManager implements IPackageManager
private transient IDataSetDirectoryProvider directoryProvider; private transient IDataSetDirectoryProvider directoryProvider;
private final File tempFolder;
public TarPackageManager(Properties properties)
{
this.tempFolder = PropertyUtils.getDirectory(properties, RsyncArchiver.TEMP_FOLDER, null);
}
@Override @Override
public String getName(IDatasetLocation dataSetLocation) public String getName(IDatasetLocation dataSetLocation)
{ {
...@@ -118,7 +126,7 @@ public class TarPackageManager implements IPackageManager ...@@ -118,7 +126,7 @@ public class TarPackageManager implements IPackageManager
@Override @Override
public IHierarchicalContent asHierarchialContent(File packageFile) public IHierarchicalContent asHierarchialContent(File packageFile)
{ {
return new TarBasedHierarchicalContent(packageFile); return new TarBasedHierarchicalContent(packageFile, tempFolder);
} }
private IHierarchicalContentProvider getContentProvider() private IHierarchicalContentProvider getContentProvider()
......
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