From: Ben Pfaff <[email protected]>

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 <[email protected]>
Signed-off-by: Justin Pettit <[email protected]>
---
 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 85c126d..459e7b9 100755
--- a/ovsdb/ovsdb-dot.in
+++ b/ovsdb/ovsdb-dot.in
@@ -37,14 +37,15 @@ 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
     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:
@@ -68,6 +69,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}
@@ -77,13 +79,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@"
@@ -95,7 +101,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 3a271c6..d3f9093 100644
--- a/vswitchd/automake.mk
+++ b/vswitchd/automake.mk
@@ -34,7 +34,7 @@ pkgdata_DATA += vswitchd/vswitch.ovsschema
 # if vswitch.gv actually changes.
 $(srcdir)/vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema
 if HAVE_PYTHON
-       $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@
+       $(OVSDB_DOT) --no-arrows $(srcdir)/vswitchd/vswitch.ovsschema > $@
 else
        touch $@
 endif
-- 
1.7.5.4

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to