[virt-tools-list] [virt-manager] [PATCH] fsdetails: Fix an error with source.socket of virtiofs

Cole Robinson crobinso at redhat.com
Wed Aug 17 14:34:01 UTC 2022


On 8/16/22 12:59 AM, Lin Ma wrote:
> Using the source.socket of virtiofs needs a virtiofsd daemon launched
> outside of libvirtd, So the filesystem UI doesn't support it yet. If
> users need it they can set it manually in the XML editor.
> But if we view the filesystem info of such a VM on the details page,
> It fails with this error message:
> 
> Traceback (most recent call last):
>   File "/usr/share/virt-manager/virtManager/details/details.py", line 1713, in _refresh_page
>     self._refresh_filesystem_page(dev)
>   File "/usr/share/virt-manager/virtManager/details/details.py", line 2241, in _refresh_filesystem_page
>     self.fsDetails.set_dev(dev)
>   File "/usr/share/virt-manager/virtManager/device/fsdetails.py", line 193, in set_dev
>     self.widget("fs-source").set_text(dev.source)
> TypeError: Argument 1 does not allow None as a value
> 
> This patch fixes above issue by leaving the 'source path' info blank in
> case of source.socket.
> In this case, Considering that showing 'target path' info without source
> info is kind of meaningless, So this patch leaves the 'target path' info
> blank as well.
> 
> Signed-off-by: Lin Ma <lma at suse.com>
> ---
>  virtManager/device/fsdetails.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/virtManager/device/fsdetails.py b/virtManager/device/fsdetails.py
> index 40868d1c..67716eab 100644
> --- a/virtManager/device/fsdetails.py
> +++ b/virtManager/device/fsdetails.py
> @@ -190,10 +190,10 @@ class vmmFSDetails(vmmGObjectUI):
>                  self.widget("fs-format-combo"), dev.driver_format)
>  
>          if dev.type != DeviceFilesystem.TYPE_RAM:
> -            self.widget("fs-source").set_text(dev.source)
> +            self.widget("fs-source").set_text(dev.source or "")
>          else:
>              self.widget("fs-ram-source-spin").set_value(int(dev.source) // 1024)
> -        self.widget("fs-target").set_text(dev.target or "")
> +        self.widget("fs-target").set_text(dev.target and dev.source or "")
>          self.widget("fs-readonly").set_active(dev.readonly)
>  
>          self._active_edits = []

If you do 'FOO and BAR or BAZ' and both FOO and BAR evaluate True, then
BAR is returned. So this last line would put dev.source in the target
path UI when both values are set. I don't think it's necessary to keep
dev.target empty in this case, so I dropped this last line and pushed.

Thanks,
Cole


More information about the virt-tools-list mailing list