mirror of https://github.com/portainer/portainer
76 lines
2.4 KiB
JavaScript
76 lines
2.4 KiB
JavaScript
|
import angular from 'angular';
|
||
|
|
||
|
angular.module('portainer.edge').factory('EdgeStackService', function EdgeStackServiceFactory(EdgeStacks, FileUploadService) {
|
||
|
var service = {};
|
||
|
|
||
|
service.stack = function stack(id) {
|
||
|
return EdgeStacks.get({ id }).$promise;
|
||
|
};
|
||
|
|
||
|
service.stacks = function stacks() {
|
||
|
return EdgeStacks.query({}).$promise;
|
||
|
};
|
||
|
|
||
|
service.remove = function remove(id) {
|
||
|
return EdgeStacks.remove({ id }).$promise;
|
||
|
};
|
||
|
|
||
|
service.stackFile = async function stackFile(id) {
|
||
|
try {
|
||
|
const { StackFileContent } = await EdgeStacks.file({ id }).$promise;
|
||
|
return StackFileContent;
|
||
|
} catch (err) {
|
||
|
throw { msg: 'Unable to retrieve stack content', err };
|
||
|
}
|
||
|
};
|
||
|
|
||
|
service.updateStack = async function updateStack(id, stack) {
|
||
|
return EdgeStacks.update({ id }, stack);
|
||
|
};
|
||
|
|
||
|
service.createStackFromFileContent = async function createStackFromFileContent(name, stackFileContent, edgeGroups) {
|
||
|
var payload = {
|
||
|
Name: name,
|
||
|
StackFileContent: stackFileContent,
|
||
|
EdgeGroups: edgeGroups,
|
||
|
};
|
||
|
try {
|
||
|
return await EdgeStacks.create({ method: 'string' }, payload).$promise;
|
||
|
} catch (err) {
|
||
|
throw { msg: 'Unable to create the stack', err };
|
||
|
}
|
||
|
};
|
||
|
|
||
|
service.createStackFromFileUpload = async function createStackFromFileUpload(name, stackFile, edgeGroups) {
|
||
|
try {
|
||
|
return await FileUploadService.createEdgeStack(name, stackFile, edgeGroups);
|
||
|
} catch (err) {
|
||
|
throw { msg: 'Unable to create the stack', err };
|
||
|
}
|
||
|
};
|
||
|
|
||
|
service.createStackFromGitRepository = async function createStackFromGitRepository(name, repositoryOptions, edgeGroups) {
|
||
|
var payload = {
|
||
|
Name: name,
|
||
|
RepositoryURL: repositoryOptions.RepositoryURL,
|
||
|
RepositoryReferenceName: repositoryOptions.RepositoryReferenceName,
|
||
|
ComposeFilePathInRepository: repositoryOptions.ComposeFilePathInRepository,
|
||
|
RepositoryAuthentication: repositoryOptions.RepositoryAuthentication,
|
||
|
RepositoryUsername: repositoryOptions.RepositoryUsername,
|
||
|
RepositoryPassword: repositoryOptions.RepositoryPassword,
|
||
|
EdgeGroups: edgeGroups,
|
||
|
};
|
||
|
try {
|
||
|
return await EdgeStacks.create({ method: 'repository' }, payload).$promise;
|
||
|
} catch (err) {
|
||
|
throw { msg: 'Unable to create the stack', err };
|
||
|
}
|
||
|
};
|
||
|
|
||
|
service.update = function update(stack) {
|
||
|
return EdgeStacks.update(stack).$promise;
|
||
|
};
|
||
|
|
||
|
return service;
|
||
|
});
|