summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/pause/runme.sh
blob: eb2c6f7c7e8a3b49cdcee3007f379f9629a5397f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env bash

set -eux

ANSIBLE_ROLES_PATH=../ ansible-playbook setup.yml

# Test pause module when no tty and non-interactive with no seconds parameter.
# This is to prevent playbooks from hanging in cron and Tower jobs.
/usr/bin/env bash << EOF
ansible-playbook test-pause-no-tty.yml 2>&1 | \
    grep '\[WARNING\]: Not waiting for response to prompt as stdin is not interactive' && {
        echo 'Successfully skipped pause in no TTY mode' >&2
        exit 0
    } || {
        echo 'Failed to skip pause module' >&2
        exit 1
    }
EOF

# Do not issue a warning when run in the background if a timeout is given
# https://github.com/ansible/ansible/issues/73042
if sleep 0 | ansible localhost -m pause -a 'seconds=1' 2>&1 | grep '\[WARNING\]: Not waiting for response'; then
    echo "Incorrectly issued warning when run in the background"
    exit 1
else
    echo "Succesfully ran in the background with no warning"
fi

# Test redirecting stdout
# https://github.com/ansible/ansible/issues/41717
if ansible-playbook pause-3.yml > /dev/null ; then
    echo "Successfully redirected stdout"
else
    echo "Failure when attempting to redirect stdout"
    exit 1
fi


# Test pause with seconds and minutes specified
ansible-playbook test-pause.yml "$@"

# Interactively test pause
python test-pause.py "$@"