summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-07-14 16:48:31 +0300
committerLars Wirzenius <liw@liw.fi>2019-08-03 21:06:50 +0300
commit2497a85899522e970ba182e8b3ef3c3a1b27bbbb (patch)
tree792defb6faf11401279c2e5bbea157adee19d3e8
parent80539a84aaa17aca1da9c56794e41a114e222041 (diff)
downloadick2-2497a85899522e970ba182e8b3ef3c3a1b27bbbb.tar.gz
Change: in transactions, create or update resource
-rw-r--r--ick2/trans.py10
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: