You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
portainer/app/services/docker/networkService.js

53 lines
1.3 KiB

angular.module('portainer.services')
.factory('NetworkService', ['$q', 'Network', function NetworkServiceFactory($q, Network) {
'use strict';
var service = {};
service.networks = function() {
return Network.query({}).$promise;
};
service.retrieveSwarmNetworks = function() {
var deferred = $q.defer();
service.networks()
.then(function success(data) {
var networks = data.filter(function (network) {
if (network.Scope === 'swarm') {
return network;
}
});
deferred.resolve(networks);
})
.catch(function error(err) {
deferred.reject({msg: 'Unable to retrieve networks', err: err});
});
return deferred.promise;
};
service.filterGlobalNetworks = function(networks) {
return networks.filter(function (network) {
if (network.Scope === 'global') {
return network;
}
});
};
service.filterSwarmModeAttachableNetworks = function(networks) {
return networks.filter(function (network) {
if (network.Scope === 'swarm' && network.Attachable === true) {
return network;
}
});
};
service.addPredefinedLocalNetworks = function(networks) {
networks.push({Scope: 'local', Name: 'bridge'});
networks.push({Scope: 'local', Name: 'host'});
networks.push({Scope: 'local', Name: 'none'});
};
return service;
}]);