diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-29 19:08:10 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-29 19:08:10 +0200 |
commit | 7a45ecb1f8ecd00e025317f75be69645945aa0c4 (patch) | |
tree | 4a2fb1fc20abcb44b827e7a8752df0c08b617a84 /bin | |
parent | b5a43bd59f225e56ac6edebc86c24afc4b117746 (diff) | |
download | tools-7a45ecb1f8ecd00e025317f75be69645945aa0c4.tar.gz tools-7a45ecb1f8ecd00e025317f75be69645945aa0c4.tar.bz2 tools-7a45ecb1f8ecd00e025317f75be69645945aa0c4.zip |
hostinfo: print keys of list elements0.1.10
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/hostinfo | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/bin/hostinfo b/bin/hostinfo index d24fdaf..e10bf5f 100755 --- a/bin/hostinfo +++ b/bin/hostinfo @@ -26,20 +26,25 @@ def print_info(path, key=None, flags=list()): def print_keys(path): def _print_keys(data, prefix = ''): + if isinstance(data, str): + return + for key in data.keys(): print "%s%s" % (prefix, key) if key == 'addresses': for k in set([a['interface'] for a in data[key]]): print "%s%s.%s" % (prefix, key, k) - if key == 'ports': + elif key == 'ports': for k in set([p['process'] for p in data[key] if 'process' in p]): print "%s%s.%s" % (prefix, key, k) if len([p for p in data[key] if 'process' not in p]) > 0: print "%s%s.%s" % (prefix, key, 'UNKNOWN') - - if isinstance(data[key], dict): + elif isinstance(data[key], dict): _print_keys(data[key], "%s%s." % (prefix, key)) + elif isinstance(data[key], list): + for v in data[key]: + _print_keys(v, "%s%s." % (prefix, key)) data = _get_data(path) _print_keys(data) |