Skip to content

Commit 5dd1f98

Browse files
renovate[bot]renovate-botmraerino
authored
fix(deps)!: update module gopkg.in/launchdarkly/go-sdk-common.v1 to v2 (#310)
* fix(deps): update module gopkg.in/launchdarkly/go-sdk-common.v1 to v2 * Adopt new interfaces Co-authored-by: Renovate Bot <[email protected]> Co-authored-by: Marcus Weiner <[email protected]>
1 parent 85bf974 commit 5dd1f98

File tree

6 files changed

+89
-61
lines changed

6 files changed

+89
-61
lines changed

featureflag/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ package featureflag
22

33
import (
44
"github.com/netlify/netlify-commons/util"
5-
ld "gopkg.in/launchdarkly/go-server-sdk.v4"
5+
"gopkg.in/launchdarkly/go-server-sdk.v5/interfaces"
66
)
77

88
type Config struct {
99
Key string `json:"key" yaml:"key"`
1010
RequestTimeout util.Duration `json:"request_timeout" yaml:"request_timeout" mapstructure:"request_timeout" split_words:"true" default:"5s"`
1111
Enabled bool `json:"enabled" yaml:"enabled" default:"false"`
1212

13-
updateProcessorFactory ld.UpdateProcessorFactory
13+
updateProcessorFactory interfaces.DataSourceFactory
1414

1515
// Drop telemetry events (not needed in local-dev/CI environments)
1616
DisableEvents bool `json:"disable_events" yaml:"disable_events" mapstructure:"disable_events" split_words:"true"`

featureflag/featureflag.go

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,24 @@ import (
55

66
"github.com/sirupsen/logrus"
77

8-
"gopkg.in/launchdarkly/go-sdk-common.v1/ldvalue"
9-
ld "gopkg.in/launchdarkly/go-server-sdk.v4"
10-
"gopkg.in/launchdarkly/go-server-sdk.v4/ldlog"
8+
"gopkg.in/launchdarkly/go-sdk-common.v2/ldlog"
9+
"gopkg.in/launchdarkly/go-sdk-common.v2/lduser"
10+
"gopkg.in/launchdarkly/go-sdk-common.v2/ldvalue"
11+
ld "gopkg.in/launchdarkly/go-server-sdk.v5"
12+
"gopkg.in/launchdarkly/go-server-sdk.v5/interfaces"
13+
"gopkg.in/launchdarkly/go-server-sdk.v5/interfaces/flagstate"
14+
"gopkg.in/launchdarkly/go-server-sdk.v5/ldcomponents"
1115
)
1216

1317
type Client interface {
1418
Enabled(key, userID string, attrs ...Attr) bool
15-
EnabledUser(key string, user ld.User) bool
19+
EnabledUser(key string, user lduser.User) bool
1620

1721
Variation(key, defaultVal, userID string, attrs ...Attr) string
18-
VariationUser(key string, defaultVal string, user ld.User) string
22+
VariationUser(key string, defaultVal string, user lduser.User) string
1923

2024
AllEnabledFlags(key string) []string
21-
AllEnabledFlagsUser(key string, user ld.User) []string
25+
AllEnabledFlagsUser(key string, user lduser.User) []string
2226
}
2327

2428
type ldClient struct {
@@ -30,27 +34,25 @@ type ldClient struct {
3034
var _ Client = &ldClient{}
3135

3236
func NewClient(cfg *Config, logger logrus.FieldLogger) (Client, error) {
33-
config := ld.DefaultConfig
37+
config := ld.Config{}
3438

3539
if !cfg.Enabled {
3640
config.Offline = true
3741
}
3842

3943
if cfg.updateProcessorFactory != nil {
40-
config.UpdateProcessorFactory = cfg.updateProcessorFactory
41-
config.SendEvents = false
44+
config.DataSource = cfg.updateProcessorFactory
45+
config.Events = ldcomponents.NoEvents()
4246
}
4347

44-
configureLogger(&config.Loggers, logger)
48+
config.Logging = configureLogger(logger)
4549

4650
if cfg.RelayHost != "" {
47-
config.BaseUri = cfg.RelayHost
48-
config.StreamUri = cfg.RelayHost
49-
config.EventsUri = cfg.RelayHost
51+
config.ServiceEndpoints = ldcomponents.RelayProxyEndpoints(cfg.RelayHost)
5052
}
5153

5254
if cfg.DisableEvents {
53-
config.SendEvents = false
55+
config.Events = ldcomponents.NoEvents()
5456
}
5557

5658
inner, err := ld.MakeCustomClient(cfg.Key, config, cfg.RequestTimeout.Duration)
@@ -69,7 +71,7 @@ func (c *ldClient) Enabled(key string, userID string, attrs ...Attr) bool {
6971
return c.EnabledUser(key, c.userWithAttrs(userID, attrs))
7072
}
7173

72-
func (c *ldClient) EnabledUser(key string, user ld.User) bool {
74+
func (c *ldClient) EnabledUser(key string, user lduser.User) bool {
7375
res, err := c.BoolVariation(key, user, false)
7476
if err != nil {
7577
c.log.WithError(err).WithField("key", key).Error("Failed to load feature flag")
@@ -81,7 +83,7 @@ func (c *ldClient) Variation(key, defaultVal, userID string, attrs ...Attr) stri
8183
return c.VariationUser(key, defaultVal, c.userWithAttrs(userID, attrs))
8284
}
8385

84-
func (c *ldClient) VariationUser(key string, defaultVal string, user ld.User) string {
86+
func (c *ldClient) VariationUser(key string, defaultVal string, user lduser.User) string {
8587
res, err := c.StringVariation(key, user, defaultVal)
8688
if err != nil {
8789
c.log.WithError(err).WithField("key", key).Error("Failed to load feature flag")
@@ -90,28 +92,25 @@ func (c *ldClient) VariationUser(key string, defaultVal string, user ld.User) st
9092
}
9193

9294
func (c *ldClient) AllEnabledFlags(key string) []string {
93-
return c.AllEnabledFlagsUser(key, ld.NewUser(key))
95+
return c.AllEnabledFlagsUser(key, lduser.NewUser(key))
9496
}
9597

96-
func (c *ldClient) AllEnabledFlagsUser(key string, user ld.User) []string {
97-
res := c.AllFlagsState(user, ld.DetailsOnlyForTrackedFlags)
98+
func (c *ldClient) AllEnabledFlagsUser(key string, user lduser.User) []string {
99+
res := c.AllFlagsState(user, flagstate.OptionDetailsOnlyForTrackedFlags())
98100
flagMap := res.ToValuesMap()
99101

100102
var flags []string
101103
for flag, value := range flagMap {
102-
switch value.(type) {
103-
case bool:
104-
if value == true {
105-
flags = append(flags, flag)
106-
}
104+
if value.BoolValue() {
105+
flags = append(flags, flag)
107106
}
108107
}
109108

110109
return flags
111110
}
112111

113-
func (c *ldClient) userWithAttrs(id string, attrs []Attr) ld.User {
114-
b := ld.NewUserBuilder(id)
112+
func (c *ldClient) userWithAttrs(id string, attrs []Attr) lduser.User {
113+
b := lduser.NewUserBuilder(id)
115114
for _, attr := range c.defaultAttrs {
116115
b.Custom(attr.Name, attr.Value)
117116
}
@@ -130,18 +129,28 @@ func StringAttr(name, value string) Attr {
130129
return Attr{Name: name, Value: ldvalue.String(value)}
131130
}
132131

133-
func configureLogger(ldLogger *ldlog.Loggers, log logrus.FieldLogger) {
132+
func configureLogger(log logrus.FieldLogger) interfaces.LoggingConfigurationFactory {
134133
if log == nil {
135134
l := logrus.New()
136135
l.SetOutput(ioutil.Discard)
137136
log = l
138137
}
139138
log = log.WithField("component", "launch_darkly")
140139

141-
ldLogger.SetBaseLoggerForLevel(ldlog.Debug, &wrapLog{log.Debugln, log.Debugf})
142-
ldLogger.SetBaseLoggerForLevel(ldlog.Info, &wrapLog{log.Infoln, log.Infof})
143-
ldLogger.SetBaseLoggerForLevel(ldlog.Warn, &wrapLog{log.Warnln, log.Warnf})
144-
ldLogger.SetBaseLoggerForLevel(ldlog.Error, &wrapLog{log.Errorln, log.Errorf})
140+
return &logCreator{log: log}
141+
}
142+
143+
type logCreator struct {
144+
log logrus.FieldLogger
145+
}
146+
147+
func (c *logCreator) CreateLoggingConfiguration(b interfaces.BasicConfiguration) (interfaces.LoggingConfiguration, error) {
148+
logger := ldlog.NewDefaultLoggers()
149+
logger.SetBaseLoggerForLevel(ldlog.Debug, &wrapLog{c.log.Debugln, c.log.Debugf})
150+
logger.SetBaseLoggerForLevel(ldlog.Info, &wrapLog{c.log.Infoln, c.log.Infof})
151+
logger.SetBaseLoggerForLevel(ldlog.Warn, &wrapLog{c.log.Warnln, c.log.Warnf})
152+
logger.SetBaseLoggerForLevel(ldlog.Error, &wrapLog{c.log.Errorln, c.log.Errorf})
153+
return ldcomponents.Logging().Loggers(logger).CreateLoggingConfiguration(b)
145154
}
146155

147156
type wrapLog struct {

featureflag/featureflag_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"github.com/sirupsen/logrus"
1010
"github.com/stretchr/testify/assert"
1111
"github.com/stretchr/testify/require"
12-
"gopkg.in/launchdarkly/go-server-sdk.v4/ldfiledata"
12+
"gopkg.in/launchdarkly/go-server-sdk.v5/ldfiledata"
1313
)
1414

1515
func TestOfflineClient(t *testing.T) {
@@ -46,7 +46,7 @@ func TestMockClient(t *testing.T) {
4646
}
4747

4848
func TestAllEnabledFlags(t *testing.T) {
49-
fileSource := ldfiledata.NewFileDataSourceFactory(ldfiledata.FilePaths("./fixtures/flags.yml"))
49+
fileSource := ldfiledata.DataSource().FilePaths("./fixtures/flags.yml")
5050
cfg := Config{
5151
Key: "ABCD",
5252
RequestTimeout: util.Duration{time.Second},

featureflag/mock.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package featureflag
22

33
import (
4-
ld "gopkg.in/launchdarkly/go-server-sdk.v4"
4+
"gopkg.in/launchdarkly/go-sdk-common.v2/lduser"
55
)
66

77
type MockClient struct {
@@ -12,18 +12,18 @@ type MockClient struct {
1212
var _ Client = MockClient{}
1313

1414
func (c MockClient) Enabled(key, userID string, _ ...Attr) bool {
15-
return c.EnabledUser(key, ld.NewUser(userID))
15+
return c.EnabledUser(key, lduser.NewUser(userID))
1616
}
1717

18-
func (c MockClient) EnabledUser(key string, _ ld.User) bool {
18+
func (c MockClient) EnabledUser(key string, _ lduser.User) bool {
1919
return c.BoolVars[key]
2020
}
2121

2222
func (c MockClient) Variation(key string, defaultVal string, userID string, _ ...Attr) string {
23-
return c.VariationUser(key, defaultVal, ld.NewUser(userID))
23+
return c.VariationUser(key, defaultVal, lduser.NewUser(userID))
2424
}
2525

26-
func (c MockClient) VariationUser(key string, defaultVal string, _ ld.User) string {
26+
func (c MockClient) VariationUser(key string, defaultVal string, _ lduser.User) string {
2727
res, ok := c.StringVars[key]
2828
if !ok {
2929
return defaultVal
@@ -32,10 +32,10 @@ func (c MockClient) VariationUser(key string, defaultVal string, _ ld.User) stri
3232
}
3333

3434
func (c MockClient) AllEnabledFlags(key string) []string {
35-
return c.AllEnabledFlagsUser(key, ld.NewUser(key))
35+
return c.AllEnabledFlagsUser(key, lduser.NewUser(key))
3636
}
3737

38-
func (c MockClient) AllEnabledFlagsUser(key string, _ ld.User) []string {
38+
func (c MockClient) AllEnabledFlagsUser(key string, _ lduser.User) []string {
3939
var res []string
4040
for key, value := range c.BoolVars {
4141
if value {

go.mod

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ require (
55
github.com/DataDog/datadog-go v4.8.3+incompatible
66
github.com/Microsoft/go-winio v0.5.0 // indirect
77
github.com/armon/go-metrics v0.3.10
8-
github.com/blang/semver v3.5.1+incompatible // indirect
98
github.com/bugsnag/bugsnag-go/v2 v2.1.2
109
github.com/dgrijalva/jwt-go v3.2.0+incompatible
1110
github.com/go-chi/chi v4.0.2+incompatible
@@ -15,8 +14,6 @@ require (
1514
github.com/joho/godotenv v1.4.0
1615
github.com/kelseyhightower/envconfig v1.4.0
1716
github.com/kr/text v0.2.0 // indirect
18-
github.com/launchdarkly/eventsource v1.6.1 // indirect
19-
github.com/launchdarkly/go-test-helpers v1.2.0 // indirect
2017
github.com/nats-io/nats-streaming-server v0.15.1 // indirect
2118
github.com/nats-io/nats.go v1.8.1
2219
github.com/nats-io/stan.go v0.5.0
@@ -42,9 +39,8 @@ require (
4239
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc
4340
gopkg.in/DataDog/dd-trace-go.v1 v1.34.0
4441
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
45-
gopkg.in/ghodss/yaml.v1 v1.0.0 // indirect
46-
gopkg.in/launchdarkly/go-sdk-common.v1 v1.0.0-20200401173443-991b2f427a01
47-
gopkg.in/launchdarkly/go-server-sdk.v4 v4.0.0-20200729232655-2a44fb361895
42+
gopkg.in/launchdarkly/go-sdk-common.v2 v2.5.0
43+
gopkg.in/launchdarkly/go-server-sdk.v5 v5.8.1
4844
gopkg.in/segmentio/analytics-go.v3 v3.1.0
4945
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
5046
)

0 commit comments

Comments
 (0)