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:
@@ -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{
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user