netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / ovsdb / ovsdb-dot.in
index 30da1cb..134ce22 100755 (executable)
@@ -11,7 +11,7 @@ import sys
 argv0 = sys.argv[0]
 
 def printEdge(tableName, type, baseType, label):
-    if baseType.ref_table:
+    if baseType.ref_table_name:
         if type.n_min == 0:
             if type.n_max == 1:
                 arity = "?"
@@ -30,21 +30,22 @@ def printEdge(tableName, type, baseType, label):
         options = {}
         options['label'] = '"%s%s"' % (label, arity)
         if baseType.ref_type == 'weak':
-            options['constraint'] = 'false'
             options['style'] = 'dotted'
         print "\t%s -> %s [%s];" % (
             tableName,
-            baseType.ref_table,
+            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 '\trankdir=LR;'
     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))