From 832611434405f4efae05d16f15ab9f7b88ae810c Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 21 Jan 2018 13:48:29 +0200 Subject: Fix: retain next_build_id when project is updated --- ick2/apibase.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'ick2/apibase.py') 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) -- cgit v1.2.1