1
0
mirror of https://github.com/docker/docs.git synced 2026-11-01 22:34:29 +03:00

Merge pull request #1219 from jimmyxian/fix-connect-event

Fix connect event
This commit is contained in:
Victor Vieux
2015-09-18 23:07:04 -07:00
2 changed files with 39 additions and 5 deletions

View File

@@ -161,9 +161,13 @@ func (c *Cluster) addEngine(addr string) bool {
return false
}
engine := cluster.NewEngine(addr, c.overcommitRatio)
if err := engine.RegisterEventHandler(c); err != nil {
log.Error(err)
}
// Attempt a connection to the engine. Since this is slow, don't get a hold
// of the lock yet.
engine := cluster.NewEngine(addr, c.overcommitRatio)
if err := engine.Connect(c.TLSConfig); err != nil {
log.Error(err)
return false
@@ -186,10 +190,6 @@ func (c *Cluster) addEngine(addr string) bool {
// Finally register the engine.
c.engines[engine.ID] = engine
if err := engine.RegisterEventHandler(c); err != nil {
log.Error(err)
}
log.Infof("Registered Engine %s at %s", engine.Name, addr)
return true
}

View File

@@ -115,3 +115,37 @@ function teardown() {
retry 5 1 discovery_check_swarm_list "$DISCOVERY"
retry 5 1 discovery_check_swarm_info
}
@test "etcd discovery: check engine connect/disconnect events" {
# Start the store
start_store
# Start a manager
swarm_manage "$DISCOVERY"
# Start events, report real time events to $log_file
local log_file=$(mktemp)
docker_swarm events > "$log_file" &
local events_pid="$!"
# Start 2 engines and make them join the cluster.
start_docker 2
swarm_join "$DISCOVERY"
retry 5 1 discovery_check_swarm_list "$DISCOVERY"
# Check connect events
retry 5 1 grep -q "engine_connect" "$log_file"
# Removes all the swarm agents
swarm_join_cleanup
# Check if previously registered engines are all gone
retry 15 1 discovery_check_swarm_info 0
# Check disconnect events
retry 5 1 grep -q "engine_disconnect" "$log_file"
# Finally, clean up `docker events` and remove the log file
kill "$events_pid"
rm -f "$log_file"
}