blob: 196fefa999a3702048bbfe26555417e8460e0ae8 (
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/bin/sh
install_debian_like() {
# This is needed to ensure package installs don't prompt for any user input.
export DEBIAN_FRONTEND=noninteractive
apt-get update
# Install Netdata
apt-get install -y /netdata/artifacts/netdata_"${VERSION}"_*.deb || exit 1
# Install testing tools
apt-get install -y --no-install-recommends curl netcat jq || exit 1
}
install_fedora_like() {
# Using a glob pattern here because I can't reliably determine what the
# resulting package name will be (TODO: There must be a better way!)
PKGMGR="$( (command -v dnf > /dev/null && echo "dnf") || echo "yum")"
pkg_version="$(echo "${VERSION}" | tr - .)"
# Install Netdata
"$PKGMGR" install -y /netdata/artifacts/netdata-"${pkg_version}"-*.rpm
# Install testing tools
"$PKGMGR" install -y curl nc jq || exit 1
}
install_centos() {
# Using a glob pattern here because I can't reliably determine what the
# resulting package name will be (TODO: There must be a better way!)
PKGMGR="$( (command -v dnf > /dev/null && echo "dnf") || echo "yum")"
pkg_version="$(echo "${VERSION}" | tr - .)"
# Install EPEL (needed for `jq`
"$PKGMGR" install -y epel-release || exit 1
# Install Netdata
"$PKGMGR" install -y /netdata/artifacts/netdata-"${pkg_version}"-*.rpm
# Install testing tools
"$PKGMGR" install -y curl nc jq || exit 1
}
install_suse_like() {
# Using a glob pattern here because I can't reliably determine what the
# resulting package name will be (TODO: There must be a better way!)
pkg_version="$(echo "${VERSION}" | tr - .)"
# Install Netdata
zypper install -y --allow-unsigned-rpm /netdata/artifacts/netdata-"${pkg_version}"-*.rpm
# Install testing tools
zypper install -y --no-recommends curl netcat-openbsd jq || exit 1
}
dump_log() {
cat ./netdata.log
}
wait_for() {
host="${1}"
port="${2}"
name="${3}"
timeout="30"
if command -v nc > /dev/null ; then
netcat="nc"
elif command -v netcat > /dev/null ; then
netcat="netcat"
else
printf "Unable to find a usable netcat command.\n"
return 1
fi
printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
sleep 30
i=0
while ! ${netcat} -z "${host}" "${port}"; do
sleep 1
if [ "$i" -gt "$timeout" ]; then
printf "Timed out!\n"
return 1
fi
i="$((i + 1))"
done
printf "OK\n"
}
case "${DISTRO}" in
debian | ubuntu)
install_debian_like
;;
fedora | oraclelinux)
install_fedora_like
;;
centos)
install_centos
;;
opensuse)
install_suse_like
;;
*)
printf "ERROR: unsupported distro: %s_%s\n" "${DISTRO}" "${DISTRO_VERSION}"
exit 1
;;
esac
trap dump_log EXIT
/usr/sbin/netdata -D > ./netdata.log 2>&1 &
wait_for localhost 19999 netdata || exit 1
curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
cat ./response
jq '.version' ./response || exit 1
trap - EXIT
|