MCPcopy
hub / github.com/kubernetes/client-go / Token

Method Token

transport/token_source.go:120–149  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

118var _ = oauth2.TokenSource(&cachingTokenSource{})
119
120func (ts *cachingTokenSource) Token() (*oauth2.Token, error) {
121 now := ts.now()
122 // fast path
123 ts.RLock()
124 tok := ts.tok
125 ts.RUnlock()
126
127 if tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {
128 return tok, nil
129 }
130
131 // slow path
132 ts.Lock()
133 defer ts.Unlock()
134 if tok := ts.tok; tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {
135 return tok, nil
136 }
137
138 tok, err := ts.base.Token()
139 if err != nil {
140 if ts.tok == nil {
141 return nil, err
142 }
143 klog.Errorf("Unable to rotate token: %v", err)
144 return ts.tok, nil
145 }
146
147 ts.tok = tok
148 return tok, nil
149}

Callers 2

TestCachingTokenSourceFunction · 0.95

Calls 3

AddMethod · 0.65
TokenMethod · 0.65
ErrorfMethod · 0.65

Tested by 2

TestCachingTokenSourceFunction · 0.76