summaryrefslogtreecommitdiffstats
path: root/glances/processes.py
diff options
context:
space:
mode:
Diffstat (limited to 'glances/processes.py')
-rw-r--r--glances/processes.py31
1 files changed, 18 insertions, 13 deletions
diff --git a/glances/processes.py b/glances/processes.py
index 1c9d1de5..7ba12eb7 100644
--- a/glances/processes.py
+++ b/glances/processes.py
@@ -12,7 +12,7 @@ import os
from glances.globals import BSD, LINUX, MACOS, WINDOWS, iterkeys
from glances.globals import namedtuple_to_dict, list_of_namedtuple_to_list_of_dict
from glances.timer import Timer, getTimeSinceLastUpdate
-from glances.filter import GlancesFilter
+from glances.filter import GlancesFilterList, GlancesFilter
from glances.programs import processes_to_programs
from glances.logger import logger
@@ -69,8 +69,9 @@ class GlancesProcesses(object):
# Cache is a dict with key=pid and value = dict of cached value
self.processlist_cache = {}
- # List of processes stats to export (filtred by the _filter_export)
- self._filter_export = GlancesFilter()
+ # List of processes stats to export
+ # Only process matching one of the filter will be exported
+ self._filter_export = GlancesFilterList()
self.processlist_export = []
# Tag to enable/disable the processes stats (to reduce the Glances CPU consumption)
@@ -106,7 +107,7 @@ class GlancesProcesses(object):
# Maximum number of processes showed in the UI (None if no limit)
self._max_processes = None
- # Process filter is a regular expression
+ # Process filter
self._filter = GlancesFilter()
# Whether or not to hide kernel threads
@@ -237,13 +238,13 @@ class GlancesProcesses(object):
@property
def export_process_filter(self):
- """Get the export process filter (current export filter)."""
+ """Get the export process filter (current export process filter list)."""
return self._filter_export.filter
@export_process_filter.setter
def export_process_filter(self, value):
- """Set the export process filter."""
- self._filter_export.filter = '|'.join(value.split(','))
+ """Set the export process filter list."""
+ self._filter_export.filter = value
# Kernel threads
@@ -502,12 +503,12 @@ class GlancesProcesses(object):
except KeyError:
pass
- # Filter and transform process list
- processlist = self.update_list(processlist)
-
# Filter and transform process export list
self.processlist_export = self.update_export_list(processlist)
+ # Filter and transform process list
+ processlist = self.update_list(processlist)
+
# Compute the maximum value for keys in self._max_values_list: CPU, MEM
# Useful to highlight the processes with maximum values
for k in self._max_values_list:
@@ -522,14 +523,18 @@ class GlancesProcesses(object):
def update_list(self, processlist):
"""Return the process list after filtering and transformation (namedtuple to dict)."""
- ret = list(filter(lambda p: not self._filter.is_filtered(p), processlist))
+ if self._filter.filter is None:
+ return list_of_namedtuple_to_list_of_dict(processlist)
+ ret = list(filter(lambda p: self._filter.is_filtered(p),
+ processlist))
return list_of_namedtuple_to_list_of_dict(ret)
def update_export_list(self, processlist):
"""Return the process export list after filtering and transformation (namedtuple to dict)."""
- if self._filter_export.filter is None:
+ if self._filter_export.filter == []:
return []
- ret = list(filter(lambda p: not self._filter_export.is_filtered(p), processlist))
+ ret = list(filter(lambda p: self._filter_export.is_filtered(p),
+ processlist))
return list_of_namedtuple_to_list_of_dict(ret)
def get_count(self):