diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-01-06 10:32:11 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-01-06 10:32:11 +0000 |
| commit | fdb440b7f67e45caee99dce7bcbe172217f4e062 (patch) | |
| tree | 2173105177e1818040e9b327e8152c1774784159 /kolla | |
| parent | 09bf7bc5a7e32da24ac66548a40323545069f789 (diff) | |
| parent | f2bded7f944ff25387d7cde1b1aa8489191de0c1 (diff) | |
| download | kolla-fdb440b7f67e45caee99dce7bcbe172217f4e062.tar.gz kolla-fdb440b7f67e45caee99dce7bcbe172217f4e062.zip | |
Merge "Gen the image dependency in the Graphviz dot format"
Diffstat (limited to 'kolla')
| -rwxr-xr-x | kolla/cmd/build.py | 20 | ||||
| -rw-r--r-- | kolla/common/config.py | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index bf5e5ba4c..5753bf02a 100755 --- a/kolla/cmd/build.py +++ b/kolla/cmd/build.py @@ -16,6 +16,7 @@ import datetime import errno +import graphviz import json import logging import os @@ -558,6 +559,19 @@ class KollaWorker(object): self.images.append(image) + def save_dependency(self, to_file): + dot = graphviz.Digraph(comment='Docker Images Dependency') + dot.body.extend(['rankdir=LR']) + for image in self.images: + if image['status'] not in ['matched']: + continue + dot.node(image['name']) + if image['parent'] is not None: + dot.edge(image['parent']['name'], image['name']) + + with open(to_file, 'w') as f: + f.write(dot.source) + def find_parents(self): """Associate all images with parents and children""" sort_images = dict() @@ -614,6 +628,12 @@ def main(): queue = kolla.build_queue() push_queue = six.moves.queue.Queue() + if conf.save_dependency: + kolla.save_dependency(conf.save_dependency) + LOG.info('Docker images dependency is saved in %s', + conf.save_dependency) + return + for x in range(conf.threads): worker = WorkerThread(queue, push_queue, conf) worker.setDaemon(True) diff --git a/kolla/common/config.py b/kolla/common/config.py index 68e1f7e5e..f5d8f48d7 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -107,6 +107,9 @@ _CLI_OPTS = [ cfg.StrOpt('registry', deprecated_group='kolla-build', help=('The docker registry host. The default registry host' ' is Docker Hub')), + cfg.StrOpt('save-dependency', + help=('Path to the file to store the docker image' + ' dependency in Graphviz dot format')), cfg.StrOpt('type', short='t', default='binary', choices=INSTALL_TYPE_CHOICES, dest='install_type', deprecated_group='kolla-build', |
