diff options
author | Lars Wirzenius <liw@liw.fi> | 2019-07-14 16:48:31 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2019-08-03 21:06:50 +0300 |
commit | 2497a85899522e970ba182e8b3ef3c3a1b27bbbb (patch) | |
tree | 792defb6faf11401279c2e5bbea157adee19d3e8 | |
parent | 80539a84aaa17aca1da9c56794e41a114e222041 (diff) | |
download | ick2-2497a85899522e970ba182e8b3ef3c3a1b27bbbb.tar.gz |
Change: in transactions, create or update resource
-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: |