From: Peter Amstutz Date: Fri, 1 Apr 2016 14:01:39 +0000 (-0400) Subject: Merge branch 'master' into 8857-cwl-job-reuse X-Git-Tag: 1.1.0~1016^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/3386dd9826cf143d078aa8985726516932fafa5b Merge branch 'master' into 8857-cwl-job-reuse Conflicts: sdk/cwl/arvados_cwl/__init__.py --- 3386dd9826cf143d078aa8985726516932fafa5b diff --cc sdk/cwl/arvados_cwl/__init__.py index 339b91ce59,511f173eb0..ab8d725bd7 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@@ -403,10 -520,24 +530,26 @@@ class ArvCwlRunner(object) self.uploaded[src] = pair def arvExecutor(self, tool, job_order, input_basedir, args, **kwargs): + self.debug = args.debug + + if args.quiet: + logger.setLevel(logging.WARN) + logging.getLogger('arvados.arv-run').setLevel(logging.WARN) + + useruuid = self.api.users().current().execute()["uuid"] + self.project_uuid = args.project_uuid if args.project_uuid else useruuid + self.pipeline = None + + if args.submit: + runnerjob = RunnerJob(self, tool, job_order, args.enable_reuse) + if not args.wait: + runnerjob.run() + return + events = arvados.events.subscribe(arvados.api('v1'), [["object_uuid", "is_a", "arvados#job"]], self.on_message) + self.debug = args.debug + self.ignore_docker_for_reuse = args.ignore_docker_for_reuse self.fs_access = CollectionFsAccess(input_basedir) kwargs["fs_access"] = self.fs_access @@@ -484,13 -631,25 +643,28 @@@ def main(args, stdout, stderr, api_clie exgroup.add_argument("--disable-reuse", action="store_false", default=True, dest="enable_reuse", help="") + parser.add_argument("--project-uuid", type=str, help="Project that will own the workflow jobs") + parser.add_argument("--ignore-docker-for-reuse", action="store_true", + help="Ignore Docker image version when deciding whether to reuse past jobs.", + default=False) + exgroup = parser.add_mutually_exclusive_group() + exgroup.add_argument("--submit", action="store_true", help="Submit workflow to run on Arvados.", + default=True, dest="submit") + exgroup.add_argument("--local", action="store_false", help="Run workflow on local host (submits jobs to Arvados).", + default=True, dest="submit") + + exgroup = parser.add_mutually_exclusive_group() + exgroup.add_argument("--wait", action="store_true", help="After submitting workflow runner job, wait for completion.", + default=True, dest="wait") + exgroup.add_argument("--no-wait", action="store_false", help="Submit workflow runner job and exit.", + default=True, dest="wait") + try: - runner = ArvCwlRunner(api_client=arvados.api('v1', model=OrderedJsonModel())) + if api_client is None: + api_client=arvados.api('v1', model=OrderedJsonModel()) + runner = ArvCwlRunner(api_client) except Exception as e: logger.error(e) return 1