# under the License.
import abc
+import collections
+import uuid
from oslo_config import cfg
from oslo_utils import importutils
:type bridge: string
:returns: :class:`Command` with list of port names result
"""
+
+
+def val_to_py(val):
+ """Convert a json ovsdb return value to native python object"""
+ if isinstance(val, collections.Sequence) and len(val) == 2:
+ if val[0] == "uuid":
+ return uuid.UUID(val[1])
+ elif val[0] == "set":
+ return [val_to_py(x) for x in val[1]]
+ elif val[0] == "map":
+ return {val_to_py(x): val_to_py(y) for x, y in val[1]}
+ return val
+
+
+def py_to_val(pyval):
+ """Convert python value to ovs-vsctl value argument"""
+ if isinstance(pyval, bool):
+ return 'true' if pyval is True else 'false'
+ elif pyval == '':
+ return '""'
+ else:
+ return pyval
import collections
import itertools
-import uuid
from oslo_log import log as logging
from oslo_serialization import jsonutils
for record in data:
obj = {}
for pos, heading in enumerate(headings):
- obj[heading] = _val_to_py(record[pos])
+ obj[heading] = ovsdb.val_to_py(record[pos])
results.append(obj)
self._result = results
col, op, val = entry
if isinstance(val, collections.Mapping):
args += ["%s:%s%s%s" % (
- col, k, op, _py_to_val(v)) for k, v in val.items()]
+ col, k, op, ovsdb.py_to_val(v)) for k, v in val.items()]
elif (isinstance(val, collections.Sequence)
and not isinstance(val, six.string_types)):
- args.append("%s%s%s" % (col, op, ",".join(map(_py_to_val, val))))
+ args.append(
+ "%s%s%s" % (col, op, ",".join(map(ovsdb.py_to_val, val))))
else:
- args.append("%s%s%s" % (col, op, _py_to_val(val)))
+ args.append("%s%s%s" % (col, op, ovsdb.py_to_val(val)))
return args
-
-
-def _val_to_py(val):
- """Convert a json ovsdb return value to native python object"""
- if isinstance(val, collections.Sequence) and len(val) == 2:
- if val[0] == "uuid":
- return uuid.UUID(val[1])
- elif val[0] == "set":
- return [_val_to_py(x) for x in val[1]]
- elif val[0] == "map":
- return {_val_to_py(x): _val_to_py(y) for x, y in val[1]}
- return val
-
-
-def _py_to_val(pyval):
- """Convert python value to ovs-vsctl value argument"""
- if isinstance(pyval, bool):
- return 'true' if pyval is True else 'false'
- elif pyval == '':
- return '""'
- else:
- return pyval