mirror of
https://github.com/offen/docker-volume-backup.git
synced 2025-09-05 22:14:27 +08:00
Consider manager status when checking for swarm related features
This commit is contained in:
parent
7806e56eab
commit
466aa2a869
3 changed files with 20 additions and 6 deletions
|
@ -89,7 +89,7 @@ func isSwarm(c interface {
|
|||
if err != nil {
|
||||
return false, errwrap.Wrap(err, "error getting docker info")
|
||||
}
|
||||
return info.Swarm.LocalNodeState != "" && info.Swarm.LocalNodeState != swarm.LocalNodeStateInactive, nil
|
||||
return info.Swarm.LocalNodeState != "" && info.Swarm.LocalNodeState != swarm.LocalNodeStateInactive && info.Swarm.ControlAvailable, nil
|
||||
}
|
||||
|
||||
// stopContainersAndServices stops all Docker containers that are marked as to being
|
||||
|
|
|
@ -30,13 +30,26 @@ func TestIsSwarm(t *testing.T) {
|
|||
&mockInfoClient{
|
||||
result: system.Info{
|
||||
Swarm: swarm.Info{
|
||||
LocalNodeState: swarm.LocalNodeStateActive,
|
||||
LocalNodeState: swarm.LocalNodeStateActive,
|
||||
ControlAvailable: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
true,
|
||||
false,
|
||||
},
|
||||
{
|
||||
"worker",
|
||||
&mockInfoClient{
|
||||
result: system.Info{
|
||||
Swarm: swarm.Info{
|
||||
LocalNodeState: swarm.LocalNodeStateActive,
|
||||
},
|
||||
},
|
||||
},
|
||||
false,
|
||||
false,
|
||||
},
|
||||
{
|
||||
"compose",
|
||||
&mockInfoClient{
|
||||
|
|
|
@ -45,13 +45,15 @@ for dir in $(find $find_args | sort); do
|
|||
fi
|
||||
|
||||
docker compose --profile $compose_profile up -d --wait
|
||||
|
||||
test_context=manager
|
||||
if [ -f "${dir}/.multinode" ]; then
|
||||
test_context=$(cat $dir/.multinode)
|
||||
fi
|
||||
docker compose exec $test_context /bin/sh -c "docker load -i /cache/image.tar.gz"
|
||||
|
||||
if [ -f "${dir}/.swarm" ]; then
|
||||
docker compose exec manager docker swarm init
|
||||
elif [ -f "${dir}/.multinode" ]; then
|
||||
test_context=$(cat $dir/.multinode)
|
||||
|
||||
docker compose exec manager docker swarm init
|
||||
manager_ip=$(docker compose exec manager docker node inspect $(docker compose exec manager docker node ls -q) --format '{{ .Status.Addr }}')
|
||||
token=$(docker compose exec manager docker swarm join-token -q worker)
|
||||
|
@ -61,7 +63,6 @@ for dir in $(find $find_args | sort); do
|
|||
docker compose exec -w "/code/$dir" manager docker stack deploy --compose-file="docker-compose.yml" test_stack
|
||||
fi
|
||||
|
||||
docker compose exec $test_context /bin/sh -c "docker load -i /cache/image.tar.gz"
|
||||
docker compose exec -e TEST_VERSION=$IMAGE_TAG $test_context /bin/sh -c "/code/$test"
|
||||
|
||||
docker compose --profile $compose_profile down
|
||||
|
|
Loading…
Add table
Reference in a new issue