From af4e1a4ab785cf592efd9eefa9802691523e3af0 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 20 Dec 2012 11:02:32 -0800 Subject: [PATCH] ovsdb-dot: Include arrows by default. When ovsdb-dot generates diagrams for use in the manpages, the dot2pic postprocessor makes nicer output if the arrowheads are omitted (dot2pic adds the arrowheads itself). But for other uses that don't go through the postprocessor, we generally want the arrowheads. So this commit adds an option. On the principle that the default should be the least surprising to a naive user, arrowheads are included by default. Signed-off-by: Ben Pfaff Signed-off-by: Justin Pettit Acked-by: Justin Pettit --- ovsdb/ovsdb-dot.in | 16 +++++++++++----- vswitchd/automake.mk | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ovsdb/ovsdb-dot.in b/ovsdb/ovsdb-dot.in index 8ea84738c..006d7ed90 100755 --- a/ovsdb/ovsdb-dot.in +++ b/ovsdb/ovsdb-dot.in @@ -37,7 +37,7 @@ def printEdge(tableName, type, baseType, label): baseType.ref_table_name, ', '.join(['%s=%s' % (k,v) for k,v in options.items()])) -def schemaToDot(schemaFile): +def schemaToDot(schemaFile, arrows): schema = ovs.db.schema.DbSchema.from_json(ovs.json.from_file(schemaFile)) print "digraph %s {" % schema.name @@ -45,7 +45,8 @@ def schemaToDot(schemaFile): print '\tsize="6.5,4";' print '\tmargin="0";' print "\tnode [shape=box];" - print "\tedge [dir=none, arrowhead=none, arrowtail=none];" + if not arrows: + print "\tedge [dir=none, arrowhead=none, arrowtail=none];" for tableName, table in schema.tables.iteritems(): options = {} if table.is_root: @@ -69,6 +70,7 @@ usage: %(argv0)s [OPTIONS] SCHEMA where SCHEMA is an OVSDB schema in JSON format The following options are also available: + --no-arrows omit arrows from diagram -h, --help display this help message -V, --version display version information\ """ % {'argv0': argv0} @@ -78,13 +80,17 @@ if __name__ == "__main__": try: try: options, args = getopt.gnu_getopt(sys.argv[1:], 'hV', - ['help', 'version']) + ['no-arrows', + 'help', 'version',]) except getopt.GetoptError, geo: sys.stderr.write("%s: %s\n" % (argv0, geo.msg)) sys.exit(1) + arrows = True for key, value in options: - if key in ['-h', '--help']: + if key == '--no-arrows': + arrows = False + elif key in ['-h', '--help']: usage() elif key in ['-V', '--version']: print "ovsdb-dot (Open vSwitch) @VERSION@" @@ -96,7 +102,7 @@ if __name__ == "__main__": "(use --help for help)\n" % argv0) sys.exit(1) - schemaToDot(args[0]) + schemaToDot(args[0], arrows) except ovs.db.error.Error, e: sys.stderr.write("%s: %s\n" % (argv0, e.msg)) diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk index 7d1ff5de9..f80f75499 100644 --- a/vswitchd/automake.mk +++ b/vswitchd/automake.mk @@ -30,7 +30,7 @@ pkgdata_DATA += vswitchd/vswitch.ovsschema if HAVE_PYTHON if HAVE_DOT vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema - $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@ + $(OVSDB_DOT) --no-arrows $(srcdir)/vswitchd/vswitch.ovsschema > $@ vswitchd/vswitch.pic: vswitchd/vswitch.gv ovsdb/dot2pic (dot -T plain < vswitchd/vswitch.gv | $(srcdir)/ovsdb/dot2pic -f 3) > $@; VSWITCH_PIC = vswitchd/vswitch.pic -- 2.43.0