Skip to content
Snippets Groups Projects
Commit 78554506 authored by buczekp's avatar buczekp
Browse files

[LMS-2442] removed method to delete data sets triggered by DSS which was used...

[LMS-2442] removed method to delete data sets triggered by DSS which was used only in basysbio and we don't want to support it any more (there are better ways to register data sets with Jython dropbox which don't require rolling back creation of data sets)

SVN: 22345
parent 3bbd3755
No related branches found
No related tags found
No related merge requests found
......@@ -35,7 +35,6 @@ import ch.systemsx.cisd.common.mail.MailClient;
import ch.systemsx.cisd.common.utilities.ITimeProvider;
import ch.systemsx.cisd.common.utilities.SystemTimeProvider;
import ch.systemsx.cisd.etlserver.IDataSetHandler;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
......@@ -51,7 +50,6 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler
@Private
static final String HELPDESK_EMAIL = "helpdesk.openbis.basysbio@bsse.ethz.ch";
private static enum TypeOfDerivedDataSet
{
TIME_POINT("time point"), LCA_MIC_TIME_SERIES("LCA MIC time series");
......@@ -153,17 +151,17 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler
}
private static final Logger operationLog =
LogFactory.getLogger(LogCategory.OPERATION, TimeSeriesAndTimePointDataSetHandler.class);
private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
TimeSeriesAndTimePointDataSetHandler.class);
private static final FilenameFilter LCA_MIC_TIME_SERIES_FILE_FILTER = new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.startsWith(DataSetHandler.LCA_MIC_TIME_SERIES);
}
};
public boolean accept(File dir, String name)
{
return name.startsWith(DataSetHandler.LCA_MIC_TIME_SERIES);
}
};
private final IDataSetHandler delegator;
......@@ -171,24 +169,19 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler
private final ITimeProvider timeProvider;
private final IEncapsulatedOpenBISService service;
public TimeSeriesAndTimePointDataSetHandler(Properties parentProperties,
IDataSetHandler delegator, IEncapsulatedOpenBISService openbisService)
IDataSetHandler delegator)
{
this.delegator = delegator;
this.service = openbisService;
this.mailClient = new MailClient(parentProperties);
timeProvider = SystemTimeProvider.SYSTEM_TIME_PROVIDER;
}
@Private
TimeSeriesAndTimePointDataSetHandler(IDataSetHandler delegator,
IEncapsulatedOpenBISService openbisService, IMailClient mailClient,
TimeSeriesAndTimePointDataSetHandler(IDataSetHandler delegator, IMailClient mailClient,
ITimeProvider timeProvider)
{
this.delegator = delegator;
service = openbisService;
this.mailClient = mailClient;
this.timeProvider = timeProvider;
}
......@@ -205,28 +198,21 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler
{
DataSetInformation dataSetInformation = result.get(0);
MessageBuilder builder =
new MessageBuilder(dataSetInformation.tryGetUploadingUserEmail(), timeProvider);
new MessageBuilder(dataSetInformation.tryGetUploadingUserEmail(),
timeProvider);
builder.setDataSetFileName(dataSet);
File[] files = dataSet.getParentFile().listFiles(LCA_MIC_TIME_SERIES_FILE_FILTER);
handleDerivedDataSets(files, TypeOfDerivedDataSet.LCA_MIC_TIME_SERIES, delegator,
dataSetInfos, builder);
dataSetInfos, builder);
DataSetType dataSetType = dataSetInformation.getDataSetType();
boolean lcaMicTimeSeries =
dataSetType.getCode().equals(DataSetHandler.LCA_MIC_TIME_SERIES);
builder.logSendEMailAndHandlerError(operationLog, mailClient, lcaMicTimeSeries == false);
dataSetType.getCode().equals(DataSetHandler.LCA_MIC_TIME_SERIES);
builder.logSendEMailAndHandlerError(operationLog, mailClient,
lcaMicTimeSeries == false);
} catch (RuntimeException ex)
{
// Data sets are deleted in reverse order because of possible parent-child relationships.
for (int i = dataSetInfos.size() - 1; i >= 0; i--)
{
String dataSetCode = dataSetInfos.get(i).getDataSetCode();
if (operationLog.isInfoEnabled())
{
operationLog.info("Delete data set " + dataSetCode);
}
service.deleteDataSet(dataSetCode, "Rollback registration");
}
throw ex;
// NOTE: the code to delete data sets is not supported any more
throw new RuntimeException("Exception can't be handled properly any more.", ex);
}
}
return dataSetInfos;
......
......@@ -40,16 +40,13 @@ import ch.systemsx.cisd.common.mail.From;
import ch.systemsx.cisd.common.mail.IMailClient;
import ch.systemsx.cisd.common.utilities.ITimeProvider;
import ch.systemsx.cisd.etlserver.IDataSetHandler;
import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
/**
*
*
* @author Franz-Josef Elmer
*/
@Friend(toClasses=TimeSeriesAndTimePointDataSetHandler.class)
@Friend(toClasses = TimeSeriesAndTimePointDataSetHandler.class)
public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystemTestCase
{
private static final class StringMatcher extends BaseMatcher<String>
......@@ -77,15 +74,20 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem
description.appendText(expectedString);
}
}
private Mockery context;
private IDataSetHandler delegator;
private IMailClient mailClient;
private IDataSetHandler handler;
private File dropBox;
private File timePointFolder;
private ITimeProvider timeProvider;
private IEncapsulatedOpenBISService service;
@BeforeMethod
public void beforeMethod() throws Exception
......@@ -94,15 +96,12 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem
LogInitializer.init();
context = new Mockery();
delegator = context.mock(IDataSetHandler.class, "delegator");
service = context.mock(IEncapsulatedOpenBISService.class);
mailClient = context.mock(IMailClient.class);
timeProvider = context.mock(ITimeProvider.class);
dropBox = new File(workingDirectory, "drop-box");
timePointFolder = new File(workingDirectory, "time-point-folder");
timePointFolder.mkdirs();
handler =
new TimeSeriesAndTimePointDataSetHandler(delegator, service, mailClient,
timeProvider);
handler = new TimeSeriesAndTimePointDataSetHandler(delegator, mailClient, timeProvider);
}
@AfterMethod
......@@ -112,7 +111,7 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem
// Otherwise one does not known which test failed.
context.assertIsSatisfied();
}
@Test
public void testFailingTimeSeriesRegistration()
{
......@@ -123,9 +122,9 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem
will(returnValue(Arrays.asList()));
}
});
List<DataSetInformation> dataSets = handler.handleDataSet(dropBox);
assertEquals(0, dataSets.size());
context.assertIsSatisfied();
}
......@@ -185,7 +184,7 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem
assertSame(dataSetInformation, dataSets.get(0));
context.assertIsSatisfied();
}
private void prepareSendingEMail(final String expectedSubject, final String expectedMessage,
final DataSetInformation dataSetInformation, final boolean alsoToHelpDesk)
{
......
......@@ -58,7 +58,6 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO;
import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleTypeDAO;
import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin;
import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService;
import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService;
import ch.systemsx.cisd.openbis.generic.shared.IServer;
......@@ -73,7 +72,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
......@@ -154,13 +152,13 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslat
import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator.LoadableFields;
import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTypeTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.PersonTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.ProjectTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.SimpleDataSetHelper;
import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTermTranslator;
import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
......@@ -694,21 +692,6 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements
registerDataSetInternal(session, experimentIdentifier, externalData);
}
public void deleteDataSet(String sessionToken, String dataSetCode, String reason)
throws UserFailureException
{
Session session = getSession(sessionToken);
IDataDAO dataSetDAO = getDAOFactory().getDataDAO();
DataPE dataSet = dataSetDAO.tryToFindFullDataSetByCode(dataSetCode, false, false);
if (dataSet != null && dataSet.isExternalData())
{
DataSetTypePE dataSetType = dataSet.getDataSetType();
IDataSetTypeSlaveServerPlugin plugin = getDataSetTypeSlaveServerPlugin(dataSetType);
plugin.deleteDataSets(session, Collections.singletonList(dataSet), reason,
DeletionType.PERMANENT);
}
}
public void addPropertiesToDataSet(String sessionToken, List<NewProperty> properties,
String dataSetCode, SpaceIdentifier space) throws UserFailureException
{
......
......@@ -341,21 +341,6 @@ public interface IETLLIMSService extends IServer, ISessionProvider
@AuthorizationGuard(guardClass = SpaceIdentifierPredicate.class) final ExperimentIdentifier experimentIdentifier,
final NewExternalData externalData) throws UserFailureException;
/**
* Deletes the specified data set if it exists.
*
* @param sessionToken The user authentication token. Must not be <code>null</code>.
* @param dataSetCode Data set code.
* @param reason Reason for deleting.
* @throws UserFailureException if given data set code could not be deleted.
*/
@Transactional
@RolesAllowed(RoleWithHierarchy.SPACE_ETL_SERVER)
@DatabaseCreateOrDeleteModification(value = ObjectKind.DATA_SET)
public void deleteDataSet(String sessionToken,
@AuthorizationGuard(guardClass = DataSetCodePredicate.class) String dataSetCode,
String reason) throws UserFailureException;
/**
* Checks that the user of specified session has INSTANCE_ADMIN access rights.
*/
......
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