mirror of
https://github.com/lxc/incus.git
synced 2026-02-05 09:46:19 +01:00
client: Add GetClusterMembersWithFilter
Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
This commit is contained in:
@@ -3,6 +3,7 @@ package incus
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"github.com/lxc/incus/v6/shared/api"
|
||||
)
|
||||
@@ -100,6 +101,26 @@ func (r *ProtocolIncus) GetClusterMemberNames() ([]string, error) {
|
||||
return urlsToResourceNames(baseURL, urls...)
|
||||
}
|
||||
|
||||
// GetClusterMembersWithFilter returns a filtered list of cluster members as ClusterMember structs.
|
||||
func (r *ProtocolIncus) GetClusterMembersWithFilter(filters []string) ([]api.ClusterMember, error) {
|
||||
if !r.HasExtension("clustering") {
|
||||
return nil, errors.New("The server is missing the required \"clustering\" API extension")
|
||||
}
|
||||
|
||||
members := []api.ClusterMember{}
|
||||
|
||||
v := url.Values{}
|
||||
v.Set("recursion", "1")
|
||||
v.Set("filter", parseFilters(filters))
|
||||
|
||||
_, err := r.queryStruct("GET", fmt.Sprintf("/cluster/members?%s", v.Encode()), nil, "", &members)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return members, nil
|
||||
}
|
||||
|
||||
// GetClusterMembers returns the current members of the cluster.
|
||||
func (r *ProtocolIncus) GetClusterMembers() ([]api.ClusterMember, error) {
|
||||
if !r.HasExtension("clustering") {
|
||||
|
||||
@@ -399,6 +399,7 @@ type InstanceServer interface {
|
||||
DeletePendingClusterMember(name string, force bool) (err error)
|
||||
GetClusterMemberNames() (names []string, err error)
|
||||
GetClusterMembers() (members []api.ClusterMember, err error)
|
||||
GetClusterMembersWithFilter(filters []string) ([]api.ClusterMember, error)
|
||||
GetClusterMember(name string) (member *api.ClusterMember, ETag string, err error)
|
||||
UpdateClusterMember(name string, member api.ClusterMemberPut, ETag string) (err error)
|
||||
RenameClusterMember(name string, member api.ClusterMemberPost) (err error)
|
||||
|
||||
Reference in New Issue
Block a user