diff options
-rw-r--r-- | ick2/trans.py | 10 |
1 files 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: |