1
0
mirror of https://github.com/lxc/incus.git synced 2026-02-05 09:46:19 +01:00

client: Add GetImagesAllProjectsWithFilter

Signed-off-by: Piotr Resztak <piotr.resztak@futurfusion.io>
This commit is contained in:
Piotr Resztak
2025-04-01 11:35:04 +02:00
parent bbc49f4bbb
commit 4f3bef7c72
4 changed files with 32 additions and 0 deletions

View File

@@ -55,6 +55,27 @@ func (r *ProtocolIncus) GetImagesAllProjects() ([]api.Image, error) {
return images, nil
}
// GetImagesAllProjectsWithFilter returns a filtered list of images across all projects as Image structs.
func (r *ProtocolIncus) GetImagesAllProjectsWithFilter(filters []string) ([]api.Image, error) {
images := []api.Image{}
v := url.Values{}
v.Set("recursion", "1")
v.Set("all-projects", "true")
v.Set("filter", parseFilters(filters))
if !r.HasExtension("images_all_projects") {
return nil, fmt.Errorf("The server is missing the required \"images_all_projects\" API extension")
}
_, err := r.queryStruct("GET", fmt.Sprintf("/images?%s", v.Encode()), nil, "", &images)
if err != nil {
return nil, err
}
return images, nil
}
// GetImagesWithFilter returns a filtered list of available images as Image structs.
func (r *ProtocolIncus) GetImagesWithFilter(filters []string) ([]api.Image, error) {
if !r.HasExtension("api_filtering") {

View File

@@ -49,6 +49,7 @@ type ImageServer interface {
// Image handling functions
GetImages() (images []api.Image, err error)
GetImagesAllProjects() (images []api.Image, err error)
GetImagesAllProjectsWithFilter(filters []string) (images []api.Image, err error)
GetImageFingerprints() (fingerprints []string, err error)
GetImagesWithFilter(filters []string) (images []api.Image, err error)

View File

@@ -60,6 +60,11 @@ func (r *ProtocolOCI) GetImagesAllProjects() ([]api.Image, error) {
return nil, fmt.Errorf("Can't list images from OCI registry")
}
// GetImagesAllProjectsWithFilter returns a filtered list of available images as Image structs.
func (r *ProtocolOCI) GetImagesAllProjectsWithFilter(filters []string) ([]api.Image, error) {
return nil, fmt.Errorf("Can't list images from OCI registry")
}
// GetImageFingerprints returns a list of available image fingerprints.
func (r *ProtocolOCI) GetImageFingerprints() ([]string, error) {
return nil, fmt.Errorf("Can't list images from OCI registry")

View File

@@ -31,6 +31,11 @@ func (r *ProtocolSimpleStreams) GetImagesAllProjects() ([]api.Image, error) {
return r.GetImages()
}
// GetImagesAllProjectsWithFilter returns a filtered list of available images as Image structs.
func (r *ProtocolSimpleStreams) GetImagesAllProjectsWithFilter(filters []string) ([]api.Image, error) {
return nil, fmt.Errorf("GetImagesWithFilter is not supported by the simplestreams protocol")
}
// GetImageFingerprints returns a list of available image fingerprints.
func (r *ProtocolSimpleStreams) GetImageFingerprints() ([]string, error) {
// Get all the images from simplestreams