X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ovsdb%2Fovsdb-dot.in;h=85c126d158cf3caff2f41e48137211057f196d29;hb=71baec0655e41bb93f125d162bc62cc9da0be73b;hp=d41728627f6c850f21f0724b32c5ccdd82c1adaa;hpb=c5f341ab193b9126dffef8c77bf8ed35e91290fd;p=openvswitch diff --git a/ovsdb/ovsdb-dot.in b/ovsdb/ovsdb-dot.in index d4172862..85c126d1 100755 --- a/ovsdb/ovsdb-dot.in +++ b/ovsdb/ovsdb-dot.in @@ -10,16 +10,31 @@ import sys argv0 = sys.argv[0] -def printEdge(tableName, baseType, label): - if baseType.ref_table: +def printEdge(tableName, type, baseType, label): + if baseType.ref_table_name: + if type.n_min == 0: + if type.n_max == 1: + arity = "?" + elif type.n_max == sys.maxint: + arity = "*" + else: + arity = "{,%d}" % type.n_max + elif type.n_min == 1: + if type.n_max == 1: + arity = "" + elif type.n_max == sys.maxint: + arity = "+" + else: + arity = "{1,%d}" % type.n_max + options = {} - options['label'] = '"%s"' % label + 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): @@ -39,10 +54,10 @@ def schemaToDot(schemaFile): ', '.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) - printEdge(tableName, column.type.value, "%s value" % columnName) + printEdge(tableName, column.type, column.type.key, "%s key" % columnName) + printEdge(tableName, column.type, column.type.value, "%s value" % columnName) else: - printEdge(tableName, column.type.key, columnName) + printEdge(tableName, column.type, column.type.key, columnName) print "}"; def usage():