summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/build/nroff.py2
-rw-r--r--python/ovs/db/data.py18
-rw-r--r--python/ovs/db/idl.py34
-rw-r--r--python/ovs/db/schema.py18
-rw-r--r--python/ovs/json.py3
-rw-r--r--python/ovs/poller.py2
-rw-r--r--python/ovs/stream.py4
-rw-r--r--python/ovs/vlog.py9
8 files changed, 50 insertions, 40 deletions
diff --git a/python/build/nroff.py b/python/build/nroff.py
index f0edd2907..aed60ebbd 100644
--- a/python/build/nroff.py
+++ b/python/build/nroff.py
@@ -89,7 +89,7 @@ def inline_xml_to_nroff(node, font, to_upper=False, newline='\n'):
s += node.attributes['db'].nodeValue
else:
raise error.Error("'ref' lacks required attributes: %s"
- % node.attributes.keys())
+ % list(node.attributes.keys()))
return s + font
elif node.tagName in ['var', 'dfn', 'i']:
s = r'\fI'
diff --git a/python/ovs/db/data.py b/python/ovs/db/data.py
index 6baff38ba..3075ee6be 100644
--- a/python/ovs/db/data.py
+++ b/python/ovs/db/data.py
@@ -15,6 +15,8 @@
import re
import uuid
+import six
+
import ovs.poller
import ovs.socket_util
import ovs.json
@@ -293,7 +295,7 @@ class Datum(object):
This function is not commonly useful because the most ordinary way to
obtain a datum is ultimately via Datum.from_json() or Atom.from_json(),
which check constraints themselves."""
- for keyAtom, valueAtom in self.values.iteritems():
+ for keyAtom, valueAtom in six.iteritems(self.values):
keyAtom.check_constraints(self.type.key)
if valueAtom is not None:
valueAtom.check_constraints(self.type.value)
@@ -354,7 +356,7 @@ class Datum(object):
return ["map", [[k.to_json(), v.to_json()]
for k, v in sorted(self.values.items())]]
elif len(self.values) == 1:
- key = self.values.keys()[0]
+ key = next(six.iterkeys(self.values))
return key.to_json()
else:
return ["set", [k.to_json() for k in sorted(self.values.keys())]]
@@ -388,9 +390,9 @@ class Datum(object):
def as_list(self):
if self.type.is_map():
- return [[k.value, v.value] for k, v in self.values.iteritems()]
+ return [[k.value, v.value] for k, v in six.iteritems(self.values)]
else:
- return [k.value for k in self.values.iterkeys()]
+ return [k.value for k in six.iterkeys(self.values)]
def as_dict(self):
return dict(self.values)
@@ -398,10 +400,10 @@ class Datum(object):
def as_scalar(self):
if len(self.values) == 1:
if self.type.is_map():
- k, v = self.values.iteritems()[0]
+ k, v = next(six.iteritems(self.values))
return [k.value, v.value]
else:
- return self.values.keys()[0].value
+ return next(six.iterkeys(self.values)).value
else:
return None
@@ -448,7 +450,7 @@ class Datum(object):
return value
elif self.type.is_map():
value = {}
- for k, v in self.values.iteritems():
+ for k, v in six.iteritems(self.values):
dk = uuid_to_row(k.value, self.type.key)
dv = uuid_to_row(v.value, self.type.value)
if dk is not None and dv is not None:
@@ -476,7 +478,7 @@ class Datum(object):
'type_'."""
d = {}
if type(value) == dict:
- for k, v in value.iteritems():
+ for k, v in six.iteritems(value):
ka = Atom.from_python(type_.key, row_to_uuid(k))
va = Atom.from_python(type_.value, row_to_uuid(v))
d[ka] = va
diff --git a/python/ovs/db/idl.py b/python/ovs/db/idl.py
index 17ed15b85..3187db9eb 100644
--- a/python/ovs/db/idl.py
+++ b/python/ovs/db/idl.py
@@ -14,6 +14,8 @@
import uuid
+import six
+
import ovs.jsonrpc
import ovs.db.parser
import ovs.db.schema
@@ -124,8 +126,8 @@ class Idl(object):
self.txn = None
self._outstanding_txns = {}
- for table in schema.tables.itervalues():
- for column in table.columns.itervalues():
+ for table in six.itervalues(schema.tables):
+ for column in six.itervalues(table.columns):
if not hasattr(column, 'alert'):
column.alert = True
table.need_table = False
@@ -283,7 +285,7 @@ class Idl(object):
def __clear(self):
changed = False
- for table in self.tables.itervalues():
+ for table in six.itervalues(self.tables):
if table.rows:
changed = True
table.rows = {}
@@ -338,9 +340,9 @@ class Idl(object):
def __send_monitor_request(self):
monitor_requests = {}
- for table in self.tables.itervalues():
+ for table in six.itervalues(self.tables):
columns = []
- for column in table.columns.keys():
+ for column in six.iterkeys(table.columns):
if ((table.name not in self.readonly) or
(table.name in self.readonly) and
(column not in self.readonly[table.name])):
@@ -363,7 +365,7 @@ class Idl(object):
raise error.Error("<table-updates> is not an object",
table_updates)
- for table_name, table_update in table_updates.iteritems():
+ for table_name, table_update in six.iteritems(table_updates):
table = self.tables.get(table_name)
if not table:
raise error.Error('<table-updates> includes unknown '
@@ -373,7 +375,7 @@ class Idl(object):
raise error.Error('<table-update> for table "%s" is not '
'an object' % table_name, table_update)
- for uuid_string, row_update in table_update.iteritems():
+ for uuid_string, row_update in six.iteritems(table_update):
if not ovs.ovsuuid.is_valid_string(uuid_string):
raise error.Error('<table-update> for table "%s" '
'contains bad UUID "%s" as member '
@@ -441,7 +443,7 @@ class Idl(object):
def __row_update(self, table, row, row_json):
changed = False
- for column_name, datum_json in row_json.iteritems():
+ for column_name, datum_json in six.iteritems(row_json):
column = table.columns.get(column_name)
if not column:
# XXX rate-limit
@@ -469,7 +471,7 @@ class Idl(object):
def __create_row(self, table, uuid):
data = {}
- for column in table.columns.itervalues():
+ for column in six.itervalues(table.columns):
data[column.name] = ovs.db.data.Datum.default(column.type)
row = table.rows[uuid] = Row(self, table, uuid, data)
return row
@@ -610,7 +612,7 @@ class Row(object):
@classmethod
def from_json(cls, idl, table, uuid, row_json):
data = {}
- for column_name, datum_json in row_json.iteritems():
+ for column_name, datum_json in six.iteritems(row_json):
column = table.columns.get(column_name)
if not column:
# XXX rate-limit
@@ -840,7 +842,7 @@ class Transaction(object):
def __disassemble(self):
self.idl.txn = None
- for row in self._txn_rows.itervalues():
+ for row in six.itervalues(self._txn_rows):
if row._changes is None:
row._table.rows[row.uuid] = row
elif row._data is None:
@@ -919,7 +921,7 @@ class Transaction(object):
"lock": self.idl.lock_name})
# Add prerequisites and declarations of new rows.
- for row in self._txn_rows.itervalues():
+ for row in six.itervalues(self._txn_rows):
if row._prereqs:
rows = {}
columns = []
@@ -936,7 +938,7 @@ class Transaction(object):
# Add updates.
any_updates = False
- for row in self._txn_rows.itervalues():
+ for row in six.itervalues(self._txn_rows):
if row._changes is None:
if row._table.is_root:
operations.append({"op": "delete",
@@ -962,7 +964,7 @@ class Transaction(object):
row_json = {}
op["row"] = row_json
- for column_name, datum in row._changes.iteritems():
+ for column_name, datum in six.iteritems(row._changes):
if row._data is not None or not datum.is_default():
row_json[column_name] = (
self._substitute_uuids(datum.to_json()))
@@ -1190,7 +1192,7 @@ class Transaction(object):
else:
hard_errors = True
- for insert in self._inserted_rows.itervalues():
+ for insert in six.itervalues(self._inserted_rows):
if not self.__process_insert_reply(insert, ops):
hard_errors = True
@@ -1390,7 +1392,7 @@ class SchemaHelper(object):
if not self._all:
schema_tables = {}
- for table, columns in self._tables.iteritems():
+ for table, columns in six.iteritems(self._tables):
schema_tables[table] = (
self._keep_table_columns(schema, table, columns))
diff --git a/python/ovs/db/schema.py b/python/ovs/db/schema.py
index 263907ed4..399129e96 100644
--- a/python/ovs/db/schema.py
+++ b/python/ovs/db/schema.py
@@ -15,6 +15,8 @@
import re
import sys
+import six
+
from ovs.db import error
import ovs.db.parser
import ovs.db.types
@@ -40,7 +42,7 @@ class DbSchema(object):
# backward compatibility, if the root set is empty then assume that
# every table is in the root set.
if self.__root_set_size() == 0:
- for table in self.tables.itervalues():
+ for table in six.itervalues(self.tables):
table.is_root = True
# Find the "ref_table"s referenced by "ref_table_name"s.
@@ -48,15 +50,15 @@ class DbSchema(object):
# Also force certain columns to be persistent, as explained in
# __check_ref_table(). This requires 'is_root' to be known, so this
# must follow the loop updating 'is_root' above.
- for table in self.tables.itervalues():
- for column in table.columns.itervalues():
+ for table in six.itervalues(self.tables):
+ for column in six.itervalues(table.columns):
self.__follow_ref_table(column, column.type.key, "key")
self.__follow_ref_table(column, column.type.value, "value")
def __root_set_size(self):
"""Returns the number of tables in the schema's root set."""
n_root = 0
- for table in self.tables.itervalues():
+ for table in six.itervalues(self.tables):
if table.is_root:
n_root += 1
return n_root
@@ -76,7 +78,7 @@ class DbSchema(object):
% version)
tables = {}
- for tableName, tableJson in tablesJson.iteritems():
+ for tableName, tableJson in six.iteritems(tablesJson):
_check_id(tableName, json)
tables[tableName] = TableSchema.from_json(tableJson, tableName)
@@ -90,7 +92,7 @@ class DbSchema(object):
default_is_root = self.__root_set_size() == len(self.tables)
tables = {}
- for table in self.tables.itervalues():
+ for table in six.itervalues(self.tables):
tables[table.name] = table.to_json(default_is_root)
json = {"name": self.name, "tables": tables}
if self.version:
@@ -191,7 +193,7 @@ class TableSchema(object):
raise error.Error("table must have at least one column", json)
columns = {}
- for column_name, column_json in columns_json.iteritems():
+ for column_name, column_json in six.iteritems(columns_json):
_check_id(column_name, json)
columns[column_name] = ColumnSchema.from_json(column_json,
column_name)
@@ -230,7 +232,7 @@ class TableSchema(object):
json["isRoot"] = self.is_root
json["columns"] = columns = {}
- for column in self.columns.itervalues():
+ for column in six.itervalues(self.columns):
if not column.name.startswith("_"):
columns[column.name] = column.to_json()
diff --git a/python/ovs/json.py b/python/ovs/json.py
index 07fd9c14d..d5f97038c 100644
--- a/python/ovs/json.py
+++ b/python/ovs/json.py
@@ -16,6 +16,7 @@ import re
import StringIO
import sys
+import six
from six.moves import range
__pychecker__ = 'no-stringiter'
@@ -73,7 +74,7 @@ class _Serializer(object):
if self.sort_keys:
items = sorted(obj.items())
else:
- items = obj.iteritems()
+ items = six.iteritems(obj)
for i, (key, value) in enumerate(items):
if i > 0:
self.stream.write(u",")
diff --git a/python/ovs/poller.py b/python/ovs/poller.py
index 76234dcf0..20be8010b 100644
--- a/python/ovs/poller.py
+++ b/python/ovs/poller.py
@@ -85,7 +85,7 @@ class _SelectSelect(object):
events_dict[fd] = events_dict.get(fd, 0) | (POLLERR |
POLLHUP |
POLLNVAL)
- return events_dict.items()
+ return list(events_dict.items())
SelectPoll = _SelectSelect
diff --git a/python/ovs/stream.py b/python/ovs/stream.py
index 42bc4cc7a..a555a762a 100644
--- a/python/ovs/stream.py
+++ b/python/ovs/stream.py
@@ -16,6 +16,8 @@ import errno
import os
import socket
+import six
+
import ovs.poller
import ovs.socket_util
import ovs.vlog
@@ -58,7 +60,7 @@ class Stream(object):
@staticmethod
def _find_method(name):
- for method, cls in Stream._SOCKET_METHODS.items():
+ for method, cls in six.iteritems(Stream._SOCKET_METHODS):
if name.startswith(method):
return cls
return None
diff --git a/python/ovs/vlog.py b/python/ovs/vlog.py
index 6dcccbb3c..d164900b4 100644
--- a/python/ovs/vlog.py
+++ b/python/ovs/vlog.py
@@ -22,6 +22,7 @@ import socket
import sys
import threading
+import six
from six.moves import range
import ovs.dirs
@@ -80,7 +81,7 @@ class Vlog(object):
msg_num = Vlog.__msg_num
Vlog.__msg_num += 1
- for f, f_level in Vlog.__mfl[self.name].iteritems():
+ for f, f_level in six.iteritems(Vlog.__mfl[self.name]):
f_level = LEVELS.get(f_level, logging.CRITICAL)
if level_num >= f_level:
msg = self._build_message(message, f, level, msg_num)
@@ -184,7 +185,7 @@ class Vlog(object):
def __is_enabled(self, level):
level = LEVELS.get(level.lower(), logging.DEBUG)
- for f, f_level in Vlog.__mfl[self.name].iteritems():
+ for f, f_level in six.iteritems(Vlog.__mfl[self.name]):
f_level = LEVELS.get(f_level, logging.CRITICAL)
if level >= f_level:
return True
@@ -266,12 +267,12 @@ class Vlog(object):
return
if module == "any":
- modules = Vlog.__mfl.keys()
+ modules = list(Vlog.__mfl.keys())
else:
modules = [module]
if destination == "any":
- destinations = DESTINATIONS.keys()
+ destinations = list(DESTINATIONS.keys())
else:
destinations = [destination]