[virt-tools-list] [virt-manager PATCH] virt-install: refresh storage pool after disk is created
Pavel Hrdina
phrdina at redhat.com
Wed Nov 11 12:21:57 UTC 2015
On Tue, Nov 10, 2015 at 04:51:25PM -0500, Cole Robinson wrote:
> On 11/10/2015 08:19 AM, Pavel Hrdina wrote:
> > This fixes an issue where you need to manually refresh storage pool or
> > restart virt-manager in order to be able delete guest that is currently
> > installed. This affect remote connection and non-root users.
> >
> > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1251400
> >
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> > virtinst/storage.py | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/virtinst/storage.py b/virtinst/storage.py
> > index e50b78f..21d21a6 100644
> > --- a/virtinst/storage.py
> > +++ b/virtinst/storage.py
> > @@ -797,6 +797,8 @@ class StorageVolume(_StorageObject):
> > logging.debug("Using vol create flags=%s", createflags)
> > vol = self.pool.createXML(xml, createflags)
> >
> > + self.pool.refresh()
> > +
> > self._install_finished = True
> > t.join()
> > meter.end(self.capacity)
> >
>
> I don't think this patch actually fixes the reported issue... it doesn't do
> anything for me at least.
>
> The root problem here is that libvirt doesn't support event APIs for storage
> operations, and virt-manager no longer relentlessly polls the storage list
> since it sucks for high latency connections. The disk image is created behind
> virt-managers back, and nothing in virt-manager is catching that it's updated.
>
> Particularly the pool.refresh() call here isn't going to signal virt-manager
> in any way to update its internal pool/vol cache, so it won't be reflected in
> the app.
Ouch, you are right, I've probably had that disk in virt-manager's cache and
that's why I thought, that was a correct fix.
>
> We already have some hacks in place to deal with outdated cache in
> virt-manager, like we will request a pool/vol cache update when launching the
> new VM wizard. But in this particular case I don't think it's important enough
> to try and fix, we should just defer it until libvirt has storage event APIs.
Yes, we need to wait for those events and it's obvious that virt-install cannot
affect virt-manager's cache.
Thanks for review,
Pavel
>
> Thanks,
> Cole
More information about the virt-tools-list
mailing list