Exemple #1
0
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,
    }
Exemple #2
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,
    }
Exemple #3
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
Exemple #5
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):
     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
Exemple #7
0
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
Exemple #9
0
 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
Exemple #10
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
    }
Exemple #11
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,
    }
Exemple #12
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,
    }
Exemple #13
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)
Exemple #14
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()]
                )
                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)
Exemple #15
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()])
                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)
Exemple #16
0
 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
Exemple #17
0
 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
Exemple #18
0
 def wait_function(timeout):
     for summary in graph.wait_finish(plan.graph['uid'], timeout):
         time.sleep(0.5)
     return summary
Exemple #19
0
 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