Пример #1
0
def test_get_qbclient(app1):
    qb1 = api.get_qbclient()
    qb2 = api.get_qbclient()
    nt.assert_equal(id(qb1), id(qb1))
    nt.assert_equal(hash(qb1), hash(qb2))

    qb1.create(app1, 'A')
    nt.assert_equal(qb2.get(app1)[0], 'A')
Пример #2
0
def test_get_qbclient(app1):
    qb1 = api.get_qbclient()
    qb2 = api.get_qbclient()
    nt.assert_equal(id(qb1), id(qb1))
    nt.assert_equal(hash(qb1), hash(qb2))

    qb1.create(app1, 'A')
    nt.assert_equal(qb2.get(app1)[0], 'A')
Пример #3
0
def cycle_queue(app_name):
    """Get item from queue, put at back of queue and return item"""
    q = api.get_qbclient().LockingQueue(app_name)
    item = q.get()
    q.put(item)
    q.consume()
    return item
Пример #4
0
def test_check_state1(app1, job_id1, job_id2):

    nt.assert_false(api.check_state(app1, 'doesnotexist', pending=True))
    with nt.assert_raises(NoNodeError):
        api.check_state(app1, 'doesnotexist', raise_if_not_exists=True)

    qb.set_state(app1, job_id1, pending=True)
    # also: create an invalid state (one that stolos does not recognize)
    api.get_qbclient().create(qb.get_job_path(app1, job_id2), '')

    with nt.assert_raises(UserWarning):
        api.check_state(app1, job_id1)
    nt.assert_true(api.check_state(app1, job_id1, pending=True))
    nt.assert_true(api.check_state(app1, job_id1, pending=True,
                                   completed=True))
    nt.assert_false(api.check_state(app1, job_id1, completed=True))
    nt.assert_true(api.check_state(app1, job_id1, all=True))
    # the invalid job:
    nt.assert_false(api.check_state(app1, job_id2, all=True))
Пример #5
0
def get_qb_status(app_name, job_id):
    path = qb.get_job_path(app_name, job_id)
    elockpath = qb.get_lock_path('execute', app_name, job_id)
    alockpath = qb.get_lock_path('add', app_name, job_id)
    qbcli = api.get_qbclient()
    return {
        'is_add_locked': qbcli.Lock(alockpath).is_locked(),
        'is_execute_locked': qbcli.Lock(elockpath).is_locked(),
        'in_queue': qbcli.LockingQueue(app_name).is_queued(job_id),
        'app_qsize': qbcli.LockingQueue(app_name).size(),
        'state': qbcli.get(path),
    }
Пример #6
0
def test_check_state1(app1, job_id1, job_id2):

    nt.assert_false(api.check_state(app1, 'doesnotexist', pending=True))
    with nt.assert_raises(NoNodeError):
        api.check_state(app1, 'doesnotexist', raise_if_not_exists=True)

    qb.set_state(app1, job_id1, pending=True)
    # also: create an invalid state (one that stolos does not recognize)
    api.get_qbclient().create(
        qb.get_job_path(app1, job_id2), '')

    with nt.assert_raises(UserWarning):
        api.check_state(app1, job_id1)
    nt.assert_true(
        api.check_state(app1, job_id1, pending=True))
    nt.assert_true(
        api.check_state(app1, job_id1, pending=True, completed=True))
    nt.assert_false(api.check_state(app1, job_id1, completed=True))
    nt.assert_true(api.check_state(app1, job_id1, all=True))
    # the invalid job:
    nt.assert_false(api.check_state(app1, job_id2, all=True))
Пример #7
0
def test_get_qsize(app1, job_id1, job_id2):
    nt.assert_equal(api.get_qsize(app1, queued=True, taken=True), 0)
    tt.enqueue(app1, job_id1, )
    tt.enqueue(app1, job_id2, validate_queued=False)
    q = api.get_qbclient().LockingQueue(app1)
    itm = q.get()
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=True))
    nt.assert_equal(1, api.get_qsize(app1, queued=False, taken=True))
    nt.assert_equal(1, api.get_qsize(app1, queued=True, taken=False))
    q.put(itm)
    q.consume()
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=True))
    nt.assert_equal(0, api.get_qsize(app1, queued=False, taken=True))
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=False))
Пример #8
0
def test_get_qsize(app1, job_id1, job_id2):
    nt.assert_equal(api.get_qsize(app1, queued=True, taken=True), 0)
    tt.enqueue(
        app1,
        job_id1,
    )
    tt.enqueue(app1, job_id2, validate_queued=False)
    q = api.get_qbclient().LockingQueue(app1)
    itm = q.get()
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=True))
    nt.assert_equal(1, api.get_qsize(app1, queued=False, taken=True))
    nt.assert_equal(1, api.get_qsize(app1, queued=True, taken=False))
    q.put(itm)
    q.consume()
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=True))
    nt.assert_equal(0, api.get_qsize(app1, queued=False, taken=True))
    nt.assert_equal(2, api.get_qsize(app1, queued=True, taken=False))
Пример #9
0
def validate_zero_queued_task(app_name):
    qbcli = api.get_qbclient()
    nt.assert_equal(qbcli.LockingQueue(app_name).size(), 0)
Пример #10
0
def validate_not_exists(app_name, job_id):
    qbcli = api.get_qbclient()
    path = qb.get_job_path(app_name, job_id)
    nt.assert_false(qbcli.exists(path))
Пример #11
0
def consume_queue(app_name):
    q = api.get_qbclient().LockingQueue(app_name)
    item = q.get()
    if item is not None:
        q.consume()
    return item