Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
openbis
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
sispub
openbis
Commits
214be38b
Commit
214be38b
authored
10 years ago
by
felmer
Browse files
Options
Downloads
Patches
Plain Diff
SSDM-579: Bug fixed: Databases for data sets in trash can have been deleted.
SVN: 32058
parent
c5754b11
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/BlastDatabaseCreationMaintenanceTask.java
+31
-36
31 additions, 36 deletions
...lserver/plugins/BlastDatabaseCreationMaintenanceTask.java
with
31 additions
and
36 deletions
datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/BlastDatabaseCreationMaintenanceTask.java
+
31
−
36
View file @
214be38b
...
@@ -58,7 +58,9 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IConfigProvider;
...
@@ -58,7 +58,9 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IConfigProvider;
import
ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.IHierarchicalContentProvider
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.IHierarchicalContentProvider
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider
;
import
ch.systemsx.cisd.openbis.dss.generic.shared.utils.BlastUtils
;
import
ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData
;
import
ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData
;
import
ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet
;
import
ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria
;
import
ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria
;
/**
/**
...
@@ -70,16 +72,12 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria
...
@@ -70,16 +72,12 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria
public
class
BlastDatabaseCreationMaintenanceTask
implements
IMaintenanceTask
public
class
BlastDatabaseCreationMaintenanceTask
implements
IMaintenanceTask
{
{
static
final
String
DATASET_TYPES_PROPERTY
=
"dataset-types"
;
static
final
String
DATASET_TYPES_PROPERTY
=
"dataset-types"
;
static
final
String
BLAST_TOOLS_DIRECTORY_PROPERTY
=
"blast-tools-directory"
;
static
final
String
BLAST_DATABASES_FOLDER_PROPERTY
=
"blast-databases-folder"
;
static
final
String
BLAST_TEMP_FOLDER_PROPERTY
=
"blast-temp-folder"
;
static
final
String
BLAST_TEMP_FOLDER_PROPERTY
=
"blast-temp-folder"
;
static
final
String
LAST_SEEN_DATA_SET_FILE_PROPERTY
=
"last-seen-data-set-file"
;
static
final
String
LAST_SEEN_DATA_SET_FILE_PROPERTY
=
"last-seen-data-set-file"
;
static
final
String
FILE_TYPES_PROPERTY
=
"file-types"
;
static
final
String
FILE_TYPES_PROPERTY
=
"file-types"
;
private
static
final
String
DEFAULT_LAST_SEEN_DATA_SET_FILE
=
"last-seen-data-set-for-BLAST-database-creation"
;
private
static
final
String
DEFAULT_LAST_SEEN_DATA_SET_FILE
=
"last-seen-data-set-for-BLAST-database-creation"
;
private
static
final
String
DEFAULT_FILE_TYPES
=
".fasta .fa .fsa .fastq"
;
private
static
final
String
DEFAULT_FILE_TYPES
=
".fasta .fa .fsa .fastq"
;
private
static
final
String
DEFAULT_BLAST_DATABASES_FOLDER
=
"blast-databases"
;
private
static
final
Logger
operationLog
=
private
static
final
Logger
operationLog
=
LogFactory
.
getLogger
(
LogCategory
.
OPERATION
,
BlastDatabaseCreationMaintenanceTask
.
class
);
LogFactory
.
getLogger
(
LogCategory
.
OPERATION
,
BlastDatabaseCreationMaintenanceTask
.
class
);
private
static
final
Logger
machineLog
=
private
static
final
Logger
machineLog
=
...
@@ -115,12 +113,13 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -115,12 +113,13 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
lastSeenDataSetFile
=
getFile
(
properties
,
LAST_SEEN_DATA_SET_FILE_PROPERTY
,
DEFAULT_LAST_SEEN_DATA_SET_FILE
);
lastSeenDataSetFile
=
getFile
(
properties
,
LAST_SEEN_DATA_SET_FILE_PROPERTY
,
DEFAULT_LAST_SEEN_DATA_SET_FILE
);
setUpBlastDatabasesFolder
(
properties
);
setUpBlastDatabasesFolder
(
properties
);
setUpBlastTempFolder
(
properties
);
setUpBlastTempFolder
(
properties
);
String
blastToolDirectory
=
getBLASTToolDirectory
(
properties
);
String
blastToolDirectory
=
BlastUtils
.
getBLASTToolDirectory
(
properties
);
makeblastdb
=
blastToolDirectory
+
"makeblastdb"
;
makeblastdb
=
blastToolDirectory
+
"makeblastdb"
;
if
(
process
(
makeblastdb
,
"-version"
)
==
false
)
if
(
process
(
makeblastdb
,
"-version"
)
==
false
)
{
{
operationLog
.
error
(
"BLAST isn't installed or property '"
+
BLAST_TOOLS_DIRECTORY_PROPERTY
operationLog
.
error
(
"BLAST isn't installed or property '"
+
BlastUtils
.
BLAST_TOOLS_DIRECTORY_PROPERTY
+
"' hasn't been correctly specified."
);
+
"' hasn't been correctly specified."
);
makeblastdb
=
null
;
}
}
makembindex
=
blastToolDirectory
+
"makembindex"
;
makembindex
=
blastToolDirectory
+
"makembindex"
;
...
@@ -128,7 +127,7 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -128,7 +127,7 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
private
void
setUpBlastDatabasesFolder
(
Properties
properties
)
private
void
setUpBlastDatabasesFolder
(
Properties
properties
)
{
{
blastDatabasesFolder
=
getFile
(
properties
,
BLAST_DATABASES_FOLDER_PROPERTY
,
DEFAULT_BLAST_DATABASES_FOLDER
);
blastDatabasesFolder
=
BlastUtils
.
getBlastDatabaseFolder
(
properties
,
getConfigProvider
().
getStoreRoot
()
);
operationLog
.
info
(
"BLAST databases folder: "
+
blastDatabasesFolder
);
operationLog
.
info
(
"BLAST databases folder: "
+
blastDatabasesFolder
);
if
(
blastDatabasesFolder
.
exists
())
if
(
blastDatabasesFolder
.
exists
())
{
{
...
@@ -146,7 +145,7 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -146,7 +145,7 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
}
}
}
}
}
}
private
void
setUpBlastTempFolder
(
Properties
properties
)
private
void
setUpBlastTempFolder
(
Properties
properties
)
{
{
String
tempFolderProperty
=
properties
.
getProperty
(
BLAST_TEMP_FOLDER_PROPERTY
);
String
tempFolderProperty
=
properties
.
getProperty
(
BLAST_TEMP_FOLDER_PROPERTY
);
...
@@ -174,23 +173,16 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -174,23 +173,16 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
private
File
getFile
(
Properties
properties
,
String
pathProperty
,
String
defaultPath
)
private
File
getFile
(
Properties
properties
,
String
pathProperty
,
String
defaultPath
)
{
{
String
path
=
properties
.
getProperty
(
pathProperty
);
return
BlastUtils
.
getFile
(
properties
,
pathProperty
,
defaultPath
,
getConfigProvider
().
getStoreRoot
());
return
path
==
null
?
new
File
(
getConfigProvider
().
getStoreRoot
(),
defaultPath
)
:
new
File
(
path
);
}
private
String
getBLASTToolDirectory
(
Properties
properties
)
{
String
blastToolsDirectory
=
properties
.
getProperty
(
BLAST_TOOLS_DIRECTORY_PROPERTY
,
""
);
if
(
blastToolsDirectory
.
endsWith
(
"/"
)
||
blastToolsDirectory
.
isEmpty
())
{
return
blastToolsDirectory
;
}
return
blastToolsDirectory
+
"/"
;
}
}
@Override
@Override
public
void
execute
()
public
void
execute
()
{
{
if
(
makeblastdb
==
null
)
{
return
;
}
IEncapsulatedOpenBISService
service
=
getOpenBISService
();
IEncapsulatedOpenBISService
service
=
getOpenBISService
();
Map
<
SequenceType
,
VirtualDatabase
>
virtualDatabases
=
loadVirtualDatabases
(
service
);
Map
<
SequenceType
,
VirtualDatabase
>
virtualDatabases
=
loadVirtualDatabases
(
service
);
...
@@ -233,13 +225,14 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -233,13 +225,14 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
}
}
if
(
dataSetCodes
.
isEmpty
()
==
false
)
if
(
dataSetCodes
.
isEmpty
()
==
false
)
{
{
for
(
AbstractExternalData
dataSet
:
service
.
listDataSetsByCode
(
new
ArrayList
<
String
>(
dataSetCodes
)))
Set
<
String
>
deletedDataSetCodes
=
new
HashSet
<
String
>();
for
(
DeletedDataSet
deletedDataSet
:
service
.
listDeletedDataSets
(
null
,
null
))
{
{
dataSetCodes
.
remove
(
d
ataSet
.
getCode
());
d
eletedD
ataSetCodes
.
add
(
deletedD
ataSet
.
getCode
());
}
}
for
(
VirtualDatabase
virtualDatabase
:
virtualDatabases
.
values
())
for
(
VirtualDatabase
virtualDatabase
:
virtualDatabases
.
values
())
{
{
virtualDatabase
.
removeDeletedDataSets
(
dataSetCodes
);
virtualDatabase
.
removeDeletedDataSets
(
d
eletedD
ataSetCodes
);
}
}
}
}
return
virtualDatabases
;
return
virtualDatabases
;
...
@@ -470,9 +463,10 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -470,9 +463,10 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
{
{
for
(
String
dataSetCode
:
deletedDataSets
)
for
(
String
dataSetCode
:
deletedDataSets
)
{
{
dataSetCodes
.
remove
(
dataSetCode
);
if
(
dataSetCodes
.
remove
(
dataSetCode
))
final
String
databaseName
=
dataSetCode
+
postfix
;
{
File
[]
files
=
databaseFolder
.
listFiles
(
new
FilenameFilter
()
final
String
databaseName
=
dataSetCode
+
postfix
;
File
[]
files
=
databaseFolder
.
listFiles
(
new
FilenameFilter
()
{
{
@Override
@Override
public
boolean
accept
(
File
dir
,
String
name
)
public
boolean
accept
(
File
dir
,
String
name
)
...
@@ -480,19 +474,20 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
...
@@ -480,19 +474,20 @@ public class BlastDatabaseCreationMaintenanceTask implements IMaintenanceTask
return
name
.
startsWith
(
databaseName
);
return
name
.
startsWith
(
databaseName
);
}
}
});
});
if
(
files
!=
null
)
if
(
files
!=
null
)
{
boolean
success
=
true
;
for
(
File
file
:
files
)
{
{
if
(
FileUtilities
.
delete
(
file
)
==
false
)
boolean
success
=
true
;
for
(
File
file
:
files
)
{
{
operationLog
.
warn
(
"File deletion failed: "
+
file
);
if
(
FileUtilities
.
delete
(
file
)
==
false
)
{
operationLog
.
warn
(
"File deletion failed: "
+
file
);
}
}
if
(
success
)
{
operationLog
.
info
(
"BLAST database "
+
databaseName
+
" successfully deleted."
);
}
}
}
if
(
success
)
{
operationLog
.
info
(
"BLAST database "
+
databaseName
+
" successfully deleted."
);
}
}
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment