MCPcopy Create free account
hub / github.com/cloudbase/garm / maybeRefreshToken

Method maybeRefreshToken

util/github/scalesets/message_sessions.go:148–171  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

146}
147
148func (m *MessageSession) maybeRefreshToken(ctx context.Context) error {
149 if m.session == nil {
150 return fmt.Errorf("session is nil")
151 }
152
153 expiresAt, err := m.session.ExiresAt()
154 if err != nil {
155 return fmt.Errorf("failed to get expires at: %w", err)
156 }
157 // add some jitter (30 second interval)
158 randInt, err := rand.Int(rand.Reader, big.NewInt(30))
159 if err != nil {
160 return fmt.Errorf("failed to get a random number")
161 }
162 expiresIn := time.Duration(randInt.Int64())*time.Second + 10*time.Minute
163 slog.DebugContext(ctx, "checking if message session token needs refresh", "expires_at", expiresAt)
164 if m.session.ExpiresIn(expiresIn) {
165 if err := m.Refresh(ctx); err != nil {
166 return fmt.Errorf("failed to refresh message queue token: %w", err)
167 }
168 }
169
170 return nil
171}
172
173func (m *MessageSession) GetMessage(ctx context.Context, lastMessageID int64, maxCapacity uint) (_ params.RunnerScaleSetMessage, err error) {
174 m.ssCli.recordOperation("GetMessage")

Callers 1

loopMethod · 0.95

Calls 4

RefreshMethod · 0.95
ExiresAtMethod · 0.45
DurationMethod · 0.45
ExpiresInMethod · 0.45

Tested by

no test coverage detected