blob: 7bdcc003405a884c5430376b3787c39bffe36494 [file] [log] [blame]
From 3658d861c3c83caab9040bec04b195be3f86d4ce Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 29 Jun 2017 20:33:23 -0700
Subject: [PATCH] Python3 compatibility: Convert print statements
Commit d34a1cc02536f9a812517a71accec3fbd3c6c98b from
https://github.com/openvswitch/ovs.git
This patch fixes up all the print statements to work with python3 or
python2.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
---
build-aux/check-structs | 4 +-
build-aux/extract-ofp-actions | 68 +++---
build-aux/extract-ofp-errors | 2 +-
build-aux/extract-ofp-fields | 2 +-
build-aux/extract-ofp-msgs | 6 +-
ovsdb/ovsdb-doc | 6 +-
ovsdb/ovsdb-idlc.in | 523 +++++++++++++++++++++---------------------
7 files changed, 306 insertions(+), 305 deletions(-)
diff --git a/build-aux/check-structs b/build-aux/check-structs
index 5129b72..cbb19b6 100755
--- a/build-aux/check-structs
+++ b/build-aux/check-structs
@@ -211,7 +211,7 @@ def checkStructs():
if '--help' in sys.argv:
argv0 = os.path.basename(sys.argv[0])
- print '''\
+ print('''\
%(argv0)s, for checking struct and struct member alignment
usage: %(argv0)s -Ipath HEADER [HEADER]...
@@ -226,7 +226,7 @@ assertions using OFP_ASSERT.
This program is specialized for reading Open vSwitch's OpenFlow header
files. It will not work on arbitrary header files without extensions.\
-''' % {"argv0": argv0}
+''' % {"argv0": argv0})
sys.exit(0)
global fileName
diff --git a/build-aux/extract-ofp-actions b/build-aux/extract-ofp-actions
index ee8c4ff..67e3848 100755
--- a/build-aux/extract-ofp-actions
+++ b/build-aux/extract-ofp-actions
@@ -67,7 +67,7 @@ def fatal(msg):
def usage():
argv0 = os.path.basename(sys.argv[0])
- print ('''\
+ print('''\
%(argv0)s, for extracting OpenFlow action data
usage: %(argv0)s OFP_ACTIONS.C [--prototypes | --definitions]
@@ -238,36 +238,36 @@ def extract_ofp_actions(fn, definitions):
if n_errors:
sys.exit(1)
- print """\
+ print("""\
/* Generated automatically; do not modify! -*- buffer-read-only: t -*- */
-"""
+""")
if definitions:
- print "/* Verify that structs used as actions are reasonable sizes. */"
+ print("/* Verify that structs used as actions are reasonable sizes. */")
for s in sorted(arg_structs):
- print "BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s
+ print("BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s)
- print "\nstatic struct ofpact_raw_instance all_raw_instances[] = {"
+ print("\nstatic struct ofpact_raw_instance all_raw_instances[] = {")
for vendor in domain:
for type_ in domain[vendor]:
for version in domain[vendor][type_]:
d = domain[vendor][type_][version]
- print " { { 0x%08x, %2d, 0x%02x }, " % (
- vendor, type_, version)
- print " %s," % d["enum"]
- print " HMAP_NODE_NULL_INITIALIZER,"
- print " HMAP_NODE_NULL_INITIALIZER,"
- print " %s," % d["min_length"]
- print " %s," % d["max_length"]
- print " %s," % d["arg_ofs"]
- print " %s," % d["arg_len"]
- print " \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1)
+ print(" { { 0x%08x, %2d, 0x%02x }, " % (
+ vendor, type_, version))
+ print(" %s," % d["enum"])
+ print(" HMAP_NODE_NULL_INITIALIZER,")
+ print(" HMAP_NODE_NULL_INITIALIZER,")
+ print(" %s," % d["min_length"])
+ print(" %s," % d["max_length"])
+ print(" %s," % d["arg_ofs"])
+ print(" %s," % d["arg_len"])
+ print(" \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1))
if d["deprecation"]:
- print " \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"])
+ print(" \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"]))
else:
- print " NULL,"
- print " },"
- print "};";
+ print(" NULL,")
+ print(" },")
+ print("};")
for versions in enums.values():
need_ofp_version = False
@@ -314,11 +314,11 @@ def extract_ofp_actions(fn, definitions):
decl += "}"
else:
decl += ";"
- print decl
- print
+ print(decl)
+ print("")
if definitions:
- print """\
+ print("""\
static enum ofperr
ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
enum ofp_version version, uint64_t arg,
@@ -326,14 +326,14 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
uint64_t *tlv_bitmap, struct ofpbuf *out)
{
switch (raw) {\
-"""
+""")
for versions in enums.values():
enum = versions[0]["enum"]
- print " case %s:" % enum
+ print(" case %s:" % enum)
base_argtype = versions[0]["base_argtype"]
arg_vl_mff_map = versions[0]["arg_vl_mff_map"]
if base_argtype == 'void':
- print " return decode_%s(out);" % enum
+ print(" return decode_%s(out);" % enum)
else:
if base_argtype.startswith('struct'):
arg = "ALIGNED_CAST(const %s *, a)" % base_argtype
@@ -344,16 +344,16 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
else:
arg = "arg"
if arg_vl_mff_map:
- print " return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg)
+ print(" return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg))
else:
- print " return decode_%s(%s, version, out);" % (enum, arg)
- print
- print """\
+ print(" return decode_%s(%s, version, out);" % (enum, arg))
+ print("")
+ print("""\
default:
OVS_NOT_REACHED();
}
}\
-"""
+""")
else:
for versions in enums.values():
enum = versions[0]["enum"]
@@ -368,15 +368,15 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw,
if arg_vl_mff_map:
prototype += 'const struct vl_mff_map *, uint64_t *, '
prototype += "struct ofpbuf *);"
- print prototype
+ print(prototype)
- print """
+ print("""
static enum ofperr ofpact_decode(const struct ofp_action_header *,
enum ofp_raw_action_type raw,
enum ofp_version version,
uint64_t arg, const struct vl_mff_map *vl_mff_map,
uint64_t *tlv_bitmap, struct ofpbuf *out);
-"""
+""")
if __name__ == '__main__':
if '--help' in sys.argv:
diff --git a/build-aux/extract-ofp-errors b/build-aux/extract-ofp-errors
index e36444e..97d62d2 100755
--- a/build-aux/extract-ofp-errors
+++ b/build-aux/extract-ofp-errors
@@ -426,7 +426,7 @@ static const struct ofperr_domain %s = {
vendor, type_, code = map[enum]
if code == None:
code = -1
- print " { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum)
+ print (" { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum))
else:
print (" { -1, -1, -1 }, /* %s */" % enum)
print ("""\
diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
index c248e76..80c7d35 100755
--- a/build-aux/extract-ofp-fields
+++ b/build-aux/extract-ofp-fields
@@ -728,7 +728,7 @@ def make_ovs_fields(meta_flow_h, meta_flow_xml):
ovs\-fields \- protocol header fields in OpenFlow and Open vSwitch
.
.PP
-''') % version
+''' % version)
recursively_replace(doc, 'oxm_classes', make_oxm_classes_xml(document))
diff --git a/build-aux/extract-ofp-msgs b/build-aux/extract-ofp-msgs
index c2a91f9..92c4bda 100755
--- a/build-aux/extract-ofp-msgs
+++ b/build-aux/extract-ofp-msgs
@@ -56,14 +56,14 @@ def fatal(msg):
def usage():
argv0 = os.path.basename(sys.argv[0])
- print '''\
+ print('''\
%(argv0)s, for extracting OpenFlow message types from header files
usage: %(argv0)s INPUT OUTPUT
where INPUT is the name of the input header file
and OUTPUT is the output file name.
Despite OUTPUT, the output is written to stdout, and the OUTPUT argument
only controls #line directives in the output.\
-''' % {"argv0": argv0}
+''' % {"argv0": argv0})
sys.exit(0)
def make_sizeof(s):
@@ -378,5 +378,5 @@ if __name__ == '__main__':
line_number = 0
for line in extract_ofp_msgs(sys.argv[2]):
- print line
+ print(line)
diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc
index bdf2dcc..e82ad59 100755
--- a/ovsdb/ovsdb-doc
+++ b/ovsdb/ovsdb-doc
@@ -258,7 +258,7 @@ represent strong references; thin lines represent weak references.
return s
def usage():
- print """\
+ print("""\
%(argv0)s: ovsdb schema documentation generator
Prints documentation for an OVSDB schema as an nroff-formatted manpage.
usage: %(argv0)s [OPTIONS] SCHEMA XML
@@ -269,7 +269,7 @@ The following options are also available:
--er-diagram=DIAGRAM.PIC include E-R diagram from DIAGRAM.PIC
--version=VERSION use VERSION to display on document footer
-h, --help display this help message\
-""" % {'argv0': argv0}
+""" % {'argv0': argv0})
sys.exit(0)
if __name__ == "__main__":
@@ -304,7 +304,7 @@ if __name__ == "__main__":
for line in s.split("\n"):
line = line.strip()
if len(line):
- print line
+ print(line)
except error.Error, e:
sys.stderr.write("%s: %s\n" % (argv0, e.msg))
diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
index bfbcf23..62442ee 100755
--- a/ovsdb/ovsdb-idlc.in
+++ b/ovsdb/ovsdb-idlc.in
@@ -1,5 +1,6 @@
#! /usr/bin/env @PYTHON@
+from __future__ import print_function
import getopt
import os
import re
@@ -123,7 +124,7 @@ def sorted_columns(table):
def printCIDLHeader(schemaFile):
schema = parseSchema(schemaFile)
prefix = schema.idlPrefix
- print '''\
+ print('''\
/* Generated automatically -- do not modify! -*- buffer-read-only: t -*- */
#ifndef %(prefix)sIDL_HEADER
@@ -135,39 +136,39 @@ def printCIDLHeader(schemaFile):
#include "ovsdb-data.h"
#include "ovsdb-idl-provider.h"
#include "smap.h"
-#include "uuid.h"''' % {'prefix': prefix.upper()}
+#include "uuid.h"''' % {'prefix': prefix.upper()})
for tableName, table in sorted(schema.tables.iteritems()):
structName = "%s%s" % (prefix, tableName.lower())
- print " "
- print "/* %s table. */" % tableName
- print "struct %s {" % structName
- print "\tstruct ovsdb_idl_row header_;"
+ print(" ")
+ print("/* %s table. */" % tableName)
+ print("struct %s {" % structName)
+ print("\tstruct ovsdb_idl_row header_;")
for columnName, column in sorted_columns(table):
- print "\n\t/* %s column. */" % columnName
+ print("\n\t/* %s column. */" % columnName)
comment, members = cMembers(prefix, tableName,
columnName, column, False)
for member in members:
- print "\t%(type)s%(name)s;%(comment)s" % member
- print "};"
+ print("\t%(type)s%(name)s;%(comment)s" % member)
+ print("};")
# Column indexes.
printEnum("%s_column_id" % structName.lower(), ["%s_COL_%s" % (structName.upper(), columnName.upper())
for columnName, column in sorted_columns(table)]
+ ["%s_N_COLUMNS" % structName.upper()])
- print
+ print("")
for columnName in table.columns:
- print "#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % {
+ print("#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % {
's': structName,
'S': structName.upper(),
'c': columnName,
- 'C': columnName.upper()}
+ 'C': columnName.upper()})
- print "\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper())
+ print("\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper()))
- print '''
+ print('''
const struct %(s)s *%(s)s_get_for_uuid(const struct ovsdb_idl *, const struct uuid *);
const struct %(s)s *%(s)s_first(const struct ovsdb_idl *);
const struct %(s)s *%(s)s_next(const struct %(s)s *);
@@ -205,87 +206,87 @@ void %(s)s_init(struct %(s)s *);
void %(s)s_delete(const struct %(s)s *);
struct %(s)s *%(s)s_insert(struct ovsdb_idl_txn *);
bool %(s)s_is_updated(const struct %(s)s *, enum %(s)s_column_id);
-''' % {'s': structName, 'S': structName.upper()}
+''' % {'s': structName, 'S': structName.upper()})
for columnName, column in sorted_columns(table):
- print 'void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName}
+ print('void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName})
- print
+ print("")
for columnName, column in sorted_columns(table):
if column.type.value:
valueParam = ', enum ovsdb_atomic_type value_type'
else:
valueParam = ''
- print 'const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % {
- 's': structName, 'c': columnName, 'v': valueParam}
+ print('const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % {
+ 's': structName, 'c': columnName, 'v': valueParam})
- print
+ print("")
for columnName, column in sorted_columns(table):
- print 'void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName},
+ print('void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName}, end=' ')
if column.type.is_smap():
args = ['const struct smap *']
else:
comment, members = cMembers(prefix, tableName, columnName,
column, True)
args = ['%(type)s%(name)s' % member for member in members]
- print '%s);' % ', '.join(args)
+ print('%s);' % ', '.join(args))
- print
+ print("")
for columnName, column in sorted_columns(table):
if column.type.is_map():
- print 'void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
- print '%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)}
- print 'void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
- print '%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)}
+ print('void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
+ print('%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)})
+ print('void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
+ print('%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)})
if column.type.is_set():
- print 'void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
- print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}
- print 'void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName},
- print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}
+ print('void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
+ print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)})
+ print('void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ')
+ print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)})
- print 'void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName},
+ print('void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName}, end=' ')
if column.type.is_smap():
args = ['const struct smap *']
else:
comment, members = cMembers(prefix, tableName, columnName,
column, True, refTable=False)
args = ['%(type)s%(name)s' % member for member in members]
- print '%s);' % ', '.join(args)
+ print('%s);' % ', '.join(args))
- print 'void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName},
+ print('void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName})
- print
+ print("")
# Table indexes.
printEnum("%stable_id" % prefix.lower(), ["%sTABLE_%s" % (prefix.upper(), tableName.upper()) for tableName in sorted(schema.tables)] + ["%sN_TABLES" % prefix.upper()])
- print
+ print("")
for tableName in schema.tables:
- print "#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % {
+ print("#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % {
'p': prefix,
'P': prefix.upper(),
't': tableName.lower(),
- 'T': tableName.upper()}
- print "\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper())
+ 'T': tableName.upper()})
+ print("\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper()))
- print "\nextern struct ovsdb_idl_class %sidl_class;" % prefix
+ print("\nextern struct ovsdb_idl_class %sidl_class;" % prefix)
- print "\nconst char * %sget_db_version(void);" % prefix
- print "\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()}
+ print("\nconst char * %sget_db_version(void);" % prefix)
+ print("\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()})
def printEnum(type, members):
if len(members) == 0:
return
- print "\nenum %s {" % type
+ print("\nenum %s {" % type)
for member in members[:-1]:
- print " %s," % member
- print " %s" % members[-1]
- print "};"
+ print(" %s," % member)
+ print(" %s" % members[-1])
+ print("};")
def printCIDLSource(schemaFile):
schema = parseSchema(schemaFile)
prefix = schema.idlPrefix
- print '''\
+ print('''\
/* Generated automatically -- do not modify! -*- buffer-read-only: t -*- */
#include <config.h>
@@ -296,33 +297,33 @@ def printCIDLSource(schemaFile):
#include "ovsdb-error.h"
#include "util.h"
-''' % schema.idlHeader
+''' % schema.idlHeader)
# Cast functions.
for tableName, table in sorted(schema.tables.iteritems()):
structName = "%s%s" % (prefix, tableName.lower())
- print '''
+ print('''
static struct %(s)s *
%(s)s_cast(const struct ovsdb_idl_row *row)
{
return row ? CONTAINER_OF(row, struct %(s)s, header_) : NULL;
}\
-''' % {'s': structName}
+''' % {'s': structName})
for tableName, table in sorted(schema.tables.iteritems()):
structName = "%s%s" % (prefix, tableName.lower())
- print " "
- print "/* %s table. */" % (tableName)
+ print(" ")
+ print("/* %s table. */" % (tableName))
# Parse functions.
for columnName, column in sorted_columns(table):
- print '''
+ print('''
static void
%(s)s_parse_%(c)s(struct ovsdb_idl_row *row_, const struct ovsdb_datum *datum)
{
struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName,
- 'c': columnName}
+ 'c': columnName})
type = column.type
if type.value:
keyVar = "row->key_%s" % columnName
@@ -332,89 +333,89 @@ static void
valueVar = None
if type.is_smap():
- print " smap_init(&row->%s);" % columnName
- print " for (size_t i = 0; i < datum->n; i++) {"
- print " smap_add(&row->%s," % columnName
- print " datum->keys[i].string,"
- print " datum->values[i].string);"
- print " }"
+ print(" smap_init(&row->%s);" % columnName)
+ print(" for (size_t i = 0; i < datum->n; i++) {")
+ print(" smap_add(&row->%s," % columnName)
+ print(" datum->keys[i].string,")
+ print(" datum->values[i].string);")
+ print(" }")
elif (type.n_min == 1 and type.n_max == 1) or type.is_optional_pointer():
- print
- print " if (datum->n >= 1) {"
+ print("")
+ print(" if (datum->n >= 1) {")
if not type.key.ref_table:
- print " %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string())
+ print(" %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string()))
else:
- print " %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())
+ print(" %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()))
if valueVar:
if not type.value.ref_table:
- print " %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string())
+ print(" %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string()))
else:
- print " %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())
- print " } else {"
- print " %s" % type.key.initCDefault(keyVar, type.n_min == 0)
+ print(" %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()))
+ print(" } else {")
+ print(" %s" % type.key.initCDefault(keyVar, type.n_min == 0))
if valueVar:
- print " %s" % type.value.initCDefault(valueVar, type.n_min == 0)
- print " }"
+ print(" %s" % type.value.initCDefault(valueVar, type.n_min == 0))
+ print(" }")
else:
if type.n_max != sys.maxint:
- print " size_t n = MIN(%d, datum->n);" % type.n_max
+ print(" size_t n = MIN(%d, datum->n);" % type.n_max)
nMax = "n"
else:
nMax = "datum->n"
- print " %s = NULL;" % keyVar
+ print(" %s = NULL;" % keyVar)
if valueVar:
- print " %s = NULL;" % valueVar
- print " row->n_%s = 0;" % columnName
- print " for (size_t i = 0; i < %s; i++) {" % nMax
+ print(" %s = NULL;" % valueVar)
+ print(" row->n_%s = 0;" % columnName)
+ print(" for (size_t i = 0; i < %s; i++) {" % nMax)
if type.key.ref_table:
- print """\
+ print("""\
struct %s%s *keyRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[i].uuid));
if (!keyRow) {
continue;
}\
-""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())
+""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()))
keySrc = "keyRow"
else:
keySrc = "datum->keys[i].%s" % type.key.type.to_string()
if type.value and type.value.ref_table:
- print """\
+ print("""\
struct %s%s *valueRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[i].uuid));
if (!valueRow) {
continue;
}\
-""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())
+""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()))
valueSrc = "valueRow"
elif valueVar:
valueSrc = "datum->values[i].%s" % type.value.type.to_string()
- print " if (!row->n_%s) {" % (columnName)
+ print(" if (!row->n_%s) {" % (columnName))
- print " %s = xmalloc(%s * sizeof *%s);" % (
- keyVar, nMax, keyVar)
+ print(" %s = xmalloc(%s * sizeof *%s);" % (
+ keyVar, nMax, keyVar))
if valueVar:
- print " %s = xmalloc(%s * sizeof *%s);" % (
- valueVar, nMax, valueVar)
- print " }"
- print " %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc)
+ print(" %s = xmalloc(%s * sizeof *%s);" % (
+ valueVar, nMax, valueVar))
+ print(" }")
+ print(" %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc))
if valueVar:
- print " %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc)
- print " row->n_%s++;" % columnName
- print " }"
- print "}"
+ print(" %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc))
+ print(" row->n_%s++;" % columnName)
+ print(" }")
+ print("}")
# Unparse functions.
for columnName, column in sorted_columns(table):
type = column.type
if type.is_smap() or (type.n_min != 1 or type.n_max != 1) and not type.is_optional_pointer():
- print '''
+ print('''
static void
%(s)s_unparse_%(c)s(struct ovsdb_idl_row *row_)
{
struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName,
- 'c': columnName}
+ 'c': columnName})
if type.is_smap():
- print " smap_destroy(&row->%s);" % columnName
+ print(" smap_destroy(&row->%s);" % columnName)
else:
if type.value:
keyVar = "row->key_%s" % columnName
@@ -422,45 +423,45 @@ static void
else:
keyVar = "row->%s" % columnName
valueVar = None
- print " free(%s);" % keyVar
+ print(" free(%s);" % keyVar)
if valueVar:
- print " free(%s);" % valueVar
- print '}'
+ print(" free(%s);" % valueVar)
+ print('}')
else:
- print '''
+ print('''
static void
%(s)s_unparse_%(c)s(struct ovsdb_idl_row *row OVS_UNUSED)
{
/* Nothing to do. */
-}''' % {'s': structName, 'c': columnName}
+}''' % {'s': structName, 'c': columnName})
# Generic Row Initialization function.
- print """
+ print("""
static void
%(s)s_init__(struct ovsdb_idl_row *row)
{
%(s)s_init(%(s)s_cast(row));
-}""" % {'s': structName}
+}""" % {'s': structName})
# Row Initialization function.
- print """
+ print("""
/* Clears the contents of 'row' in table "%(t)s". */
void
%(s)s_init(struct %(s)s *row)
{
- memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName}
+ memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName})
for columnName, column in sorted_columns(table):
if column.type.is_smap():
- print " smap_init(&row->%s);" % columnName
+ print(" smap_init(&row->%s);" % columnName)
elif (column.type.n_min == 1 and
column.type.n_max == 1 and
column.type.key.type == ovs.db.types.StringType and
not column.type.value):
- print " row->%s = \"\";" % columnName
- print "}"
+ print(" row->%s = \"\";" % columnName)
+ print("}")
# First, next functions.
- print '''
+ print('''
/* Searches table "%(t)s" in 'idl' for a row with UUID 'uuid'. Returns
* a pointer to the row if there is one, otherwise a null pointer. */
const struct %(s)s *
@@ -514,9 +515,9 @@ const struct %(s)s
'P': prefix.upper(),
't': tableName,
'tl': tableName.lower(),
- 'T': tableName.upper()}
+ 'T': tableName.upper()})
- print '''
+ print('''
/* Deletes 'row' from table "%(t)s". 'row' may be freed, so it must not be
* accessed afterward.
@@ -550,11 +551,11 @@ bool
'P': prefix.upper(),
't': tableName,
'tl': tableName.lower(),
- 'T': tableName.upper()}
+ 'T': tableName.upper()})
# Verify functions.
for columnName, column in sorted_columns(table):
- print '''
+ print('''
/* Causes the original contents of column "%(c)s" in 'row' to be
* verified as a prerequisite to completing the transaction. That is, if
* "%(c)s" in 'row' changed (or if 'row' was deleted) between the
@@ -585,7 +586,7 @@ void
}''' % {'s': structName,
'S': structName.upper(),
'c': columnName,
- 'C': columnName.upper()}
+ 'C': columnName.upper()})
# Get functions.
for columnName, column in sorted_columns(table):
@@ -597,7 +598,7 @@ void
valueParam = ''
valueType = ''
valueComment = ''
- print """
+ print("""
/* Returns the "%(c)s" column's value from the "%(t)s" table in 'row'
* as a struct ovsdb_datum. This is useful occasionally: for example,
* ovsdb_datum_find_key() is an easier and more efficient way to search
@@ -625,7 +626,7 @@ const struct ovsdb_datum *
return ovsdb_idl_read(&row->header_, &%(s)s_col_%(c)s);
}""" % {'t': tableName, 's': structName, 'c': columnName,
'kt': column.type.key.toAtomicType(),
- 'v': valueParam, 'vt': valueType, 'vc': valueComment}
+ 'v': valueParam, 'vt': valueType, 'vc': valueComment})
# Set functions.
for columnName, column in sorted_columns(table):
@@ -635,8 +636,8 @@ const struct ovsdb_datum *
column, True)
if type.is_smap():
- print comment
- print """void
+ print(comment)
+ print("""void
%(s)s_set_%(c)s(const struct %(s)s *row, const struct smap *%(c)s)
{
struct ovsdb_datum datum;
@@ -654,7 +655,7 @@ const struct ovsdb_datum *
's': structName,
'S': structName.upper(),
'c': columnName,
- 'C': columnName.upper()}
+ 'C': columnName.upper()})
continue
keyVar = members[0]['name']
@@ -668,84 +669,84 @@ const struct ovsdb_datum *
if len(members) > 1:
nVar = members[1]['name']
- print comment
- print """\
+ print(comment)
+ print("""\
void
%(s)s_set_%(c)s(const struct %(s)s *row, %(args)s)
{
struct ovsdb_datum datum;""" % {'s': structName,
'c': columnName,
'args': ', '.join(['%(type)s%(name)s'
- % m for m in members])}
+ % m for m in members])})
if type.n_min == 1 and type.n_max == 1:
- print " union ovsdb_atom key;"
+ print(" union ovsdb_atom key;")
if type.value:
- print " union ovsdb_atom value;"
- print
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)
+ print(" union ovsdb_atom value;")
+ print("")
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar))
if type.value:
- print " datum.values = &value;"
- print " "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar)
+ print(" datum.values = &value;")
+ print(" "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar))
else:
- print " datum.values = NULL;"
+ print(" datum.values = NULL;")
txn_write_func = "ovsdb_idl_txn_write_clone"
elif type.is_optional_pointer():
- print " union ovsdb_atom key;"
- print
- print " if (%s) {" % keyVar
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)
- print " } else {"
- print " datum.n = 0;"
- print " datum.keys = NULL;"
- print " }"
- print " datum.values = NULL;"
+ print(" union ovsdb_atom key;")
+ print("")
+ print(" if (%s) {" % keyVar)
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar))
+ print(" } else {")
+ print(" datum.n = 0;")
+ print(" datum.keys = NULL;")
+ print(" }")
+ print(" datum.values = NULL;")
txn_write_func = "ovsdb_idl_txn_write_clone"
elif type.n_max == 1:
- print " union ovsdb_atom key;"
- print
- print " if (%s) {" % nVar
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar)
- print " } else {"
- print " datum.n = 0;"
- print " datum.keys = NULL;"
- print " }"
- print " datum.values = NULL;"
+ print(" union ovsdb_atom key;")
+ print("")
+ print(" if (%s) {" % nVar)
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar))
+ print(" } else {")
+ print(" datum.n = 0;")
+ print(" datum.keys = NULL;")
+ print(" }")
+ print(" datum.values = NULL;")
txn_write_func = "ovsdb_idl_txn_write_clone"
else:
- print
- print " datum.n = %s;" % nVar
- print " datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)
+ print("")
+ print(" datum.n = %s;" % nVar)
+ print(" datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar))
if type.value:
- print " datum.values = xmalloc(%s * sizeof *datum.values);" % nVar
+ print(" datum.values = xmalloc(%s * sizeof *datum.values);" % nVar)
else:
- print " datum.values = NULL;"
- print " for (size_t i = 0; i < %s; i++) {" % nVar
- print " " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar)
+ print(" datum.values = NULL;")
+ print(" for (size_t i = 0; i < %s; i++) {" % nVar)
+ print(" " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar))
if type.value:
- print " " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar)
- print " }"
+ print(" " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar))
+ print(" }")
if type.value:
valueType = type.value.toAtomicType()
else:
valueType = "OVSDB_TYPE_VOID"
txn_write_func = "ovsdb_idl_txn_write"
- print " %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \
+ print(" %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \
% {'f': txn_write_func,
's': structName,
'S': structName.upper(),
- 'c': columnName}
- print "}"
+ 'c': columnName})
+ print("}")
# Update/Delete of partial map column functions
for columnName, column in sorted_columns(table):
type = column.type
if type.is_map():
- print '''
+ print('''
/* Sets an element of the "%(c)s" map column from the "%(t)s" table in 'row'
* to 'new_value' given the key value 'new_key'.
*
@@ -761,17 +762,17 @@ void
datum->values = xmalloc(datum->n * sizeof *datum->values);
''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(),
- 'C': columnName.upper(), 't': tableName}
+ 'C': columnName.upper(), 't': tableName})
- print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key")
- print " "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value")
- print '''
+ print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key"))
+ print(" "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value"))
+ print('''
ovsdb_idl_txn_write_partial_map(&row->header_,
&%(s)s_col_%(c)s,
datum);
}''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
- 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}
- print '''
+ 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()})
+ print('''
/* Deletes an element of the "%(c)s" map column from the "%(t)s" table in 'row'
* given the key value 'delete_key'.
*
@@ -787,19 +788,19 @@ void
datum->values = NULL;
''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(),
- 'C': columnName.upper(), 't': tableName}
+ 'C': columnName.upper(), 't': tableName})
- print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key")
- print '''
+ print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key"))
+ print('''
ovsdb_idl_txn_delete_partial_map(&row->header_,
&%(s)s_col_%(c)s,
datum);
}''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
- 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}
+ 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()})
# End Update/Delete of partial maps
# Update/Delete of partial set column functions
if type.is_set():
- print '''
+ print('''
/* Adds the value 'new_value' to the "%(c)s" set column from the "%(t)s" table
* in 'row'.
*
@@ -814,16 +815,16 @@ void
datum->keys = xmalloc(datum->n * sizeof *datum->values);
datum->values = NULL;
''' % {'s': structName, 'c': columnName,
- 'valtype':column.type.key.to_const_c_type(prefix), 't': tableName}
+ 'valtype':column.type.key.to_const_c_type(prefix), 't': tableName})
- print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value")
- print '''
+ print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value"))
+ print('''
ovsdb_idl_txn_write_partial_set(&row->header_,
&%(s)s_col_%(c)s,
datum);
}''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
- 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}
- print '''
+ 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()})
+ print('''
/* Deletes the value 'delete_value' from the "%(c)s" set column from the
* "%(t)s" table in 'row'.
*
@@ -839,15 +840,15 @@ void
datum->values = NULL;
''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix),
'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper(),
- 'C': columnName.upper(), 't': tableName}
+ 'C': columnName.upper(), 't': tableName})
- print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value")
- print '''
+ print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value"))
+ print('''
ovsdb_idl_txn_delete_partial_set(&row->header_,
&%(s)s_col_%(c)s,
datum);
}''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix),
- 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}
+ 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()})
# End Update/Delete of partial set
# Add clause functions.
@@ -858,8 +859,8 @@ void
column, True, refTable=False)
if type.is_smap():
- print comment
- print """void
+ print(comment)
+ print("""void
%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, const struct smap *%(c)s)
{
struct ovsdb_datum datum;
@@ -884,7 +885,7 @@ void
'P': prefix.upper(),
's': structName,
'S': structName.upper(),
- 'c': columnName}
+ 'c': columnName})
continue
keyVar = members[0]['name']
@@ -898,73 +899,73 @@ void
if len(members) > 1:
nVar = members[1]['name']
- print comment
- print 'void'
- print '%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \
+ print(comment)
+ print('void')
+ print('%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \
{'s': structName, 'c': columnName,
- 'args': ', '.join(['%(type)s%(name)s' % m for m in members])}
- print "{"
- print " struct ovsdb_datum datum;"
+ 'args': ', '.join(['%(type)s%(name)s' % m for m in members])})
+ print("{")
+ print(" struct ovsdb_datum datum;")
free = []
if type.n_min == 1 and type.n_max == 1:
- print " union ovsdb_atom key;"
+ print(" union ovsdb_atom key;")
if type.value:
- print " union ovsdb_atom value;"
- print
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)
+ print(" union ovsdb_atom value;")
+ print("")
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False))
if type.value:
- print " datum.values = &value;"
- print " "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False)
+ print(" datum.values = &value;")
+ print(" "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False))
else:
- print " datum.values = NULL;"
+ print(" datum.values = NULL;")
elif type.is_optional_pointer():
- print " union ovsdb_atom key;"
- print
- print " if (%s) {" % keyVar
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)
- print " } else {"
- print " datum.n = 0;"
- print " datum.keys = NULL;"
- print " }"
- print " datum.values = NULL;"
+ print(" union ovsdb_atom key;")
+ print("")
+ print(" if (%s) {" % keyVar)
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False))
+ print(" } else {")
+ print(" datum.n = 0;")
+ print(" datum.keys = NULL;")
+ print(" }")
+ print(" datum.values = NULL;")
elif type.n_max == 1:
- print " union ovsdb_atom key;"
- print
- print " if (%s) {" % nVar
- print " datum.n = 1;"
- print " datum.keys = &key;"
- print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False)
- print " } else {"
- print " datum.n = 0;"
- print " datum.keys = NULL;"
- print " }"
- print " datum.values = NULL;"
+ print(" union ovsdb_atom key;")
+ print("")
+ print(" if (%s) {" % nVar)
+ print(" datum.n = 1;")
+ print(" datum.keys = &key;")
+ print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False))
+ print(" } else {")
+ print(" datum.n = 0;")
+ print(" datum.keys = NULL;")
+ print(" }")
+ print(" datum.values = NULL;")
else:
- print " datum.n = %s;" % nVar
- print " datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)
+ print(" datum.n = %s;" % nVar)
+ print(" datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar))
free += ['datum.keys']
if type.value:
- print " datum.values = xmalloc(%s * sizeof *datum.values);" % nVar
+ print(" datum.values = xmalloc(%s * sizeof *datum.values);" % nVar)
free += ['datum.values']
else:
- print " datum.values = NULL;"
- print " for (size_t i = 0; i < %s; i++) {" % nVar
- print " " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False)
+ print(" datum.values = NULL;")
+ print(" for (size_t i = 0; i < %s; i++) {" % nVar)
+ print(" " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False))
if type.value:
- print " " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False)
- print " }"
+ print(" " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False))
+ print(" }")
if type.value:
valueType = type.value.toAtomicType()
else:
valueType = "OVSDB_TYPE_VOID"
- print " ovsdb_datum_sort_unique(&datum, %s, %s);" % (
- type.key.toAtomicType(), valueType)
+ print(" ovsdb_datum_sort_unique(&datum, %s, %s);" % (
+ type.key.toAtomicType(), valueType))
- print""" ovsdb_idl_condition_add_clause(cond,
+ print(""" ovsdb_idl_condition_add_clause(cond,
function,
&%(s)s_col_%(c)s,
&datum);\
@@ -974,28 +975,28 @@ void
'P': prefix.upper(),
's': structName,
'S': structName.upper(),
- 'c': columnName}
+ 'c': columnName})
for var in free:
- print " free(%s);" % var
- print "}"
+ print(" free(%s);" % var)
+ print("}")
- print """
+ print("""
void
%(s)s_set_condition(struct ovsdb_idl *idl, struct ovsdb_idl_condition *condition)
{
ovsdb_idl_set_condition(idl, &%(p)stable_%(tl)s, condition);
}""" % {'p': prefix,
's': structName,
- 'tl': tableName.lower()}
+ 'tl': tableName.lower()})
# Table columns.
for columnName, column in sorted_columns(table):
prereqs = []
x = column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs)
if prereqs:
- print '\n'.join(prereqs)
- print "\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % (
- structName, structName.upper())
+ print('\n'.join(prereqs))
+ print("\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % (
+ structName, structName.upper()))
for columnName, column in sorted_columns(table):
if column.mutable:
mutable = "true"
@@ -1003,7 +1004,7 @@ void
mutable = "false"
type_init = '\n'.join(" " + x
for x in column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs))
- print """\
+ print("""\
[%(P)s%(T)s_COL_%(C)s] = {
.name = "%(c)s",
.type = {
@@ -1018,38 +1019,38 @@ void
'C': columnName.upper(),
's': structName,
'mutable': mutable,
- 'type': type_init}
- print "};"
+ 'type': type_init})
+ print("};")
# Table classes.
- print " "
- print "struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper())
+ print(" ")
+ print("struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper()))
for tableName, table in sorted(schema.tables.iteritems()):
structName = "%s%s" % (prefix, tableName.lower())
if table.is_root:
is_root = "true"
else:
is_root = "false"
- print " {\"%s\", %s," % (tableName, is_root)
- print " %s_columns, ARRAY_SIZE(%s_columns)," % (
- structName, structName)
- print " sizeof(struct %s), %s_init__}," % (structName, structName)
- print "};"
+ print(" {\"%s\", %s," % (tableName, is_root))
+ print(" %s_columns, ARRAY_SIZE(%s_columns)," % (
+ structName, structName))
+ print(" sizeof(struct %s), %s_init__}," % (structName, structName))
+ print("};")
# IDL class.
- print "\nstruct ovsdb_idl_class %sidl_class = {" % prefix
- print " \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % (
- schema.name, prefix, prefix)
- print "};"
+ print("\nstruct ovsdb_idl_class %sidl_class = {" % prefix)
+ print(" \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % (
+ schema.name, prefix, prefix))
+ print("};")
- print """
+ print("""
/* Return the schema version. The caller must not free the returned value. */
const char *
%sget_db_version(void)
{
return "%s";
}
-""" % (prefix, schema.version)
+""" % (prefix, schema.version))
@@ -1075,7 +1076,7 @@ def ovsdb_escape(string):
return re.sub(r'["\\\000-\037]', escape, string)
def usage():
- print """\
+ print("""\
%(argv0)s: ovsdb schema compiler
usage: %(argv0)s [OPTIONS] COMMAND ARG...
@@ -1087,7 +1088,7 @@ The following commands are supported:
The following options are also available:
-h, --help display this help message
-V, --version display version information\
-""" % {'argv0': argv0}
+""" % {'argv0': argv0})
sys.exit(0)
if __name__ == "__main__":
@@ -1105,7 +1106,7 @@ if __name__ == "__main__":
if key in ['-h', '--help']:
usage()
elif key in ['-V', '--version']:
- print "ovsdb-idlc (Open vSwitch) @VERSION@"
+ print("ovsdb-idlc (Open vSwitch) @VERSION@")
elif key in ['-C', '--directory']:
os.chdir(value)
else: