Exemplo n.º 1
0
def vacuum_stale_barriers():
    logger.info('Begin to vacuum stale container barriers')
    vacuum_iterator = ContainerManagement.vacuum_stale_barriers(huskar_client)
    for container_id, is_stale in vacuum_iterator:
        if is_stale:
            logger.info('Delete stale barrier of container %s', container_id)
        else:
            logger.info('Skip barrier of container %s', container_id)
    logger.info('Done to vacuum stale container barriers')
Exemplo n.º 2
0
def test_management_vacuum_stale_barriers(zk):
    zk.delete('/huskar/container-barrier', recursive=True)
    zk.ensure_path('/huskar/container-barrier/foo')
    zk.ensure_path('/huskar/container-barrier/bar')

    vacuum = ContainerManagement.vacuum_stale_barriers(huskar_client)
    assert list(vacuum) == [('bar', False), ('foo', False)]
    assert zk.exists('/huskar/container-barrier/foo')
    assert zk.exists('/huskar/container-barrier/bar')

    with freeze_time() as frozen_time:
        frozen_time.tick(datetime.timedelta(hours=2))
        vacuum = ContainerManagement.vacuum_stale_barriers(huskar_client)
        assert list(vacuum) == [('bar', False), ('foo', False)]
        assert zk.exists('/huskar/container-barrier/foo')
        assert zk.exists('/huskar/container-barrier/bar')

        frozen_time.tick(datetime.timedelta(days=1))
        vacuum = ContainerManagement.vacuum_stale_barriers(huskar_client)
        assert list(vacuum) == [('bar', True), ('foo', True)]
        assert not zk.exists('/huskar/container-barrier/foo')
        assert not zk.exists('/huskar/container-barrier/bar')
Exemplo n.º 3
0
def test_list_registry(client, container_id, container_management, test_token,
                       minimal_mode, preset, result):
    container_management.set_barrier()
    for application_name, cluster_name in preset:
        container_management.register_to(application_name, cluster_name)

    url = '/api/_internal/tools/container/registry/%s' % container_id
    r = client.get(url, headers={'Authorization': test_token})
    assert_response_ok(r)
    assert r.json['data'] == {'registry': result, 'barrier': True}

    with freeze_time() as frozen_time:
        frozen_time.tick(datetime.timedelta(days=1.1))
        for _ in ContainerManagement.vacuum_stale_barriers(huskar_client):
            pass

    r = client.get(url, headers={'Authorization': test_token})
    assert_response_ok(r)
    assert r.json['data']['barrier'] is False