The graphviz library has a large set of dependencies, and as such it may be desireable to not install it by default.
Before this patch execution of ovs-flowviz would end in ImportError when graphviz is unavailable. Exit with a friendly message instead, allowing the user to consume the parts of the program that do not depend on graphviz. Signed-off-by: Frode Nordahl <[email protected]> --- python/ovs/flowviz/odp/graph.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/python/ovs/flowviz/odp/graph.py b/python/ovs/flowviz/odp/graph.py index 4d1fb7493..5ab14e227 100644 --- a/python/ovs/flowviz/odp/graph.py +++ b/python/ovs/flowviz/odp/graph.py @@ -14,16 +14,27 @@ """ Defines a Datapath Graph using graphviz. """ import colorsys -import graphviz +import os import random +import sys from ovs.flowviz.odp.html import HTMLTree, HTMLFormatter from ovs.flowviz.odp.tree import FlowTree from ovs.flowviz.process import FileProcessor +try: + import graphviz +except ImportError: + graphviz = None + class GraphProcessor(FileProcessor): def __init__(self, opts): + if graphviz is None: + print("ERROR: The graph sub-command depends on the graphviz " + "Python library, which does not appear to be installed.", + file=sys.stderr) + sys.exit(os.EX_UNAVAILABLE) super().__init__(opts, "odp") def start_file(self, name, filename): -- 2.45.2 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
