def testrun(args, parser): """TESTRUN Reserve pages, run pages and optionally upload pages """ emop_submit = EmopSubmit(args.config_path) # Do not run testrun subcommand if not in a valid cluster job environment # This prevents accidentally running resource intensive program on login nodes if not emop_submit.scheduler.is_job_environment(): print("Can only use testrun subcommand from within a cluster job environment") sys.exit(1) # Reserve pages equal to --num-pages proc_id = emop_submit.reserve(num_pages=args.testrun_num_pages, r_filter=args.filter) if not proc_id: print("Failed to reserve pages") sys.exit(1) # Run reserved pages emop_run = EmopRun(args.config_path, proc_id) run_status = emop_run.run(force=True) if not run_status: sys.exit(1) # Exit if --no-upload if args.testrun_no_upload: sys.exit(0) # Upload results emop_upload = EmopUpload(args.config_path) upload_status = emop_upload.upload_proc_id(proc_id=proc_id) if not upload_status: sys.exit(1) sys.exit(0)
def upload(args, parser): """ upload command The upload command will send data to the Dashboard API. The --proc-id argument will upload contents of PROC_ID file The --upload-file argument will upload the specified file The --upload-dir argument will upload all JSON files directly under the specified directory. """ emop_upload = EmopUpload(args.config_path) if args.proc_id: upload_status = emop_upload.upload_proc_id(proc_id=args.proc_id) elif args.upload_file: upload_status = emop_upload.upload_file(filename=args.upload_file) elif args.upload_dir: upload_status = emop_upload.upload_dir(dirname=args.upload_dir) if upload_status: sys.exit(0) else: sys.exit(1)