diff options
Diffstat (limited to 'ick2/apibase.py')
-rw-r--r-- | ick2/apibase.py | 6 |
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) |