@@ -95,44 +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
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