def submit_job(monkeypatch): def submitter(job): workflow_id, run_id = mass.submit(job, 'local') monkeypatch.setenv('TEST_WORKFLOW_ID', workflow_id) monkeypatch.setenv('TEST_RUN_ID', run_id) return workflow_id, run_id yield submitter # terminate workflow if not done. workflow_id = os.environ.get('TEST_WORKFLOW_ID', None) run_id = os.environ.get('TEST_RUN_ID', None) if not workflow_id or not run_id: return if not is_job_done(workflow_id, run_id): aws.swf('terminate-workflow-execution', '--workflow-id', workflow_id, '--run-id', run_id, '--child-policy', 'TERMINATE', reason='TEST FINISHED', region=config.REGION, domain=config.DOMAIN) monkeypatch.delenv('TEST_WORKFLOW_ID') monkeypatch.delenv('TEST_RUN_ID')
def get_execution_info(workflow_id, run_id): lines = aws.swf('describe-workflow-execution', '--execution', 'workflowId=%s,runId=%s' % (workflow_id, run_id), region=config.REGION, domain=config.DOMAIN) info = json.loads(''.join([l for l in lines])) return info