projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cfm: Don't report unexpected remote endpoints.
[openvswitch]
/
ovsdb
/
ovsdb-dot.in
diff --git
a/ovsdb/ovsdb-dot.in
b/ovsdb/ovsdb-dot.in
index 179353035d9f044231134d43f50c8ef9af5388e8..d41728627f6c850f21f0724b32c5ccdd82c1adaa 100755
(executable)
--- a/
ovsdb/ovsdb-dot.in
+++ b/
ovsdb/ovsdb-dot.in
@@
-1,38
+1,42
@@
#! @PYTHON@
from datetime import date
#! @PYTHON@
from datetime import date
+import ovs.db.error
+import ovs.db.schema
import getopt
import os
import re
import sys
import getopt
import os
import re
import sys
-sys.path.insert(0, "@abs_top_srcdir@/ovsdb")
-import simplejson as json
-
-from OVSDB import *
-
argv0 = sys.argv[0]
def printEdge(tableName, baseType, label):
argv0 = sys.argv[0]
def printEdge(tableName, baseType, label):
- if baseType.ref
T
able:
+ if baseType.ref
_t
able:
options = {}
options['label'] = '"%s"' % label
options = {}
options['label'] = '"%s"' % label
- if baseType.ref
T
ype == 'weak':
+ if baseType.ref
_t
ype == 'weak':
options['constraint'] = 'false'
options['constraint'] = 'false'
+ options['style'] = 'dotted'
print "\t%s -> %s [%s];" % (
tableName,
print "\t%s -> %s [%s];" % (
tableName,
- baseType.ref
T
able,
+ baseType.ref
_t
able,
', '.join(['%s=%s' % (k,v) for k,v in options.items()]))
def schemaToDot(schemaFile):
', '.join(['%s=%s' % (k,v) for k,v in options.items()]))
def schemaToDot(schemaFile):
- schema =
DbSchema.fromJson(json.load(open(schemaFile, "r")
))
+ schema =
ovs.db.schema.DbSchema.from_json(ovs.json.from_file(schemaFile
))
print "digraph %s {" % schema.name
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];"
for tableName, table in schema.tables.iteritems():
for tableName, table in schema.tables.iteritems():
- print '\tsize="6.5,4";'
- print '\tmargin="0";'
- print "\tnode [shape=box];"
- print "\t%s;" % tableName
+ options = {}
+ if table.is_root:
+ options['style'] = 'bold'
+ print "\t%s [%s];" % (
+ tableName,
+ ', '.join(['%s=%s' % (k,v) for k,v in options.items()]))
for columnName, column in table.columns.iteritems():
if column.type.value:
printEdge(tableName, column.type.key, "%s key" % columnName)
for columnName, column in table.columns.iteritems():
if column.type.value:
printEdge(tableName, column.type.key, "%s key" % columnName)
@@
-70,15
+74,15
@@
if __name__ == "__main__":
print "ovsdb-dot (Open vSwitch) @VERSION@"
else:
sys.exit(0)
print "ovsdb-dot (Open vSwitch) @VERSION@"
else:
sys.exit(0)
-
+
if len(args) != 1:
sys.stderr.write("%s: exactly 1 non-option argument required "
"(use --help for help)\n" % argv0)
sys.exit(1)
schemaToDot(args[0])
if len(args) != 1:
sys.stderr.write("%s: exactly 1 non-option argument required "
"(use --help for help)\n" % argv0)
sys.exit(1)
schemaToDot(args[0])
-
- except Error, e:
+
+ except
ovs.db.error.
Error, e:
sys.stderr.write("%s: %s\n" % (argv0, e.msg))
sys.exit(1)
sys.stderr.write("%s: %s\n" % (argv0, e.msg))
sys.exit(1)