提交 710ab11a 编写于 作者: S Stefan Raspl 提交者: Radim Krčmář

tools/kvm_stat: fix updates for dead guests

With pid filtering active, when a guest is removed e.g. via virsh shutdown,
successive updates produce garbage.
Therefore, we add code to detect this case and prevent further body updates.
Note that when displaying the help dialog via 'h' in this case, once we exit
we're stuck with the 'Collecting data...' message till we remove the filter.
Signed-off-by: NStefan Raspl <raspl@linux.ibm.com>
Signed-off-by: NRadim Krčmář <rkrcmar@redhat.com>
上级 617c66b9
......@@ -1170,6 +1170,9 @@ class Tui(object):
return sorted_items
if not self._is_running_guest(self.stats.pid_filter):
# leave final data on screen
return
row = 3
self.screen.move(row, 0)
self.screen.clrtobot()
......@@ -1327,6 +1330,12 @@ class Tui(object):
msg = '"' + str(val) + '": Invalid value'
self._refresh_header()
def _is_running_guest(self, pid):
"""Check if pid is still a running process."""
if not pid:
return True
return os.path.isdir(os.path.join('/proc/', str(pid)))
def _show_vm_selection_by_guest(self):
"""Draws guest selection mask.
......@@ -1354,7 +1363,7 @@ class Tui(object):
if not guest or guest == '0':
break
if guest.isdigit():
if not os.path.isdir(os.path.join('/proc/', guest)):
if not self._is_running_guest(guest):
msg = '"' + guest + '": Not a running process'
continue
pid = int(guest)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册