def test_several_updates(simple_plan): simple_plan.node['just_fail']['status'] = states.ERROR.name graph.update_graph(simple_plan) assert next(graph.wait_finish(simple_plan.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 0, 'NOOP': 0, 'ERROR': 1, 'INPROGRESS': 0, 'PENDING': 1, 'ERROR_RETRY': 0, } simple_plan.node['echo_stuff']['status'] = states.ERROR.name graph.update_graph(simple_plan) assert next(graph.wait_finish(simple_plan.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 0, 'NOOP': 0, 'ERROR': 2, 'INPROGRESS': 0, 'PENDING': 0, 'ERROR_RETRY': 0, }
def test_several_updates(simple): simple.node["just_fail"]["status"] = states.ERROR.name graph.update_graph(simple) assert next(graph.wait_finish(simple.graph["uid"], 10)) == { "SKIPPED": 0, "SUCCESS": 0, "NOOP": 0, "ERROR": 1, "INPROGRESS": 0, "PENDING": 1, "ERROR_RETRY": 0, } simple.node["echo_stuff"]["status"] = states.ERROR.name graph.update_graph(simple) assert next(graph.wait_finish(simple.graph["uid"], 10)) == { "SKIPPED": 0, "SUCCESS": 0, "NOOP": 0, "ERROR": 2, "INPROGRESS": 0, "PENDING": 0, "ERROR_RETRY": 0, }
def test_several_updates(simple_plan): just_fail_task = next(t for t in simple_plan.nodes() if t.name == 'just_fail') just_fail_task.status = states.ERROR.name just_fail_task.save() assert next(graph.wait_finish(simple_plan.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 0, 'NOOP': 0, 'ERROR': 1, 'INPROGRESS': 0, 'PENDING': 1, 'ERROR_RETRY': 0, } echo_task = next(t for t in simple_plan.nodes() if t.name == 'echo_stuff') echo_task.status = states.ERROR.name echo_task.save() clear_cache() assert next(graph.wait_finish(simple_plan.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 0, 'NOOP': 0, 'ERROR': 2, 'INPROGRESS': 0, 'PENDING': 0, 'ERROR_RETRY': 0, }
def wait_function(timeout): try: for summary in graph.wait_finish( timelimit_plan.graph['uid'], timeout): time.sleep(0.5) except ExecutionTimeout: return summary
def wait_function(timeout): try: for summary in graph.wait_finish(timelimit_plan.graph['uid'], timeout): time.sleep(0.5) except ExecutionTimeout: return summary
def wait_function(timeout): for summary in graph.wait_finish( timeout_plan.graph['uid'], timeout): if summary[states.ERROR.name] == 1: return summary time.sleep(0.3) return summary
def wait_report(uid, timeout, stop_on_error=False, interval=3): try: if timeout: initial_error_count = None for summary in graph.wait_finish(uid, timeout=timeout): stringified_summary = '\r' + ' '.join( ['{}: {}'.format(state, count) for state, count in summary.items()]) click.echo(stringified_summary, nl=False) sys.stdout.flush() error = states.ERROR.name if initial_error_count is None: initial_error_count = summary[error] if initial_error_count < summary[error] and stop_on_error: raise errors.SolarError('Error encountered. Stopping') pending = states.PENDING.name in_progress = states.INPROGRESS.name if summary[pending] + summary[in_progress] != 0: time.sleep(interval) except errors.SolarError: click.echo('') click_report(uid) raise else: click.echo('') click_report(uid)
def wait_function(timeout): try: for summary in wait_finish(plan.graph['uid'], timeout): assert summary[states.ERROR.name] == 0 time.sleep(0.5) except ExecutionTimeout: pass return summary
def test_wait_finish(simple): for n in simple: simple.node[n]['status'] = states.SUCCESS.name graph.update_graph(simple) assert next(graph.wait_finish(simple.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 2, 'NOOP': 0, 'ERROR': 0, 'INPROGRESS': 0, 'PENDING': 0 }
def test_wait_finish(simple_plan): for n in simple_plan: n.status = states.SUCCESS.name n.save() assert next(graph.wait_finish(simple_plan.graph['uid'], 10)) == { 'SKIPPED': 0, 'SUCCESS': 2, 'NOOP': 0, 'ERROR': 0, 'INPROGRESS': 0, 'PENDING': 0, 'ERROR_RETRY': 0, }
def test_wait_finish(simple): for n in simple: simple.node[n]["status"] = states.SUCCESS.name graph.update_graph(simple) assert next(graph.wait_finish(simple.graph["uid"], 10)) == { "SKIPPED": 0, "SUCCESS": 2, "NOOP": 0, "ERROR": 0, "INPROGRESS": 0, "PENDING": 0, "ERROR_RETRY": 0, }
def wait_report(uid, timeout, interval=3): try: if timeout: for summary in graph.wait_finish(uid, timeout=timeout): stringified_summary = '\r' + ' '.join( ['{}: {}'.format(state, count) for state, count in summary.items()]) length = len(stringified_summary) click.echo(stringified_summary, nl=False) sys.stdout.flush() if summary[states.PENDING.name] + summary[states.INPROGRESS.name] == 0: time.sleep(interval) except errors.SolarError as err: click.echo('') click_report(uid) sys.exit(1) else: click.echo('') click_report(uid)
def wait_report(uid, timeout, interval=3): try: if timeout: for summary in graph.wait_finish(uid, timeout=timeout): stringified_summary = "\r" + " ".join( ["{}: {}".format(state, count) for state, count in summary.items()] ) click.echo(stringified_summary, nl=False) sys.stdout.flush() pending = states.PENDING.name in_progress = states.INPROGRESS.name if summary[pending] + summary[in_progress] != 0: time.sleep(interval) except errors.SolarError: click.echo("") click_report(uid) sys.exit(1) else: click.echo("") click_report(uid)
def wait_report(uid, timeout, interval=3): try: if timeout: for summary in graph.wait_finish(uid, timeout=timeout): stringified_summary = '\r' + ' '.join( ['{}: {}'.format(state, count) for state, count in summary.items()]) click.echo(stringified_summary, nl=False) sys.stdout.flush() pending = states.PENDING.name in_progress = states.INPROGRESS.name if summary[pending] + summary[in_progress] != 0: time.sleep(interval) except errors.SolarError: click.echo('') click_report(uid) sys.exit(1) else: click.echo('') click_report(uid)
def wait_function(timeout): for summary in graph.wait_finish(timeout_plan.graph['uid'], timeout): if summary[states.ERROR.name] == 1: return summary time.sleep(0.3) return summary
def wait_function(timeout): for summary in graph.wait_finish(plan.graph['uid'], timeout): assert summary[states.ERROR.name] <= 1 time.sleep(0.5) return summary
def wait_function(timeout): for summary in graph.wait_finish(plan.graph['uid'], timeout): time.sleep(0.5) return summary