diff options
author | Stefan Raspl <stefan.raspl@de.ibm.com> | 2018-08-24 08:04:01 -0400 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2018-08-30 11:15:12 -0400 |
commit | c012a0f2677529a0ae8f53a15bd7c61dc4ca5b5e (patch) | |
tree | 6c9e4ee6a072c35afce5037140400d402fa8e3a7 | |
parent | 404517e40867aef60554ef497d5cf8d089a5b9cf (diff) |
tools/kvm_stat: re-animate display of dead guests
When filtering by guest (interactive commands 'p'/'g'), and the respective
guest was destroyed, detect when the guest is up again through the guest
name if possible.
I.e. when displaying events for a specific guest, it is not necessary
anymore to restart kvm_stat in case the guest is restarted.
Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
-rwxr-xr-x | tools/kvm/kvm_stat/kvm_stat | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat index 5c2422b0f2f8..439b8a27488d 100755 --- a/tools/kvm/kvm_stat/kvm_stat +++ b/tools/kvm/kvm_stat/kvm_stat | |||
@@ -1103,6 +1103,7 @@ class Tui(object): | |||
1103 | pid = self.stats.pid_filter | 1103 | pid = self.stats.pid_filter |
1104 | self.screen.erase() | 1104 | self.screen.erase() |
1105 | gname = self.get_gname_from_pid(pid) | 1105 | gname = self.get_gname_from_pid(pid) |
1106 | self._gname = gname | ||
1106 | if gname: | 1107 | if gname: |
1107 | gname = ('({})'.format(gname[:MAX_GUEST_NAME_LEN] + '...' | 1108 | gname = ('({})'.format(gname[:MAX_GUEST_NAME_LEN] + '...' |
1108 | if len(gname) > MAX_GUEST_NAME_LEN | 1109 | if len(gname) > MAX_GUEST_NAME_LEN |
@@ -1170,6 +1171,15 @@ class Tui(object): | |||
1170 | return sorted_items | 1171 | return sorted_items |
1171 | 1172 | ||
1172 | if not self._is_running_guest(self.stats.pid_filter): | 1173 | if not self._is_running_guest(self.stats.pid_filter): |
1174 | if self._gname: | ||
1175 | try: # ...to identify the guest by name in case it's back | ||
1176 | pids = self.get_pid_from_gname(self._gname) | ||
1177 | if len(pids) == 1: | ||
1178 | self._refresh_header(pids[0]) | ||
1179 | self._update_pid(pids[0]) | ||
1180 | return | ||
1181 | except: | ||
1182 | pass | ||
1173 | self._display_guest_dead() | 1183 | self._display_guest_dead() |
1174 | # leave final data on screen | 1184 | # leave final data on screen |
1175 | return | 1185 | return |