1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-23 23:39:41 +02:00

refactor(services): Refactor chartService and pluginService (#1340)

This commit is contained in:
1138-4EB 2017-12-05 09:49:04 +01:00 committed by Anthony Lapenna
parent d8f6b14726
commit 75b3a78e2b
3 changed files with 56 additions and 164 deletions

View file

@ -20,7 +20,7 @@ angular.module('portainer.services')
return deferred.promise;
};
service.volumePlugins = function(systemOnly) {
function servicePlugins(systemOnly, pluginType, pluginVersion) {
var deferred = $q.defer();
$q.all({
@ -28,60 +28,36 @@ angular.module('portainer.services')
plugins: systemOnly ? [] : service.plugins()
})
.then(function success(data) {
var volumePlugins = [];
var aggregatedPlugins = [];
var systemPlugins = data.system;
var plugins = data.plugins;
if (systemPlugins.Volume) {
volumePlugins = volumePlugins.concat(systemPlugins.Volume);
if (systemPlugins[pluginType]) {
aggregatedPlugins = aggregatedPlugins.concat(systemPlugins[pluginType]);
}
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
if (plugin.Enabled && _.includes(plugin.Config.Interface.Types, 'docker.volumedriver/1.0')) {
volumePlugins.push(plugin.Name);
if (plugin.Enabled && _.includes(plugin.Config.Interface.Types, pluginVersion)) {
aggregatedPlugins.push(plugin.Name);
}
}
deferred.resolve(volumePlugins);
deferred.resolve(aggregatedPlugins);
})
.catch(function error(err) {
deferred.reject({ msg: err.msg, err: err });
});
return deferred.promise;
}
service.volumePlugins = function(systemOnly) {
return servicePlugins(systemOnly, 'Volume', 'docker.volumedriver/1.0');
};
service.networkPlugins = function(systemOnly) {
var deferred = $q.defer();
$q.all({
system: SystemService.plugins(),
plugins: systemOnly ? [] : service.plugins()
})
.then(function success(data) {
var networkPlugins = [];
var systemPlugins = data.system;
var plugins = data.plugins;
if (systemPlugins.Network) {
networkPlugins = networkPlugins.concat(systemPlugins.Network);
}
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
if (plugin.Enabled && _.includes(plugin.Config.Interface.Types, 'docker.networkdriver/1.0')) {
networkPlugins.push(plugin.Name);
}
}
deferred.resolve(networkPlugins);
})
.catch(function error(err) {
deferred.reject({ msg: err.msg, err: err });
});
return deferred.promise;
return servicePlugins(systemOnly, 'Network', 'docker.networkdriver/1.0');
};
return service;