[libvirt] [jenkins-ci PATCH v4 2/5] lcitool: avoid repetition when expanding package mappings

Andrea Bolognani abologna at redhat.com
Mon Feb 25 15:57:43 UTC 2019


On Thu, 2019-02-21 at 16:33 +0000, Daniel P. Berrangé wrote:
[...]
> +        keys = ["default", package_format, os_name, os_full]
>          # We need to add the base project manually here: the standard
>          # machinery hides it because it's an implementation detail
>          for project in projects + ["base"]:
>              for package in self._projects.get_packages(project):
> -                if "default" in mappings[package]:
> -                    temp[package] = mappings[package]["default"]
> -                if package_format in mappings[package]:
> -                    temp[package] = mappings[package][package_format]
> -                if os_name in mappings[package]:
> -                    temp[package] = mappings[package][os_name]
> -                if os_full in mappings[package]:
> -                    temp[package] = mappings[package][os_full]
> +                for key in keys:
> +                    if key in mappings[package]:
> +                        temp[package] = mappings[package][key]

Little historical note: the reason why the code looked like this in
the first place[1] is that its structure was supposed to mirror that
of playbooks/update/tasks/packages.yml as closely as possible - the
idea being that, if the Ansible implementation was correct, then the
Python one would most likely be as well.

Of course that's no longer the case as of dcded110e102, so it makes
perfect sense to go further down this road and make the code more
compact.

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


[1] In addition to Python being admittedly not my forte :)
-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list