diff options
Diffstat (limited to 'ick2/trans.py')
-rw-r--r-- | ick2/trans.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ick2/trans.py b/ick2/trans.py index b35cf50..119f277 100644 --- a/ick2/trans.py +++ b/ick2/trans.py @@ -60,6 +60,8 @@ class TransactionalState: self.state = state def new(self, token, kind, name): + if self.state.has_resource(token, kind, name): + raise ick2.ExistsAlaready(name) return TransactionalResource(token, self.state, kind, name) def modify(self, token, kind, name): @@ -67,9 +69,6 @@ class TransactionalState: raise ick2.NotFound(kind=kind, name=name) return TransactionalResource(token, self.state, kind, name) - def has_resource(self, token, kind, name): - return self.state.has_resource(token, kind, name) - def get_resource(self, token, kind, name): return self.state.get_resource(token, kind, name) @@ -77,4 +76,6 @@ class TransactionalState: return self.state.get_resources(token, kind) def remove_resource(self, token, kind, name): + if not self.state.has_resource(token, kind, name): + raise ick2.NotFound(kind=kind, name=name) self.state.remove_resource(token, kind, name) |