test-upload-logs-swift: Add missing template for test
I forgot to "git add" this file in Id91350ff1c531fd7266f3bf76681a8415941481f. Change-Id: Ia6af42a7d9062fa7895f3b6901a0fa1e8646e8b9
This commit is contained in:
parent
ce67cef122
commit
9a8cc2a1c0
57
roles/test-upload-logs-swift/templates/download-logs.sh.j2
Normal file
57
roles/test-upload-logs-swift/templates/download-logs.sh.j2
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Download all logs
|
||||
|
||||
#
|
||||
# To use this file
|
||||
#
|
||||
# curl "{{ base_url }}/download-logs.sh" | bash
|
||||
#
|
||||
# Logs will be copied in a temporary directory as described in the
|
||||
# output. Set DOWNLOAD_DIR to an empty directory if you wish to
|
||||
# override this.
|
||||
#
|
||||
|
||||
BASE_URL={{ base_url }}
|
||||
|
||||
function log {
|
||||
echo "$(date -Iseconds) | $@"
|
||||
}
|
||||
|
||||
function save_file {
|
||||
local file="$1"
|
||||
|
||||
curl -s --compressed --create-dirs -o "${file}" "${BASE_URL}/${file}"
|
||||
|
||||
# Using --compressed we will send an Accept-Encoding: gzip header
|
||||
# and the data will come to us across the network compressed.
|
||||
# However, sometimes things like OpenStack's log server will send
|
||||
# .gz files (as stored on its disk) uncompressed, so we check if
|
||||
# this really looks like an ASCII file and rename for clarity.
|
||||
if [[ "${file}" == *.gz ]]; then
|
||||
local type=$(file "${file}")
|
||||
if [[ "${type}" =~ "ASCII text" ]] || [[ "${type}" =~ "Unicode text" ]]; then
|
||||
local new_name=${file%.gz}
|
||||
log "Renaming to ${new_name}"
|
||||
mv "${file}" "${new_name}"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
if [[ -z "${DOWNLOAD_DIR}" ]]; then
|
||||
DOWNLOAD_DIR=$(mktemp -d --tmpdir zuul-logs.XXXXXX)
|
||||
fi
|
||||
log "Saving logs to ${DOWNLOAD_DIR}"
|
||||
|
||||
pushd "${DOWNLOAD_DIR}" > /dev/null
|
||||
|
||||
{% set total_files = file_list | length %}
|
||||
{% for file in file_list %}
|
||||
log "Getting ${BASE_URL}/{{ '%-80s'|format(file) }} [ {{ '%04d'|format(loop.index) }} / {{ '%04d'|format(total_files) }} ]"
|
||||
save_file "{{ file }}"
|
||||
{% endfor %}
|
||||
|
||||
popd >/dev/null
|
||||
|
||||
log "Download complete!"
|
Loading…
Reference in New Issue
Block a user