53 changed files with 275 additions and 114 deletions
@ -0,0 +1,3 @@
|
||||
local msg = "welcome to the machine!" |
||||
redis.call("SET", "msg", msg) |
||||
return redis.call("GET", "msg") |
||||
@ -0,0 +1,28 @@
|
||||
# ZT Network Containers Test Monitor |
||||
FROM fedora:23 |
||||
MAINTAINER https://www.zerotier.com/ |
||||
|
||||
RUN yum -y install redis-3.0.4-1.fc23.x86_64 |
||||
|
||||
EXPOSE 9993/udp |
||||
|
||||
# Add ZT files |
||||
RUN mkdir -p /var/lib/zerotier-one/networks.d |
||||
ADD monitor_identity.public /var/lib/zerotier-one/identity.public |
||||
ADD monitor_identity.secret /var/lib/zerotier-one/identity.secret |
||||
ADD *.conf /var/lib/zerotier-one/networks.d/ |
||||
ADD *.conf / |
||||
ADD *.name / |
||||
|
||||
# Install LWIP library used by service |
||||
ADD liblwip.so /var/lib/zerotier-one/liblwip.so |
||||
|
||||
ADD hello.lua / |
||||
|
||||
ADD zerotier-one / |
||||
ADD zerotier-cli / |
||||
|
||||
# Start ZeroTier-One |
||||
ADD monitor_entrypoint.sh /monitor_entrypoint.sh |
||||
RUN chmod -v +x /monitor_entrypoint.sh |
||||
CMD ["./monitor_entrypoint.sh"] |
||||
@ -0,0 +1,56 @@
|
||||
#!/bin/bash |
||||
|
||||
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ |
||||
|
||||
|
||||
# --- Test Parameters --- |
||||
test_namefile=$(ls *.name) |
||||
test_name="${test_namefile%.*}" # test network id |
||||
nwconf=$(ls *.conf) # blank test network config file |
||||
nwid="${nwconf%.*}" # test network id |
||||
netcon_wait_time=25 # wait for test container to come online |
||||
app_timeout_time=15 # app-specific timeout |
||||
file_path=/opt/results/ # test result output file path (fs shared between host and containers) |
||||
file_base="$test_name".txt # test result output file |
||||
fail=FAIL. # appended to result file in event of failure |
||||
ok=OK. # appended to result file in event of success |
||||
tmp_ext=.tmp # temporary filetype used for sharing test data between containers |
||||
address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) |
||||
|
||||
|
||||
# --- Network Config --- |
||||
echo '*** ZeroTier Network Containers Test Monitor' |
||||
chown -R daemon /var/lib/zerotier-one |
||||
chgrp -R daemon /var/lib/zerotier-one |
||||
su daemon -s /bin/bash -c '/zerotier-one -d -U -p9993 >>/tmp/zerotier-one.out 2>&1' |
||||
virtip4="" |
||||
while [ -z "$virtip4" ]; do |
||||
sleep 0.2 |
||||
virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` |
||||
done |
||||
echo '*** Starting Test...' |
||||
echo '*** Up and running at' $virtip4 ' on network: ' $nwid |
||||
echo '*** Sleeping for (' "$netcon_wait_time" 's ) while we wait for the Network Container to come online...' |
||||
sleep "$netcon_wait_time"s |
||||
ncvirtip=$(<$address_file) |
||||
|
||||
|
||||
# --- Test section --- |
||||
echo '*** Running lua script against redis host at' $ncvirtip |
||||
redis-cli -h $ncvirtip EVAL "$(cat hello.lua)" 0 > redis_response.txt |
||||
response_string=$(<redis_response.txt) |
||||
|
||||
if [[ $response_string == *"welcome to the machine!"* ]] |
||||
then |
||||
echo 'REDIS RESPONSE OK' |
||||
touch "$file_path$ok$test_name.txt" |
||||
printf 'Test: redis-server responded!\n' >> "$file_path$ok$test_name.txt" |
||||
else |
||||
echo 'REDIS RESPONSE FAIL' |
||||
touch "$file_path$fail$test_name.txt" |
||||
printf 'Test: redis server did NOT respond!\n' >> "$file_path$fail$test_name.txt" |
||||
fi |
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
# ZT Network Containers Test |
||||
FROM fedora:23 |
||||
MAINTAINER https://www.zerotier.com/ |
||||
|
||||
# Install apps |
||||
RUN yum -y update |
||||
RUN yum -y install redis-3.0.4-1.fc23.x86_64 |
||||
RUN yum clean all |
||||
|
||||
# Add ZT files |
||||
RUN mkdir -p /var/lib/zerotier-one/networks.d |
||||
ADD sdk_identity.public /var/lib/zerotier-one/identity.public |
||||
ADD sdk_identity.secret /var/lib/zerotier-one/identity.secret |
||||
ADD *.conf /var/lib/zerotier-one/networks.d/ |
||||
ADD *.conf / |
||||
ADD *.name / |
||||
|
||||
EXPOSE 9993/udp 6379/udp |
||||
|
||||
# Install LWIP library used by service |
||||
ADD liblwip.so /var/lib/zerotier-one/liblwip.so |
||||
|
||||
# Install syscall intercept library |
||||
ADD libzerotierintercept.so / |
||||
RUN cp libzerotierintercept.so lib/libzerotierintercept.so |
||||
RUN ln -sf /lib/libzerotierintercept.so /lib/libzerotierintercept |
||||
|
||||
ADD zerotier-cli / |
||||
Add zerotier-sdk-service / |
||||
|
||||
# Install test scripts |
||||
ADD sdk_entrypoint.sh /sdk_entrypoint.sh |
||||
RUN chmod -v +x /sdk_entrypoint.sh |
||||
|
||||
# Start ZeroTier-One |
||||
CMD ["./sdk_entrypoint.sh"] |
||||
@ -0,0 +1,38 @@
|
||||
#!/bin/bash |
||||
|
||||
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/ |
||||
|
||||
|
||||
# --- Test Parameters --- |
||||
test_namefile=$(ls *.name) |
||||
test_name="${test_namefile%.*}" # test network id |
||||
nwconf=$(ls *.conf) # blank test network config file |
||||
nwid="${nwconf%.*}" # test network id |
||||
file_path=/opt/results/ # test result output file path (fs shared between host and containers) |
||||
file_base="$test_name".txt # test result output file |
||||
tmp_ext=.tmp # temporary filetype used for sharing test data between containers |
||||
address_file="$file_path$test_name"_addr"$tmp_ext" # file shared between host and containers for sharing address (optional) |
||||
|
||||
|
||||
# --- Network Config --- |
||||
echo '*** ZeroTier Network Containers Test: ' "$test_name" |
||||
chown -R daemon /var/lib/zerotier-one |
||||
chgrp -R daemon /var/lib/zerotier-one |
||||
su daemon -s /bin/bash -c '/zerotier-sdk-service -d -U -p9993 >>/tmp/zerotier-sdk-service.out 2>&1' |
||||
virtip4="" |
||||
while [ -z "$virtip4" ]; do |
||||
sleep 0.2 |
||||
virtip4=`/zerotier-cli listnetworks | grep -F $nwid | cut -d ' ' -f 9 | sed 's/,/\n/g' | grep -F '.' | cut -d / -f 1` |
||||
dev=`/zerotier-cli listnetworks | grep -F "" | cut -d ' ' -f 8 | cut -d "_" -f 2 | sed "s/^<dev>//" | tr '\n' '\0'` |
||||
done |
||||
echo '*** Up and running at' $virtip4 ' on network: ' $nwid |
||||
echo '*** Writing address to ' "$address_file" |
||||
echo $virtip4 > "$address_file" |
||||
|
||||
# --- Test section --- |
||||
echo '*** Starting application...' |
||||
sleep 0.5 |
||||
|
||||
export ZT_NC_NETWORK=/var/lib/zerotier-one/nc_"$dev" |
||||
export LD_PRELOAD=./libzerotierintercept.so |
||||
/usr/bin/redis-server --port 6379 |
||||
Loading…
Reference in new issue