Make pupyps more compatible

This commit is contained in:
Oleksii Shevchuk 2018-01-05 23:34:42 +02:00
parent 26a4f5a5f3
commit feb0c674e4
3 changed files with 31 additions and 14 deletions

View File

@ -36,10 +36,13 @@ class IPModule(PupyModule):
continue
color = ""
if addr in data['stats'] and not data['stats'][addr].get('isup'):
color = 'darkgrey'
elif not any([ x.get('family') == socket.AF_INET for x in addresses ]):
color = 'grey'
if 'stats' in data and data['stats']:
if addr in data['stats'] and not data['stats'][addr].get('isup'):
color = 'darkgrey'
elif not any([ x.get('family') == socket.AF_INET for x in addresses ]):
color = 'grey'
else:
color = 'white'
self.stdout.write(colorize(addr.ljust(addrlen), color or 'cyan'))
first = True

View File

@ -65,7 +65,8 @@ def gen_columns(record, colinfo):
columns['memory_percent'] = '{:3}%'.format(int(mem)) if mem is not None else ' '*4
if colinfo:
columns['username'] = '{{:{}}}'.format(colinfo['username']).format(columns['username'])
if 'username' in colinfo:
columns['username'] = '{{:{}}}'.format(colinfo['username']).format(columns['username'])
columns['pid'] = '{{:{}}}'.format(colinfo['pid']).format(record['pid'])
else:
columns['pid'] = '{}'.format(parent)

View File

@ -198,21 +198,34 @@ def connections():
return connections
def _tryint(x):
try:
return int(x)
except:
return str(x)
def interfaces():
return {
'addrs': {
try:
addrs = {
x:[
{ k:v for k,v in z.__dict__.iteritems() } for z in y
{ k:_tryint(getattr(z,k)) for k in dir(z) if not k.startswith('_') } for z in y
] for x,y in psutil.net_if_addrs().iteritems()
},
'stats': {
}
except:
addrs = None
try:
stats = {
x:{
k:v for k,v in (
y.__dict__.iteritems() if hasattr(y, '__dict__') else
zip(('isup', 'duplex', 'speed', 'mtu'), y)
)
k:_tryint(getattr(y,k)) for k in dir(y) if not k.startswith('_')
} for x,y in psutil.net_if_stats().iteritems()
}
except:
stats = None
return {
'addrs': addrs,
'stats': stats
}
def cstring(string):