aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2012-12-20 11:02:32 -0800
committerJustin Pettit <jpettit@nicira.com>2013-10-17 15:09:12 -0700
commitaf4e1a4ab785cf592efd9eefa9802691523e3af0 (patch)
treedfde9a06a90b551268447e459d8ac6e2fb99c42d
parent94639963bf275a41e42277116205da0e9b457580 (diff)
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 <blp@nicira.com> Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
-rwxr-xr-xovsdb/ovsdb-dot.in16
-rw-r--r--vswitchd/automake.mk2
2 files changed, 12 insertions, 6 deletions
diff --git a/ovsdb/ovsdb-dot.in b/ovsdb/ovsdb-dot.in
index 8ea84738..006d7ed9 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 7d1ff5de..f80f7549 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