Connections to unsecure hosts has to go to 2375 not 2376.

Make swarm ports search by hostname and not instance name as it is what
we get from swarm.
This commit is contained in:
Jonathan Leibiusky @xetorthio
2017-09-18 17:13:03 -03:00
parent 05135dd645
commit 86f27ee10d
4 changed files with 7 additions and 11 deletions

View File

@@ -38,7 +38,7 @@ func NewClient(instance *types.Instance, proxyHost string) (*client.Client, erro
tlsConfig.Certificates = []tls.Certificate{tlsCert} tlsConfig.Certificates = []tls.Certificate{tlsCert}
} }
} else { } else {
host = router.EncodeHost(instance.SessionId, instance.RoutableIP, router.HostOpts{EncodedPort: 2376}) host = router.EncodeHost(instance.SessionId, instance.RoutableIP, router.HostOpts{EncodedPort: 2375})
} }
transport := &http.Transport{ transport := &http.Transport{

View File

@@ -29,10 +29,9 @@ func NewDinD(generator id.Generator, f docker.FactoryApi, s storage.StorageApi)
} }
func checkHostnameExists(sessionId, hostname string, instances []*types.Instance) bool { func checkHostnameExists(sessionId, hostname string, instances []*types.Instance) bool {
containerName := fmt.Sprintf("%s_%s", sessionId[:8], hostname)
exists := false exists := false
for _, instance := range instances { for _, instance := range instances {
if instance.Name == containerName { if instance.Hostname == hostname {
exists = true exists = true
break break
} }

View File

@@ -2,7 +2,6 @@ package task
import ( import (
"context" "context"
"fmt"
"log" "log"
"github.com/play-with-docker/play-with-docker/docker" "github.com/play-with-docker/play-with-docker/docker"
@@ -53,17 +52,12 @@ func (t *checkSwarmPorts) Run(ctx context.Context, instance *types.Instance) err
log.Println(err) log.Println(err)
return err return err
} }
instances := make([]string, len(hosts))
sessionPrefix := instance.SessionId[:8]
for i, host := range hosts {
instances[i] = fmt.Sprintf("%s_%s", sessionPrefix, host)
}
ports := make([]int, len(ps)) ports := make([]int, len(ps))
for i, port := range ps { for i, port := range ps {
ports[i] = int(port) ports[i] = int(port)
} }
t.event.Emit(CheckSwarmPortsEvent, instance.SessionId, DockerSwarmPorts{Manager: instance.Name, Instances: instances, Ports: ports}) t.event.Emit(CheckSwarmPortsEvent, instance.SessionId, DockerSwarmPorts{Manager: instance.Name, Instances: hosts, Ports: ports})
return nil return nil
} }

View File

@@ -23,6 +23,7 @@
$scope.sessionId = SessionService.getCurrentSessionId(); $scope.sessionId = SessionService.getCurrentSessionId();
$scope.instances = []; $scope.instances = [];
$scope.idx = {}; $scope.idx = {};
$scope.idxByHostname = {};
$scope.selectedInstance = null; $scope.selectedInstance = null;
$scope.isAlive = true; $scope.isAlive = true;
$scope.ttl = '--:--:--'; $scope.ttl = '--:--:--';
@@ -106,6 +107,7 @@
$scope.instances.push(i); $scope.instances.push(i);
i.buffer = ''; i.buffer = '';
$scope.idx[i.name] = i; $scope.idx[i.name] = i;
$scope.idxByHostname[i.hostname] = i;
} else { } else {
$scope.idx[i.name].ip = i.ip; $scope.idx[i.name].ip = i.ip;
$scope.idx[i.name].hostname = i.hostname; $scope.idx[i.name].hostname = i.hostname;
@@ -170,6 +172,7 @@
var instance = i.instances[k]; var instance = i.instances[k];
$scope.instances.push(instance); $scope.instances.push(instance);
$scope.idx[instance.name] = instance; $scope.idx[instance.name] = instance;
$scope.idxByHostname[instance.hostname] = instance;
} }
var socket = io({ path: '/sessions/' + sessionId + '/ws' }); var socket = io({ path: '/sessions/' + sessionId + '/ws' });
@@ -267,7 +270,7 @@
socket.on('instance docker swarm ports', function(status) { socket.on('instance docker swarm ports', function(status) {
for(var i in status.instances) { for(var i in status.instances) {
var instance = status.instances[i]; var instance = status.instances[i];
$scope.idx[instance].swarmPorts = status.ports; $scope.idxByHostname[instance].swarmPorts = status.ports;
} }
$scope.$apply(); $scope.$apply();
}); });