|
@@ 289-312 (lines=24) @@
|
| 286 |
|
|
| 287 |
|
return children |
| 288 |
|
|
| 289 |
|
def get_connections(self, filters=None): |
| 290 |
|
filters = filters or {} |
| 291 |
|
connections = [] |
| 292 |
|
|
| 293 |
|
for c in psutil.net_connections('all'): |
| 294 |
|
conn = { |
| 295 |
|
'fd': c.fd, |
| 296 |
|
'pid': c.pid, |
| 297 |
|
'family': socket_families[c.family], |
| 298 |
|
'type': socket_types[c.type], |
| 299 |
|
'local_addr_host': c.laddr[0] if c.laddr else None, |
| 300 |
|
'local_addr_port': c.laddr[1] if c.laddr else None, |
| 301 |
|
'remote_addr_host': c.raddr[0] if c.raddr else None, |
| 302 |
|
'remote_addr_port': c.raddr[1] if c.raddr else None, |
| 303 |
|
'state': c.status |
| 304 |
|
} |
| 305 |
|
|
| 306 |
|
for k, v in filters.iteritems(): |
| 307 |
|
if v and conn.get(k) != v: |
| 308 |
|
break |
| 309 |
|
else: |
| 310 |
|
connections.append(conn) |
| 311 |
|
|
| 312 |
|
return connections |
| 313 |
|
|
| 314 |
|
def get_logs(self): |
| 315 |
|
available_logs = [] |
|
@@ 254-270 (lines=17) @@
|
| 251 |
|
proc = psutil.Process(pid) |
| 252 |
|
return [f._asdict() for f in proc.open_files()] |
| 253 |
|
|
| 254 |
|
def get_process_connections(self, pid): |
| 255 |
|
proc = psutil.Process(pid) |
| 256 |
|
connections = [] |
| 257 |
|
for c in proc.connections(kind='all'): |
| 258 |
|
conn = { |
| 259 |
|
'fd': c.fd, |
| 260 |
|
'family': socket_families[c.family], |
| 261 |
|
'type': socket_types[c.type], |
| 262 |
|
'local_addr_host': c.laddr[0] if c.laddr else None, |
| 263 |
|
'local_addr_port': c.laddr[1] if c.laddr else None, |
| 264 |
|
'remote_addr_host': c.raddr[0] if c.raddr else None, |
| 265 |
|
'remote_addr_port': c.raddr[1] if c.raddr else None, |
| 266 |
|
'state': c.status |
| 267 |
|
} |
| 268 |
|
connections.append(conn) |
| 269 |
|
|
| 270 |
|
return connections |
| 271 |
|
|
| 272 |
|
def get_process_memory_maps(self, pid): |
| 273 |
|
return [m._asdict() for m in psutil.Process(pid).memory_maps()] |