diff --git a/app/docker/helpers/serviceHelper.js b/app/docker/helpers/serviceHelper.js
index 6f6fe6d79..e771d2347 100644
--- a/app/docker/helpers/serviceHelper.js
+++ b/app/docker/helpers/serviceHelper.js
@@ -28,16 +28,25 @@ angular.module('portainer.docker')
});
}
- helper.mapNetworkNameToServiceNetwork = function(service, networks) {
+ helper.filterServiceNetworks = function(service, networks) {
for (var i = 0; i < service.ServiceNetworks.length; i++) {
var serviceNetwork = service.ServiceNetworks[i];
var network = findAssociatedNetwork(serviceNetwork, networks);
- if (network) {
+ if (network && network.Name) {
serviceNetwork.Name = network.Name;
}
}
+ _.remove(service.ServiceNetworks, network => (!network.Name));
+ if (!_.some(service.ServiceNetworks, network => (network.Name === 'bridge'))){
+ service.ServiceNetworks.push(_.find(networks, network => network.Name === 'bridge'));
+ }
};
+ helper.translateNetworkNameToTargets = function(networks) {
+ _.remove(networks, network => (network.Name === 'ingress' || network.Name === 'bridge'));
+ return _.map(networks, ({NetworkID}) => ({ Target: NetworkID}));
+ }
+
helper.serviceToConfig = function(service) {
return {
Name: service.Spec.Name,
diff --git a/app/docker/views/services/edit/includes/networks.html b/app/docker/views/services/edit/includes/networks.html
index 0a4cba8b0..c6be034b2 100644
--- a/app/docker/views/services/edit/includes/networks.html
+++ b/app/docker/views/services/edit/includes/networks.html
@@ -26,7 +26,7 @@
{{ network.Addr }} |
- |
diff --git a/app/docker/views/services/edit/serviceController.js b/app/docker/views/services/edit/serviceController.js
index 95643ce2d..165d43e1c 100644
--- a/app/docker/views/services/edit/serviceController.js
+++ b/app/docker/views/services/edit/serviceController.js
@@ -172,7 +172,7 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll,
if (network && !_.find(service.ServiceNetworks, {'NetworkID': network.Id})) {
service.ServiceNetworks.push({NetworkID: network.Id})
updateServiceArray(service, 'ServiceNetworks', service.ServiceNetworks);
- ServiceHelper.mapNetworkNameToServiceNetwork(service, $scope.networks);
+ ServiceHelper.filterServiceNetworks(service, $scope.networks);
}
};
$scope.removeNetwork = function removeNetwork(service, index) {
@@ -311,7 +311,7 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll,
config.TaskTemplate.ContainerSpec.Image = service.Image;
}
if ($scope.hasChanges(service, ["ServiceNetworks"])) {
- config.TaskTemplate.Networks = _.map(service.ServiceNetworks, ({NetworkID}) => ({ Target: NetworkID}));
+ config.TaskTemplate.Networks = ServiceHelper.translateNetworkNameToTargets(service.ServiceNetworks);
}
config.TaskTemplate.ContainerSpec.Secrets = service.ServiceSecrets ? service.ServiceSecrets.map(SecretHelper.secretConfig) : [];
config.TaskTemplate.ContainerSpec.Configs = service.ServiceConfigs ? service.ServiceConfigs.map(ConfigHelper.configConfig) : [];
@@ -566,7 +566,8 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll,
containers: agentProxy ? ContainerService.containers() : [],
nodes: NodeService.nodes(),
networks: NetworkService.networks(true, true, true),
- availableNetworks: NetworkService.networks(true, true, true),
+ availableNetworks: NetworkService.networks(false, true, true),
+ test: NetworkService.networks(false, true, true),
secrets: apiVersion >= 1.25 ? SecretService.secrets() : [],
configs: apiVersion >= 1.30 ? ConfigService.configs() : [],
availableImages: ImageService.images(),
@@ -607,7 +608,7 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll,
$scope.tasks = data.tasks;
- ServiceHelper.mapNetworkNameToServiceNetwork(service, data.networks);
+ ServiceHelper.filterServiceNetworks(service, data.networks);
// Set max cpu value
var maxCpus = 0;