[virt-tools-list] [virt-manager PATCH 0/2] Set guest time asynchronously

Michael Weiser michael.weiser at gmx.de
Wed Dec 18 22:26:10 UTC 2019


Hello Cole,

> Nice work. I pushed the first 4 patches.

Well, the first of the following two patches fixes up the fourth of
those you pushed. Sorry. :-/

> Does it make the progress dialog spin for 5 seconds, or does it actually
> block any interaction with the app?

virt-manager remains fully usable but the progress dialog sticks around
until the timeout elapses or the agent comes online. Worse, if the
timeout is long or the machine fast enough, the user can accumulate
multiple dialogs by suspending and resuming multiple times. IMO this
won't do.

> But if you wanted to avoid the sleep spin in _set_time, the way to do it
> is to use timeout_add, which will invoke the passed function from the
[...]
> In args, you'd pass how many iterations the loop has already done, so
> you can track when to kill the timeout loop.

Nice. The timeout keeps on running though even if the domain is shut
down again. Not much harm in that but not very elegant either.

As added complication, if we're not tracking state change to cancel the
timeout, consecutive actions accumulate timeouts racing each other.
After some head-scratching I settled on using a Lock and having one long
running and potentially reset timeout for now. Again, not the most
elegant solution.

> There is possible ways to make it not need a timeout, like watching for
> the domain event when the agent is connected. It's probably tricky to
> get it right.

What would be involved in tracing domain state to cancel the timeout?

> As for for the configuration piece, I'd prefer not to add it at all
> unless there's a really good reason. Yes hardcoding timeouts will always

Totally understandable. Now the code's out there someone can always
circle back to it if the need arises.

The bit about global preference changes not being reflected in already
open vmwindows is a more general problem though. It confused the heck
out of me for sure when playing with the various View menu settings or
rather their Preferences counterparts.

Michael Weiser (2):
  virtManager: object: domain: Fix snapshot run check
  virtManager: object: domain: Async set guest time

 virtManager/object/domain.py | 53 +++++++++++++++++++++++++++---------
 1 file changed, 40 insertions(+), 13 deletions(-)

-- 
2.24.1





More information about the virt-tools-list mailing list