From d5c3863b879fe5870ce62fb67cf15edcb46c8f6b Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Thu, 8 Jun 2017 14:15:07 +1000 Subject: [PATCH] Add env var to dump config graph Make this a bit easier during debugging. Add env var and some developer instructions. Change-Id: I34978ddb47d6642dfa22cae0f4c0543c0ba5475f --- diskimage_builder/block_device/config.py | 13 +++++++++---- tox.ini | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/diskimage_builder/block_device/config.py b/diskimage_builder/block_device/config.py index d6ea44da..d5d80655 100644 --- a/diskimage_builder/block_device/config.py +++ b/diskimage_builder/block_device/config.py @@ -12,6 +12,7 @@ import logging import networkx as nx +import os from stevedore import extension @@ -217,10 +218,14 @@ def create_graph(config, default_config): "Edge not defined: %s->%s" % (name, edge_to)) dg.add_edge(name, edge_to) - # this can be quite helpful debugging but needs pydotplus. - # run "dotty /tmp/out.dot" - # XXX: maybe an env var that dumps to a tmpdir or something? - # nx.nx_pydot.write_dot(dg, '/tmp/graph_dump.dot') + # this can be quite helpful debugging but needs pydotplus which + # isn't in requirements. for debugging, do + # .tox/py27/bin/pip install pydotplus + # DUMP_CONFIG_GRAPH=1 tox -e py27 -- specific_test + # dotty /tmp/graph_dump.dot + # to see helpful output + if 'DUMP_CONFIG_GRAPH' in os.environ: + nx.nx_pydot.write_dot(dg, '/tmp/graph_dump.dot') # Topological sort (i.e. create a linear array that satisfies # dependencies) and return the object list diff --git a/tox.ini b/tox.ini index d2954b39..86e8e394 100644 --- a/tox.ini +++ b/tox.ini @@ -10,6 +10,8 @@ deps= -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands= python setup.py test --slowest --testr-args='{posargs}' +passenv= + DUMP_CONFIG_GRAPH [testenv:pep8] commands =