def irods_import(options, irods_url, bisque_url, auth): """Send an irods url to a bisque server @param irods_url: The file or container to save @param bisque_url: The bisqiue server @param auth : Whatever auth header are needed to chat with the bisque server """ if options.onefile: # Register one file an return url = bisque_url + '?url=' + irods_url if options.verbose: print "POSTING ", url if not options.dryrun: http.request(url, headers = auth ) return entries = irods_handler.irods_fetch_dir(irods_url) for irods_file in entries: if irods_file.endswith('/'): if options.verbose: print "Skipping directory", irods_file continue if is_image (irods_file ): url = bisque_url + '?url=' + irods_file if options.verbose: print "POSTING ", url if not options.dryrun: http.request(url, headers = auth)
def irods_import(options, irods_url, bisque_url, auth): """Send an irods url to a bisque server @param irods_url: The file or container to save @param bisque_url: The bisqiue server @param auth : Whatever auth header are needed to chat with the bisque server """ if options.onefile: # Register one file an return url = bisque_url + '?url=' + irods_url if options.verbose: print "POSTING ", url if not options.dryrun: http.request(url, headers=auth) return entries = irods_handler.irods_fetch_dir(irods_url) for irods_file in entries: if irods_file.endswith('/'): if options.verbose: print "Skipping directory", irods_file continue if is_image(irods_file): url = bisque_url + '?url=' + irods_file if options.verbose: print "POSTING ", url if not options.dryrun: http.request(url, headers=auth)
def main(): irods_url = DEFAULT_URL bisque_url = None parser = OptionParser(usage=usage) parser.add_option('-u', '--user', help="bisque user id") parser.add_option('-p', '--password', help="bisque user password") parser.add_option('-l', '--list', action="store_true", default=False, help="list contents of irods url and exit") parser.add_option('-n', '--dryrun', action="store_true", default=False, help="print actions but do not execute.. sets verbose") parser.add_option('-1', '--onefile', action="store_true", default=False, help="irods url is a single file instead of container") parser.add_option('-v', '--verbose', action="store_true", default=False, help="be verbose") options, args = parser.parse_args() if len(args)>0: irods_url = args.pop(0) if len(args)>0: bisque_url = args.pop(0) # check arguments if not irods_url or not irods_url.startswith('irods://'): parser.error ('must include a valid irods url i.e. %s' % DEFAULT_URL) if options.list: # If testing then just print the contents of the container entries = irods_handler.irods_fetch_dir(irods_url) print "\n".join(entries) return if not bisque_url: parser.error ('must have a destination bisque server') if not options.user or not options.password: parser.error('Username needs to be provided for uploads') if options.dryrun: options.verbose = True # setup auth user = options.user password = options.password if not bisque_url.endswith(BISQUE_ADD_IMAGE): bisque_url = urlparse.urljoin(bisque_url, BISQUE_ADD_IMAGE) auth = {'authorization' : 'Basic '+base64.encodestring("%s:%s" % (user,password)).strip()} # make request if bisque_url[-1] != '/': bisque_url += '/' irods_import(options, irods_url, bisque_url, auth)
def main(): irods_url = DEFAULT_URL bisque_url = None parser = OptionParser(usage=usage) parser.add_option('-u', '--user', help="bisque user id") parser.add_option('-p', '--password', help="bisque user password") parser.add_option('-l', '--list', action="store_true", default=False, help="list contents of irods url and exit") parser.add_option('-n', '--dryrun', action="store_true", default=False, help="print actions but do not execute.. sets verbose") parser.add_option('-1', '--onefile', action="store_true", default=False, help="irods url is a single file instead of container") parser.add_option('-v', '--verbose', action="store_true", default=False, help="be verbose") options, args = parser.parse_args() if len(args) > 0: irods_url = args.pop(0) if len(args) > 0: bisque_url = args.pop(0) # check arguments if not irods_url or not irods_url.startswith('irods://'): parser.error('must include a valid irods url i.e. %s' % DEFAULT_URL) if options.list: # If testing then just print the contents of the container entries = irods_handler.irods_fetch_dir(irods_url) print "\n".join(entries) return if not bisque_url: parser.error('must have a destination bisque server') if not options.user or not options.password: parser.error('Username needs to be provided for uploads') if options.dryrun: options.verbose = True # setup auth user = options.user password = options.password if not bisque_url.endswith(BISQUE_ADD_IMAGE): bisque_url = urlparse.urljoin(bisque_url, BISQUE_ADD_IMAGE) auth = { 'authorization': 'Basic ' + base64.encodestring("%s:%s" % (user, password)).strip() } # make request if bisque_url[-1] != '/': bisque_url += '/' irods_import(options, irods_url, bisque_url, auth)