diff --git a/auth.go b/auth.go deleted file mode 100644 index eaa5122..0000000 --- a/auth.go +++ /dev/null @@ -1,205 +0,0 @@ -package discovery - -import ( - "context" - "fmt" - "net/http" - "net/url" - "os" - "runtime" - - "github.com/nats-io/jwt/v2" - "github.com/nats-io/nkeys" - "github.com/overmindtech/tokenx-client" - "golang.org/x/oauth2/clientcredentials" -) - -const UserAgentVersion = "0.1" - -// TokenClient Represents something that is capable of getting NATS JWT tokens -// for a given set of NKeys -type TokenClient interface { - // Returns a NATS token that can be used to connect - GetJWT() (string, error) - - // Uses the NKeys associated with the token to sign some binary data - Sign([]byte) ([]byte, error) -} - -// BasicTokenClient stores a static token and returns it when called, ignoring -// any provided NKeys or context since it already has the token and doesn't need -// to make any requests -type BasicTokenClient struct { - staticToken string - staticKeys nkeys.KeyPair -} - -// NewBasicTokenClient Creates a new basic token client that simply returns a static token -func NewBasicTokenClient(token string, keys nkeys.KeyPair) *BasicTokenClient { - return &BasicTokenClient{ - staticToken: token, - staticKeys: keys, - } -} - -func (b *BasicTokenClient) GetJWT() (string, error) { - return b.staticToken, nil -} - -func (b *BasicTokenClient) Sign(in []byte) ([]byte, error) { - return b.staticKeys.Sign(in) -} - -// OAuthTokenClient Gets a NATS token by first authenticating to OAuth using the -// Client Credentials Flow, then using that token to retrieve a NATS token. -// Nkeys are also autogenerated -type OAuthTokenClient struct { - oAuthClient *clientcredentials.Config - natsConfig *tokenx.Configuration - natsClient *tokenx.APIClient - - jwt string - keys nkeys.KeyPair -} - -// NewOAuthTokenClient Generates a token client that authenticates to OAuth -// using the client credentials flow, then uses that auth to get a NATS token. -// `clientID` and `clientSecret` are used to authenticate using the client -// credentials flow with an API at `oAuthTokenURL`. `natsTokenExchangeURL` is -// the root URL of the NATS token exchange API that will be used e.g. -// https://api.server.test/v1 -func NewOAuthTokenClient(clientID string, clientSecret string, oAuthTokenURL string, natsTokenExchangeURL string) *OAuthTokenClient { - conf := &clientcredentials.Config{ - ClientID: clientID, - ClientSecret: clientSecret, - TokenURL: oAuthTokenURL, - EndpointParams: url.Values{ - "audience": []string{"https://auth.overmind.tech"}, - }, - } - - // Get an authenticated client that we can then make more HTTP calls with - authenticatedClient := conf.Client(context.TODO()) - - // Configure the token exchange client to use the newly authenticated HTTP - // client among other things - tokenExchangeConf := &tokenx.Configuration{ - DefaultHeader: make(map[string]string), - UserAgent: fmt.Sprintf("Overmind/%v (%v/%v)", UserAgentVersion, runtime.GOOS, runtime.GOARCH), - Debug: false, - Servers: tokenx.ServerConfigurations{ - { - URL: natsTokenExchangeURL, - Description: "NATS Token Exchange Server", - }, - }, - OperationServers: map[string]tokenx.ServerConfigurations{}, - HTTPClient: authenticatedClient, - } - - nClient := tokenx.NewAPIClient(tokenExchangeConf) - - return &OAuthTokenClient{ - oAuthClient: conf, - natsConfig: tokenExchangeConf, - natsClient: nClient, - } -} - -// generateKeys Generates a new set of keys for the client -func (o *OAuthTokenClient) generateKeys() error { - var err error - - o.keys, err = nkeys.CreateUser() - - return err -} - -// generateJWT Gets a new JWT from the auth API -func (o *OAuthTokenClient) generateJWT() error { - // If we don't yet have keys generate them - if o.keys == nil { - err := o.generateKeys() - - if err != nil { - return err - } - } - - var err error - var pubKey string - var hostname string - var response *http.Response - - pubKey, err = o.keys.PublicKey() - - if err != nil { - return err - } - - hostname, err = os.Hostname() - - if err != nil { - return err - } - - // Create the request for a NATS token - request := o.natsClient.AuthApi.TokensPost(context.Background()).TokenRequestData(tokenx.TokenRequestData{ - UserPubKey: &pubKey, - UserName: &hostname, - }) - - o.jwt, response, err = request.Execute() - - if err != nil { - return fmt.Errorf("getting NATS token failed: %v\nResponse: %v", err, response) - } - - return nil -} - -func (o *OAuthTokenClient) GetJWT() (string, error) { - // If we don't yet have a JWT, generate one - if o.jwt == "" { - err := o.generateJWT() - - if err != nil { - return "", err - } - } - - claims, err := jwt.DecodeUserClaims(o.jwt) - - if err != nil { - return o.jwt, err - } - - // Validate to make sure the JWT is valid. If it isn't we'll generate a new - // one - var vr jwt.ValidationResults - - claims.Validate(&vr) - - if len(vr.Errors()) != 0 { - // Regenerate the token - err := o.generateJWT() - - if err != nil { - return "", err - } - } - - return o.jwt, nil -} - -func (o *OAuthTokenClient) Sign(in []byte) ([]byte, error) { - if o.keys == nil { - err := o.generateKeys() - - if err != nil { - return []byte{}, err - } - } - - return o.keys.Sign(in) -} diff --git a/auth_test.go b/auth_test.go deleted file mode 100644 index 36842ff..0000000 --- a/auth_test.go +++ /dev/null @@ -1,133 +0,0 @@ -package discovery - -import ( - "context" - "fmt" - "os" - "testing" - - "github.com/nats-io/nkeys" - "github.com/overmindtech/tokenx-client" -) - -func TestBasicTokenClient(t *testing.T) { - keys, err := nkeys.CreateUser() - - if err != nil { - t.Fatal(err) - } - - c := NewBasicTokenClient("tokeny_mc_tokenface", keys) - - var token string - - token, err = c.GetJWT() - - if err != nil { - t.Error(err) - } - - if token != "tokeny_mc_tokenface" { - t.Error("token mismatch") - } - - data := []byte{1, 156, 230, 4, 23, 175, 11} - - signed, err := c.Sign(data) - - if err != nil { - t.Fatal(err) - } - - err = keys.Verify(data, signed) - - if err != nil { - t.Error(err) - } -} - -func GetTestOAuthTokenClient(t *testing.T) *OAuthTokenClient { - var domain string - var clientID string - var clientSecret string - var exists bool - - errorFormat := "environment variable %v not found. Set up your test environment first. See: https://github.com/overmindtech/auth0-test-data" - - // Read secrets form the environment - if domain, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_DOMAIN"); !exists || domain == "" { - t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_DOMAIN") - t.Skip("Skipping due to missing environment setup") - } - - if clientID, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_CLIENT_ID"); !exists || clientID == "" { - t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_CLIENT_ID") - t.Skip("Skipping due to missing environment setup") - } - - if clientSecret, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_CLIENT_SECRET"); !exists || clientSecret == "" { - t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_CLIENT_SECRET") - t.Skip("Skipping due to missing environment setup") - } - - exchangeURL, err := GetWorkingTokenExchange() - - if err != nil { - t.Fatal(err) - } - - return NewOAuthTokenClient( - clientID, - clientSecret, - fmt.Sprintf("https://%v/oauth/token", domain), - exchangeURL, - ) -} - -func TestOAuthTokenClient(t *testing.T) { - c := GetTestOAuthTokenClient(t) - - EnsureTestAccount(c.natsClient.AuthApi) - - var err error - - _, err = c.GetJWT() - - if err != nil { - t.Error(err) - } - - // Make sure it can sign - data := []byte{1, 156, 230, 4, 23, 175, 11} - - _, err = c.Sign(data) - - if err != nil { - t.Fatal(err) - } - -} - -var TestAccountCreated bool - -func EnsureTestAccount(a *tokenx.AuthApiService) error { - if !TestAccountCreated { - // This is the account that OAuth embeds in test tokens and therefore must - // be created - name := "test-account" - - req := a.AccountsPost(context.Background()).AccountRequestData(tokenx.AccountRequestData{ - Name: &name, - }) - - _, _, err := req.Execute() - - if err != nil { - return err - } - - TestAccountCreated = true - } - - return nil -} diff --git a/engine.go b/engine.go index 7da9b50..a66cabb 100644 --- a/engine.go +++ b/engine.go @@ -5,11 +5,11 @@ import ( "fmt" "runtime" "sort" - "strings" "sync" "time" "github.com/google/uuid" + "github.com/overmindtech/multiconn" "github.com/overmindtech/sdp-go" "github.com/overmindtech/sdpcache" @@ -18,39 +18,6 @@ import ( log "github.com/sirupsen/logrus" ) -type NATSOptions struct { - // The list of URLs to use for connecting to NATS - URLs []string - - // The name given to the connection, useful in logging - ConnectionName string - - // How long to wait when trying to connect to each NATS server - ConnectTimeout time.Duration - - // MaxReconnect sets the number of reconnect attempts that will be - // tried before giving up. If negative, then it will never give up - // trying to reconnect. - MaxReconnect int - - // ReconnectWait sets the time to backoff after attempting a reconnect - // to a server that we were already connected to previously. - ReconnectWait time.Duration - - // ReconnectJitter sets the upper bound for a random delay added to - // ReconnectWait during a reconnect when no TLS is used. - // Note that any jitter is capped with ReconnectJitterMax. - ReconnectJitter time.Duration - - // TokenClient Is the client that should be used to get a token to connect - // to NATS. This could be for example a BasicTokenClient which uses a static - // token, or an OAuthTokenClient that gets one using OAuth credentials - TokenClient TokenClient - - // The name of the queue to join when subscribing to subjects - QueueName string -} - // Engine is the main discovery engine. This is where all of the Sources and // sources are stored and is responsible for calling out to the right sources to // discover everything @@ -61,8 +28,8 @@ type Engine struct { // Descriptive name of this engine. Used as responder name in SDP responses Name string - // Options for connecting to NATS - NATSOptions *NATSOptions + NATSOptions *multiconn.NATSConnectionOptions // Options for connecting to NATS + NATSQueueName string // The name of the queue to use when subscribing // The maximum number of queries that can be executing in parallel. Defaults // to the number of CPUs @@ -266,90 +233,15 @@ func (e *Engine) NonHiddenSources() []Source { func (e *Engine) connect() error { // Try to connect to NATS if no := e.NATSOptions; no != nil { - var servers string - - // Register our custom encoder - nats.RegisterEncoder("sdp", &sdp.ENCODER) - - // Create server list as comme separated - servers = strings.Join(no.URLs, ",") - - // Configure options - options := []nats.Option{ - nats.Name(no.ConnectionName), - nats.Timeout(no.ConnectTimeout), - nats.RetryOnFailedConnect(true), - nats.MaxReconnects(no.MaxReconnect), - nats.DisconnectErrHandler(func(c *nats.Conn, e error) { - log.WithFields(log.Fields{ - "error": e, - "address": c.ConnectedAddr(), - }).Error("NATS disconnected") - }), - nats.ReconnectHandler(func(c *nats.Conn) { - log.WithFields(log.Fields{ - "reconnects": c.Reconnects, - "ServerID": c.ConnectedServerId(), - "URL:": c.ConnectedUrl(), - }).Info("NATS reconnected") - }), - nats.ClosedHandler(func(c *nats.Conn) { - log.WithFields(log.Fields{ - "error": c.LastError(), - }).Info("NATS connection closed") - }), - nats.LameDuckModeHandler(func(c *nats.Conn) { - log.WithFields(log.Fields{ - "address": c.ConnectedAddr(), - }).Info("NATS server has entered lame duck mode") - }), - nats.ErrorHandler(func(c *nats.Conn, s *nats.Subscription, e error) { - log.WithFields(log.Fields{ - "error": e, - "address": c.ConnectedAddr(), - "subject": s.Subject, - "queue": s.Queue, - }).Error("NATS error") - }), - } - - if no.TokenClient != nil { - options = append(options, nats.UserJWT(no.TokenClient.GetJWT, no.TokenClient.Sign)) - } - - if no.ReconnectWait > 0 { - options = append(options, nats.ReconnectWait(no.ReconnectWait)) - } - - if no.ReconnectJitter > 0 { - options = append(options, nats.ReconnectJitter(no.ReconnectJitter, no.ReconnectJitter)) - } - - log.WithFields(log.Fields{ - "servers": servers, - }).Info("NATS connecting") - - e.natsConnectionMutex.Lock() - defer e.natsConnectionMutex.Unlock() - - nc, err := nats.Connect( - servers, - options..., - ) - - if err != nil { - return err - } - - var enc *nats.EncodedConn - - enc, err = nats.NewEncodedConn(nc, "sdp") + enc, err := e.NATSOptions.Connect() if err != nil { return err } + e.natsConnectionMutex.Lock() e.natsConnection = enc + e.natsConnectionMutex.Unlock() e.ConnectionWatcher = NATSWatcher{ Connection: e.natsConnection.Conn, @@ -495,20 +387,23 @@ func (e *Engine) subscribe(subject string, handler nats.Handler) error { var subscription *nats.Subscription var err error + e.natsConnectionMutex.Lock() + defer e.natsConnectionMutex.Unlock() + if e.natsConnection == nil { return errors.New("cannot subscribe. NATS connection is nil") } log.WithFields(log.Fields{ - "queueName": e.NATSOptions.QueueName, + "queueName": e.NATSQueueName, "subject": subject, "engineName": e.Name, }).Debug("creating NATS subscription") - if e.NATSOptions.QueueName == "" { + if e.NATSQueueName == "" { subscription, err = e.natsConnection.Subscribe(subject, handler) } else { - subscription, err = e.natsConnection.QueueSubscribe(subject, e.NATSOptions.QueueName, handler) + subscription, err = e.natsConnection.QueueSubscribe(subject, e.NATSQueueName, handler) } if err != nil { diff --git a/engine_test.go b/engine_test.go index 85fda22..0fc1248 100644 --- a/engine_test.go +++ b/engine_test.go @@ -2,6 +2,7 @@ package discovery import ( "fmt" + "os" "sync" "testing" @@ -11,6 +12,7 @@ import ( "github.com/nats-io/nats-server/v2/server" "github.com/nats-io/nats-server/v2/test" "github.com/nats-io/nats.go" + "github.com/overmindtech/multiconn" "github.com/overmindtech/sdp-go" ) @@ -150,13 +152,17 @@ func TestNats(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: NatsTestURLs, - ConnectionName: "test-connection", - ConnectTimeout: time.Second, - MaxReconnect: 5, - QueueName: "test", + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 5, + RetryDelay: time.Second, + }, + Servers: NatsTestURLs, + ConnectionName: "test-connection", + ConnectionTimeout: time.Second, + MaxReconnects: 5, }, + NATSQueueName: "test", MaxParallelExecutions: 10, } @@ -251,13 +257,17 @@ func TestNatsCancel(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: NatsTestURLs, - ConnectionName: "test-connection", - ConnectTimeout: time.Second, - QueueName: "test", - MaxReconnect: 5, + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 5, + RetryDelay: time.Second, + }, + Servers: NatsTestURLs, + ConnectionName: "test-connection", + ConnectionTimeout: time.Second, + MaxReconnects: 5, }, + NATSQueueName: "test", MaxParallelExecutions: 1, } @@ -366,13 +376,13 @@ func TestNatsConnections(t *testing.T) { t.Run("with a bad hostname", func(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: []string{"nats://bad.server"}, - ConnectionName: "test-disconnection", - ConnectTimeout: time.Second, - QueueName: "test", - MaxReconnect: 1, + NATSOptions: &multiconn.NATSConnectionOptions{ + Servers: []string{"nats://bad.server"}, + ConnectionName: "test-disconnection", + ConnectionTimeout: time.Second, + MaxReconnects: 1, }, + NATSQueueName: "test", MaxParallelExecutions: 1, } @@ -399,15 +409,19 @@ func TestNatsConnections(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: []string{"127.0.0.1:4111"}, - ConnectionName: "test-disconnection", - ConnectTimeout: time.Second, - QueueName: "test", - MaxReconnect: 10, - ReconnectWait: time.Second, - ReconnectJitter: time.Second, + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 5, + RetryDelay: time.Second, + }, + Servers: []string{"127.0.0.1:4111"}, + ConnectionName: "test-disconnection", + ConnectionTimeout: time.Second, + MaxReconnects: 10, + ReconnectWait: time.Second, + ReconnectJitter: time.Second, }, + NATSQueueName: "test", MaxParallelExecutions: 1, } @@ -455,15 +469,19 @@ func TestNatsConnections(t *testing.T) { t.Run("with a server that takes a while to start", func(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: []string{"127.0.0.1:4111"}, - ConnectionName: "test-disconnection", - ConnectTimeout: 5 * time.Second, - QueueName: "test", - MaxReconnect: 10, - ReconnectJitter: time.Second, - ReconnectWait: time.Second, + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 10, + RetryDelay: time.Second, + }, + Servers: []string{"127.0.0.1:4111"}, + ConnectionName: "test-disconnection", + ConnectionTimeout: time.Second, + MaxReconnects: 10, + ReconnectWait: time.Second, + ReconnectJitter: time.Second, }, + NATSQueueName: "test", MaxParallelExecutions: 1, } @@ -503,15 +521,19 @@ func TestNATSFailureRestart(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: []string{"127.0.0.1:4111"}, - ConnectionName: "test-disconnection", - ConnectTimeout: time.Second, - QueueName: "test", - MaxReconnect: 1, - ReconnectWait: 100 * time.Millisecond, - ReconnectJitter: 10 * time.Millisecond, + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 10, + RetryDelay: time.Second, + }, + Servers: []string{"127.0.0.1:4111"}, + ConnectionName: "test-disconnection", + ConnectionTimeout: time.Second, + MaxReconnects: 10, + ReconnectWait: 100 * time.Millisecond, + ReconnectJitter: 10 * time.Millisecond, }, + NATSQueueName: "test", MaxParallelExecutions: 1, ConnectionWatchInterval: 1 * time.Second, } @@ -557,14 +579,18 @@ func TestNatsAuth(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: NatsAuthTestURLs, - ConnectionName: "test-connection", - ConnectTimeout: time.Second, - MaxReconnect: 5, - QueueName: "test", - TokenClient: GetTestOAuthTokenClient(t), + NATSOptions: &multiconn.NATSConnectionOptions{ + CommonOptions: multiconn.CommonOptions{ + NumRetries: 5, + RetryDelay: time.Second, + }, + Servers: NatsTestURLs, + ConnectionName: "test-connection", + ConnectionTimeout: time.Second, + MaxReconnects: 5, + TokenClient: GetTestOAuthTokenClient(t), }, + NATSQueueName: "test", MaxParallelExecutions: 10, } @@ -650,3 +676,41 @@ func TestNatsAuth(t *testing.T) { }) } + +func GetTestOAuthTokenClient(t *testing.T) *multiconn.OAuthTokenClient { + var domain string + var clientID string + var clientSecret string + var exists bool + + errorFormat := "environment variable %v not found. Set up your test environment first. See: https://github.com/overmindtech/auth0-test-data" + + // Read secrets form the environment + if domain, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_DOMAIN"); !exists || domain == "" { + t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_DOMAIN") + t.Skip("Skipping due to missing environment setup") + } + + if clientID, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_CLIENT_ID"); !exists || clientID == "" { + t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_CLIENT_ID") + t.Skip("Skipping due to missing environment setup") + } + + if clientSecret, exists = os.LookupEnv("OVERMIND_NTE_ALLPERMS_CLIENT_SECRET"); !exists || clientSecret == "" { + t.Errorf(errorFormat, "OVERMIND_NTE_ALLPERMS_CLIENT_SECRET") + t.Skip("Skipping due to missing environment setup") + } + + exchangeURL, err := GetWorkingTokenExchange() + + if err != nil { + t.Fatal(err) + } + + return multiconn.NewOAuthTokenClient( + clientID, + clientSecret, + fmt.Sprintf("https://%v/oauth/token", domain), + exchangeURL, + ) +} diff --git a/go.mod b/go.mod index 4a8f0d3..64e9fdf 100644 --- a/go.mod +++ b/go.mod @@ -6,30 +6,37 @@ go 1.17 require ( github.com/google/uuid v1.3.0 github.com/goombaio/namegenerator v0.0.0-20181006234301-989e774b106e - github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a - github.com/nats-io/nats-server/v2 v2.8.2 - github.com/nats-io/nats.go v1.15.0 - github.com/nats-io/nkeys v0.3.0 - github.com/overmindtech/sdp-go v0.8.5 - github.com/overmindtech/sdpcache v0.3.1 - github.com/overmindtech/tokenx-client v0.1.2 + github.com/nats-io/nats-server/v2 v2.8.4 + github.com/nats-io/nats.go v1.16.0 + github.com/overmindtech/multiconn v0.3.1 + github.com/overmindtech/sdp-go v0.9.2 + github.com/overmindtech/sdpcache v0.3.2 github.com/sirupsen/logrus v1.8.1 google.golang.org/protobuf v1.28.0 ) // Transitive dependencies require ( + github.com/dgraph-io/dgo/v210 v210.0.0-20220113041351-ba0e5dfc4c3e // indirect + github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/go-cmp v0.5.8 // indirect - github.com/klauspost/compress v1.15.3 // indirect + github.com/klauspost/compress v1.15.5 // indirect github.com/minio/highwayhash v1.0.2 // indirect + github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a // indirect + github.com/nats-io/nkeys v0.3.0 // indirect github.com/nats-io/nuid v1.0.1 // indirect + github.com/overmindtech/tokenx-client v0.1.2 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/stretchr/testify v1.7.1 // indirect - golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122 // indirect - golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 - golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 // indirect + golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect + golang.org/x/net v0.0.0-20220526153639-5463443f8c37 // indirect + golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401 // indirect + golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect + golang.org/x/text v0.3.7 // indirect golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect google.golang.org/appengine v1.6.7 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + google.golang.org/genproto v0.0.0-20220527130721-00d5c0f3be58 // indirect + google.golang.org/grpc v1.46.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index cb05e8e..8f0d66e 100644 --- a/go.sum +++ b/go.sum @@ -33,22 +33,36 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/dgo/v210 v210.0.0-20220113041351-ba0e5dfc4c3e h1:+RV+hvGYPEqTABBflJss35nBDU9GNq4aKVR85dKqSz0= +github.com/dgraph-io/dgo/v210 v210.0.0-20220113041351-ba0e5dfc4c3e/go.mod h1:dCzdThGGTPYOAuNtrM6BiXj/86voHn7ZzkPL6noXR3s= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -73,6 +87,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= @@ -86,6 +101,7 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -98,21 +114,25 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/goombaio/namegenerator v0.0.0-20181006234301-989e774b106e h1:XmA6L9IPRdUr28a+SK/oMchGgQy159wvzXA5tJ7l+40= github.com/goombaio/namegenerator v0.0.0-20181006234301-989e774b106e/go.mod h1:AFIo+02s+12CEg8Gzz9kzhCbmbq6JcKNrhHffCGA9z4= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.3 h1:wmfu2iqj9q22SyMINp1uQ8C2/V4M1phJdmH9fG4nba0= -github.com/klauspost/compress v1.15.3/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.4/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.5 h1:qyCLMz2JCrKADihKOh9FxnW3houKeNsp2h5OEz0QSEA= +github.com/klauspost/compress v1.15.5/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -120,41 +140,54 @@ github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a h1:lem6QCvxR0Y28gth9P+wV2K/zYUUAkJ+55U8cpS0p5I= github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= -github.com/nats-io/nats-server/v2 v2.8.2 h1:5m1VytMEbZx0YINvKY+X2gXdLNwP43uLXnFRwz8j8KE= github.com/nats-io/nats-server/v2 v2.8.2/go.mod h1:vIdpKz3OG+DCg4q/xVPdXHoztEyKDWRtykQ4N7hd7C4= +github.com/nats-io/nats-server/v2 v2.8.4 h1:0jQzze1T9mECg8YZEl8+WYUXb9JKluJfCBriPUtluB4= +github.com/nats-io/nats-server/v2 v2.8.4/go.mod h1:8zZa+Al3WsESfmgSs98Fi06dRWLH5Bnq90m5bKD/eT4= github.com/nats-io/nats.go v1.14.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= -github.com/nats-io/nats.go v1.15.0 h1:3IXNBolWrwIUf2soxh6Rla8gPzYWEZQBUBK6RV21s+o= github.com/nats-io/nats.go v1.15.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nats.go v1.16.0 h1:zvLE7fGBQYW6MWaFaRdsgm9qT39PJDQoju+DS8KsO1g= +github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/overmindtech/sdp-go v0.6.1/go.mod h1:JPeGuRR8VMlUZJZmxVPE0S3PqFtB9p50I+QDjZwSuic= -github.com/overmindtech/sdp-go v0.8.5 h1:ULAj4Ea+69QbKuGgbvJbuxkLXtl1Y97cb4vPQ2xNFl8= -github.com/overmindtech/sdp-go v0.8.5/go.mod h1:S/Uqe9TGVcdWuWx+MAbOVcdLgnFqn79fTp1h5AANbtw= -github.com/overmindtech/sdpcache v0.3.1 h1:AgdG/F7YpbUfNjB6IYK77pztnS17SVfCNqOwkny+rdw= -github.com/overmindtech/sdpcache v0.3.1/go.mod h1:nRvqKJQdaD69DzYgh0DLTRdMdeQE59Ej02SqqEj5/V8= +github.com/overmindtech/multiconn v0.3.1 h1:vY9TuzCk9tduMt+Lxc80IfzGK3Oh8D4ZxmgUz95ZMpI= +github.com/overmindtech/multiconn v0.3.1/go.mod h1:1ctCvpKrQy1qf0rQhrOvq5h92CaGN7L9ndWLm68H3X8= +github.com/overmindtech/sdp-go v0.8.4/go.mod h1:S/Uqe9TGVcdWuWx+MAbOVcdLgnFqn79fTp1h5AANbtw= +github.com/overmindtech/sdp-go v0.9.1/go.mod h1:9SFx+Se5hgWxQviaR6f/0MgFO0xBLbqOyfunqqks7T4= +github.com/overmindtech/sdp-go v0.9.2 h1:wZu4j4HScFhlStXi8dDnO2+Et5byLprk2HcNFUTyXfo= +github.com/overmindtech/sdp-go v0.9.2/go.mod h1:9SFx+Se5hgWxQviaR6f/0MgFO0xBLbqOyfunqqks7T4= +github.com/overmindtech/sdpcache v0.3.2 h1:0godJzpEH1QfNOO54ii14xH2LMn4mjHpiANRmqayEM4= +github.com/overmindtech/sdpcache v0.3.2/go.mod h1:l937jFOK86yO37R9SdtpDbz0m3Uf8tEIiLWCXq690J8= github.com/overmindtech/tokenx-client v0.1.2 h1:lZhmKzpv+evfnutvGd7B6bsjQCUvoxPW9cGyNMMi27s= github.com/overmindtech/tokenx-client v0.1.2/go.mod h1:MCuhjsLdHoxycxosZhOxWn5VvjWUgHn8FPrmpWK+Uu0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -163,8 +196,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122 h1:NvGWuYG8dkDHFSKksI1P9faiVJ9rayE6l0+ouWVIDs8= -golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220513210258-46612604a0f9/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -221,20 +256,22 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220526153639-5463443f8c37 h1:lUkvobShwKsOesNfWWlCS5q7fnbG1MEliIzwu886fn8= +golang.org/x/net v0.0.0-20220526153639-5463443f8c37/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401 h1:zwrSfklXn0gxyLRX/aR+q6cgHbV/ItVyzbPlbA+dkAw= +golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -243,6 +280,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -270,14 +308,18 @@ golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220513210249-45d2b4557a2a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -285,7 +327,9 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -330,9 +374,11 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -384,12 +430,15 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20220527130721-00d5c0f3be58 h1:a221mAAEAzq4Lz6ZWRkcS8ptb2mxoxYSt4N68aRyQHM= +google.golang.org/genproto v0.0.0-20220527130721-00d5c0f3be58/go.mod h1:yKyY4AMRwFiC8yMMNaMi+RkCnjZJt9LoWuvhXjMs+To= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -402,6 +451,10 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.46.2 h1:u+MLGgVf7vRdjEYZ8wDFhAVNmhkbJ5hmrA1LMWK1CAQ= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -421,9 +474,10 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/requests_test.go b/requests_test.go index eb27870..364b62e 100644 --- a/requests_test.go +++ b/requests_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/google/uuid" + "github.com/overmindtech/multiconn" "github.com/overmindtech/sdp-go" "google.golang.org/protobuf/types/known/durationpb" ) @@ -275,13 +276,13 @@ func TestSendRequestSync(t *testing.T) { e := Engine{ Name: "nats-test", - NATSOptions: &NATSOptions{ - URLs: NatsTestURLs, - ConnectionName: "test-connection", - ConnectTimeout: time.Second, - MaxReconnect: 5, - QueueName: "test", + NATSOptions: &multiconn.NATSConnectionOptions{ + Servers: NatsTestURLs, + ConnectionName: "test-connection", + ConnectionTimeout: time.Second, + MaxReconnects: 5, }, + NATSQueueName: "test", MaxParallelExecutions: 10, } diff --git a/triggers_test.go b/triggers_test.go index a155a44..9ad4886 100644 --- a/triggers_test.go +++ b/triggers_test.go @@ -8,6 +8,7 @@ import ( "github.com/google/uuid" "github.com/nats-io/nats.go" + "github.com/overmindtech/multiconn" "github.com/overmindtech/sdp-go" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/structpb" @@ -219,8 +220,8 @@ func TestNATSTriggers(t *testing.T) { engine := Engine{ Name: "trigger-testing", - NATSOptions: &NATSOptions{ - URLs: NatsTestURLs, + NATSOptions: &multiconn.NATSConnectionOptions{ + Servers: NatsTestURLs, }, MaxParallelExecutions: 1, }