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
+
|