Source code for bowl.cli_opts.list

"""
This module is the list command of bowl.

Created on 14 March 2014
@author: Charlie Lewis
"""
import ast
import docker
import os

from bowl.cli_opts import hosts

[docs]class Object(object): pass
[docs]class list(object): """ This class is responsible for the list command of the cli. """ @classmethod
[docs] def main(self, args): # !! TODO needs to implement login if using that containers = [] try: directory = args.metadata_path directory = os.path.expanduser(directory) with open(os.path.join(directory, "containers"), 'r') as f: for line in f: container = ast.literal_eval(line.rstrip("\n")) containers.append(container['container_id']+","+container['host']) except: pass host_args = Object() host_args.metadata_path = args.metadata_path host_args.z = True host_a = hosts.hosts.main(host_args) host_c = [] for host in host_a: c = docker.Client(base_url='tcp://'+host+':2375', version='1.12', timeout=2) host_c.append(c.containers()) compare_containers = [] try: for container in host_c[0]: compare_containers.append(container['Id']) except: if not args.z: print "no hosts found" return "" running_containers = [] for item in containers: container_id = item.split(',')[0] if container_id in compare_containers: running_containers.append(item) if not args.z: for container in running_containers: print container return running_containers