From b5e256c967b3d7a849108ff32840d872c53eb321 Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Wed, 21 Feb 2018 10:55:51 +0100 Subject: [PATCH] fix(services): use the Public URL instead of a manager IP (#1665) --- .../services-datatable/servicesDatatable.html | 2 +- .../datatables/services-datatable/servicesDatatable.js | 2 +- app/docker/helpers/nodeHelper.js | 10 ---------- app/docker/views/services/services.html | 2 +- app/docker/views/services/servicesController.js | 9 ++++++--- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/app/docker/components/datatables/services-datatable/servicesDatatable.html b/app/docker/components/datatables/services-datatable/servicesDatatable.html index 3b39ba144..71e830cd4 100644 --- a/app/docker/components/datatables/services-datatable/servicesDatatable.html +++ b/app/docker/components/datatables/services-datatable/servicesDatatable.html @@ -114,7 +114,7 @@ - + {{ p.PublishedPort }}:{{ p.TargetPort }} - diff --git a/app/docker/components/datatables/services-datatable/servicesDatatable.js b/app/docker/components/datatables/services-datatable/servicesDatatable.js index 93c127267..e87726251 100644 --- a/app/docker/components/datatables/services-datatable/servicesDatatable.js +++ b/app/docker/components/datatables/services-datatable/servicesDatatable.js @@ -12,7 +12,7 @@ angular.module('portainer.docker').component('servicesDatatable', { showOwnershipColumn: '<', removeAction: '<', scaleAction: '<', - swarmManagerIp: '<', + publicUrl: '<', forceUpdateAction: '<', showForceUpdateButton: '<' } diff --git a/app/docker/helpers/nodeHelper.js b/app/docker/helpers/nodeHelper.js index 3e79915fe..ba02dfdd1 100644 --- a/app/docker/helpers/nodeHelper.js +++ b/app/docker/helpers/nodeHelper.js @@ -9,16 +9,6 @@ angular.module('portainer.docker') Labels: node.Spec.Labels, Availability: node.Spec.Availability }; - }, - getManagerIP: function(nodes) { - var managerIp; - for (var n in nodes) { - if (undefined === nodes[n].ManagerStatus || nodes[n].ManagerStatus.Reachability !== 'reachable') { - continue; - } - managerIp = nodes[n].ManagerStatus.Addr.split(':')[0]; - } - return managerIp; } }; }]); diff --git a/app/docker/views/services/services.html b/app/docker/views/services/services.html index 67b7c0548..e732bbbc1 100644 --- a/app/docker/views/services/services.html +++ b/app/docker/views/services/services.html @@ -17,7 +17,7 @@ remove-action="removeAction" scale-action="scaleAction" force-update-action="forceUpdateAction" - swarm-manager-ip="swarmManagerIP" + public-url="state.publicURL" show-force-update-button="applicationState.endpoint.apiVersion >= 1.25" > diff --git a/app/docker/views/services/servicesController.js b/app/docker/views/services/servicesController.js index 43cd0f2b1..e109260de 100644 --- a/app/docker/views/services/servicesController.js +++ b/app/docker/views/services/servicesController.js @@ -1,6 +1,10 @@ angular.module('portainer.docker') -.controller('ServicesController', ['$q', '$scope', '$state', 'Service', 'ServiceService', 'ServiceHelper', 'Notifications', 'Task', 'Node', 'NodeHelper', 'ModalService', -function ($q, $scope, $state, Service, ServiceService, ServiceHelper, Notifications, Task, Node, NodeHelper, ModalService) { +.controller('ServicesController', ['$q', '$scope', '$state', 'Service', 'ServiceService', 'ServiceHelper', 'Notifications', 'Task', 'Node', 'ModalService', 'EndpointProvider', +function ($q, $scope, $state, Service, ServiceService, ServiceHelper, Notifications, Task, Node, ModalService, EndpointProvider) { + + $scope.state = { + publicURL: EndpointProvider.endpointPublicURL() + }; $scope.scaleAction = function scaleService(service) { var config = ServiceHelper.serviceToConfig(service.Model); @@ -88,7 +92,6 @@ function ($q, $scope, $state, Service, ServiceService, ServiceHelper, Notificati nodes: Node.query({}).$promise }) .then(function success(data) { - $scope.swarmManagerIP = NodeHelper.getManagerIP(data.nodes); $scope.services = data.services.map(function (service) { var runningTasks = data.tasks.filter(function (task) { return task.ServiceID === service.ID && task.Status.State === 'running';