diff --git a/app/docker/rest/service.js b/app/docker/rest/service.js index dca148145..81a8eca7e 100644 --- a/app/docker/rest/service.js +++ b/app/docker/rest/service.js @@ -14,19 +14,13 @@ function ServiceFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, Htt method: 'POST', params: {action: 'create'}, headers: { 'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader, - // TODO: This is a temporary work-around that allows us to leverage digest pinning on - // the Docker daemon side. It has been moved client-side since Docker API version > 1.29. - // We should introduce digest pinning in Portainer as well. 'version': '1.29' }, ignoreLoadingBar: true }, update: { - method: 'POST', params: { id: '@id', action: 'update', version: '@version' }, + method: 'POST', params: { id: '@id', action: 'update', version: '@version', rollback: '@rollback' }, headers: { - // TODO: This is a temporary work-around that allows us to leverage digest pinning on - // the Docker daemon side. It has been moved client-side since Docker API version > 1.29. - // We should introduce digest pinning in Portainer as well. 'version': '1.29' } }, diff --git a/app/docker/services/serviceService.js b/app/docker/services/serviceService.js index 0696f09ff..d3db5f048 100644 --- a/app/docker/services/serviceService.js +++ b/app/docker/services/serviceService.js @@ -58,8 +58,17 @@ function ServiceServiceFactory($q, Service, ServiceHelper, TaskService, Resource return deferred.promise; }; - service.update = function(service, config) { - return Service.update({ id: service.Id, version: service.Version }, config).$promise; + service.update = function(serv, config, rollback) { + return service.service(serv.Id).then((data) => { + const params = { + id: serv.Id, + version: data.Version + }; + if (rollback) { + params.rollback = rollback + } + return Service.update(params, config).$promise; + }); }; service.logs = function(id, stdout, stderr, timestamps, since, tail) { diff --git a/app/docker/views/services/edit/service.html b/app/docker/views/services/edit/service.html index e4f7ef22a..13ef42d57 100644 --- a/app/docker/views/services/edit/service.html +++ b/app/docker/views/services/edit/service.html @@ -91,11 +91,18 @@ +

+ Note: you can only rollback one level of changes. Clicking the rollback button without making a new change will undo your previous rollback +

Service logs +