def get_image_with_storage_and_parent_base(): Parent = Image.alias() ParentImageStorage = ImageStorage.alias() return ( Image.select(Image, ImageStorage, Parent, ParentImageStorage) .join(ImageStorage) .switch(Image) .join(Parent, JOIN.LEFT_OUTER, on=(Image.parent == Parent.id)) .join(ParentImageStorage, JOIN.LEFT_OUTER, on=(ParentImageStorage.id == Parent.storage)) )
def get_tags_images_eligible_for_scan(clair_version): Parent = Image.alias() ParentImageStorage = ImageStorage.alias() return _tag_alive( RepositoryTag.select(Image, ImageStorage, Parent, ParentImageStorage, RepositoryTag).join( Image, on=(RepositoryTag.image == Image.id)). join(ImageStorage, on=(Image.storage == ImageStorage.id)).switch(Image).join( Parent, JOIN.LEFT_OUTER, on=(Image.parent == Parent.id)).join( ParentImageStorage, JOIN.LEFT_OUTER, on=(ParentImageStorage.id == Parent.storage)).where( RepositoryTag.hidden == False).where( Image.security_indexed_engine < clair_version))