summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolargo <nicolas@nicolargo.com>2023-01-08 17:45:47 +0100
committernicolargo <nicolas@nicolargo.com>2023-01-08 17:45:47 +0100
commitb715fc2aba0cbd6d21264f2c87896a3f5086b0d6 (patch)
tree48e4fbe5733766b215ffd827a28f3a90d2c5c78e
parentbf46e85e1ccd3f5ebcec2f9e86051ec4c5c702a2 (diff)
First version only for threads, not programs
-rw-r--r--glances/outputs/glances_curses.py2
-rw-r--r--glances/plugins/glances_processlist.py14
-rw-r--r--glances/processes.py21
3 files changed, 25 insertions, 12 deletions
diff --git a/glances/outputs/glances_curses.py b/glances/outputs/glances_curses.py
index debdd8b8..3b23ace0 100644
--- a/glances/outputs/glances_curses.py
+++ b/glances/outputs/glances_curses.py
@@ -410,7 +410,7 @@ class _GlancesCurses(object):
elif self.pressedkey == ord('9'):
# '9' > Theme from black to white and reverse
self._init_colors()
- elif self.pressedkey == ord('e'):
+ elif self.pressedkey == ord('e') and not self.args.programs:
# 'e' > Enable/Disable process extended
self.args.enable_process_extended = not self.args.enable_process_extended
if not self.args.enable_process_extended:
diff --git a/glances/plugins/glances_processlist.py b/glances/plugins/glances_processlist.py
index 9b10699d..96872a4b 100644
--- a/glances/plugins/glances_processlist.py
+++ b/glances/plugins/glances_processlist.py
@@ -19,7 +19,6 @@ from glances.processes import glances_processes, sort_stats
from glances.outputs.glances_unicode import unicode_message
from glances.plugins.glances_core import Plugin as CorePlugin
from glances.plugins.glances_plugin import GlancesPlugin
-from glances.programs import processes_to_programs
from glances.outputs.glances_bars import Bar
@@ -147,9 +146,10 @@ class Plugin(GlancesPlugin):
# Update stats using the standard system lib
# Note: Update is done in the processcount plugin
# Just return the processes list
- stats = glances_processes.getlist()
if self.args.programs:
- stats = processes_to_programs(stats)
+ stats = glances_processes.getlist(as_programs=True)
+ else:
+ stats = glances_processes.getlist()
elif self.input_method == 'snmp':
# No SNMP grab for processes
@@ -639,7 +639,13 @@ class Plugin(GlancesPlugin):
msg, sort_style if process_sort_key == 'io_counters' else 'DEFAULT', optional=True, additional=True
)
)
- shortkey = "('e' to pin | 'k' to kill)" if args.is_standalone and not args.disable_cursor else ""
+ if args.is_standalone and not args.disable_cursor:
+ if self.args.programs:
+ shortkey = "('k' to kill)"
+ else:
+ shortkey = "('e' to pin | 'k' to kill)"
+ else:
+ shortkey = ""
msg = self.layout_header['command'].format("Programs" if self.args.programs else "Command",
shortkey)
ret.append(self.curse_add_line(msg, sort_style if process_sort_key == 'name' else 'DEFAULT'))
diff --git a/glances/processes.py b/glances/processes.py
index c50b89fe..9504f137 100644
--- a/glances/processes.py
+++ b/glances/processes.py
@@ -13,6 +13,7 @@ from glances.compat import iterkeys
from glances.globals import BSD, LINUX, MACOS, WINDOWS
from glances.timer import Timer, getTimeSinceLastUpdate
from glances.filter import GlancesFilter
+from glances.programs import processes_to_programs
from glances.logger import logger
import psutil
@@ -330,9 +331,10 @@ class GlancesProcesses(object):
ret['extended_stats'] = True
return ret
- def is_selected_process(self, position):
- """Return True if the process is the selected one."""
- return hasattr(self.args, 'enable_process_extended') and \
+ def is_selected_extended_process(self, position):
+ """Return True if the process is the selected one for extended stats."""
+ return not self.args.programs and \
+ hasattr(self.args, 'enable_process_extended') and \
self.args.enable_process_extended and \
not self.disable_extended_tag and \
hasattr(self.args, 'cursor_position') and \
@@ -403,7 +405,7 @@ class GlancesProcesses(object):
################
# Get the selected process when the 'e' key is pressed
- if self.is_selected_process(position):
+ if self.is_selected_extended_process(position):
self.extended_process = proc
# Grab extended stats only for the selected process (see issue #2225)
@@ -481,9 +483,14 @@ class GlancesProcesses(object):
"""Get the number of processes."""
return self.processcount
- def getlist(self, sorted_by=None):
- """Get the processlist."""
- return self.processlist
+ def getlist(self, sorted_by=None, as_programs=False):
+ """Get the processlist.
+ By default, return the list of threads.
+ If as_programs is True, return the list of programs."""
+ if as_programs:
+ return processes_to_programs(self.processlist)
+ else:
+ return self.processlist
@property
def sort_key(self):