summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/ovs/db/idl.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/python/ovs/db/idl.py b/python/ovs/db/idl.py
index 60548bcf5..5a4d129c0 100644
--- a/python/ovs/db/idl.py
+++ b/python/ovs/db/idl.py
@@ -518,10 +518,8 @@ class Idl(object):
if not row:
raise error.Error('Modify non-existing row')
- old_row_diff_json = self.__apply_diff(table, row,
- row_update['modify'])
- self.notify(ROW_UPDATE, row,
- Row.from_json(self, table, uuid, old_row_diff_json))
+ old_row = self.__apply_diff(table, row, row_update['modify'])
+ self.notify(ROW_UPDATE, row, Row(self, table, uuid, old_row))
changed = True
else:
raise error.Error('<row-update> unknown operation',
@@ -584,7 +582,7 @@ class Idl(object):
row_update[column.name] = self.__column_name(column)
def __apply_diff(self, table, row, row_diff):
- old_row_diff_json = {}
+ old_row = {}
for column_name, datum_diff_json in six.iteritems(row_diff):
column = table.columns.get(column_name)
if not column:
@@ -601,12 +599,12 @@ class Idl(object):
% (column_name, table.name, e))
continue
- old_row_diff_json[column_name] = row._data[column_name].to_json()
+ old_row[column_name] = row._data[column_name].copy()
datum = row._data[column_name].diff(datum_diff)
if datum != row._data[column_name]:
row._data[column_name] = datum
- return old_row_diff_json
+ return old_row
def __row_update(self, table, row, row_json):
changed = False