[Libguestfs] [PATCH v2v 1/7] output: -o libvirt: Fix <graphics/> element port/autoport

Laszlo Ersek lersek at redhat.com
Thu Jan 20 12:20:23 UTC 2022


On 01/19/22 19:03, Richard W.M. Jones wrote:
> According to https://libvirt.org/formatdomain.html only vnc and sdl
> graphics types support port/autoport.
> 
> In addition, autoport='yes' is the non-deprecated replacement for
> port='-1'.  Since we don't need to support ancient libvirt, we don't
> need to keep adding port='-1' in the autoport case.  virt-xml-validate
> rejects our XML if it has both attributes.
> ---
>  output/create_libvirt_xml.ml | 22 ++++++++++------------
>  tests/test-v2v-i-ova.xml     |  2 +-
>  2 files changed, 11 insertions(+), 13 deletions(-)
> 
> diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml
> index 87bfab178a..93ceb803cc 100644
> --- a/output/create_libvirt_xml.ml
> +++ b/output/create_libvirt_xml.ml
> @@ -435,13 +435,18 @@ let create_libvirt_xml ?pool source inspect
>  
>    let graphics =
>      match source.s_display with
> -    | None -> e "graphics" [ "type", "vnc" ] []
> +    | None ->
> +       e "graphics" [ "type", "vnc"; "autoport", "yes" ] []
>      | Some { s_display_type = Window } ->
>         e "graphics" [ "type", "sdl" ] []
> -    | Some { s_display_type = VNC } ->
> -       e "graphics" [ "type", "vnc" ] []
> -    | Some { s_display_type = Spice } ->
> -       e "graphics" [ "type", "spice" ] [] in
> +    | Some { s_display_type = VNC; s_port = Some p } ->
> +       e "graphics" [ "type", "vnc"; "port", string_of_int p ] []
> +    | Some { s_display_type = VNC; s_port = None } ->
> +       e "graphics" [ "type", "vnc"; "autoport", "yes" ] []
> +    | Some { s_display_type = Spice; s_port = Some p } ->
> +       e "graphics" [ "type", "spice"; "port", string_of_int p ] []
> +    | Some { s_display_type = Spice; s_port = None } ->
> +       e "graphics" [ "type", "spice"; "autoport", "yes" ] [] in
>  
>    (match source.s_display with
>     | Some { s_keymap = Some km } -> append_attr ("keymap", km) graphics
> @@ -469,13 +474,6 @@ let create_libvirt_xml ?pool source inspect
>            append_child sub graphics
>        )
>     | None -> ());
> -  (match source.s_display with
> -   | Some { s_port = Some p } ->
> -      append_attr ("autoport", "no") graphics;
> -      append_attr ("port", string_of_int p) graphics
> -   | Some { s_port = None } | None ->
> -      append_attr ("autoport", "yes") graphics;
> -      append_attr ("port", "-1") graphics);
>    List.push_back devices graphics;
>  
>    let sound =
> diff --git a/tests/test-v2v-i-ova.xml b/tests/test-v2v-i-ova.xml
> index 2b6a8de0f4..e72c1db396 100644
> --- a/tests/test-v2v-i-ova.xml
> +++ b/tests/test-v2v-i-ova.xml
> @@ -41,7 +41,7 @@
>      <video>
>        <model type='vga' vram='16384' heads='1'/>
>      </video>
> -    <graphics type='vnc' autoport='yes' port='-1'/>
> +    <graphics type='vnc' autoport='yes'/>
>      <rng model='virtio-transitional'>
>        <backend model='random'>/dev/urandom</backend>
>      </rng>
> 

Reviewed-by: Laszlo Ersek <lersek at redhat.com>




More information about the Libguestfs mailing list