summaryrefslogtreecommitdiff
path: root/ick2/apibase.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-01-21 13:48:29 +0200
committerLars Wirzenius <liw@liw.fi>2018-01-21 20:27:35 +0200
commit832611434405f4efae05d16f15ab9f7b88ae810c (patch)
tree06a258ed8fdabe8ab34185b41a5a483fb3905b31 /ick2/apibase.py
parentfb9548f872b37d1536e260b0d1b5befd11d50e65 (diff)
downloadick2-832611434405f4efae05d16f15ab9f7b88ae810c.tar.gz
Fix: retain next_build_id when project is updated
Diffstat (limited to 'ick2/apibase.py')
-rw-r--r--ick2/apibase.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/ick2/apibase.py b/ick2/apibase.py
index d02e3a1..13b258a 100644
--- a/ick2/apibase.py
+++ b/ick2/apibase.py
@@ -157,7 +157,7 @@ class ResourceApiBase(APIbase):
return self._state.get_resource(self._type_name, name)
def create(self, body, **kwargs):
- resource = self.mangle_resource(body)
+ resource = self.mangle_new_resource(body)
name = self.get_resource_name(resource)
try:
self._state.get_resource(self._type_name, name)
@@ -166,21 +166,24 @@ class ResourceApiBase(APIbase):
else:
raise ick2.ExistsAlready(name)
- def mangle_resource(self, resource): # pragma: no cover
+ def mangle_new_resource(self, resource): # pragma: no cover
return resource
def get_resource_name(self, resource): # pragma: no cover
raise NotImplementedError()
def update(self, body, name, **kwargs):
- resource = self.mangle_resource(body)
- name = self.get_resource_name(resource)
+ name = self.get_resource_name(body)
try:
- self._state.get_resource(self._type_name, name)
+ old = self._state.get_resource(self._type_name, name)
except ick2.NotFound:
raise
else:
+ resource = self.mangle_updated_resource(old, body)
return self._state.update_resource(self._type_name, name, resource)
+ def mangle_updated_resource(self, old, new): # pragma: no cover
+ return new
+
def delete(self, name, **kwargs):
self._state.remove_resource(self._type_name, name)