@@ -95,18 +95,70 @@ function cleanup {
9595
9696function 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