NOISSUE - Update SMQ dependencies

Signed-off-by: Dusan Borovcanin <borovcanindusan1@gmail.com>
This commit is contained in:
Dusan Borovcanin
2025-04-10 12:24:23 +02:00
parent 0e04e90803
commit 99a3505003
9 changed files with 1690 additions and 1542 deletions
+33 -14
View File
@@ -13,6 +13,25 @@ import (
var _ bootstrap.Service = (*eventStore)(nil)
const (
streamPrefix = ".bootstrap"
addStream = streamPrefix + "add"
viewStream = streamPrefix + "view"
updateStream = streamPrefix + "update"
listStream = streamPrefix + "list"
bootstrapStream = streamPrefix + "bootstrap"
removeStream = streamPrefix + "remove"
updateCertStream = streamPrefix + "update_cert"
updateConnectionsStream = streamPrefix + "update_connections"
changeStateStream = streamPrefix + "change_state"
connectClientHandlerStream = streamPrefix + "connect_client_handler"
disconnectClientHandlerStream = streamPrefix + "disconnect_client_handler"
removeConfigHandlerStream = streamPrefix + "remove_config_handler"
removeChannelHandlerStream = streamPrefix + "remove_channel_handler"
updateChannelHandlerStream = streamPrefix + "update_channel_handler"
)
type eventStore struct {
events.Publisher
svc bootstrap.Service
@@ -37,7 +56,7 @@ func (es *eventStore) Add(ctx context.Context, session smqauthn.Session, token s
saved, configCreate,
}
if err := es.Publish(ctx, ev); err != nil {
if err := es.Publish(ctx, addStream, ev); err != nil {
return saved, err
}
@@ -53,7 +72,7 @@ func (es *eventStore) View(ctx context.Context, session smqauthn.Session, id str
cfg, configView,
}
if err := es.Publish(ctx, ev); err != nil {
if err := es.Publish(ctx, viewStream, ev); err != nil {
return cfg, err
}
@@ -69,7 +88,7 @@ func (es *eventStore) Update(ctx context.Context, session smqauthn.Session, cfg
cfg, configUpdate,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, updateStream, ev)
}
func (es eventStore) UpdateCert(ctx context.Context, session smqauthn.Session, clientID, clientCert, clientKey, caCert string) (bootstrap.Config, error) {
@@ -85,7 +104,7 @@ func (es eventStore) UpdateCert(ctx context.Context, session smqauthn.Session, c
caCert: caCert,
}
if err := es.Publish(ctx, ev); err != nil {
if err := es.Publish(ctx, updateCertStream, ev); err != nil {
return cfg, err
}
@@ -102,7 +121,7 @@ func (es *eventStore) UpdateConnections(ctx context.Context, session smqauthn.Se
mgChannels: connections,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, updateConnectionsStream, ev)
}
func (es *eventStore) List(ctx context.Context, session smqauthn.Session, filter bootstrap.Filter, offset, limit uint64) (bootstrap.ConfigsPage, error) {
@@ -118,7 +137,7 @@ func (es *eventStore) List(ctx context.Context, session smqauthn.Session, filter
partialMatch: filter.PartialMatch,
}
if err := es.Publish(ctx, ev); err != nil {
if err := es.Publish(ctx, listStream, ev); err != nil {
return bp, err
}
@@ -134,7 +153,7 @@ func (es *eventStore) Remove(ctx context.Context, session smqauthn.Session, id s
client: id,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, removeStream, ev)
}
func (es *eventStore) Bootstrap(ctx context.Context, externalKey, externalID string, secure bool) (bootstrap.Config, error) {
@@ -150,7 +169,7 @@ func (es *eventStore) Bootstrap(ctx context.Context, externalKey, externalID str
ev.success = false
}
if err := es.Publish(ctx, ev); err != nil {
if err := es.Publish(ctx, bootstrapStream, ev); err != nil {
return cfg, err
}
@@ -167,7 +186,7 @@ func (es *eventStore) ChangeState(ctx context.Context, session smqauthn.Session,
state: state,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, changeStateStream, ev)
}
func (es *eventStore) RemoveConfigHandler(ctx context.Context, id string) error {
@@ -180,7 +199,7 @@ func (es *eventStore) RemoveConfigHandler(ctx context.Context, id string) error
operation: configHandlerRemove,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, removeConfigHandlerStream, ev)
}
func (es *eventStore) RemoveChannelHandler(ctx context.Context, id string) error {
@@ -193,7 +212,7 @@ func (es *eventStore) RemoveChannelHandler(ctx context.Context, id string) error
operation: channelHandlerRemove,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, removeChannelHandlerStream, ev)
}
func (es *eventStore) UpdateChannelHandler(ctx context.Context, channel bootstrap.Channel) error {
@@ -205,7 +224,7 @@ func (es *eventStore) UpdateChannelHandler(ctx context.Context, channel bootstra
channel,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, updateChannelHandlerStream, ev)
}
func (es *eventStore) ConnectClientHandler(ctx context.Context, channelID, clientID string) error {
@@ -218,7 +237,7 @@ func (es *eventStore) ConnectClientHandler(ctx context.Context, channelID, clien
channelID: channelID,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, connectClientHandlerStream, ev)
}
func (es *eventStore) DisconnectClientHandler(ctx context.Context, channelID, clientID string) error {
@@ -231,5 +250,5 @@ func (es *eventStore) DisconnectClientHandler(ctx context.Context, channelID, cl
channelID: channelID,
}
return es.Publish(ctx, ev)
return es.Publish(ctx, disconnectClientHandlerStream, ev)
}
+1 -1
View File
@@ -98,7 +98,7 @@ func newTestVariable(t *testing.T, redisURL string) testVariable {
sdk := new(sdkmocks.SDK)
idp := uuid.NewMock()
svc := bootstrap.New(policies, boot, sdk, encKey, idp)
publisher, err := store.NewPublisher(context.Background(), redisURL, streamID)
publisher, err := store.NewPublisher(context.Background(), redisURL)
require.Nil(t, err, fmt.Sprintf("got unexpected error: %s", err))
svc = producer.NewEventStoreMiddleware(svc, publisher)
return testVariable{
+8 -8
View File
@@ -172,7 +172,7 @@ func (bs bootstrapService) Add(ctx context.Context, session smqauthn.Session, to
// If id is empty, then a new client has been created function - bs.client(id, token)
// So, on bootstrap config save error , delete the newly created client.
if id == "" {
if errT := bs.sdk.DeleteClient(cfg.ClientID, cfg.DomainID, token); errT != nil {
if errT := bs.sdk.DeleteClient(ctx, cfg.ClientID, cfg.DomainID, token); errT != nil {
err = errors.Wrap(err, errT)
}
}
@@ -237,7 +237,7 @@ func (bs bootstrapService) UpdateConnections(ctx context.Context, session smqaut
}
for _, c := range disconnect {
if err := bs.sdk.DisconnectClients(c, []string{id}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
if err := bs.sdk.DisconnectClients(ctx, c, []string{id}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
if errors.Contains(err, repoerr.ErrNotFound) {
continue
}
@@ -251,7 +251,7 @@ func (bs bootstrapService) UpdateConnections(ctx context.Context, session smqaut
ClientIDs: []string{id},
Types: []string{"Publish", "Subscribe"},
}
if err := bs.sdk.Connect(conIDs, session.DomainID, token); err != nil {
if err := bs.sdk.Connect(ctx, conIDs, session.DomainID, token); err != nil {
return ErrClients
}
}
@@ -336,7 +336,7 @@ func (bs bootstrapService) ChangeState(ctx context.Context, session smqauthn.Ses
switch state {
case Active:
for _, c := range cfg.Channels {
if err := bs.sdk.ConnectClients(c.ID, []string{cfg.ClientID}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
if err := bs.sdk.ConnectClients(context.Background(), c.ID, []string{cfg.ClientID}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
// Ignore conflict errors as they indicate the connection already exists.
if errors.Contains(err, svcerr.ErrConflict) {
continue
@@ -346,7 +346,7 @@ func (bs bootstrapService) ChangeState(ctx context.Context, session smqauthn.Ses
}
case Inactive:
for _, c := range cfg.Channels {
if err := bs.sdk.DisconnectClients(c.ID, []string{cfg.ClientID}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
if err := bs.sdk.DisconnectClients(context.Background(), c.ID, []string{cfg.ClientID}, []string{"Publish", "Subscribe"}, session.DomainID, token); err != nil {
if errors.Contains(err, repoerr.ErrNotFound) {
continue
}
@@ -403,7 +403,7 @@ func (bs bootstrapService) client(domainID, id, token string) (mgsdk.Client, err
if err != nil {
return mgsdk.Client{}, errors.Wrap(errCreateClient, err)
}
client, sdkErr := bs.sdk.CreateClient(mgsdk.Client{ID: id, Name: "Bootstrapped Client " + id}, domainID, token)
client, sdkErr := bs.sdk.CreateClient(context.Background(), mgsdk.Client{ID: id, Name: "Bootstrapped Client " + id}, domainID, token)
if sdkErr != nil {
return mgsdk.Client{}, errors.Wrap(errCreateClient, sdkErr)
}
@@ -411,7 +411,7 @@ func (bs bootstrapService) client(domainID, id, token string) (mgsdk.Client, err
}
// If Client ID is provided, then retrieve client
client, sdkErr := bs.sdk.Client(id, domainID, token)
client, sdkErr := bs.sdk.Client(context.Background(), id, domainID, token)
if sdkErr != nil {
return mgsdk.Client{}, errors.Wrap(ErrClients, sdkErr)
}
@@ -432,7 +432,7 @@ func (bs bootstrapService) connectionChannels(channels, existing []string, domai
var ret []Channel
for id := range add {
ch, err := bs.sdk.Channel(id, domainID, token)
ch, err := bs.sdk.Channel(context.Background(), id, domainID, token)
if err != nil {
return nil, errors.Wrap(errors.ErrMalformedEntity, err)
}
+16 -15
View File
@@ -4,6 +4,7 @@
package cli
import (
"context"
"encoding/csv"
"encoding/json"
"errors"
@@ -53,7 +54,7 @@ var cmdProvision = []cobra.Command{
return
}
clients, err = sdk.CreateClients(clients, args[1], args[2])
clients, err = sdk.CreateClients(context.Background(), clients, args[1], args[2])
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -80,7 +81,7 @@ var cmdProvision = []cobra.Command{
var chs []smqsdk.Channel
for _, c := range channels {
c, err = sdk.CreateChannel(c, args[1], args[2])
c, err = sdk.CreateChannel(context.Background(), c, args[1], args[2])
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -108,7 +109,7 @@ var cmdProvision = []cobra.Command{
return
}
for _, conn := range connIDs {
if err := sdk.Connect(conn, args[1], args[2]); err != nil {
if err := sdk.Connect(context.Background(), conn, args[1], args[2]); err != nil {
logErrorCmd(*cmd, err)
return
}
@@ -145,13 +146,13 @@ var cmdProvision = []cobra.Command{
},
Status: smqsdk.EnabledStatus,
}
user, err := sdk.CreateUser(user, "")
user, err := sdk.CreateUser(context.Background(), user, "")
if err != nil {
logErrorCmd(*cmd, err)
return
}
ut, err := sdk.CreateToken(smqsdk.Login{Username: user.Credentials.Username, Password: user.Credentials.Secret})
ut, err := sdk.CreateToken(context.Background(), smqsdk.Login{Username: user.Credentials.Username, Password: user.Credentials.Secret})
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -162,13 +163,13 @@ var cmdProvision = []cobra.Command{
Name: fmt.Sprintf("%s-domain", name),
Status: smqsdk.EnabledStatus,
}
domain, err = sdk.CreateDomain(domain, ut.AccessToken)
domain, err = sdk.CreateDomain(context.Background(), domain, ut.AccessToken)
if err != nil {
logErrorCmd(*cmd, err)
return
}
ut, err = sdk.CreateToken(smqsdk.Login{Username: user.Email, Password: user.Credentials.Secret})
ut, err = sdk.CreateToken(context.Background(), smqsdk.Login{Username: user.Email, Password: user.Credentials.Secret})
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -183,7 +184,7 @@ var cmdProvision = []cobra.Command{
clients = append(clients, t)
}
clients, err = sdk.CreateClients(clients, domain.ID, ut.AccessToken)
clients, err = sdk.CreateClients(context.Background(), clients, domain.ID, ut.AccessToken)
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -195,7 +196,7 @@ var cmdProvision = []cobra.Command{
Name: fmt.Sprintf("%s-channel-%d", name, i),
Status: smqsdk.EnabledStatus,
}
c, err = sdk.CreateChannel(c, domain.ID, ut.AccessToken)
c, err = sdk.CreateChannel(context.Background(), c, domain.ID, ut.AccessToken)
if err != nil {
logErrorCmd(*cmd, err)
return
@@ -210,7 +211,7 @@ var cmdProvision = []cobra.Command{
ClientIDs: []string{clients[0].ID},
Types: []string{PublishType, SubscribeType},
}
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
if err := sdk.Connect(context.Background(), conIDs, domain.ID, ut.AccessToken); err != nil {
logErrorCmd(*cmd, err)
return
}
@@ -220,7 +221,7 @@ var cmdProvision = []cobra.Command{
ClientIDs: []string{clients[0].ID},
Types: []string{PublishType, SubscribeType},
}
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
if err := sdk.Connect(context.Background(), conIDs, domain.ID, ut.AccessToken); err != nil {
logErrorCmd(*cmd, err)
return
}
@@ -230,21 +231,21 @@ var cmdProvision = []cobra.Command{
ClientIDs: []string{clients[1].ID},
Types: []string{PublishType, SubscribeType},
}
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
if err := sdk.Connect(context.Background(), conIDs, domain.ID, ut.AccessToken); err != nil {
logErrorCmd(*cmd, err)
return
}
// send message to test connectivity
if err := sdk.SendMessage(channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[0].Credentials.Secret); err != nil {
if err := sdk.SendMessage(context.Background(), channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[0].Credentials.Secret); err != nil {
logErrorCmd(*cmd, err)
return
}
if err := sdk.SendMessage(channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[1].Credentials.Secret); err != nil {
if err := sdk.SendMessage(context.Background(), channels[0].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[1].Credentials.Secret); err != nil {
logErrorCmd(*cmd, err)
return
}
if err := sdk.SendMessage(channels[1].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[0].Credentials.Secret); err != nil {
if err := sdk.SendMessage(context.Background(), channels[1].ID, fmt.Sprintf(msgFormat, time.Now().Unix(), rand.Int()), clients[0].Credentials.Secret); err != nil {
logErrorCmd(*cmd, err)
return
}
+1 -1
View File
@@ -231,7 +231,7 @@ func newService(ctx context.Context, authz smqauthz.Authorization, policySvc pol
svc := bootstrap.New(policySvc, repoConfig, sdk, []byte(cfg.EncKey), idp)
publisher, err := store.NewPublisher(ctx, cfg.ESURL, streamID)
publisher, err := store.NewPublisher(ctx, cfg.ESURL)
if err != nil {
return nil, err
}
+9 -9
View File
@@ -1,12 +1,12 @@
module github.com/absmach/magistrala
go 1.24.1
go 1.24.2
require (
github.com/0x6flab/namegenerator v1.4.0
github.com/absmach/callhome v0.14.0
github.com/absmach/supermq v0.16.1-0.20250325140412-878860d249d7
github.com/authzed/authzed-go v1.3.1-0.20250221193325-56375fd9bd96
github.com/absmach/supermq v0.16.1-0.20250409211847-814f19390d0e
github.com/authzed/authzed-go v1.3.1-0.20250320210445-0cde0d8c71e2
github.com/authzed/grpcutil v0.0.0-20250221190651-1985b19b35b8
github.com/caarlos0/env/v11 v11.3.1
github.com/eclipse/paho.mqtt.golang v1.5.0
@@ -56,7 +56,7 @@ require (
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/absmach/senml v1.0.6 // indirect
github.com/absmach/senml v1.0.7 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d // indirect
@@ -72,7 +72,7 @@ require (
github.com/fatih/color v1.18.0
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/fxamacker/cbor/v2 v2.8.0 // indirect
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
@@ -96,7 +96,7 @@ require (
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/term v0.5.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/nats-io/nats.go v1.40.0 // indirect
github.com/nats-io/nats.go v1.41.0 // indirect
github.com/nats-io/nkeys v0.4.10 // indirect
github.com/nats-io/nuid v1.0.1 // indirect
github.com/oklog/ulid/v2 v2.1.0 // indirect
@@ -133,10 +133,10 @@ require (
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.36.0 // indirect
golang.org/x/crypto v0.37.0 // indirect
golang.org/x/net v0.37.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.23.0 // indirect
golang.org/x/sys v0.32.0 // indirect
golang.org/x/text v0.24.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
google.golang.org/protobuf v1.36.6
+20 -20
View File
@@ -26,18 +26,18 @@ github.com/absmach/certs v0.0.0-20250303232207-ef00d309ca02 h1:0CGxkUgYSCCQftMjs
github.com/absmach/certs v0.0.0-20250303232207-ef00d309ca02/go.mod h1:nQ/FYuITyIGmM7LO9gzt7a9L1FCjxPoBXrc9oSuBEyo=
github.com/absmach/mgate v0.4.5 h1:l6RmrEsR9jxkdb9WHUSecmT0HA41TkZZQVffFfUAIfI=
github.com/absmach/mgate v0.4.5/go.mod h1:IvRIHZexZPEIAPmmaJF0L5DY2ERjj+GxRGitOW4s6qo=
github.com/absmach/senml v1.0.6 h1:WPeIl6vQ00k7ghWSZYT/QP0KUxq2+4zQoaC7240pLFk=
github.com/absmach/senml v1.0.6/go.mod h1:QnJNPy1DJPy0+qUW21PTcH/xoh0LgfYZxTfwriMIvmQ=
github.com/absmach/supermq v0.16.1-0.20250325140412-878860d249d7 h1:tXuJte6ni1uHwKtiYrClYxDK62M0G2frLRYcHWBAfo4=
github.com/absmach/supermq v0.16.1-0.20250325140412-878860d249d7/go.mod h1:LOULjy2D27WAF2PlpJEoY6KX1qNPr9bbRW0PVCfVS/4=
github.com/absmach/senml v1.0.7 h1:XLvpw0qxbP2QhOz7KLM2ZRar+vSCpSG/0o0kEvWx3No=
github.com/absmach/senml v1.0.7/go.mod h1:3bRIiNc8hq7l3auMs8gQrpsM5hHy7iDuiLILrf/+MfA=
github.com/absmach/supermq v0.16.1-0.20250409211847-814f19390d0e h1:ne0gLjWDr+AuvSeE7FINn4bXls4nk6GMURpVT+HjX18=
github.com/absmach/supermq v0.16.1-0.20250409211847-814f19390d0e/go.mod h1:dJqO3luvt+zLVuDhxOdsRRCuv945F86Nf1BXxFro+nU=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
github.com/authzed/authzed-go v1.3.1-0.20250221193325-56375fd9bd96 h1:hk39yQRBdz/rCmu7JNrjQ+WQjU2LavAW0lH51bBiffc=
github.com/authzed/authzed-go v1.3.1-0.20250221193325-56375fd9bd96/go.mod h1:hqfbuDfdx4Yca1w0NxYpp9EiJLRtYOxCM5St8oQ+ihE=
github.com/authzed/authzed-go v1.3.1-0.20250320210445-0cde0d8c71e2 h1:Thss/u6uu0rJULAHdvd3kMJfFZIealMZYPx21KI/3HI=
github.com/authzed/authzed-go v1.3.1-0.20250320210445-0cde0d8c71e2/go.mod h1:ReuY/1rPEqJ+3dVE1Esi2VJI2uQNLtOeQN+8Yq9uNJw=
github.com/authzed/grpcutil v0.0.0-20250221190651-1985b19b35b8 h1:y17oq4U8n+k1OcIGGDsjYdIdp4QywGcE7ZphIvtfEbo=
github.com/authzed/grpcutil v0.0.0-20250221190651-1985b19b35b8/go.mod h1:Pf1ZSi41EePvx1GC1DeEJw5dn35iUcxZHqpHuG1Rpic=
github.com/aws/aws-sdk-go v1.34.0/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
@@ -115,8 +115,8 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/fxamacker/cbor/v2 v2.8.0 h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU=
github.com/fxamacker/cbor/v2 v2.8.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
github.com/go-chi/chi/v5 v5.2.1 h1:KOIHODQj58PmL80G2Eak4WdvUzjSJSm0vG72crDCqb8=
github.com/go-chi/chi/v5 v5.2.1/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops=
github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs=
@@ -341,8 +341,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/nats-io/nats.go v1.40.0 h1:qC3rnVZy15vJ15GSbB+pQtOmqo9q+65wnGVpvmcVv0Q=
github.com/nats-io/nats.go v1.40.0/go.mod h1:wV73x0FSI/orHPSYoyMeJB+KajMDoWyXmFaRrrYaaTo=
github.com/nats-io/nats.go v1.41.0 h1:PzxEva7fflkd+n87OtQTXqCTyLfIIMFJBpyccHLE2Ko=
github.com/nats-io/nats.go v1.41.0/go.mod h1:wV73x0FSI/orHPSYoyMeJB+KajMDoWyXmFaRrrYaaTo=
github.com/nats-io/nkeys v0.4.10 h1:glmRrpCmYLHByYcePvnTBEAwawwapjCPMjy2huw20wc=
github.com/nats-io/nkeys v0.4.10/go.mod h1:OjRrnIKnWBFl+s4YK5ChQfvHP2fxqZexrKJoVVyWB3U=
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
@@ -402,8 +402,8 @@ github.com/rabbitmq/amqp091-go v1.10.0/go.mod h1:Hy4jKW5kQART1u+JkDTF9YYOQUHXqMu
github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM=
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
@@ -543,8 +543,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
@@ -581,8 +581,8 @@ golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
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.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98=
golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
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=
@@ -627,8 +627,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
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=
@@ -644,8 +644,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
+1583 -1457
View File
File diff suppressed because it is too large Load Diff
+19 -17
View File
@@ -4,6 +4,7 @@
package provision
import (
"context"
"encoding/json"
"fmt"
"log/slog"
@@ -102,7 +103,7 @@ func (ps *provisionService) Mapping(token string) (map[string]interface{}, error
Limit: uint64(limit),
}
if _, err := ps.sdk.Users(pm, token); err != nil {
if _, err := ps.sdk.Users(context.Background(), pm, token); err != nil {
return map[string]interface{}{}, errors.Wrap(ErrUnauthorized, err)
}
@@ -141,14 +142,14 @@ func (ps *provisionService) Provision(domainID, token, name, externalID, externa
name = c.Name
}
cli.Name = name
cli, err := ps.sdk.CreateClient(cli, domainID, token)
cli, err := ps.sdk.CreateClient(context.Background(), cli, domainID, token)
if err != nil {
res.Error = err.Error()
return res, errors.Wrap(ErrFailedClientCreation, err)
}
// Get newly created client (in order to get the key).
cli, err = ps.sdk.Client(cli.ID, domainID, token)
cli, err = ps.sdk.Client(context.Background(), cli.ID, domainID, token)
if err != nil {
e := errors.Wrap(err, fmt.Errorf("client id: %s", cli.ID))
return res, errors.Wrap(ErrFailedClientRetrieval, e)
@@ -161,11 +162,11 @@ func (ps *provisionService) Provision(domainID, token, name, externalID, externa
Name: name + "_" + channel.Name,
Metadata: smqSDK.Metadata(channel.Metadata),
}
ch, err := ps.sdk.CreateChannel(ch, domainID, token)
ch, err := ps.sdk.CreateChannel(context.Background(), ch, domainID, token)
if err != nil {
return res, errors.Wrap(ErrFailedChannelCreation, err)
}
ch, err = ps.sdk.Channel(ch.ID, domainID, token)
ch, err = ps.sdk.Channel(context.Background(), ch.ID, domainID, token)
if err != nil {
e := errors.Wrap(err, fmt.Errorf("channel id: %s", ch.ID))
return res, errors.Wrap(ErrFailedChannelRetrieval, e)
@@ -219,12 +220,12 @@ func (ps *provisionService) Provision(domainID, token, name, externalID, externa
if ps.conf.Bootstrap.X509Provision {
var cert smqSDK.Cert
cert, err = ps.sdk.IssueCert(c.ID, ps.conf.Cert.TTL, domainID, token)
cert, err = ps.sdk.IssueCert(context.Background(), c.ID, ps.conf.Cert.TTL, domainID, token)
if err != nil {
e := errors.Wrap(err, fmt.Errorf("client id: %s", c.ID))
return res, errors.Wrap(ErrFailedCertCreation, e)
}
cert, err := ps.sdk.ViewCert(cert.SerialNumber, domainID, token)
cert, err := ps.sdk.ViewCert(context.Background(), cert.SerialNumber, domainID, token)
if err != nil {
return res, errors.Wrap(ErrFailedCertView, err)
}
@@ -260,16 +261,17 @@ func (ps *provisionService) Cert(domainID, token, clientID, ttl string) (string,
if err != nil {
return "", "", errors.Wrap(ErrFailedToCreateToken, err)
}
ctx := context.Background()
th, err := ps.sdk.Client(clientID, domainID, token)
th, err := ps.sdk.Client(ctx, clientID, domainID, token)
if err != nil {
return "", "", errors.Wrap(ErrUnauthorized, err)
}
cert, err := ps.sdk.IssueCert(th.ID, ps.conf.Cert.TTL, domainID, token)
cert, err := ps.sdk.IssueCert(ctx, th.ID, ps.conf.Cert.TTL, domainID, token)
if err != nil {
return "", "", errors.Wrap(ErrFailedCertCreation, err)
}
cert, err = ps.sdk.ViewCert(cert.SerialNumber, domainID, token)
cert, err = ps.sdk.ViewCert(ctx, cert.SerialNumber, domainID, token)
if err != nil {
return "", "", errors.Wrap(ErrFailedCertView, err)
}
@@ -296,7 +298,7 @@ func (ps *provisionService) createTokenIfEmpty(token string) (string, error) {
Username: ps.conf.Server.MgUsername,
Password: ps.conf.Server.MgPass,
}
tkn, err := ps.sdk.CreateToken(u)
tkn, err := ps.sdk.CreateToken(context.Background(), u)
if err != nil {
return token, errors.Wrap(ErrFailedToCreateToken, err)
}
@@ -321,7 +323,7 @@ func (ps *provisionService) updateGateway(domainID, token string, bs sdk.Bootstr
gw.CfgID = bs.ClientID
gw.Type = gateway
c, sdkerr := ps.sdk.Client(bs.ClientID, domainID, token)
c, sdkerr := ps.sdk.Client(context.Background(), bs.ClientID, domainID, token)
if sdkerr != nil {
return errors.Wrap(ErrGatewayUpdate, sdkerr)
}
@@ -332,7 +334,7 @@ func (ps *provisionService) updateGateway(domainID, token string, bs sdk.Bootstr
if err := json.Unmarshal(b, &c.Metadata); err != nil {
return errors.Wrap(ErrGatewayUpdate, err)
}
if _, err := ps.sdk.UpdateClient(c, domainID, token); err != nil {
if _, err := ps.sdk.UpdateClient(context.Background(), c, domainID, token); err != nil {
return errors.Wrap(ErrGatewayUpdate, err)
}
return nil
@@ -346,11 +348,11 @@ func (ps *provisionService) errLog(err error) {
func clean(ps *provisionService, clients []smqSDK.Client, channels []smqSDK.Channel, domainID, token string) {
for _, t := range clients {
err := ps.sdk.DeleteClient(t.ID, domainID, token)
err := ps.sdk.DeleteClient(context.Background(), t.ID, domainID, token)
ps.errLog(err)
}
for _, c := range channels {
err := ps.sdk.DeleteChannel(c.ID, domainID, token)
err := ps.sdk.DeleteChannel(context.Background(), c.ID, domainID, token)
ps.errLog(err)
}
}
@@ -363,7 +365,7 @@ func (ps *provisionService) recover(e *error, ths *[]smqSDK.Client, chs *[]smqSD
if errors.Contains(err, ErrFailedClientRetrieval) || errors.Contains(err, ErrFailedChannelCreation) {
for _, c := range clients {
err := ps.sdk.DeleteClient(c.ID, domainID, token)
err := ps.sdk.DeleteClient(context.Background(), c.ID, domainID, token)
ps.errLog(err)
}
return
@@ -399,7 +401,7 @@ func (ps *provisionService) recover(e *error, ths *[]smqSDK.Client, chs *[]smqSD
clean(ps, clients, channels, domainID, token)
for _, th := range clients {
if ps.conf.Bootstrap.X509Provision && needsBootstrap(th) {
_, err := ps.sdk.RevokeCert(th.ID, domainID, token)
_, err := ps.sdk.RevokeCert(context.Background(), th.ID, domainID, token)
ps.errLog(err)
}
if needsBootstrap(th) {