Exemplo n.º 1
0
def image_delete_and_containers(image):
    """ WARNING: This will remove an image and all its dependant containers
    """
    for container in utils.extract_column(utils.filter_column(utils.Command('docker ps').stdout, 1, eq=image), -1):
        container_stop(container)
    for container in utils.extract_column(utils.filter_column(utils.Command('docker ps -a').stdout, 1, eq=image), -1):
        container_delete(container)
    return image_delete(image)
Exemplo n.º 2
0
def get_networks(filter=None, driver=None):
    docker_cmd = 'docker network ls'
    if driver:
        networks = utils.extract_column(utils.filter_column(utils.Command(docker_cmd).stdout, 2, 1, eq=driver), 1)
    else:
        networks = utils.Command(docker_cmd).stdout_column(1, 1)
    if filter:
        if isinstance(filter, basestring):
            return [x for x in networks if filter in x]
        else:
            return [x for x in networks if x in filter]
    return networks
Exemplo n.º 3
0
def get_containers(filter=None, image=None, all=True):
    """ Get containers names, with optional filter on name.
    :param filter: if string, get containers names containing it, if python container (list, set, ...),
           get containers in this set.
    :param image: if string, get containers from this image (ignore filter).
    :param all: if False, get only running containers, else get all containers.
    :return: a list of containers names
    """
    docker_cmd = 'docker ps -a' if all else 'docker ps'
    if image:
        return utils.extract_column(utils.filter_column(utils.Command(docker_cmd).stdout, 1, eq=image), -1)
    else:
        containers = utils.Command(docker_cmd).stdout_column(-1, 1)
        if filter:
            if isinstance(filter, basestring):
                return [x for x in containers if filter in x]
            else:
                return [x for x in containers if x in filter]
        return containers
Exemplo n.º 4
0
def get_version(app, container):
    output = docker_exec('apt-cache policy {}'.format(app), container, user='******')
    try:
        return utils.extract_column(utils.filter_column(output, 0, startswith='Install'), 1, sep=':')[0]
    except IndexError:
        pass