summaryrefslogtreecommitdiff
path: root/ick2/apibase.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/apibase.py')
-rw-r--r--ick2/apibase.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/ick2/apibase.py b/ick2/apibase.py
index 19f70e4..b950c11 100644
--- a/ick2/apibase.py
+++ b/ick2/apibase.py
@@ -182,6 +182,8 @@ 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)
@@ -196,6 +198,8 @@ 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)
@@ -207,4 +211,6 @@ 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)