in container_agent/run_containers.py [0:0]
def RunContainers(containers, namespace):
docker = CliDockerClient()
prefix = '%s-' % (namespace, )
named = dict(('%s%s-%s' % (prefix, ctr.name, ContainerHash(ctr)), ctr)
for ctr in containers)
# First reap containers that might collide with the desired state
running = [name for name in docker.list_containers(prefix)
if name.startswith(prefix)]
for name in running:
log.debug('in %s namespace: %s', namespace, name)
if name not in named:
log.info('reaping unwanted container: %s', name)
docker.kill(name)
# Implement desired state
for name, ctr in named.iteritems():
RunContainer(docker, name, ctr)