[libvirt] [PATCH V3 jenkins-ci 1/2] guests: Add support for openSUSE

Andrea Bolognani abologna at redhat.com
Mon Dec 9 11:56:42 UTC 2019


On Fri, 2019-12-06 at 23:44 +0000, Jim Fehlig wrote:
> This change adds support for installing and updating openSUSE Leap 15.1
> using lcilool.

s/lool/tool/

> +++ b/guests/host_vars/libvirt-opensuse-151/docker.yml
> +---
> +docker_base: opensuse/leap:15.1

Docker support is still busted: if you generate the Dockerfile and
try to build the corresponding container, it will eventually fail
during the post-install cleanup steps. Really easy to reproduce:

  $ docker run --rm \
    opensuse/leap:15.1 \
    /bin/sh -c 'zypper autoremove -y && zypper clean all -y && echo ok'
  Unknown command 'autoremove'
  Type 'zypper help' to get a list of global options and commands.

  In case 'autoremove' is not a typo it's probably not a built-in command, but provided as a subcommand or plug-in (see 'zypper help subcommand').
  In this case a specific package providing the subcommand needs to be installed first. Those packages are often named 'zypper-autoremove' or 'zypper-autoremove-plugin'.

You need to tweak the _action_dockerfile() function to make this
work correctly on openSUSE; for the time being, it's okay to just
drop this hunk from the commit with the expectation that you'll have
it as part of a follow-up patch that introduces working Docker
support.

[...]
> +++ b/guests/playbooks/update/tasks/base.yml
>  - name: Clean up packages after update
>    shell: '{{ package_manager }} clean packages -y && {{ package_manager }} autoremove -y'
>    args:
>      warn: no
>    when:
>      - package_format == 'rpm'
> +    - os_name != "OpenSUSE"
> +
> +- name: Clean up packages after update
> +  shell: '{{ package_manager }} clean'
> +  args:
> +    warn: no
> +  when:
> +    - os_name == "OpenSUSE"

We use single quotes in this file.

[...]
> +++ b/guests/playbooks/vars/mappings.yml
>    dbus-daemon:
>      default: dbus
>      Fedora: dbus-daemon
> +    OpenSUSE: dbus-1

dbus-daemon is not a build dependency of libvirt but rather of
libvirt-dbus, so this mapping should not be introduced now but rather
later on when libvirt-dbus support is added.

These are all the mappings that have been introduced prematurely:

  dbus-daemon
  gtk-update-icon-cache
  isoinfo
  perl-IO-Compress-Bzip2
  perl-Test-LWP-UserAgent
  python3-dbus
  python3-devel
  python3-gi
  python3-libxml2
  spice-gtk3
  xz-static
  zlib-static

[...]
>    wireshark:
>      deb: wireshark-dev
> -    Fedora: wireshark-devel
> +    rpm: wireshark-devel
> +    CentOS:
>      cross-policy-deb: skip
>  
>    xen:
> -    Fedora: xen-devel
> +    rpm: xen-devel

This will not do, as it will result in attempting to install
xen-devel on CentOS (which doesn't have that package): the correct
way to handle the situation is the same as the wireshark mapping
right above it.


Everything else looks good, and I've verified that after applying
the patch it's possible to successfully install and update a guest,
so

  Reviewed-by: Andrea Bolognani <abologna at redhat.com>

I'll take care of addressing the issues mentioned above before
pushing.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list