mirror of
https://github.com/pomerium/pomerium.git
synced 2025-07-24 12:08:19 +02:00
clean up context
This commit is contained in:
parent
0e3e5ff494
commit
a8efb5901e
2 changed files with 24 additions and 22 deletions
|
@ -3,6 +3,7 @@ package manager
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -81,14 +82,14 @@ func (mgr *Manager) RunLeased(ctx context.Context) error {
|
|||
})
|
||||
eg, ctx := errgroup.WithContext(ctx)
|
||||
eg.Go(func() error {
|
||||
sessionSyncer := newSessionSyncer(mgr)
|
||||
sessionSyncer := newSessionSyncer(ctx, mgr)
|
||||
defer sessionSyncer.Close()
|
||||
return sessionSyncer.Run(ctx)
|
||||
return fmt.Errorf("session syncer error: %w", sessionSyncer.Run(ctx))
|
||||
})
|
||||
eg.Go(func() error {
|
||||
userSyncer := newUserSyncer(mgr)
|
||||
userSyncer := newUserSyncer(ctx, mgr)
|
||||
defer userSyncer.Close()
|
||||
return userSyncer.Run(ctx)
|
||||
return fmt.Errorf("user syncer error: %w", userSyncer.Run(ctx))
|
||||
})
|
||||
return eg.Wait()
|
||||
}
|
||||
|
@ -296,7 +297,7 @@ func (mgr *Manager) updateUserInfo(ctx context.Context, userID string) {
|
|||
continue
|
||||
}
|
||||
|
||||
err := authenticator.UpdateUserInfo(ctx, FromOAuthToken(s.GetOauthToken()), newMultiUnmarshaler(newUserUnmarshaler(u), newSessionUnmarshaler(s)))
|
||||
err := authenticator.UpdateUserInfo(ctx, FromOAuthToken(s.GetOauthToken()), newUserUnmarshaler(u))
|
||||
metrics.RecordIdentityManagerUserRefresh(ctx, err)
|
||||
mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err)
|
||||
if isTemporaryError(err) {
|
||||
|
@ -314,7 +315,6 @@ func (mgr *Manager) updateUserInfo(ctx context.Context, userID string) {
|
|||
continue
|
||||
}
|
||||
|
||||
mgr.updateSession(ctx, s)
|
||||
mgr.updateUser(ctx, u)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,66 +11,68 @@ import (
|
|||
)
|
||||
|
||||
type sessionSyncerHandler struct {
|
||||
ctx context.Context
|
||||
mgr *Manager
|
||||
}
|
||||
|
||||
func newSessionSyncer(mgr *Manager) *databroker.Syncer {
|
||||
return databroker.NewSyncer("identity_manager/sessions", sessionSyncerHandler{mgr: mgr},
|
||||
func newSessionSyncer(ctx context.Context, mgr *Manager) *databroker.Syncer {
|
||||
return databroker.NewSyncer("identity_manager/sessions", sessionSyncerHandler{ctx: ctx, mgr: mgr},
|
||||
databroker.WithTypeURL(grpcutil.GetTypeURL(new(session.Session))))
|
||||
}
|
||||
|
||||
func (h sessionSyncerHandler) ClearRecords(ctx context.Context) {
|
||||
h.mgr.onDeleteAllSessions(ctx)
|
||||
func (h sessionSyncerHandler) ClearRecords(_ context.Context) {
|
||||
h.mgr.onDeleteAllSessions(h.ctx)
|
||||
}
|
||||
|
||||
func (h sessionSyncerHandler) GetDataBrokerServiceClient() databroker.DataBrokerServiceClient {
|
||||
return h.mgr.cfg.Load().dataBrokerClient
|
||||
}
|
||||
|
||||
func (h sessionSyncerHandler) UpdateRecords(ctx context.Context, _ uint64, records []*databroker.Record) {
|
||||
func (h sessionSyncerHandler) UpdateRecords(_ context.Context, _ uint64, records []*databroker.Record) {
|
||||
for _, record := range records {
|
||||
if record.GetDeletedAt() != nil {
|
||||
h.mgr.onDeleteSession(ctx, record.GetId())
|
||||
h.mgr.onDeleteSession(h.ctx, record.GetId())
|
||||
} else {
|
||||
var s session.Session
|
||||
err := record.Data.UnmarshalTo(&s)
|
||||
if err != nil {
|
||||
log.Ctx(ctx).Warn().Err(err).Msg("invalid data in session record, ignoring")
|
||||
log.Ctx(h.ctx).Warn().Err(err).Msg("invalid data in session record, ignoring")
|
||||
} else {
|
||||
h.mgr.onUpdateSession(ctx, &s)
|
||||
h.mgr.onUpdateSession(h.ctx, &s)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type userSyncerHandler struct {
|
||||
ctx context.Context
|
||||
mgr *Manager
|
||||
}
|
||||
|
||||
func newUserSyncer(mgr *Manager) *databroker.Syncer {
|
||||
return databroker.NewSyncer("identity_manager/users", userSyncerHandler{mgr: mgr},
|
||||
func newUserSyncer(ctx context.Context, mgr *Manager) *databroker.Syncer {
|
||||
return databroker.NewSyncer("identity_manager/users", userSyncerHandler{ctx: ctx, mgr: mgr},
|
||||
databroker.WithTypeURL(grpcutil.GetTypeURL(new(user.User))))
|
||||
}
|
||||
|
||||
func (h userSyncerHandler) ClearRecords(ctx context.Context) {
|
||||
h.mgr.onDeleteAllUsers(ctx)
|
||||
func (h userSyncerHandler) ClearRecords(_ context.Context) {
|
||||
h.mgr.onDeleteAllUsers(h.ctx)
|
||||
}
|
||||
|
||||
func (h userSyncerHandler) GetDataBrokerServiceClient() databroker.DataBrokerServiceClient {
|
||||
return h.mgr.cfg.Load().dataBrokerClient
|
||||
}
|
||||
|
||||
func (h userSyncerHandler) UpdateRecords(ctx context.Context, _ uint64, records []*databroker.Record) {
|
||||
func (h userSyncerHandler) UpdateRecords(_ context.Context, _ uint64, records []*databroker.Record) {
|
||||
for _, record := range records {
|
||||
if record.GetDeletedAt() != nil {
|
||||
h.mgr.onDeleteUser(ctx, record.GetId())
|
||||
h.mgr.onDeleteUser(h.ctx, record.GetId())
|
||||
} else {
|
||||
var u user.User
|
||||
err := record.Data.UnmarshalTo(&u)
|
||||
if err != nil {
|
||||
log.Ctx(ctx).Warn().Err(err).Msg("invalid data in user record, ignoring")
|
||||
log.Ctx(h.ctx).Warn().Err(err).Msg("invalid data in user record, ignoring")
|
||||
} else {
|
||||
h.mgr.onUpdateUser(ctx, &u)
|
||||
h.mgr.onUpdateUser(h.ctx, &u)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue