@@ -11,8 +11,9 @@ DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
11
11
12
12
# Read the absolute path to the exporter
13
13
postgres_exporter=$( readlink -f $1 )
14
+ test_binary=$( readlink -f $2 )
14
15
exporter_port=9187
15
- $exporter_port =password
16
+ exporter_password =password
16
17
17
18
cd $DIR
18
19
@@ -25,50 +26,61 @@ VERSIONS=( \
25
26
9.6 \
26
27
)
27
28
28
- smoketest_postgres () {
29
- local version=$1
30
- local CONTAINER_NAME=postgres_exporter-test-smoke
31
- local TIMEOUT=30
32
- local IMAGE_NAME=postgres
33
-
34
- local CUR_IMAGE=$IMAGE_NAME :$version
35
-
36
- echo " Test standalone cluster..."
37
- CONTAINER_NAME=$( docker run -d -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD -p 127.0.0.1:55432:5432 $CUR_IMAGE )
38
-
39
- trap " docker logs $CONTAINER_NAME ; docker kill $CONTAINER_NAME ; docker rm $CONTAINER_NAME ; exit 1" EXIT INT TERM
40
-
29
+ wait_for_postgres () {
30
+ local CONTAINER_NAME=$1
31
+ if [ -z $CONTAINER_NAME ]; then
32
+ echo " No container name specified." 1>&2
33
+ exit 1
34
+ fi
41
35
local WAIT_START=$( date +%s)
36
+ echo " Waiting for postgres to start..."
42
37
while ! docker exec $CONTAINER_NAME bash -c " psql -U postgres -c \" select 'running'\" > /dev/null 2>&1 " ; do
43
- echo " Waiting for postgres to start..."
44
38
if [ $(( $(date +% s) - $WAIT_START )) -gt $TIMEOUT ]; then
45
39
echo " Timed out waiting for postgres!" 1>&2
46
40
exit 1
47
41
fi
48
42
sleep 1
49
- done
43
+ done
44
+ }
50
45
51
- DATA_SOURCE_NAME=" postgresql://postgres:$POSTGRES_PASSWORD @localhost:55432/?sslmode=disable" $postgres_exporter &
52
- exporter_pid=$!
53
- trap " docker logs $CONTAINER_NAME ; docker kill $CONTAINER_NAME ; docker rm $CONTAINER_NAME ; kill $exporter_pid ; exit 1" EXIT INT TERM
46
+ wait_for_exporter () {
54
47
local DAEMON_WAIT_START=$( date +%s)
48
+ echo " Waiting for exporter to start..."
55
49
while ! nc -z localhost $exporter_port ; do
56
- echo " Waiting for exporter to start..."
57
- if [ $(( $(date +% s) - $WAIT_START )) -gt $TIMEOUT ]; then
50
+ if [ $(( $(date +% s) - $DAEMON_WAIT_START )) -gt $TIMEOUT ]; then
58
51
echo " Timed out waiting for exporter!" 1>&2
59
52
exit 1
60
53
fi
61
54
sleep 1
62
55
done
56
+ }
63
57
64
- wget -q -O - http://localhost:$exporter_port /metrics 1> /dev/null
65
- if [ " $? " != " 0" ]; then
66
- echo " Failed on postgres $version ($DOCKER_IMAGE )" 1>&2
67
- kill $exporter_pid
68
- exit 1
69
- fi
58
+ smoketest_postgres () {
59
+ local version=$1
60
+ local CONTAINER_NAME=postgres_exporter-test-smoke
61
+ local TIMEOUT=30
62
+ local IMAGE_NAME=postgres
63
+
64
+ local CUR_IMAGE=$IMAGE_NAME :$version
65
+
66
+ echo " Test standalone cluster..."
67
+ CONTAINER_NAME=$( docker run -d -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD -p 127.0.0.1:55432:5432 $CUR_IMAGE )
68
+ trap " docker logs $CONTAINER_NAME ; docker kill $CONTAINER_NAME ; docker rm $CONTAINER_NAME ; exit 1" EXIT INT TERM
69
+ wait_for_postgres $CONTAINER_NAME
70
70
71
- kill $exporter_pid
71
+ DATA_SOURCE_NAME=" postgresql://postgres:$POSTGRES_PASSWORD @localhost:55432/?sslmode=disable" $test_binary || exit $?
72
+ # exporter_pid=$!
73
+ # trap "docker logs $CONTAINER_NAME ; docker kill $CONTAINER_NAME ; docker rm $CONTAINER_NAME ; kill $exporter_pid; exit 1" EXIT INT TERM
74
+ # wait_for_exporter
75
+ #
76
+ # wget -q -O - http://localhost:$exporter_port/metrics 1> /dev/null
77
+ # if [ "$?" != "0" ]; then
78
+ # echo "Failed on postgres $version ($DOCKER_IMAGE)" 1>&2
79
+ # kill $exporter_pid
80
+ # exit 1
81
+ # fi
82
+ #
83
+ # kill $exporter_pid
72
84
docker kill $CONTAINER_NAME
73
85
docker rm $CONTAINER_NAME
74
86
trap - EXIT INT TERM
@@ -88,47 +100,21 @@ smoketest_postgres() {
88
100
master_container=$( docker-compose ps -q pg-master)
89
101
slave_container=$( docker-compose ps -q pg-slave)
90
102
master_ip=$( docker inspect -f ' {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $master_container )
91
-
92
- local WAIT_START=$( date +%s)
93
- while ! docker exec $master_container bash -c " psql -U postgres -c \" select 'running'\" > /dev/null 2>&1 " ; do
94
- echo " Waiting for postgres master to start..."
95
- if [ $(( $(date +% s) - $WAIT_START )) -gt $TIMEOUT ]; then
96
- echo " Timed out waiting for postgres!" 1>&2
97
- exit 1
98
- fi
99
- sleep 1
100
- done
101
-
102
- local WAIT_START=$( date +%s)
103
- while ! docker exec $slave_container bash -c " psql -U postgres -c \" select 'running'\" > /dev/null 2>&1 " ; do
104
- echo " Waiting for postgres master to start..."
105
- if [ $(( $(date +% s) - $WAIT_START )) -gt $TIMEOUT ]; then
106
- echo " Timed out waiting for postgres!" 1>&2
107
- exit 1
108
- fi
109
- sleep 1
110
- done
103
+ wait_for_postgres $master_container
104
+ wait_for_postgres $slave_container
111
105
112
- DATA_SOURCE_NAME=" postgresql://postgres:$POSTGRES_PASSWORD @$master_ip :5432/?sslmode=disable" $postgres_exporter &
113
- exporter_pid=$!
114
- trap " docker-compose logs; docker-compose down ; docker-compose rm -v ; kill $exporter_pid ; exit 1" EXIT INT TERM
115
- local DAEMON_WAIT_START=$( date +%s)
116
- while ! nc -z localhost $exporter_port ; do
117
- echo " Waiting for exporter to start..."
118
- if [ $(( $(date +% s) - $WAIT_START )) -gt $TIMEOUT ]; then
119
- echo " Timed out waiting for exporter!" 1>&2
120
- exit 1
121
- fi
122
- sleep 1
123
- done
124
-
125
- wget -q -O - http://localhost:$exporter_port /metrics 1> /dev/null
126
- if [ " $? " != " 0" ]; then
127
- echo " Failed on postgres $version ($DOCKER_IMAGE )" 1>&2
128
- exit 1
129
- fi
106
+ DATA_SOURCE_NAME=" postgresql://postgres:$POSTGRES_PASSWORD @$master_ip :5432/?sslmode=disable" $test_binary || exit $?
107
+ # exporter_pid=$!
108
+ # trap "docker-compose logs; docker-compose down ; docker-compose rm -v ; kill $exporter_pid; exit 1" EXIT INT TERM
109
+ # wait_for_exporter
130
110
131
- kill $exporter_pid
111
+ # wget -q -O - http://localhost:$exporter_port/metrics 1> /dev/null
112
+ # if [ "$?" != "0" ]; then
113
+ # echo "Failed on postgres $version ($DOCKER_IMAGE)" 1>&2
114
+ # exit 1
115
+ # fi
116
+ #
117
+ # kill $exporter_pid
132
118
133
119
docker-compose down
134
120
docker-compose rm -v
0 commit comments