summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ick2/apibase.py6
-rw-r--r--ick2/trans.py7
2 files changed, 4 insertions, 9 deletions
diff --git a/ick2/apibase.py b/ick2/apibase.py
index b950c11..19f70e4 100644
--- a/ick2/apibase.py
+++ b/ick2/apibase.py
@@ -182,8 +182,6 @@ class ResourceApiBase(APIbase):
as_dict = self.mangle_new_resource(body)
name = self.get_resource_name(as_dict)
- if self._trans.has_resource(token, self._type_name, name):
- raise ick2.ExistsAlready(name)
with self._trans.new(token, self._type_name, name) as resource:
resource.from_dict(as_dict)
@@ -198,8 +196,6 @@ class ResourceApiBase(APIbase):
def update(self, body, name, token=None, **kwargs):
name = self.get_resource_name(body)
- if not self._trans.has_resource(token, self._type_name, name):
- raise ick2.NotFound(kind=self._type_name, name=name)
with self._trans.modify(token, self._type_name, name) as resource:
as_dict = self.mangle_updated_resource(resource.as_dict(), body)
@@ -211,6 +207,4 @@ class ResourceApiBase(APIbase):
return new
def delete(self, name, token=None, **kwargs):
- if not self._trans.has_resource(token, self._type_name, name):
- raise ick2.NotFound(kind=self._type_name, name=name)
self._trans.remove_resource(token, self._type_name, name)
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)