From 7a45ecb1f8ecd00e025317f75be69645945aa0c4 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Wed, 29 May 2013 19:08:10 +0200 Subject: hostinfo: print keys of list elements --- bin/hostinfo | 11 ++++++++--- 1 file 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) -- cgit v1.2.3-1-g7c22