[libvirt PATCH v3 5/6] ci: util: Add a registry checker for stale images

Erik Skultety eskultet at redhat.com
Thu Mar 18 16:00:47 UTC 2021


...

> > +def get_registry_stale_images(registry_uri: str,
> > +                              supported_distros: List[str]) -> Dict[str, int]:
> > +    """
> > +    Check the GitLab image registry for images that we no longer support and
> > +    which should be deleted.
> > +
> > +    :param uri: URI pointing to a GitLab instance's image registry
> > +    :param supported_distros: list of hosts supported by lcitool
> > +    :return: dictionary formatted as: {<gitlab_image_name>: <gitlab_image_id>}
> > +    """
> > +
> > +    images = get_registry_images(registry_uri)
> > +
> > +    # extract distro names from the list of registry images
> > +    registry_distros = [get_image_distro(i["name"]) for i in images]
> > +
> > +    # - compare the distros powering the images in GitLab registry with
> > +    #   the list of host available from lcitool
> > +    # - @unsupported is a set containing the distro names which we no longer
> > +    #   support; we need to map these back to registry image names
> > +    unsupported = set(registry_distros) - set(supported_distros)
> > +    if unsupported:
> > +        stale_images = {}
> > +        for distro in unsupported:
> > +            for img in images:
> > +                # gitlab images are named like "ci-<distro>-<cross_arch>?"
> > +                if distro in img["name"]:
> > +                    stale_images[img["name"]] = img["id"]
> > +
> > +    return stale_images
> 
> As far as I can tell, this can be achieved in a much more
> straightforward way with
> 
>   def get_registry_stale_images(registry_uri, supported_distros):
> 
>       images = get_registry_images(registry_uri)
>       stale_images = {}
> 
>       for img in images:
>           if get_image_distro(img["name"]) not in supported_distros:
>               stale_images[img["name"]] = img["id"]
> 
>       return stale_images
> 
> At least from a quick test, the results appear to be the same. Am I
> missing something?

No, it works. I'll respin.

Erik




More information about the libvir-list mailing list