import pwd
import os
class ProcessManager(object):
def get_process_from_user(self, pids, username):
"""
Return only the pids belonging to certain username.
"""
filtered_pids = [
pid for pid in pids if os.path.isdir('/proc/%s' % pid) \
if self.get_owner_name('/proc/%s' % pid) == username
]
return filtered_pids
def get_owner_name(self, pid):
"""
Return the owner name of the passed pid.
"""
try:
return pwd.getpwuid(os.stat(pid).st_uid)[0]
except os.error:
return None
def filter_non_pid_process(self, process_list):
"""
Filter non pid process from the list, by checking that they are
castable to integers.
"""
return list(filter(str.isdigit, process_list))