diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample
index 64bb6dd7c20..561a2ab364d 100644
--- a/config/datatypes_conf.xml.sample
+++ b/config/datatypes_conf.xml.sample
@@ -620,6 +620,9 @@
+
+
+
@@ -824,5 +827,6 @@
+
diff --git a/lib/galaxy/datatypes/converters/neostorezip_to_neostore_converter.xml b/lib/galaxy/datatypes/converters/neostorezip_to_neostore_converter.xml
new file mode 100644
index 00000000000..74486fe30d4
--- /dev/null
+++ b/lib/galaxy/datatypes/converters/neostorezip_to_neostore_converter.xml
@@ -0,0 +1,14 @@
+
+ $output1
+ ]]>
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/galaxy/datatypes/neo4j.py b/lib/galaxy/datatypes/neo4j.py
index 8c85a5e1c8d..059be6972e5 100644
--- a/lib/galaxy/datatypes/neo4j.py
+++ b/lib/galaxy/datatypes/neo4j.py
@@ -8,6 +8,7 @@ import sys
from galaxy.datatypes.data import Data
from galaxy.datatypes.images import Html
+from galaxy.datatypes.metadata import MetadataElement
from galaxy.util import FILENAME_VALID_CHARS
gal_Log = logging.getLogger(__name__)
@@ -26,6 +27,7 @@ class Neo4j(Html):
This is called only at upload to write the html file
cannot rename the datasets here - they come with the default unfortunately
"""
+ # self.regenerate_primary_file(dataset)
rval = [
'
Files for Composite Dataset (%s)\
This composite dataset is composed of the following files:' % (
@@ -34,7 +36,8 @@ class Neo4j(Html):
opt_text = ''
if composite_file.optional:
opt_text = ' (optional)'
- rval.append('- %s%s' % (composite_name, composite_name, opt_text))
+ rval.append('
- %s%s' %
+ (composite_name, composite_name, opt_text))
rval.append('
')
return "\n".join(rval)
@@ -68,22 +71,27 @@ class Neo4j(Html):
trans.log_event("Display dataset id: %s" % str(data.id))
# the target directory name
- neo4j_dir_name = '/dataset_{}_files/neo4jdb'.format(data.dataset.id)
- dir_name = str(os.path.dirname(trans.app.object_store.get_filename(data.dataset))) + neo4j_dir_name
+ neo4j_dir_name = '/dataset_{}_files'.format(
+ data.dataset.id)
+ dir_name = str(os.path.dirname(
+ trans.app.object_store.get_filename(data.dataset))) + neo4j_dir_name
# generate unique filename for this dataset
- fname = ''.join(c in FILENAME_VALID_CHARS and c or '_' for c in data.name)[0:150]
+ fname = ''.join(
+ c in FILENAME_VALID_CHARS and c or '_' for c in data.name)[0:150]
# zip the target directory (dir_name) using the fname
shutil.make_archive(fname, 'zip', dir_name)
download_zip = fname + '.zip'
# setup headers for the download
- trans.response.headers['Content-Length'] = int(os.stat(download_zip).st_size)
+ trans.response.headers['Content-Length'] = int(
+ os.stat(download_zip).st_size)
# force octet-stream so Safari doesn't append mime extensions to filename
trans.response.set_content_type("application/octet-stream")
trans.response.headers["Content-Disposition"] = 'attachment; filename="Galaxy%s-[%s].%s"' % \
- (data.hid, download_zip, "zip")
+ (data.hid,
+ download_zip, "zip")
return open(download_zip)
@@ -97,39 +105,74 @@ class Neo4jDB(Neo4j, Data):
Data.__init__(self, **kwd)
self.add_composite_file('neostore', is_binary=True)
self.add_composite_file('neostore.id', is_binary=True)
- self.add_composite_file('neostore.counts.db.a', is_binary=True)
- self.add_composite_file('neostore.counts.db.b', is_binary=True)
+ self.add_composite_file('neostore.counts.db.a', optional=True, is_binary=True)
+ self.add_composite_file('neostore.counts.db.b', optional=True, is_binary=True)
self.add_composite_file('neostore.labeltokenstore.db', is_binary=True)
- self.add_composite_file('neostore.labeltokenstore.db.id', is_binary=True)
- self.add_composite_file('neostore.labeltokenstore.db.names', is_binary=True)
- self.add_composite_file('neostore.labeltokenstore.db.names.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.labeltokenstore.db.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.labeltokenstore.db.names', is_binary=True)
+ self.add_composite_file(
+ 'neostore.labeltokenstore.db.names.id', is_binary=True)
self.add_composite_file('neostore.nodestore.db', is_binary=True)
self.add_composite_file('neostore.nodestore.db.id', is_binary=True)
self.add_composite_file('neostore.nodestore.db.labels', is_binary=True)
- self.add_composite_file('neostore.nodestore.db.labels.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.nodestore.db.labels.id', is_binary=True)
self.add_composite_file('neostore.propertystore.db', is_binary=True)
self.add_composite_file('neostore.propertystore.db.id', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.arrays', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.arrays.id', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.index', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.index.id', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.index.keys', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.index.keys.id', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.strings', is_binary=True)
- self.add_composite_file('neostore.propertystore.db.strings.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.arrays', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.arrays.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.index', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.index.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.index.keys', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.index.keys.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.strings', is_binary=True)
+ self.add_composite_file(
+ 'neostore.propertystore.db.strings.id', is_binary=True)
- self.add_composite_file('neostore.relationshipgroupstore.db', is_binary=True)
- self.add_composite_file('neostore.relationshipgroupstore.db.id', is_binary=True)
- self.add_composite_file('neostore.relationshipstore.db', is_binary=True)
- self.add_composite_file('neostore.relationshipstore.db.id', is_binary=True)
- self.add_composite_file('neostore.relationshiptypestore.db.names', is_binary=True)
- self.add_composite_file('neostore.relationshiptypestore.db.names.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshipgroupstore.db', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshipgroupstore.db.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshipstore.db', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshipstore.db.id', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshiptypestore.db.names', is_binary=True)
+ self.add_composite_file(
+ 'neostore.relationshiptypestore.db.names.id', is_binary=True)
self.add_composite_file('neostore.schemastore.db', is_binary=True)
self.add_composite_file('neostore.schemastore.db.id', is_binary=True)
self.add_composite_file('neostore.transaction.db.0', is_binary=True)
+class Neo4jDBzip(Neo4j, Data):
+ """Class for neo4jDB database files."""
+ MetadataElement(name='reference_name', default='neostore_file', desc='Reference Name',
+ readonly=True, visible=True, set_in_upload=True, no_value='neostore')
+ MetadataElement(name="neostore_zip", default=None, desc="Neostore zip",
+ readonly=True, visible=True, set_in_upload=True, no_value=None, optional=True)
+
+ file_ext = "neostore.zip"
+ composite_type = 'auto_primary_file'
+ allow_datatype_change = False
+
+ def __init__(self, **kwd):
+ Data.__init__(self, **kwd)
+ self.add_composite_file('%s.zip', description='neostore zip', substitute_name_with_metadata='reference_name',
+ is_binary=True)
+
+
if __name__ == '__main__':
import doctest
doctest.testmod(sys.modules[__name__])
diff --git a/test-data/neostore.zip b/test-data/neostore.zip
index 1165399f4c0..1fa6b66eb21 100644
Binary files a/test-data/neostore.zip and b/test-data/neostore.zip differ
diff --git a/test/functional/tools/compressed_neostorezip_neostore_conversion.xml b/test/functional/tools/compressed_neostorezip_neostore_conversion.xml
new file mode 100644
index 00000000000..2f3652074d5
--- /dev/null
+++ b/test/functional/tools/compressed_neostorezip_neostore_conversion.xml
@@ -0,0 +1,19 @@
+
+
+ cat '$input1' > '$out_file1'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/functional/tools/compressed_neostorezip_neostore_no_conversion.xml b/test/functional/tools/compressed_neostorezip_neostore_no_conversion.xml
new file mode 100644
index 00000000000..9ccfa8504d1
--- /dev/null
+++ b/test/functional/tools/compressed_neostorezip_neostore_no_conversion.xml
@@ -0,0 +1,19 @@
+
+
+ cat '$input1' > '$out_file1'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+