mirror of https://github.com/k3s-io/k3s
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package storageos
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"net/url"
|
|
|
|
"github.com/storageos/go-api/types"
|
|
)
|
|
|
|
var (
|
|
// LoggerAPIPrefix is a partial path to the HTTP endpoint.
|
|
LoggerAPIPrefix = "logs"
|
|
)
|
|
|
|
// LoggerConfig returns every cluster node's logging configuration.
|
|
func (c *Client) LoggerConfig(opts types.ListOptions) ([]*types.Logger, error) {
|
|
|
|
listOpts := doOptions{
|
|
fieldSelector: opts.FieldSelector,
|
|
labelSelector: opts.LabelSelector,
|
|
context: opts.Context,
|
|
}
|
|
|
|
if opts.LabelSelector != "" {
|
|
query := url.Values{}
|
|
query.Add("labelSelector", opts.LabelSelector)
|
|
listOpts.values = query
|
|
}
|
|
|
|
resp, err := c.do("GET", LoggerAPIPrefix+"/cluster/config", listOpts)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer resp.Body.Close()
|
|
var loggers []*types.Logger
|
|
if err := json.NewDecoder(resp.Body).Decode(&loggers); err != nil {
|
|
return nil, err
|
|
}
|
|
return loggers, nil
|
|
|
|
}
|
|
|
|
// LoggerUpdate patches updates to logging configuration. Fields to update must
|
|
// be listed in the Fields value, and if a list of Nodes is given it will only
|
|
// apply to the nodes listed. Returns the updated configuration.
|
|
func (c *Client) LoggerUpdate(opts types.LoggerUpdateOptions) ([]*types.Logger, error) {
|
|
|
|
resp, err := c.do("PATCH", LoggerAPIPrefix+"/cluster/config", doOptions{
|
|
data: opts,
|
|
context: context.Background(),
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer resp.Body.Close()
|
|
var loggers []*types.Logger
|
|
if err := json.NewDecoder(resp.Body).Decode(&loggers); err != nil {
|
|
return nil, err
|
|
}
|
|
return loggers, nil
|
|
}
|