Skip to content

Commit

Permalink
Add some helper tools for viewing saved summaries
Browse files Browse the repository at this point in the history
  • Loading branch information
dosaboy committed Oct 9, 2023
1 parent d745b1a commit 5fda435
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 1 deletion.
11 changes: 11 additions & 0 deletions tools/summary/diff.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash
src=${1:-""}
dst=${2:-""}
if [[ -z $src ]] || [[ -z $dst ]]; then
echo "USAGE: `basename $0` <src dir> <dst dir>"
exit
fi

for f in `find $src -maxdepth 1 -name *summary.yaml`; do
diff -y $dst/$f $f| less
done
9 changes: 9 additions & 0 deletions tools/summary/issues-and-bugs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
path=${1:-hotsos-output}
for f in `find $path -maxdepth 1 -name *summary.json`; do
clear
jq -r '"\nHostname: " + .system.hostname,
"Issues:", (.[]|to_entries[]|select(.key=="potential-issues")|.value|to_entries[]|.key, .value),
"Bugs:", (.[]|to_entries[]|select(.key=="known-bugs")|.value|to_entries[]|.key, .value)' $f
read -p "Next? [ENTER]"
done
5 changes: 5 additions & 0 deletions tools/summary/less-all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
path=${1:-hotsos-output}
for f in `find $path -maxdepth 1 -name *summary.yaml`; do
less $f
done
62 changes: 62 additions & 0 deletions tools/summary/view.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env python3
import glob
import os
import json
import sys
import subprocess

PLUGIN_NAMES = ['juju', 'mysql', 'openstack', 'openvswitch', 'system',
'maas', 'kernel', 'kubernetes', 'rabbitmq', 'sosreport',
'storage', 'vault', 'pacemaker']

if __name__ == "__main__":
if len(sys.argv) > 1:
path = os.path.join(sys.argv[1], '*.json')
else:
path = '*.json'

for f in glob.glob(path):
with open(f) as fd:
subprocess.call(['clear'])
s = json.loads(fd.read())
print("host: {} ".format(s['system']['hostname']))
print("date: {}".format(s['system']['date']))
_enabled = []
_services = {}
_has_bugs = {}
_has_potential_issues = {}
for plugin in PLUGIN_NAMES:
if plugin in s:
_enabled.append(plugin)
if 'services' in s[plugin]:
enabled = s[plugin]['services']
enabled = enabled.get('systemd', {})
_services[plugin] = enabled.get('enabled')

if 'known-bugs' in s[plugin]:
_has_bugs.update(s[plugin]['known-bugs'])

if 'potential-issues' in s[plugin]:
_has_potential_issues.update(
s[plugin]['potential-issues'])

# print("enabled: {}".format(', '.join(sorted(_enabled))))
print("services:")
for plugin, svcs in _services.items():
print(" {}: {}".format(plugin, ', '.join(svcs)))

if _has_bugs:
print("bugs:")
for btype, content in _has_bugs.items():
print(" {}: {}\n".format(btype, '\n'.join(content)))

if _has_potential_issues:
print("issues:")
for btype, content in _has_potential_issues.items():
print(" {}:".format(btype))
for msg in content:
print(" {}".format(msg))

input("\nNext? [ENTER]")

print("")
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ setenv = VIRTUAL_ENV={envdir}
TERM=linux
HOTSOS_ROOT={toxinidir}/hotsos
TESTS_DIR={[testenv]unit_tests}
PYFILES={toxinidir}/setup.py {toxinidir}/hotsos/ {[testenv]unit_tests}
PYFILES={toxinidir}/setup.py {toxinidir}/hotsos/ {[testenv]unit_tests} {toxinidir}/tools
non-utc-tz: TZ=EST+5
deps =
-r{toxinidir}/requirements.txt
Expand Down

0 comments on commit 5fda435

Please sign in to comment.