From 16f4e46738212cb83e56edd6183f5aee5486a777 Mon Sep 17 00:00:00 2001 From: Cesar Munoz <56847527+LikeTheSalad@users.noreply.github.com> Date: Sun, 20 Oct 2024 15:24:29 +0200 Subject: [PATCH] #2732 feat(stacks): adding save rest methods to the stack service --- app/portainer/services/api/stackService.js | 31 +++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/app/portainer/services/api/stackService.js b/app/portainer/services/api/stackService.js index abeb09165..ff49de2e8 100644 --- a/app/portainer/services/api/stackService.js +++ b/app/portainer/services/api/stackService.js @@ -327,7 +327,14 @@ angular.module('portainer.app').factory('StackService', [ }; return Stack.create({ endpointId: endpointId }, { method: 'string', type: 'standalone', ...payload }).$promise; }; - + service.saveComposeStackFromFileContent = function (name, stackFileContent, env, endpointId) { + var payload = { + Name: name, + StackFileContent: stackFileContent, + Env: env, + }; + return Stack.save({ endpointId: endpointId }, { method: 'string', type: 'standalone', ...payload }).$promise; + }; service.createSwarmStackFromFileContent = function (name, stackFileContent, env, endpointId) { var deferred = $q.defer(); @@ -350,6 +357,28 @@ angular.module('portainer.app').factory('StackService', [ return deferred.promise; }; + service.saveSwarmStackFromFileContent = function (name, stackFileContent, env, endpointId) { + var deferred = $q.defer(); + + SwarmService.swarm(endpointId) + .then(function success(swarm) { + var payload = { + Name: name, + SwarmID: swarm.ID, + StackFileContent: stackFileContent, + Env: env, + }; + return Stack.save({ endpointId: endpointId }, { method: 'string', type: 'swarm', ...payload }).$promise; + }) + .then(function success(data) { + deferred.resolve(data); + }) + .catch(function error(err) { + deferred.reject({ msg: 'Unable to save the stack', err: err }); + }); + + return deferred.promise; + }; service.createComposeStackFromGitRepository = function (name, repositoryOptions, env, endpointId) { var payload = {