
* Introduce module psutil_wrapper to handle backward compatibility. * Lower psutil constraint to psutil>=1.1.1 Change-Id: I9575cf4bdff29f3b35725c2bd21bb73752a5cfaf
140 lines
3.6 KiB
Python
140 lines
3.6 KiB
Python
# Copyright 2017 Fujitsu LIMITED
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from collections import namedtuple
|
|
|
|
import psutil as psutil_orig
|
|
|
|
|
|
sconn = namedtuple('sconn', ['fd', 'family', 'type', 'laddr', 'raddr',
|
|
'status', 'pid'])
|
|
|
|
psutil = psutil_orig
|
|
|
|
|
|
def cpu_count(logical=True):
|
|
if logical:
|
|
return psutil.NUM_CPUS
|
|
else:
|
|
raise NotImplementedError
|
|
|
|
|
|
def net_connections(kind='inet'):
|
|
ret = set()
|
|
for p in psutil.process_iter():
|
|
try:
|
|
for c in p.connections(kind):
|
|
conn = sconn(c.fd, c.family, c.type, c.laddr, c.raddr,
|
|
c.status, p.pid)
|
|
ret.add(conn)
|
|
except (psutil.AccessDenied, psutil.NoSuchProcess):
|
|
pass
|
|
return list(ret)
|
|
|
|
|
|
def children(self, recursive=False):
|
|
return psutil.Process.get_children(self, recursive=recursive)
|
|
|
|
|
|
def connections(self, kind='inet'):
|
|
return psutil.Process.get_connections(self, kind=kind)
|
|
|
|
|
|
def cpu_affinity(self, cpus=None):
|
|
return psutil.Process.get_cpu_affinity(self)
|
|
|
|
|
|
def cpu_percent(self, interval=None):
|
|
return psutil.Process.get_cpu_percent(self, interval=interval)
|
|
|
|
|
|
def cpu_times(self):
|
|
return psutil.Process.get_cpu_times(self)
|
|
|
|
|
|
def memory_info_ex(self):
|
|
return psutil.Process.get_ext_memory_info(self)
|
|
|
|
|
|
def io_counters(self):
|
|
return psutil.Process.get_io_counters(self)
|
|
|
|
|
|
def ionice(self, ioclass=None, value=None):
|
|
return psutil.Process.get_ionice(self)
|
|
|
|
|
|
def memory_info(self):
|
|
return psutil.Process.get_memory_info(self)
|
|
|
|
|
|
def memory_maps(self, grouped=True):
|
|
return psutil.Process.get_memory_maps(self, grouped=grouped)
|
|
|
|
|
|
def memory_percent(self):
|
|
return psutil.Process.get_memory_percent(self)
|
|
|
|
|
|
def nice(self, value=None):
|
|
return psutil.Process.get_nice(self)
|
|
|
|
|
|
def num_ctx_switches(self):
|
|
return psutil.Process.get_num_ctx_switches(self)
|
|
|
|
|
|
def num_fds(self):
|
|
return psutil.Process.get_num_fds(self)
|
|
|
|
|
|
def num_threads(self):
|
|
return psutil.Process.get_num_threads(self)
|
|
|
|
|
|
def open_files(self):
|
|
return psutil.Process.get_open_files(self)
|
|
|
|
|
|
def threads(self):
|
|
return psutil.Process.get_threads(self)
|
|
|
|
|
|
def cwd(self):
|
|
return psutil.Process.getcwd(self)
|
|
|
|
|
|
if psutil.version_info < (2, 0):
|
|
psutil.cpu_count = cpu_count
|
|
psutil.Process.children = children
|
|
psutil.Process.connections = connections
|
|
psutil.Process.cpu_affinity = cpu_affinity
|
|
psutil.Process.cpu_percent = cpu_percent
|
|
psutil.Process.cpu_times = cpu_times
|
|
psutil.Process.memory_info_ex = memory_info_ex
|
|
psutil.Process.io_counters = io_counters
|
|
psutil.Process.ionice = ionice
|
|
psutil.Process.memory_info = memory_info
|
|
psutil.Process.memory_maps = memory_maps
|
|
psutil.Process.memory_percent = memory_percent
|
|
psutil.Process.nice = nice
|
|
psutil.Process.num_ctx_switches = num_ctx_switches
|
|
psutil.Process.num_fds = num_fds
|
|
psutil.Process.num_threads = num_threads
|
|
psutil.Process.open_files = open_files
|
|
psutil.Process.threads = threads
|
|
psutil.Process.cwd = cwd
|
|
|
|
if psutil.version_info < (2, 1):
|
|
psutil.net_connections = net_connections
|