mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 15:29:42 +02:00
refactor(templates): refactor controller code and create required services (#580)
This commit is contained in:
parent
06a484880b
commit
2f3475b96a
10 changed files with 421 additions and 249 deletions
59
app/services/volumeService.js
Normal file
59
app/services/volumeService.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
angular.module('portainer.services')
|
||||
.factory('VolumeService', ['$q', 'Volume', function VolumeServiceFactory($q, Volume) {
|
||||
'use strict';
|
||||
var service = {};
|
||||
|
||||
function prepareVolumeQueries(template, containerConfig) {
|
||||
var volumeQueries = [];
|
||||
if (template.volumes) {
|
||||
template.volumes.forEach(function (vol) {
|
||||
volumeQueries.push(
|
||||
Volume.create({}, function (d) {
|
||||
if (d.message) {
|
||||
Messages.error("Unable to create volume", {}, d.message);
|
||||
} else {
|
||||
Messages.send("Volume created", d.Name);
|
||||
containerConfig.Volumes[vol] = {};
|
||||
containerConfig.HostConfig.Binds.push(d.Name + ':' + vol);
|
||||
}
|
||||
}, function (e) {
|
||||
Messages.error("Failure", e, "Unable to create volume");
|
||||
}).$promise
|
||||
);
|
||||
});
|
||||
}
|
||||
return volumeQueries;
|
||||
}
|
||||
|
||||
service.createVolume = function(volumeConfiguration) {
|
||||
var deferred = $q.defer();
|
||||
Volume.create(volumeConfiguration).$promise
|
||||
.then(function success(data) {
|
||||
if (data.message) {
|
||||
deferred.reject({ msg: data.message });
|
||||
} else {
|
||||
deferred.resolve(data);
|
||||
}
|
||||
})
|
||||
.catch(function error(err) {
|
||||
deferred.reject({ msg: 'Unable to create volume', err: err });
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
service.createVolumes = function(volumes) {
|
||||
var createVolumeQueries = volumes.map(function(volume) {
|
||||
return service.createVolume(volume);
|
||||
});
|
||||
return $q.all(createVolumeQueries);
|
||||
};
|
||||
|
||||
service.createAutoGeneratedLocalVolumes = function (volumes) {
|
||||
var createVolumeQueries = volumes.map(function(volume) {
|
||||
return service.createVolume({});
|
||||
});
|
||||
return $q.all(createVolumeQueries);
|
||||
};
|
||||
|
||||
return service;
|
||||
}]);
|
Loading…
Add table
Add a link
Reference in a new issue