From 2497a85899522e970ba182e8b3ef3c3a1b27bbbb Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 14 Jul 2019 16:48:31 +0300 Subject: Change: in transactions, create or update resource --- ick2/trans.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ick2/trans.py b/ick2/trans.py index 20e38ed..171c996 100644 --- a/ick2/trans.py +++ b/ick2/trans.py @@ -25,8 +25,10 @@ class TransactionalResource: self.kind = kind self.rid = rid if state.has_resource(self.token, kind, rid): + self.new = False self.resource = state.get_resource(self.token, kind, rid) else: + self.new = True self.resource = ick2.resource_from_dict({}) methods = [ @@ -44,8 +46,12 @@ class TransactionalResource: def __exit__(self, exc_type, value, traceback): if exc_type is None: - self.state.write_resource( - self.token, self.kind, self.rid, self.resource) + if self.new: + self.state.write_resource( + self.token, self.kind, self.rid, self.resource) + else: + self.state.update_resource( + self.token, self.kind, self.rid, self.resource) class TransactionalState: -- cgit v1.2.1