Skip to content

Commit 38e8e29

Browse files
committed
feat(tests): upload dumped logs to S3
1 parent 4a1c1f9 commit 38e8e29

1 file changed

Lines changed: 58 additions & 32 deletions

File tree

tests/bin/test-setup.sh

Lines changed: 58 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -95,44 +95,70 @@ function cleanup {
9595

9696
function dump_logs {
9797
log_phase "Error detected, dumping logs"
98+
TIMESTAMP=`date +%Y-%m-%d-%H%M%S`
99+
FAILED_LOGS_DIR=$HOME/jenkins-$TIMESTAMP
100+
mkdir -p $FAILED_LOGS_DIR
98101
set +e
99102
export FLEETCTL_TUNNEL=$DEISCTL_TUNNEL
100-
set -x
101103
fleetctl -strict-host-key-checking=false list-units
102104
# application unit logs
103-
fleetctl -strict-host-key-checking=false ssh appssample_v2.web.1 docker logs appssample_v2.web.1
104-
fleetctl -strict-host-key-checking=false ssh appssample_v2.run.1 docker logs appssample_v2.run.1
105-
fleetctl -strict-host-key-checking=false ssh buildsample_v2.web.1 docker logs buildsample_v2.web.1
106-
fleetctl -strict-host-key-checking=false ssh buildsample_v3.cmd.1 docker logs buildsample_v3.cmd.1
107-
fleetctl -strict-host-key-checking=false ssh deispullsample_v2.cmd.1 docker logs deispullsample_v2.cmd.1
108-
fleetctl -strict-host-key-checking=false ssh deispullsample_v2.worker.1 docker logs deispullsample_v2.worker.1
109-
fleetctl -strict-host-key-checking=false ssh pssample_v2.worker.1 docker logs pssample_v2.worker.1
110-
fleetctl -strict-host-key-checking=false ssh pssample_v2.worker.2 docker logs pssample_v2.worker.2
105+
get_logs appssample_v2.web.1
106+
get_logs appssample_v2.run.1
107+
get_logs buildsample_v2.web.1
108+
get_logs buildsample_v3.cmd.1
109+
get_logs deispullsample_v2.cmd.1
110+
get_logs deispullsample_v2.worker.1
111+
get_logs pssample_v2.worker.1
112+
get_logs pssample_v2.worker.2
111113
# etcd keyspace
112-
fleetctl -strict-host-key-checking=false ssh deis-controller etcdctl ls / --recursive
114+
get_logs deis-controller "etcdctl ls / --recursive" etcdctl-dump
113115
# component logs
114-
fleetctl -strict-host-key-checking=false ssh deis-builder docker logs deis-builder
115-
fleetctl -strict-host-key-checking=false ssh deis-controller docker logs deis-controller
116-
fleetctl -strict-host-key-checking=false ssh deis-database docker logs deis-database
117-
fleetctl -strict-host-key-checking=false ssh deis-logger docker logs deis-logger
118-
fleetctl -strict-host-key-checking=false ssh deis-registry docker logs deis-registry
119-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-router
120-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-router
121-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-router
116+
get_logs deis-builder
117+
get_logs deis-controller
118+
get_logs deis-database
119+
get_logs deis-logger
120+
get_logs deis-registry
121+
get_logs deis-router@1 deis-router deis-router-1
122+
get_logs deis-router@2 deis-router deis-router-2
123+
get_logs deis-router@3 deis-router deis-router-3
122124
# deis-store logs
123-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-store-monitor
124-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-store-daemon
125-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-store-metadata
126-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-store-volume
127-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-store-monitor
128-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-store-daemon
129-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-store-metadata
130-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-store-volume
131-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-store-monitor
132-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-store-daemon
133-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-store-metadata
134-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-store-volume
135-
fleetctl -strict-host-key-checking=false ssh deis-store-gateway docker logs deis-store-gateway
136-
set +x
125+
get_logs deis-router@1 deis-store-monitor deis-store-monitor-1
126+
get_logs deis-router@1 deis-store-daemon deis-store-daemon-1
127+
get_logs deis-router@1 deis-store-metadata deis-store-metadata-1
128+
get_logs deis-router@1 deis-store-volume deis-store-volume-1
129+
get_logs deis-router@2 deis-store-monitor deis-store-monitor-2
130+
get_logs deis-router@2 deis-store-daemon deis-store-daemon-2
131+
get_logs deis-router@2 deis-store-metadata deis-store-metadata-2
132+
get_logs deis-router@2 deis-store-volume deis-store-volume-2
133+
get_logs deis-router@3 deis-store-monitor deis-store-monitor-3
134+
get_logs deis-router@3 deis-store-daemon deis-store-daemon-3
135+
get_logs deis-router@3 deis-store-metadata deis-store-metadata-3
136+
get_logs deis-router@3 deis-store-volume deis-store-volume-3
137+
get_logs deis-store-gateway
138+
139+
# tarball logs
140+
BUCKET=jenkins-failure-logs
141+
FILENAME=$BUCKET-$TIMESTAMP.tar.gz
142+
cd $FAILED_LOGS_DIR && tar -czf $FILENAME *.log && mv $FILENAME .. && cd ..
143+
rm -rf $FAILED_LOGS_DIR
144+
if [ `which s3cmd` ] && [ -f $HOME/.s3cfg ]; then
145+
echo "configured s3cmd found in path. Attempting to upload logs to S3"
146+
s3cmd put $HOME/$FILENAME s3://$BUCKET
147+
rm $HOME/$FILENAME
148+
echo "Logs can be viewed here: https://s3.amazonaws.com/$BUCKET/$FILENAME"
149+
fi
137150
exit 1
138151
}
152+
153+
function get_logs {
154+
TARGET="$1"
155+
CONTAINER="$2"
156+
FILENAME="$3"
157+
if [ -z "$CONTAINER" ]; then
158+
CONTAINER=$TARGET
159+
fi
160+
if [ -z "$FILENAME" ]; then
161+
FILENAME=$TARGET
162+
fi
163+
fleetctl -strict-host-key-checking=false ssh "$TARGET" docker logs "$CONTAINER" > $FAILED_LOGS_DIR/$FILENAME.log
164+
}

0 commit comments

Comments
 (0)