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:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user