def run_idl(self, txn): record = self.api.lookup(self.table, self.record) for value in self.values: if isinstance(value, abc.Mapping): # We should be doing an add on a 'map' column. If the key is # already set, do nothing, otherwise set the key to the value # Since this operation depends on the previous value, verify() # must be called. field = getattr(record, self.column, {}) for k, v in value.items(): if k in field: continue field[k] = v else: # We should be appending to a 'set' column. try: record.addvalue(self.column, idlutils.db_replace_record(value)) continue except AttributeError: # OVS < 2.6 field = getattr(record, self.column, []) field.append(value) record.verify(self.column) self.set_column(record, self.column, field)
def set_column(cls, row, col, val): setattr(row, col, idlutils.db_replace_record(val))
def test_db_replace_record_cmd(self): obj = MockCommand("test") self.assertEqual("test", idlutils.db_replace_record(obj))
def test_db_replace_record_tuple_cmd(self): obj = (1, MockCommand(2), 3) res = (1, 2, 3) self.assertEqual(res, idlutils.db_replace_record(obj))
def test_db_replace_record(self): obj = "test" self.assertIs(obj, idlutils.db_replace_record(obj))
def test_db_replace_record_tuple(self): obj = (1, 2, 3) self.assertIs(obj, idlutils.db_replace_record(obj))
def test_db_replace_record_list_cmd(self): obj = [1, MockCommand(2), 3] res = [1, 2, 3] self.assertEqual(res, idlutils.db_replace_record(obj))
def test_db_replace_record_list(self): obj = [1, 2, 3] self.assertIs(obj, idlutils.db_replace_record(obj))
def test_db_replace_record_dict_cmd(self): obj = {'a': 1, 'b': MockCommand(2)} res = {'a': 1, 'b': 2} self.assertEqual(res, idlutils.db_replace_record(obj))
def test_db_replace_record_dict(self): obj = {'a': 1, 'b': 2} self.assertIs(obj, idlutils.db_replace_record(obj))