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:
@@ -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") {
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user