Skip to content

Commit 658d944

Browse files
committed
Merge pull request #2598 from carmstrong/test_dump_all_logs
feat(tests): dump all component and app unit logs on failure
2 parents e36ee32 + 38e8e29 commit 658d944

1 file changed

Lines changed: 62 additions & 10 deletions

File tree

tests/bin/test-setup.sh

Lines changed: 62 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +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
102-
fleetctl -strict-host-key-checking=false ssh deis-controller etcdctl ls / --recursive
103-
fleetctl -strict-host-key-checking=false ssh deis-controller docker logs deis-controller
104-
fleetctl -strict-host-key-checking=false ssh deis-registry docker logs deis-registry
105-
fleetctl -strict-host-key-checking=false ssh deis-builder docker logs deis-builder
106-
fleetctl -strict-host-key-checking=false ssh deis-logger docker logs deis-logger
107-
fleetctl -strict-host-key-checking=false ssh deis-router@1 docker logs deis-router
108-
fleetctl -strict-host-key-checking=false ssh deis-router@2 docker logs deis-router
109-
fleetctl -strict-host-key-checking=false ssh deis-router@3 docker logs deis-router
110-
set +x
104+
# application unit logs
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
113+
# etcd keyspace
114+
get_logs deis-controller "etcdctl ls / --recursive" etcdctl-dump
115+
# component logs
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
124+
# deis-store logs
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
111150
exit 1
112151
}
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)