mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Update GenomeSpace exporter tool to use the newly introduced /personaldirectory as the root for auto-generated export paths.
This commit is contained in:
@@ -50,6 +50,7 @@ def get_genomespace_site_urls():
|
||||
def get_directory( url_opener, dm_url, path ):
|
||||
url = dm_url
|
||||
i = None
|
||||
dir_dict = {}
|
||||
for i, sub_path in enumerate( path ):
|
||||
url = "%s/%s" % ( url, sub_path )
|
||||
dir_request = urllib2.Request( url, headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' } )
|
||||
@@ -57,7 +58,7 @@ def get_directory( url_opener, dm_url, path ):
|
||||
try:
|
||||
dir_dict = simplejson.loads( url_opener.open( dir_request ).read() )
|
||||
except urllib2.HTTPError, e:
|
||||
#print "e", e, url #punting, assuming lack of permisions at this low of a level...
|
||||
#print "e", e, url #punting, assuming lack of permissions at this low of a level...
|
||||
continue
|
||||
break
|
||||
if i is not None:
|
||||
@@ -69,6 +70,9 @@ def get_directory( url_opener, dm_url, path ):
|
||||
def get_default_directory( url_opener, dm_url ):
|
||||
return get_directory( url_opener, dm_url, ["defaultdirectory"] )[0]
|
||||
|
||||
def get_personal_directory( url_opener, dm_url ):
|
||||
return get_directory( url_opener, dm_url, [ "%s/personaldirectory" % ( GENOMESPACE_API_VERSION_STRING ) ] )[0]
|
||||
|
||||
def create_directory( url_opener, directory_dict, new_dir, dm_url ):
|
||||
payload = { "isDirectory": True }
|
||||
for dir_slice in new_dir:
|
||||
@@ -134,7 +138,9 @@ def galaxy_code_get_genomespace_folders( genomespace_site='prod', trans=None, va
|
||||
genomespace_site_dict = get_genomespace_site_urls()[ genomespace_site ]
|
||||
dm_url = genomespace_site_dict['dmServer']
|
||||
#get default directory
|
||||
directory_dict = get_default_directory( url_opener, dm_url )['directory']
|
||||
directory_dict = get_default_directory( url_opener, dm_url ).get( 'directory', None )
|
||||
if directory_dict is None:
|
||||
return []
|
||||
#what directory to stuff this in
|
||||
recurse_directory_dict( url_opener, rval, directory_dict.get( 'url' ) )
|
||||
|
||||
@@ -150,7 +156,7 @@ def send_file_to_genomespace( genomespace_site, username, token, source_filename
|
||||
directory_dict, target_directory = get_directory( url_opener, dm_url, [ "%s/%s/%s" % ( GENOMESPACE_API_VERSION_STRING, 'file', target_directory[1] ) ] + target_directory[2:] )
|
||||
directory_dict = directory_dict['directory']
|
||||
else:
|
||||
directory_dict = get_default_directory( url_opener, dm_url )['directory']
|
||||
directory_dict = get_personal_directory( url_opener, dm_url )['directory'] #this is the base for the auto-generated galaxy export directories
|
||||
#what directory to stuff this in
|
||||
target_directory_dict = create_directory( url_opener, directory_dict, target_directory, dm_url )
|
||||
#get upload url
|
||||
@@ -208,6 +214,6 @@ if __name__ == '__main__':
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
send_file_to_genomespace( options.genomespace_site, options.username, options.token, options.dataset, map( binascii.unhexlify, options.subdirectory ), options.filename, options.file_type, options.content_type, options.log )
|
||||
send_file_to_genomespace( options.genomespace_site, options.username, options.token, options.dataset, map( binascii.unhexlify, options.subdirectory ), binascii.unhexlify( options.filename ), options.file_type, options.content_type, options.log )
|
||||
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
--subdirectory "${ binascii.hexlify( str( $base_url ).split( '://', 1 )[-1] ) }" ##Protocol removed by request
|
||||
#end if
|
||||
#if $filename:
|
||||
--filename "${filename}"
|
||||
--filename "${ binascii.hexlify( str( $filename ) ) }"
|
||||
#else:
|
||||
--filename "Galaxy History Item ${__app__.security.encode_id( $input1.id )} (${__app__.security.encode_id( $output_log.id )}) - ${input1.hid}: ${input1.name}.${input1.ext}"
|
||||
--filename "${ binascii.hexlify( "Galaxy History Item %s (%s) - %s: %s.%s" % ( $__app__.security.encode_id( $input1.id ), $__app__.security.encode_id( $output_log.id ), $input1.hid, $input1.name, $input1.ext ) ) }"
|
||||
#end if
|
||||
--file_type "${input1.ext}"
|
||||
--content_type "${input1.get_mime()}"
|
||||
@@ -36,7 +36,6 @@
|
||||
<inputs>
|
||||
<param format="data" name="input1" type="data" label="Send this dataset to GenomeSpace" />
|
||||
<param name="base_url" type="baseurl" />
|
||||
<!-- <param name="subdirectory" type="text" size="80" help="Leave blank to generate automatically" /> -->
|
||||
<param name="subdirectory" type="drill_down" display="radio" hierarchy="exact" multiple="False" label="Choose Target Directory" dynamic_options="galaxy_code_get_genomespace_folders( genomespace_site = 'prod', trans=__trans__, value=__value__, input_dataset=input1 )" help="Leave blank to generate automatically"/>
|
||||
<param name="filename" type="text" size="80" help="Leave blank to generate automatically" />
|
||||
</inputs>
|
||||
|
||||
Reference in New Issue
Block a user