/
binding_config.go
54 lines (44 loc) · 1.23 KB
/
binding_config.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
package bindings
import (
"net/url"
"code.cloudfoundry.org/loggregator-agent-release/src/pkg/binding"
"code.cloudfoundry.org/loggregator-agent-release/src/pkg/egress/syslog"
)
type DrainParamParser struct {
fetcher binding.Fetcher
defaultDrainMetadata bool
}
func NewDrainParamParser(f binding.Fetcher, defaultDrainMetadata bool) *DrainParamParser {
return &DrainParamParser{
fetcher: f,
defaultDrainMetadata: defaultDrainMetadata,
}
}
func (d *DrainParamParser) FetchBindings() ([]syslog.Binding, error) {
var processed []syslog.Binding
bs, err := d.fetcher.FetchBindings()
if err != nil {
return nil, err
}
for _, b := range bs {
urlParsed, err := url.Parse(b.Drain)
if err != nil {
continue
}
if d.defaultDrainMetadata && urlParsed.Query().Get("disable-metadata") == "true" {
b.OmitMetadata = true
} else if !d.defaultDrainMetadata && urlParsed.Query().Get("disable-metadata") == "false" {
b.OmitMetadata = false
} else {
b.OmitMetadata = !d.defaultDrainMetadata
}
if urlParsed.Query().Get("ssl-strict-internal") == "true" {
b.InternalTls = true
}
processed = append(processed, b)
}
return processed, nil
}
func (d *DrainParamParser) DrainLimit() int {
return -1
}