Skip to content

Commit cf6da29

Browse files
committed
Fix test environment setup
* remove sleep from make target `setup-phpipam` as database setup script waits on it's own * fix recognition of podman
1 parent 1a2cfae commit cf6da29

File tree

2 files changed

+41
-16
lines changed

2 files changed

+41
-16
lines changed

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ coverage-xml: test-all
8282

8383
setup-phpipam: test-setup
8484
docker-compose -f tests/docker/docker-compose.yml up -d
85-
sleep 30
8685
sh tests/docker/setup_database.sh
8786

8887
FORCE:

tests/docker/setup_database.sh

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,51 @@
11
#!/bin/bash
22

3-
if grep -q podman <<< $(docker --version 2> /dev/null) ; then
4-
echo "Podman is installed"
3+
exec 10>&1
4+
exec > /dev/null 2>&1
5+
6+
function info() {
7+
echo "${@}" >&10
8+
}
9+
10+
MYSQL_PING="mysqladmin ping -h ${DB_HOST:-127.0.0.1} -P ${DB_PORT:-3306} -u ${MYSQL_ROOT_USER:-root} -p${MYSQL_ROOT_PASSWORD:-rootpw}"
11+
12+
if grep -qi podman <<< $(docker version 2> /dev/null) ; then
13+
info "Podman is installed"
514
DOCKER_CMD=$(which podman)
615
fi
716

8-
while ! nc -z "${DB_HOST:-127.0.0.1}" "${DB_PORT:-3306}"; do
9-
echo "Waiting for database connection..."
10-
sleep 1
11-
done
17+
if "${DOCKER_CMD}" ps | grep -q phpipam_test_webserver && ! eval "${MYSQL_PING}" ; then
18+
19+
info -n "Waiting for database connection "
20+
while ! eval "${MYSQL_PING}" ; do
21+
info -n "."
22+
sleep 1
23+
done
24+
info
25+
fi
26+
27+
info "Database is up"
1228

13-
echo "Database is up"
29+
if [[ $(mysqlshow -u root -prootpw -h 127.0.0.1 -P 3306 phpipam 2>/dev/null | wc -l) -eq 5 ]] ; then
1430

15-
echo "Creating database ${DB_NAME:-phpipam}"
16-
${DOCKER_CMD} exec -ti docker_phpipam_1 sh -c 'mysql -h database -u phpipam -pphpipamadmin phpipam < /phpipam/db/SCHEMA.sql'
31+
info "Creating database ${DB_NAME:-phpipam}"
32+
${DOCKER_CMD} exec -t phpipam_test_webserver sh -c 'mysql -h database -u phpipam -pphpipamadmin phpipam < /phpipam/db/SCHEMA.sql' && ((init_result++))
1733

18-
echo "Activating API"
19-
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="UPDATE settings SET api=1 WHERE id=1;"
34+
info "Activating API"
35+
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="UPDATE settings SET api=1 WHERE id=1;" && ((init_result++))
2036

21-
echo "Inserting API application"
22-
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="INSERT INTO api (app_id, app_code, app_permissions, app_security, app_lock_wait) VALUES ('ansible','aAbBcCdDeEfF00112233445566778899',2,'ssl_token',0);"
37+
info "Inserting API application"
38+
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="INSERT INTO api (app_id, app_code, app_permissions, app_security, app_lock_wait) VALUES ('ansible','aAbBcCdDeEfF00112233445566778899',2,'ssl_token',0);" && ((init_result++))
39+
40+
info "Disable forced password reset"
41+
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="UPDATE users SET passChange = 'No' WHERE username = 'Admin';" && ((init_result++))
42+
43+
[ "$init_result" -eq 4 ] && result=successful || result=failed
44+
45+
else
46+
47+
info "Detabase already initiated" && exit 0
48+
49+
fi
2350

24-
echo "Disable forced password reset"
25-
mysql -u phpipam -pphpipamadmin -h "${DB_HOST:-127.0.0.1}" phpipam --execute="UPDATE users SET passChange = 'No' WHERE username = 'Admin';"
51+
info "Database initialisation $result"

0 commit comments

Comments
 (0)