This repository has been archived by the owner on Jun 1, 2023. It is now read-only.
/
collector_configuration.go
123 lines (110 loc) · 4.36 KB
/
collector_configuration.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package client
import (
"context"
"fmt"
"github.com/pkg/errors"
"github.com/suzuki-shunsuke/go-set"
"github.com/suzuki-shunsuke/go-graylog"
)
// CreateCollectorConfiguration creates a collector configuration.
func (client *Client) CreateCollectorConfiguration(cfg *graylog.CollectorConfiguration) (*ErrorInfo, error) {
return client.CreateCollectorConfigurationContext(context.Background(), cfg)
}
// CreateCollectorConfigurationContext creates a collector configuration with a context.
func (client *Client) CreateCollectorConfigurationContext(
ctx context.Context, cfg *graylog.CollectorConfiguration,
) (*ErrorInfo, error) {
// POST /plugins/org.graylog.plugins.collector/configurations Create new collector configuration
if cfg == nil {
return nil, fmt.Errorf("collector configuration is nil")
}
if cfg.Inputs == nil {
cfg.Inputs = []graylog.CollectorConfigurationInput{}
}
if cfg.Outputs == nil {
cfg.Outputs = []graylog.CollectorConfigurationOutput{}
}
if cfg.Snippets == nil {
cfg.Snippets = []graylog.CollectorConfigurationSnippet{}
}
if cfg.Tags == nil {
cfg.Tags = set.StrSet{}
}
return client.callPost(ctx, client.Endpoints().CollectorConfigurations(), cfg, cfg)
}
// GetCollectorConfigurations returns all collector configurations.
func (client *Client) GetCollectorConfigurations() ([]graylog.CollectorConfiguration, int, *ErrorInfo, error) {
return client.GetCollectorConfigurationsContext(context.Background())
}
// GetCollectorConfigurationsContext returns all collector configurations with a context.
func (client *Client) GetCollectorConfigurationsContext(ctx context.Context) ([]graylog.CollectorConfiguration, int, *ErrorInfo, error) {
cfgs := &graylog.CollectorConfigurationsBody{}
ei, err := client.callGet(
ctx, client.Endpoints().CollectorConfigurations(), nil, cfgs)
return cfgs.Configurations, cfgs.Total, ei, err
}
// GetCollectorConfiguration returns a collector configuration.
func (client *Client) GetCollectorConfiguration(id string) (*graylog.CollectorConfiguration, *ErrorInfo, error) {
return client.GetCollectorConfigurationContext(context.Background(), id)
}
// GetCollectorConfigurationContext returns a given user with a context.
func (client *Client) GetCollectorConfigurationContext(
ctx context.Context, id string,
) (*graylog.CollectorConfiguration, *ErrorInfo, error) {
// GET /api/plugins/org.graylog.plugins.collector/configurations/:id
if id == "" {
return nil, nil, errors.New("id is empty")
}
u, err := client.Endpoints().CollectorConfiguration(id)
if err != nil {
return nil, nil, err
}
cfg := &graylog.CollectorConfiguration{}
ei, err := client.callGet(ctx, u.String(), nil, cfg)
return cfg, ei, err
}
// RenameCollectorConfiguration renames a collector configuration.
func (client *Client) RenameCollectorConfiguration(id, name string) (*graylog.CollectorConfiguration, *ErrorInfo, error) {
return client.RenameCollectorConfigurationContext(context.Background(), id, name)
}
// RenameCollectorConfigurationContext renames a collector configuration with a context.
func (client *Client) RenameCollectorConfigurationContext(
ctx context.Context, id, name string,
) (*graylog.CollectorConfiguration, *ErrorInfo, error) {
if id == "" {
return nil, nil, fmt.Errorf("id is nil")
}
if name == "" {
return nil, nil, fmt.Errorf("name is nil")
}
input := graylog.CollectorConfiguration{
Name: name,
Inputs: []graylog.CollectorConfigurationInput{},
Outputs: []graylog.CollectorConfigurationOutput{},
Snippets: []graylog.CollectorConfigurationSnippet{},
}
u, err := client.Endpoints().CollectorConfigurationName(id)
if err != nil {
return nil, nil, err
}
cfg := graylog.CollectorConfiguration{Name: name}
ei, err := client.callPut(ctx, u.String(), &input, &cfg)
return &cfg, ei, err
}
// DeleteCollectorConfiguration deletes a collector configuration.
func (client *Client) DeleteCollectorConfiguration(id string) (*ErrorInfo, error) {
return client.DeleteCollectorConfigurationContext(context.Background(), id)
}
// DeleteCollectorConfigurationContext deletes a collector configuration with a context.
func (client *Client) DeleteCollectorConfigurationContext(
ctx context.Context, id string,
) (*ErrorInfo, error) {
if id == "" {
return nil, errors.New("id is empty")
}
u, err := client.Endpoints().CollectorConfiguration(id)
if err != nil {
return nil, err
}
return client.callDelete(ctx, u.String(), nil, nil)
}