Last active
September 5, 2018 13:17
-
-
Save dosaboy/bbd9db9794b9b57998581ea351f28598 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash -eu | |
| # | |
| # Authors: | |
| # - [email protected] | |
| # - [email protected] | |
| # | |
| # Description: | |
| # Look for most recent capabilites updates from each backend in cinder | |
| # scheduler logs and display their capacity counts. | |
| # | |
| # Requires: | |
| # - jq | |
| # | |
| keys=( | |
| "Updating capabilities for" | |
| "Received volume service update from" # >= queens | |
| ) | |
| keyfilter=$(for k in "${keys[@]}"; do echo -n "$k|"; done| sed -r 's/\|$//g') | |
| backends=( | |
| ) | |
| __backends=( | |
| ) | |
| readarray -t logs<<<"`ls -t /var/log/cinder/cinder-scheduler.log*`" | |
| for log in ${logs[@]}; do | |
| readarray -t _backends<<<"`egrep "$keyfilter" $log | sed -r 's/.+ ([[:alnum:]]+@[[:alnum:]\-]+)(#[[:alnum:]\-]+)?: .+/\1/g;t;d'| sort| uniq`" | |
| __backends+=( ${_backends[@]} ) | |
| done | |
| readarray -t backends<<<`echo ${__backends[@]}| sed -r 's/\s+/\n/g'| sort | uniq` | |
| echo "${#backends[@]} backend(s)" | |
| echo "${backends[@]}" | |
| for backend in "${backends[@]}"; do | |
| echo "==== Volume backend '$backend' ====" | |
| for key in "${keys[@]}"; do | |
| for log in ${logs[@]}; do | |
| `grep -q "$key" $log` || { echo "key '$key' not found in $log"; continue; } | |
| line="`grep "$key" $log| tail -n 1`" | |
| echo "Key=\"$key $backend\"" | |
| echo $line| sed -r "s/.+$key ([^\s]+): (\{.+\}).+/____\2____/g;t;d"| sed -r "s/'/\"/g"| sed -r "s/____//g"| sed -r 's/u"/"/g'| sed -r 's/None/null/g' | \ | |
| sed -r -e 's/False/false/g' -e 's/True/true/g' -e 's/(datetime\.datetime\(.+\))/"\1"/g'| \ | |
| jq 'with_entries(select([.key] | inside(["provisioned_capacity_gb", "allocated_capacity_gb", "free_capacity_gb", "total_capacity_gb"])))' | |
| break | |
| done | |
| done | |
| done | |
| echo "Done." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment