def prepare_assembly_data(args, aclient, usage): """Parses args and uploads files returns data spec for submission in run/upload commands""" if not (args.pair or args.single or args.pair_url or args.single_url or args.contigs): sys.exit(usage) adata = client.AssemblyData() curl = args.curl res_ids = [] files = [] file_sizes = [] file_list = [] file_lists = [] all_lists = [args.pair, args.pair_url, args.single, args.single_url, args.reference, args.reference_url, args.contigs] all_types = ['paired', 'paired_url', 'single', 'single_url', 'reference', 'reference_url', 'contigs'] for li in all_lists: if li is None: file_lists.append([]) else: file_lists.append(li) seen = {} for f_list in file_lists: for ls in f_list: for word in ls: if '=' not in word: if word in seen: sys.exit('Input error: duplicated file: {}'.format(word)) else: seen[word] = True for f_list, f_type in zip(file_lists, all_types): for ls in f_list: f_infos = [] f_set_args = {} for word in ls: if '=' in word: key, val = word.split('=') f_set_args[key] = val elif os.path.isfile(word): f_info = aclient.upload_data_file_info(word, curl=curl) f_infos.append(f_info) elif f_type.endswith('_url'): file_url = utils.verify_url(word) f_info = asmtypes.FileInfo(direct_url=file_url) f_infos.append(f_info) else: sys.exit('Invalid input: {}: {}'.format(f_type, word)) f_set = asmtypes.FileSet(f_type, f_infos, **f_set_args) adata.add_set(f_set) return adata
def run_command(): parser = get_parser() args = parser.parse_args() usage = parser.format_usage() frmt = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") sh = logging.StreamHandler() sh.setLevel(logging.DEBUG) sh.setFormatter(frmt) clientlog = logging.getLogger("client") clientlog.setLevel(logging.INFO) clientlog.addHandler(sh) if args.verbose: clientlog.setLevel(logging.DEBUG) clientlog.debug("Logger Debugging mode") if args.command == "login": cmd_login(args) sys.exit() if args.command == "logout": cmd_logout(args) sys.exit() a_user, a_token = auth.verify_token(ARAST_AUTH_USER, ARAST_AUTH_TOKEN) if not a_user or not a_token: if ARAST_ENVIRON: sys.exit("Please use the {} controls to authenticate".format(ARAST_ENVIRON)) else: sys.stderr.write("You can use the login/logout commands to authenticate\n") a_user, a_token = auth.authenticate() # main command options a_url = args.arast_url or ARAST_URL a_url = utils.verify_url(a_url) logging.info("ARAST_URL: {}".format(a_url)) aclient = client.Client(a_url, a_user, a_token) if args.command == "upload": cmd_upload(args, aclient, usage, clientlog) elif args.command == "run": cmd_run(args, aclient, usage, clientlog) elif args.command == "stat": cmd_stat(args, aclient) elif args.command == "get": cmd_get(args, aclient) elif args.command == "avail": cmd_avail(args, aclient) elif args.command == "kill": print aclient.kill_jobs(args.job)
def run_command(): parser = get_parser() args = parser.parse_args() usage = parser.format_usage() frmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') sh = logging.StreamHandler() sh.setLevel(logging.DEBUG) sh.setFormatter(frmt) clientlog = logging.getLogger('client') clientlog.setLevel(logging.INFO) clientlog.addHandler(sh) if args.verbose: clientlog.setLevel(logging.DEBUG) clientlog.debug("Logger Debugging mode") if args.command == 'login': cmd_login(args) sys.exit() if args.command == 'logout': cmd_logout(args) sys.exit() a_user, a_token = auth.verify_token(ARAST_AUTH_USER,ARAST_AUTH_TOKEN) if not a_user or not a_token: if ARAST_ENVIRON: sys.exit('Please use the {} controls to authenticate'.format(ARAST_ENVIRON)) else: sys.stderr.write('You can use the login/logout commands to authenticate\n') a_user, a_token = auth.authenticate() # main command options a_url = args.arast_url or ARAST_URL a_url = utils.verify_url(a_url) logging.info('ARAST_URL: {}'.format(a_url)) aclient = client.Client(a_url, a_user, a_token) if args.command == 'upload': cmd_upload(args, aclient, usage, clientlog) elif args.command == 'run': cmd_run(args, aclient, usage, clientlog) elif args.command == 'stat': cmd_stat(args, aclient) elif args.command == 'get': cmd_get(args, aclient) elif args.command == 'avail': cmd_avail(args, aclient) elif args.command == 'kill': print aclient.kill_jobs(args.job)