@@ -848,6 +848,7 @@ DELAY_DEFAULT = 3.0
848
848
MAX_GUEST_NAME_LEN = 48
849
849
MAX_REGEX_LEN = 44
850
850
DEFAULT_REGEX = r'^[^\(]*$'
851
+ SORT_DEFAULT = 0
851
852
852
853
853
854
class Tui (object ):
@@ -857,6 +858,7 @@ class Tui(object):
857
858
self .screen = None
858
859
self ._delay_initial = 0.25
859
860
self ._delay_regular = DELAY_DEFAULT
861
+ self ._sorting = SORT_DEFAULT
860
862
861
863
def __enter__ (self ):
862
864
"""Initialises curses for later use. Based on curses.wrapper
@@ -994,14 +996,23 @@ class Tui(object):
994
996
self .screen .clrtobot ()
995
997
stats = self .stats .get ()
996
998
997
- def sortkey (x ):
999
+ def sortCurAvg (x ):
1000
+ # sort by current events if available
998
1001
if stats [x ][1 ]:
999
1002
return (- stats [x ][1 ], - stats [x ][0 ])
1000
1003
else :
1001
1004
return (0 , - stats [x ][0 ])
1005
+
1006
+ def sortTotal (x ):
1007
+ # sort by totals
1008
+ return (0 , - stats [x ][0 ])
1002
1009
total = 0.
1003
1010
for val in stats .values ():
1004
1011
total += val [0 ]
1012
+ if self ._sorting == SORT_DEFAULT :
1013
+ sortkey = sortCurAvg
1014
+ else :
1015
+ sortkey = sortTotal
1005
1016
for key in sorted (stats .keys (), key = sortkey ):
1006
1017
1007
1018
if row >= self .screen .getmaxyx ()[0 ]:
@@ -1025,6 +1036,7 @@ class Tui(object):
1025
1036
' f filter by regular expression' ,
1026
1037
' g filter by guest name' ,
1027
1038
' h display interactive commands reference' ,
1039
+ ' o toggle sorting order (Total vs CurAvg/s)' ,
1028
1040
' p filter by PID' ,
1029
1041
' q quit' ,
1030
1042
' r reset stats' ,
@@ -1215,6 +1227,8 @@ class Tui(object):
1215
1227
sleeptime = self ._delay_initial
1216
1228
if char == 'h' :
1217
1229
self .show_help_interactive ()
1230
+ if char == 'o' :
1231
+ self ._sorting = not self ._sorting
1218
1232
if char == 'p' :
1219
1233
curses .curs_set (1 )
1220
1234
self .show_vm_selection_by_pid ()
@@ -1302,6 +1316,7 @@ Interactive Commands:
1302
1316
f filter by regular expression
1303
1317
g filter by guest name
1304
1318
h display interactive commands reference
1319
+ o toggle sorting order (Total vs CurAvg/s)
1305
1320
p filter by PID
1306
1321
q quit
1307
1322
r reset stats
0 commit comments