Fix violations of non-constant format strings linter (#51812)

Depends on https://github.com/gravitational/teleport.e/pull/6006.
Now that we are compliant, the ignore rule was removed from the
golangci-lint config to prevent future regressions.
This commit is contained in:
rosstimothy
2025-02-04 16:43:35 +00:00
committed by GitHub
parent cd7f7fef04
commit 2cced62805
139 changed files with 352 additions and 369 deletions
-3
View File
@@ -55,9 +55,6 @@ issues:
- path: provider/provider.go # integrations/terraform
linters: [staticcheck]
text: 'grpc.WithReturnConnectionError is deprecated'
- linters: [govet]
path-except: ^e/
text: 'non-constant format string in call to github.com/gravitational/trace.'
# BlockUntilContext should indeed be favored, this exception exists because
# at this time there are too many offenders.
- linters: [staticcheck]
+1 -1
View File
@@ -345,7 +345,7 @@ func (c *CircuitBreaker) beforeExecution() (uint64, error) {
c.cfg.OnExecute(false, StateTripped)
if c.cfg.TrippedErrorMessage != "" {
return generation, trace.ConnectionProblem(nil, c.cfg.TrippedErrorMessage)
return generation, trace.ConnectionProblem(nil, "%s", c.cfg.TrippedErrorMessage)
}
return generation, trace.Wrap(ErrStateTripped)
+11 -11
View File
@@ -59,7 +59,7 @@ func (d *Duration) UnmarshalJSON(data []byte) error {
}
out, err := parseDuration(stringVar)
if err != nil {
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
*d = out
return nil
@@ -83,7 +83,7 @@ func (d *Duration) UnmarshalYAML(unmarshal func(interface{}) error) error {
}
out, err := parseDuration(stringVar)
if err != nil {
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
*d = out
return nil
@@ -189,7 +189,7 @@ func parseDuration(s string) (Duration, error) {
return 0, nil
}
if s == "" {
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
for s != "" {
var (
@@ -201,13 +201,13 @@ func parseDuration(s string) (Duration, error) {
// The next character must be [0-9.]
if !(s[0] == '.' || '0' <= s[0] && s[0] <= '9') {
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
// Consume [0-9]*
pl := len(s)
v, s, err = leadingInt(s)
if err != nil {
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
pre := pl != len(s) // whether we consumed anything before a period
@@ -221,7 +221,7 @@ func parseDuration(s string) (Duration, error) {
}
if !pre && !post {
// no digits (e.g. ".s" or "-.s")
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
// Consume unit.
@@ -233,17 +233,17 @@ func parseDuration(s string) (Duration, error) {
}
}
if i == 0 {
return 0, trace.BadParameter("time: missing unit in duration " + orig)
return 0, trace.BadParameter("time: missing unit in duration %q", orig)
}
u := s[:i]
s = s[i:]
unit, ok := unitMap[u]
if !ok {
return 0, trace.BadParameter("time: unknown unit " + " in duration " + orig)
return 0, trace.BadParameter("time: unknown unit in duration %q", orig)
}
if v > (1<<63-1)/unit {
// overflow
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
v *= unit
if f > 0 {
@@ -252,13 +252,13 @@ func parseDuration(s string) (Duration, error) {
v += int64(float64(f) * (float64(unit) / scale))
if v < 0 {
// overflow
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
}
d += v
if d < 0 {
// overflow
return 0, trace.BadParameter("time: invalid duration " + orig)
return 0, trace.BadParameter("time: invalid duration %q", orig)
}
}
+1 -2
View File
@@ -14,7 +14,6 @@ limitations under the License.
package keys
import (
"fmt"
"regexp"
"github.com/gravitational/trace"
@@ -164,7 +163,7 @@ var privateKeyPolicyErrRegex = regexp.MustCompile(`private key policy not (met|s
func NewPrivateKeyPolicyError(p PrivateKeyPolicy) error {
// TODO(Joerger): Replace with "private key policy not satisfied" in 16.0.0
return trace.BadParameter(fmt.Sprintf("private key policy not met: %s", p))
return trace.BadParameter("private key policy not met: %s", p)
}
// ParsePrivateKeyPolicyError checks if the given error is a private key policy
+1 -1
View File
@@ -195,7 +195,7 @@ func (r *Linear) For(ctx context.Context, retryFn func() error) error {
case <-r.After():
r.Inc()
case <-ctx.Done():
return trace.LimitExceeded(ctx.Err().Error())
return trace.LimitExceeded("%s", ctx.Err())
}
}
}
+4 -4
View File
@@ -19,7 +19,6 @@ package sshutils
import (
"bytes"
"encoding/json"
"fmt"
"io"
"github.com/gravitational/trace"
@@ -68,10 +67,11 @@ func ConnectProxyTransport(sconn ssh.Conn, req *DialReq, exclusive bool) (conn *
// passed to us via stderr.
errMessageBytes, _ := io.ReadAll(channel.Stderr())
errMessage := string(bytes.TrimSpace(errMessageBytes))
if len(errMessage) == 0 {
errMessage = fmt.Sprintf("failed connecting to %v [%v]", req.Address, req.ServerID)
if errMessage != "" {
return nil, false, trace.Errorf("%s", errMessage)
}
return nil, false, trace.Errorf(errMessage)
return nil, false, trace.Errorf("failed connecting to %v [%v]", req.Address, req.ServerID)
}
if exclusive {
+1 -1
View File
@@ -36,7 +36,7 @@ func ParseCertificatePEM(bytes []byte) (*x509.Certificate, error) {
}
cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
return cert, nil
}
@@ -106,5 +106,5 @@ func getLatest(ctx context.Context, versionSpec string, gh github.GitHub) (strin
}
}
return "", trace.NotFound("no releases matched " + versionSpec)
return "", trace.NotFound("no releases matched %q", versionSpec)
}
@@ -61,7 +61,7 @@ func readInput(input io.Reader, ch chan<- TestEvent, errCh chan<- error) {
for scanner.Scan() {
line := scanner.Text()
if line != "" {
err = trace.Errorf(line)
err = trace.Errorf("%s", line)
break
}
}
+1 -1
Submodule e updated: 311dd13b77...b86b34efde
+2 -4
View File
@@ -131,14 +131,12 @@ func onAfterDatadogResponse(sink common.StatusSink) resty.ResponseMiddleware {
}
if resp.IsError() {
var details string
switch result := resp.Error().(type) {
case *ErrorResult:
details = fmt.Sprintf("http error code=%v, errors=[%v]", resp.StatusCode(), strings.Join(result.Errors, ", "))
return trace.Errorf("http error code=%v, errors=[%v]", resp.StatusCode(), strings.Join(result.Errors, ", "))
default:
details = fmt.Sprintf("unknown error result %#v", result)
return trace.Errorf("unknown error result %#v", result)
}
return trace.Errorf(details)
}
return nil
}
+9 -8
View File
@@ -125,23 +125,24 @@ func onAfterPagerDutyResponse(sink common.StatusSink) resty.ResponseMiddleware {
log.ErrorContext(ctx, "Error while emitting PagerDuty plugin status", "error", err)
}
var errorFn func(string, ...any) error = trace.Errorf
if status.GetCode() == types.PluginStatusCode_UNAUTHORIZED {
errorFn = func(msg string, args ...any) error {
return trace.AccessDenied(msg, args...)
}
}
if resp.IsError() {
var details string
switch result := resp.Error().(type) {
case *ErrorResult:
// Do we have a formatted PagerDuty API error response? We set
// an empty `ErrorResult` in the pre-request hook, and if the
// HTTP server returns an error, the `resty` middleware will
// attempt to unmarshal the error response into it.
details = fmt.Sprintf("http error code=%v, err_code=%v, message=%v, errors=[%v]", resp.StatusCode(), result.Code, result.Message, strings.Join(result.Errors, ", "))
return errorFn("http error code=%v, err_code=%v, message=%v, errors=[%v]", resp.StatusCode(), result.Code, result.Message, strings.Join(result.Errors, ", "))
default:
details = fmt.Sprintf("unknown error result %#v", result)
return errorFn("unknown error result %#v", result)
}
if status.GetCode() == types.PluginStatusCode_UNAUTHORIZED {
return trace.AccessDenied(details)
}
return trace.Errorf(details)
}
return nil
}
+25 -25
View File
@@ -72,7 +72,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
"user", req.GetUsername(),
"error", err,
)
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
}
if err := a.verifyRecoveryCode(ctx, req.GetUsername(), req.GetRecoveryCode()); err != nil {
@@ -86,7 +86,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
"user", req.GetUsername(),
"error", err,
)
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
}
token, err := a.createRecoveryToken(ctx, req.GetUsername(), authclient.UserTokenTypeRecoveryStart, req.GetRecoverType())
@@ -96,7 +96,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
"user", req.GetUsername(),
"error", err,
)
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
}
return token, nil
@@ -110,7 +110,7 @@ func (a *Server) verifyRecoveryCode(ctx context.Context, username string, recove
// It will result in an error but this avoids timing attacks which expose account presence.
case err != nil:
a.logger.ErrorContext(ctx, "Failed to fetch user to verify account recovery", "error", err)
return trace.AccessDenied(startRecoveryGenericErrMsg)
return trace.AccessDenied("%s", startRecoveryGenericErrMsg)
case user.GetUserType() != types.UserTypeLocal:
return trace.AccessDenied("only local users may perform account recovery")
}
@@ -184,13 +184,13 @@ func (a *Server) verifyRecoveryCode(ctx context.Context, username string, recove
recovery.GetCodes()[i].IsUsed = true
if err := a.UpsertRecoveryCodes(ctx, username, recovery); err != nil {
a.logger.ErrorContext(ctx, "Failed to update recovery code as used", "error", err)
return trace.AccessDenied(startRecoveryGenericErrMsg)
return trace.AccessDenied("%s", startRecoveryGenericErrMsg)
}
break
}
if !codeMatch || !hasRecoveryCodes {
return trace.AccessDenied(startRecoveryBadAuthnErrMsg)
return trace.AccessDenied("%s", startRecoveryBadAuthnErrMsg)
}
return nil
@@ -205,9 +205,9 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
startToken, err := a.GetUserToken(ctx, req.GetRecoveryStartTokenID())
switch {
case err != nil:
return nil, trace.AccessDenied(verifyRecoveryGenericErrMsg)
return nil, trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
case startToken.GetUser() != req.Username:
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
}
if err := a.verifyUserToken(ctx, startToken, authclient.UserTokenTypeRecoveryStart); err != nil {
@@ -222,7 +222,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
ctx,
"Failed to verify account recovery, expected mfa authn response, but received password",
)
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
}
if err := a.verifyAuthnRecovery(ctx, startToken, func() error {
@@ -237,7 +237,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
ctx,
"Failed to verify account recovery, expected password, but received a mfa authn response",
)
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
}
if err := a.verifyAuthnRecovery(ctx, startToken, func() error {
@@ -254,7 +254,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
approvedToken, err := a.createRecoveryToken(ctx, startToken.GetUser(), authclient.UserTokenTypeRecoveryApproved, startToken.GetUsage())
if err != nil {
return nil, trace.AccessDenied(verifyRecoveryGenericErrMsg)
return nil, trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
}
// Delete start token to invalidate the recovery link sent to users.
@@ -272,7 +272,7 @@ func (a *Server) verifyAuthnRecovery(ctx context.Context, startToken types.UserT
_, err := a.Services.GetUser(ctx, startToken.GetUser(), false)
if err != nil {
a.logger.ErrorContext(ctx, "Failed to fetch user to verify account recovery", "error", err)
return trace.AccessDenied(verifyRecoveryGenericErrMsg)
return trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
}
// The error returned from authenticateFn does not guarantee sensitive info is not leaked.
@@ -284,12 +284,12 @@ func (a *Server) verifyAuthnRecovery(ctx context.Context, startToken types.UserT
ctx, "Encountered connection problem when verifying account recovery",
"error", verifyAuthnErr,
)
return trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
return trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
case verifyAuthnErr == nil:
return nil
}
return trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
return trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
}
// CompleteAccountRecovery implements AuthService.CompleteAccountRecovery.
@@ -301,7 +301,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
approvedToken, err := a.GetUserToken(ctx, req.GetRecoveryApprovedTokenID())
if err != nil {
a.logger.ErrorContext(ctx, "Encountered error when fetching recovery token", "error", err)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
if err := a.verifyUserToken(ctx, approvedToken, authclient.UserTokenTypeRecoveryApproved); err != nil {
@@ -316,7 +316,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
ctx, "Failed to recover account, did not receive password as expected",
"received_type", logutil.TypeAttr(req.GetNewAuthnCred()),
)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
if err := services.VerifyPassword(req.GetNewPassword()); err != nil {
@@ -325,7 +325,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
if err := a.UpsertPassword(approvedToken.GetUser(), req.GetNewPassword()); err != nil {
a.logger.ErrorContext(ctx, "Failed to upsert new password for user", "error", err)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
case *proto.CompleteAccountRecoveryRequest_NewMFAResponse:
@@ -334,7 +334,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
ctx, "Failed to recover account, did not receive MFA register response as expected",
"received_type", logutil.TypeAttr(req.GetNewAuthnCred()),
)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
_, err = a.verifyMFARespAndAddDevice(ctx, &newMFADeviceFields{
@@ -355,7 +355,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
user, err := a.Services.GetUser(ctx, approvedToken.GetUser(), false /* without secrets */)
if err != nil {
a.logger.ErrorContext(ctx, "Failed to fetch user to complete account recovery", "error", err)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
if user.GetStatus().IsLocked {
@@ -363,12 +363,12 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
_, err = a.UpsertUser(ctx, user)
if err != nil {
a.logger.ErrorContext(ctx, "Failed to upsert user completing account recovery", "error", err)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
if err := a.DeleteUserLoginAttempts(approvedToken.GetUser()); err != nil {
a.logger.ErrorContext(ctx, "Failed to delete user login attempts after completing account recovery", "error", err)
return trace.AccessDenied(completeRecoveryGenericErrMsg)
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
}
}
@@ -386,19 +386,19 @@ func (a *Server) CreateAccountRecoveryCodes(ctx context.Context, req *proto.Crea
token, err := a.GetUserToken(ctx, req.GetTokenID())
if err != nil {
a.logger.ErrorContext(ctx, "Failed to fetch existing user recovery token", "error", err)
return nil, trace.AccessDenied(unableToCreateCodesMsg)
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
}
if _, err := mail.ParseAddress(token.GetUser()); err != nil {
a.logger.DebugContext(ctx, "Failed to create new recovery codes, username is not a valid email", "user", token.GetUser(), "error", err)
return nil, trace.AccessDenied(unableToCreateCodesMsg)
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
}
// Verify if the user is local.
switch user, err := a.GetUser(ctx, token.GetUser(), false /* withSecrets */); {
case err != nil:
// err swallowed on purpose.
return nil, trace.AccessDenied(unableToCreateCodesMsg)
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
case user.GetUserType() != types.UserTypeLocal:
return nil, trace.AccessDenied("only local users may create recovery codes")
}
@@ -410,7 +410,7 @@ func (a *Server) CreateAccountRecoveryCodes(ctx context.Context, req *proto.Crea
newRecovery, err := a.generateAndUpsertRecoveryCodes(ctx, token.GetUser())
if err != nil {
a.logger.ErrorContext(ctx, "Failed to generate and upsert new recovery codes", "error", err)
return nil, trace.AccessDenied(unableToCreateCodesMsg)
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
}
if err := a.deleteUserTokens(ctx, token.GetUser()); err != nil {
+5 -5
View File
@@ -3647,7 +3647,7 @@ func (a *Server) WithUserLock(ctx context.Context, username string, authenticate
"locked_until", apiutils.HumanTimeFormat(status.LockExpires),
)
err := trace.AccessDenied(MaxFailedAttemptsErrMsg)
err := trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
return trace.WithField(err, ErrFieldKeyUserMaxedAttempts, true)
}
}
@@ -3697,7 +3697,7 @@ func (a *Server) WithUserLock(ctx context.Context, username string, authenticate
return trace.Wrap(fnErr)
}
retErr := trace.AccessDenied(MaxFailedAttemptsErrMsg)
retErr := trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
return trace.WithField(retErr, ErrFieldKeyUserMaxedAttempts, true)
}
@@ -4979,12 +4979,12 @@ func (a *Server) ValidateToken(ctx context.Context, token string) (types.Provisi
tok, err := a.GetToken(ctx, token)
if err != nil {
if trace.IsNotFound(err) {
return nil, trace.AccessDenied(TokenExpiredOrNotFound)
return nil, trace.AccessDenied("%s", TokenExpiredOrNotFound)
}
return nil, trace.Wrap(err)
}
if !a.checkTokenTTL(tok) {
return nil, trace.AccessDenied(TokenExpiredOrNotFound)
return nil, trace.AccessDenied("%s", TokenExpiredOrNotFound)
}
return tok, nil
@@ -7714,7 +7714,7 @@ func (a *Server) verifyAccessRequestMonthlyLimit(ctx context.Context) error {
return trace.Wrap(err)
}
if usage >= int(monthlyLimit) {
return trace.AccessDenied(limitReachedMessage)
return trace.AccessDenied("%s", limitReachedMessage)
}
return nil
+4 -4
View File
@@ -7748,22 +7748,22 @@ func checkOktaLockTarget(ctx context.Context, authzCtx *authz.Context, users ser
target := lock.Target()
switch {
case !target.Equals(types.LockTarget{User: target.User}):
return trace.BadParameter(errorMsg)
return trace.BadParameter("%s", errorMsg)
case target.User == "":
return trace.BadParameter(errorMsg)
return trace.BadParameter("%s", errorMsg)
}
targetUser, err := users.GetUser(ctx, target.User, false /* withSecrets */)
if err != nil {
if trace.IsNotFound(err) {
return trace.AccessDenied(errorMsg)
return trace.AccessDenied("%s", errorMsg)
}
return trace.Wrap(err)
}
if targetUser.Origin() != types.OriginOkta {
return trace.AccessDenied(errorMsg)
return trace.AccessDenied("%s", errorMsg)
}
return nil
+2 -2
View File
@@ -1080,7 +1080,7 @@ func ValidateClientRedirect(clientRedirect string, ssoTestFlow bool, settings *t
}
if settings == nil {
return trace.AccessDenied(unknownRedirectHostnameErrMsg)
return trace.AccessDenied("%s", unknownRedirectHostnameErrMsg)
}
// allow HTTP or HTTPS redirects from IPs in specified CIDR ranges
@@ -1119,7 +1119,7 @@ func ValidateClientRedirect(clientRedirect string, ssoTestFlow bool, settings *t
}
}
return trace.AccessDenied(unknownRedirectHostnameErrMsg)
return trace.AccessDenied("%s", unknownRedirectHostnameErrMsg)
}
// populateGithubClaims builds a GithubClaims using queried
+3 -3
View File
@@ -619,7 +619,7 @@ func (a *Server) AuthenticateWebUser(ctx context.Context, req authclient.Authent
// to the local auth will be disabled by default.
if !authPref.GetAllowLocalAuth() && req.Session == nil {
a.emitNoLocalAuthEvent(username)
return nil, trace.AccessDenied(noLocalAuth)
return nil, trace.AccessDenied("%s", noLocalAuth)
}
if req.Session != nil {
@@ -680,7 +680,7 @@ func (a *Server) AuthenticateSSHUser(ctx context.Context, req authclient.Authent
// Disable all local auth requests, except headless requests.
if !authPref.GetAllowLocalAuth() && req.HeadlessAuthenticationID == "" {
a.emitNoLocalAuthEvent(username)
return nil, trace.AccessDenied(noLocalAuth)
return nil, trace.AccessDenied("%s", noLocalAuth)
}
clusterName, err := a.GetClusterName()
@@ -802,7 +802,7 @@ func getErrorByTraceField(err error) error {
logger.WarnContext(context.Background(), "Unexpected error type, wanted TraceError", "error", err)
return trace.AccessDenied("an error has occurred")
case traceErr.GetFields()[ErrFieldKeyUserMaxedAttempts] != nil:
return trace.AccessDenied(MaxFailedAttemptsErrMsg)
return trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
}
return nil
+3 -3
View File
@@ -189,13 +189,13 @@ func (a *Server) checkPasswordWOToken(ctx context.Context, user string, password
if err = bcrypt.CompareHashAndPassword(hash, password); err != nil {
a.logger.DebugContext(ctx, "Password for user does not match", "user", user)
return trace.BadParameter(errMsg)
return trace.BadParameter("%s", errMsg)
}
// Careful! The bcrypt check above may succeed for an unknown user when the
// provided password is "barbaz", which is what fakePasswordHash hashes to.
if !userFound {
return trace.BadParameter(errMsg)
return trace.BadParameter("%s", errMsg)
}
// At this point, we know that the user provided a correct password, so we may
@@ -315,7 +315,7 @@ func (a *Server) changeUserAuthentication(ctx context.Context, req *proto.Change
return nil, trace.Wrap(err)
}
if !authPref.GetAllowLocalAuth() {
return nil, trace.AccessDenied(noLocalAuth)
return nil, trace.AccessDenied("%s", noLocalAuth)
}
reqPasswordless := len(req.GetNewPassword()) == 0 && authPref.GetAllowPasswordless()
+2 -2
View File
@@ -86,14 +86,14 @@ func (a *Server) verifySSOMFASession(ctx context.Context, username, sessionID, t
const notFoundErrMsg = "mfa sso session data not found"
mfaSess, err := a.GetSSOMFASessionData(ctx, sessionID)
if trace.IsNotFound(err) {
return nil, trace.AccessDenied(notFoundErrMsg)
return nil, trace.AccessDenied("%s", notFoundErrMsg)
} else if err != nil {
return nil, trace.Wrap(err)
}
// Verify the user's name and sso device matches.
if mfaSess.Username != username {
return nil, trace.AccessDenied(notFoundErrMsg)
return nil, trace.AccessDenied("%s", notFoundErrMsg)
}
// Check if the MFA session matches the user's SSO MFA settings.
+2 -2
View File
@@ -96,7 +96,7 @@ func (p *ProcessStorage) GetState(ctx context.Context, role types.SystemRole) (*
}
var res state.StateV2
if err := utils.FastUnmarshal(item.Value, &res); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
// an empty InitialLocalVersion is treated as an error by CheckAndSetDefaults, but if the field
@@ -164,7 +164,7 @@ func (p *ProcessStorage) ReadIdentity(name string, role types.SystemRole) (*stat
}
var res state.IdentityV2
if err := utils.FastUnmarshal(item.Value, &res); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := res.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+13 -13
View File
@@ -498,7 +498,7 @@ func (b *Backend) GetName() string {
func (b *Backend) Create(ctx context.Context, item backend.Item) (*backend.Lease, error) {
rev, err := b.create(ctx, item, modeCreate)
if trace.IsCompareFailed(err) {
err = trace.AlreadyExists(err.Error())
err = trace.AlreadyExists("%s", err)
}
if err != nil {
return nil, trace.Wrap(err)
@@ -522,7 +522,7 @@ func (b *Backend) Put(ctx context.Context, item backend.Item) (*backend.Lease, e
func (b *Backend) Update(ctx context.Context, item backend.Item) (*backend.Lease, error) {
rev, err := b.create(ctx, item, modeUpdate)
if trace.IsCompareFailed(err) {
err = trace.NotFound(err.Error())
err = trace.NotFound("%s", err)
}
if err != nil {
return nil, trace.Wrap(err)
@@ -709,7 +709,7 @@ func (b *Backend) CompareAndSwap(ctx context.Context, expected backend.Item, rep
if err != nil {
// in this case let's use more specific compare failed error
if trace.IsAlreadyExists(err) {
return nil, trace.CompareFailed(err.Error())
return nil, trace.CompareFailed("%s", err)
}
return nil, trace.Wrap(err)
}
@@ -810,7 +810,7 @@ func (b *Backend) KeepAlive(ctx context.Context, lease backend.Lease, expires ti
_, err := b.svc.UpdateItem(ctx, input)
err = convertError(err)
if trace.IsCompareFailed(err) {
err = trace.NotFound(err.Error())
err = trace.NotFound("%s", err)
}
return err
}
@@ -1173,46 +1173,46 @@ func convertError(err error) error {
var conditionalCheckFailedError *types.ConditionalCheckFailedException
if errors.As(err, &conditionalCheckFailedError) {
return trace.CompareFailed(conditionalCheckFailedError.ErrorMessage())
return trace.CompareFailed("%s", conditionalCheckFailedError.ErrorMessage())
}
var throughputExceededError *types.ProvisionedThroughputExceededException
if errors.As(err, &throughputExceededError) {
return trace.ConnectionProblem(throughputExceededError, throughputExceededError.ErrorMessage())
return trace.ConnectionProblem(throughputExceededError, "%s", throughputExceededError.ErrorMessage())
}
var notFoundError *types.ResourceNotFoundException
if errors.As(err, &notFoundError) {
return trace.NotFound(notFoundError.ErrorMessage())
return trace.NotFound("%s", notFoundError.ErrorMessage())
}
var collectionLimitExceededError *types.ItemCollectionSizeLimitExceededException
if errors.As(err, &notFoundError) {
return trace.BadParameter(collectionLimitExceededError.ErrorMessage())
return trace.BadParameter("%s", collectionLimitExceededError.ErrorMessage())
}
var internalError *types.InternalServerError
if errors.As(err, &internalError) {
return trace.BadParameter(internalError.ErrorMessage())
return trace.BadParameter("%s", internalError.ErrorMessage())
}
var expiredIteratorError *streamtypes.ExpiredIteratorException
if errors.As(err, &expiredIteratorError) {
return trace.ConnectionProblem(expiredIteratorError, expiredIteratorError.ErrorMessage())
return trace.ConnectionProblem(expiredIteratorError, "%s", expiredIteratorError.ErrorMessage())
}
var limitExceededError *streamtypes.LimitExceededException
if errors.As(err, &limitExceededError) {
return trace.ConnectionProblem(limitExceededError, limitExceededError.ErrorMessage())
return trace.ConnectionProblem(limitExceededError, "%s", limitExceededError.ErrorMessage())
}
var trimmedAccessError *streamtypes.TrimmedDataAccessException
if errors.As(err, &trimmedAccessError) {
return trace.ConnectionProblem(trimmedAccessError, trimmedAccessError.ErrorMessage())
return trace.ConnectionProblem(trimmedAccessError, "%s", trimmedAccessError.ErrorMessage())
}
var scalingObjectNotFoundError *autoscalingtypes.ObjectNotFoundException
if errors.As(err, &scalingObjectNotFoundError) {
return trace.NotFound(scalingObjectNotFoundError.ErrorMessage())
return trace.NotFound("%s", scalingObjectNotFoundError.ErrorMessage())
}
return err
+9 -9
View File
@@ -823,7 +823,7 @@ func (b *EtcdBackend) CompareAndSwap(ctx context.Context, expected backend.Item,
if err != nil {
err = convertErr(err)
if trace.IsNotFound(err) {
return nil, trace.CompareFailed(err.Error())
return nil, trace.CompareFailed("%s", err)
}
return nil, trace.Wrap(err)
}
@@ -1073,14 +1073,14 @@ func convertErr(err error) error {
case errors.Is(err, context.DeadlineExceeded):
return trace.ConnectionProblem(err, "operation has timed out")
case errors.Is(err, rpctypes.ErrEmptyKey):
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
case errors.Is(err, rpctypes.ErrKeyNotFound):
return trace.NotFound(err.Error())
return trace.NotFound("%s", err)
}
ev, ok := status.FromError(err)
if !ok {
return trace.ConnectionProblem(err, err.Error())
return trace.ConnectionProblem(err, "%s", err.Error())
}
switch ev.Code() {
@@ -1089,15 +1089,15 @@ func convertErr(err error) error {
case codes.DeadlineExceeded:
return trace.ConnectionProblem(err, "operation has timed out")
case codes.NotFound:
return trace.NotFound(err.Error())
return trace.NotFound("%s", err)
case codes.AlreadyExists:
return trace.AlreadyExists(err.Error())
return trace.AlreadyExists("%s", err)
case codes.FailedPrecondition:
return trace.CompareFailed(err.Error())
return trace.CompareFailed("%s", err)
case codes.ResourceExhausted:
return trace.LimitExceeded(err.Error())
return trace.LimitExceeded("%s", err)
default:
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
}
+5 -5
View File
@@ -1097,7 +1097,7 @@ func (b *Backend) deleteDocuments(docs []*firestore.DocumentSnapshot) error {
}
// ConvertGRPCError converts gRPC errors
func ConvertGRPCError(err error, args ...interface{}) error {
func ConvertGRPCError(err error) error {
if err == nil {
return nil
}
@@ -1107,15 +1107,15 @@ func ConvertGRPCError(err error, args ...interface{}) error {
case codes.DeadlineExceeded:
return context.DeadlineExceeded
case codes.FailedPrecondition:
return trace.BadParameter(err.Error(), args...)
return trace.BadParameter("%s", err)
case codes.NotFound:
return trace.NotFound(err.Error(), args...)
return trace.NotFound("%s", err)
case codes.AlreadyExists:
return trace.AlreadyExists(err.Error(), args...)
return trace.AlreadyExists("%s", err)
case codes.OK:
return nil
default:
return trace.Wrap(err, args...)
return trace.Wrap(err)
}
}
+1 -1
View File
@@ -967,7 +967,7 @@ func (l *Backend) inTransaction(ctx context.Context, f func(tx *sql.Tx) error) (
}
if err != nil && !trace.IsNotFound(err) {
if isConstraintError(trace.Unwrap(err)) {
err = trace.AlreadyExists(err.Error())
err = trace.AlreadyExists("%s", err)
}
// transaction aborted by interrupt, no action needed
if isInterrupt(trace.Unwrap(err)) {
+3 -4
View File
@@ -2478,7 +2478,7 @@ func playSession(ctx context.Context, sessionID string, speed float64, streamer
message := "Desktop sessions cannot be played with tsh play." +
" Export the recording to video with tsh recordings export" +
" or view the recording in your web browser."
return trace.BadParameter(message)
return trace.BadParameter("%s", message)
case *apievents.AppSessionStart, *apievents.AppSessionChunk:
return trace.BadParameter("Interactive session replay is not supported for app sessions." +
" To play app sessions, specify --format=json or --format=yaml.")
@@ -2498,9 +2498,8 @@ func playSession(ctx context.Context, sessionID string, speed float64, streamer
lastTime = evt.Time
case *apievents.DatabaseSessionStart:
if !slices.Contains(libplayer.SupportedDatabaseProtocols, evt.DatabaseProtocol) {
return trace.NotImplemented("Interactive database session replay is only supported for " +
strings.Join(libplayer.SupportedDatabaseProtocols, ",") + " databases." +
" To play other database sessions, specify --format=json or --format=yaml.")
return trace.NotImplemented("Interactive database session replay is only supported for %s databases."+
" To play other database sessions, specify --format=json or --format=yaml.", strings.Join(libplayer.SupportedDatabaseProtocols, ","))
}
default:
continue
+1 -1
View File
@@ -333,7 +333,7 @@ func NewNodeClient(ctx context.Context, sshConfig *ssh.ClientConfig, conn net.Co
"target_host", nodeName,
"error", err,
)
return nil, trace.AccessDenied(`access denied to %v connecting to %v`, sshConfig.User, nodeName)
return nil, trace.AccessDenied("access denied to %v connecting to %v", sshConfig.User, nodeName)
}
return nil, trace.Wrap(err)
}
+1 -1
View File
@@ -54,7 +54,7 @@ func CheckIfCertsAreAllowedToAccessCluster(k *client.KeyRing, rootCluster, telep
}
errMsg := "Your user's Teleport role does not allow Kubernetes access." +
" Please ask cluster administrator to ensure your role has appropriate kubernetes_groups and kubernetes_users set."
return trace.AccessDenied(errMsg)
return trace.AccessDenied("%s", errMsg)
}
// checkIfCertHasKubeGroupsAndUsers checks if the certificate has Kubernetes groups or users
+9 -9
View File
@@ -47,20 +47,20 @@ var (
func convertRequestFailureErrorFromStatusCode(statusCode int, requestErr error) error {
switch statusCode {
case http.StatusForbidden:
return trace.AccessDenied(requestErr.Error())
return trace.AccessDenied("%s", requestErr)
case http.StatusConflict:
return trace.AlreadyExists(requestErr.Error())
return trace.AlreadyExists("%s", requestErr)
case http.StatusNotFound:
return trace.NotFound(requestErr.Error())
return trace.NotFound("%s", requestErr)
case http.StatusBadRequest:
// Some services like memorydb, redshiftserverless may return 400 with
// "AccessDeniedException" instead of 403.
if strings.Contains(requestErr.Error(), "AccessDeniedException") {
return trace.AccessDenied(requestErr.Error())
return trace.AccessDenied("%s", requestErr)
}
if strings.Contains(requestErr.Error(), ecsClusterNotFoundException.ErrorCode()) {
return trace.NotFound(requestErr.Error())
return trace.NotFound("%s", requestErr)
}
}
@@ -75,22 +75,22 @@ func ConvertIAMError(err error) error {
var unmodifiableEntityErr *iamtypes.UnmodifiableEntityException
if errors.As(err, &unmodifiableEntityErr) {
return trace.AccessDenied(*unmodifiableEntityErr.Message)
return trace.AccessDenied("%s", *unmodifiableEntityErr.Message)
}
var entityExistsError *iamtypes.EntityAlreadyExistsException
if errors.As(err, &entityExistsError) {
return trace.AlreadyExists(*entityExistsError.Message)
return trace.AlreadyExists("%s", *entityExistsError.Message)
}
var entityNotFound *iamtypes.NoSuchEntityException
if errors.As(err, &entityNotFound) {
return trace.NotFound(*entityNotFound.Message)
return trace.NotFound("%s", *entityNotFound.Message)
}
var malformedPolicyDocument *iamtypes.MalformedPolicyDocumentException
if errors.As(err, &malformedPolicyDocument) {
return trace.BadParameter(*malformedPolicyDocument.Message)
return trace.BadParameter("%s", *malformedPolicyDocument.Message)
}
return ConvertRequestFailureError(err)
+4 -4
View File
@@ -41,14 +41,14 @@ func ConvertResponseError(err error) error {
case errors.As(err, &responseErr):
switch responseErr.StatusCode {
case http.StatusForbidden:
return trace.AccessDenied(responseErr.Error())
return trace.AccessDenied("%s", responseErr)
case http.StatusConflict:
return trace.AlreadyExists(responseErr.Error())
return trace.AlreadyExists("%s", responseErr)
case http.StatusNotFound:
return trace.NotFound(responseErr.Error())
return trace.NotFound("%s", responseErr)
}
case errors.As(err, &authenticationFailedErr):
return trace.AccessDenied(authenticationFailedErr.Error())
return trace.AccessDenied("%s", authenticationFailedErr)
}
return err // Return unmodified.
}
+1 -1
View File
@@ -180,7 +180,7 @@ func (c *redisEnterpriseClient) listDatabasesByClusters(ctx context.Context, clu
func (c *redisEnterpriseClient) listDatabasesByCluster(ctx context.Context, cluster *armredisenterprise.Cluster) ([]*RedisEnterpriseDatabase, error) {
resourceID, err := arm.ParseResourceID(StringVal(cluster.ID))
if err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
var databases []*RedisEnterpriseDatabase
+1 -1
View File
@@ -55,7 +55,7 @@ func convertLoadConfigError(configErr error) error {
var sharedConfigProfileNotExistError config.SharedConfigProfileNotExistError
switch {
case errors.As(configErr, &sharedConfigProfileNotExistError):
return trace.NotFound(configErr.Error())
return trace.NotFound("%s", configErr)
}
return configErr
+2 -2
View File
@@ -1417,13 +1417,13 @@ func applySSHConfig(fc *FileConfig, cfg *servicecfg.Config) (err error) {
"Teleport binary was built without PAM support. To continue either download a \n" +
"Teleport binary build with PAM support from https://goteleport.com/teleport \n" +
"or disable PAM in file configuration."
return trace.BadParameter(errorMessage)
return trace.BadParameter("%s", errorMessage)
}
if !pam.SystemHasPAM() {
const errorMessage = "Unable to start Teleport: PAM was enabled in file configuration but this \n" +
"system does not have the needed PAM library installed. To continue either \n" +
"install libpam or disable PAM in file configuration."
return trace.BadParameter(errorMessage)
return trace.BadParameter("%s", errorMessage)
}
}
}
+5 -5
View File
@@ -3957,7 +3957,7 @@ func TestApplyOktaConfig(t *testing.T) {
},
},
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
require.ErrorIs(t, err, trace.BadParameter(`okta_service is enabled but no api_endpoint is specified`))
require.ErrorIs(t, err, trace.BadParameter("okta_service is enabled but no api_endpoint is specified"))
},
},
{
@@ -3983,7 +3983,7 @@ func TestApplyOktaConfig(t *testing.T) {
APIEndpoint: `http://`,
},
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
require.ErrorIs(t, err, trace.BadParameter(`api_endpoint has no host`))
require.ErrorIs(t, err, trace.BadParameter("api_endpoint has no host"))
},
},
{
@@ -3996,7 +3996,7 @@ func TestApplyOktaConfig(t *testing.T) {
APIEndpoint: `//hostname`,
},
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
require.ErrorIs(t, err, trace.BadParameter(`api_endpoint has no scheme`))
require.ErrorIs(t, err, trace.BadParameter("api_endpoint has no scheme"))
},
},
{
@@ -4008,7 +4008,7 @@ func TestApplyOktaConfig(t *testing.T) {
APIEndpoint: "https://test-endpoint",
},
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
require.ErrorIs(t, err, trace.BadParameter(`okta_service is enabled but no api_token_path is specified`))
require.ErrorIs(t, err, trace.BadParameter("okta_service is enabled but no api_token_path is specified"))
},
},
{
@@ -4021,7 +4021,7 @@ func TestApplyOktaConfig(t *testing.T) {
APITokenPath: "/non-existent/path",
},
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
require.ErrorIs(t, err, trace.BadParameter(`error trying to find file %s`, i...))
require.ErrorIs(t, err, trace.BadParameter("error trying to find file %s", i...))
},
},
{
+2 -2
View File
@@ -699,12 +699,12 @@ func getRoleARNForAssumedRole(iamClient iamClient, identity awslib.Identity) (aw
RoleName: aws.String(identity.GetName()),
})
if err != nil || out == nil || out.Role == nil || out.Role.Arn == nil {
return nil, trace.BadParameter(failedToResolveAssumeRoleARN)
return nil, trace.BadParameter("%s", failedToResolveAssumeRoleARN)
}
roleIdentity, err := awslib.IdentityFromArn(*out.Role.Arn)
if err != nil {
return nil, trace.BadParameter(failedToResolveAssumeRoleARN)
return nil, trace.BadParameter("%s", failedToResolveAssumeRoleARN)
}
return roleIdentity, nil
}
@@ -235,7 +235,7 @@ func (s *FakeDeviceService) CreateDeviceEnrollToken(ctx context.Context, req *de
// Auto-enrollment path.
if err := validateCollectedData(req.DeviceData); err != nil {
return nil, trace.AccessDenied(err.Error())
return nil, trace.AccessDenied("%s", err)
}
return &devicepb.DeviceEnrollToken{
@@ -629,11 +629,11 @@ func (s *FakeDeviceService) spendDeviceWebToken(webToken *devicepb.DeviceWebToke
switch {
case storedToken == "": // Invalid attempt state or token already spent.
return nil, trace.AccessDenied(invalidWebTokenMessage)
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
case storedToken != webToken.Token: // Bad token
return nil, trace.AccessDenied(invalidWebTokenMessage)
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
case attempt.expectedDeviceID != dev.pb.Id: // Failed expected device check.
return nil, trace.AccessDenied(invalidWebTokenMessage)
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
}
// Issue a new confirmation token.
@@ -646,7 +646,7 @@ func (s *FakeDeviceService) spendDeviceWebToken(webToken *devicepb.DeviceWebToke
}
// Token ID not found.
return nil, trace.AccessDenied(invalidWebTokenMessage)
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
}
func authenticateDeviceMacOS(
+7 -7
View File
@@ -542,10 +542,10 @@ func (l *Log) handleAWSValidationError(ctx context.Context, err error, sessionID
se, ok := trimEventSize(in)
if !ok {
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
if err := l.putAuditEvent(context.WithValue(ctx, largeEventHandledContextKey, true), sessionID, se); err != nil {
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
l.logger.InfoContext(ctx, "Uploaded trimmed event to DynamoDB backend.", "event_id", in.GetID(), "event_type", in.GetType())
events.MetricStoredTrimmedEvents.Inc()
@@ -1315,27 +1315,27 @@ func convertError(err error) error {
var conditionalCheckFailedError *dynamodbtypes.ConditionalCheckFailedException
if errors.As(err, &conditionalCheckFailedError) {
return trace.AlreadyExists(conditionalCheckFailedError.ErrorMessage())
return trace.AlreadyExists("%s", conditionalCheckFailedError.ErrorMessage())
}
var throughputExceededError *dynamodbtypes.ProvisionedThroughputExceededException
if errors.As(err, &throughputExceededError) {
return trace.ConnectionProblem(throughputExceededError, throughputExceededError.ErrorMessage())
return trace.ConnectionProblem(throughputExceededError, "%s", throughputExceededError.ErrorMessage())
}
var notFoundError *dynamodbtypes.ResourceNotFoundException
if errors.As(err, &notFoundError) {
return trace.NotFound(notFoundError.ErrorMessage())
return trace.NotFound("%s", notFoundError.ErrorMessage())
}
var collectionLimitExceededError *dynamodbtypes.ItemCollectionSizeLimitExceededException
if errors.As(err, &notFoundError) {
return trace.BadParameter(collectionLimitExceededError.ErrorMessage())
return trace.BadParameter("%s", collectionLimitExceededError.ErrorMessage())
}
var internalError *dynamodbtypes.InternalServerError
if errors.As(err, &internalError) {
return trace.BadParameter(internalError.ErrorMessage())
return trace.BadParameter("%s", internalError.ErrorMessage())
}
var ae smithy.APIError
+1 -1
View File
@@ -528,7 +528,7 @@ func (u *Uploader) upload(ctx context.Context, up *upload) error {
case <-stream.Done():
if errStream, ok := stream.(interface{ Error() error }); ok {
if err := errStream.Error(); err != nil {
return trace.ConnectionProblem(err, err.Error())
return trace.ConnectionProblem(err, "%s", err.Error())
}
}
+3 -3
View File
@@ -332,15 +332,15 @@ func (h *Handler) ensureBucket() error {
return nil
}
func convertGCSError(err error, args ...interface{}) error {
func convertGCSError(err error) error {
if err == nil {
return nil
}
switch {
case errors.Is(err, storage.ErrBucketNotExist), errors.Is(err, storage.ErrObjectNotExist):
return trace.NotFound(err.Error(), args...)
return trace.NotFound("%s", err)
default:
return trace.Wrap(err, args...)
return trace.Wrap(err)
}
}
+5 -8
View File
@@ -452,8 +452,7 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
ACL: awstypes.BucketCannedACLPrivate,
}
_, err = h.client.CreateBucket(ctx, input)
err = awsutils.ConvertS3Error(err, fmt.Sprintf("bucket %v already exists", aws.String(h.Bucket)))
if err != nil {
if err := awsutils.ConvertS3Error(err); err != nil {
if !trace.IsAlreadyExists(err) {
return trace.Wrap(err)
}
@@ -469,9 +468,8 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
Status: awstypes.BucketVersioningStatusEnabled,
},
})
err = awsutils.ConvertS3Error(err, fmt.Sprintf("failed to set versioning state for bucket %q", h.Bucket))
if err != nil {
return trace.Wrap(err)
if err := awsutils.ConvertS3Error(err); err != nil {
return trace.Wrap(err, "failed to set versioning state for bucket %q", h.Bucket)
}
// Turn on server-side encryption for the bucket.
@@ -488,9 +486,8 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
},
},
})
err = awsutils.ConvertS3Error(err, fmt.Sprintf("failed to set encryption state for bucket %q", h.Bucket))
if err != nil {
return trace.Wrap(err)
if err := awsutils.ConvertS3Error(err); err != nil {
return trace.Wrap(err, "failed to set encryption state for bucket %q", h.Bucket)
}
}
return nil
+4 -6
View File
@@ -23,7 +23,6 @@ import (
"crypto/tls"
"crypto/x509"
"errors"
"fmt"
"io"
"net"
"net/http"
@@ -366,12 +365,11 @@ func (i *eicedConn) handleIOError(err error) error {
var closeErr *websocket.CloseError
if errors.As(err, &closeErr) {
return trace.ConnectionProblem(err,
fmt.Sprintf("Could not connect to %s via EC2 Instance Connect Endpoint %s. "+
"Could not connect to %s via EC2 Instance Connect Endpoint %s. "+
"Please ensure the instance's SecurityGroups allow inbound TCP traffic on port 22 from %s",
i.ec2InstanceID,
i.eiceID,
i.subnetID,
),
i.ec2InstanceID,
i.eiceID,
i.subnetID,
)
}
return trace.Wrap(err)
@@ -394,7 +394,7 @@ func enrollEKSCluster(ctx context.Context, log *slog.Logger, clock clockwork.Clo
if req.IsCloud && !eksCluster.ResourcesVpcConfig.EndpointPublicAccess {
return "",
usertasks.AutoDiscoverEKSIssueMissingEndpoingPublicAccess,
trace.AccessDenied(`can't enroll %q because it is not accessible from Teleport Cloud, please enable endpoint public access in your EKS cluster and try again.`, clusterName)
trace.AccessDenied("can't enroll %q because it is not accessible from Teleport Cloud, please enable endpoint public access in your EKS cluster and try again.", clusterName)
}
// When clusters are using CONFIG_MAP, API is not acessible and thus Teleport can't install the Teleport's Helm chart.
+1 -1
View File
@@ -83,7 +83,7 @@ func parseContextOverrideError(err error) error {
"Please check the template syntax and try again.\n" +
supportedFunctionsMsg
if err == nil {
return trace.BadParameter(msg)
return trace.BadParameter("%s", msg)
}
return trace.BadParameter(
msg+
+10 -10
View File
@@ -548,7 +548,7 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
userTypeI, err := authz.UserFromContext(ctx)
if err != nil {
f.log.WarnContext(ctx, "error getting user from context", "error", err)
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
}
switch userTypeI.(type) {
case authz.LocalUser:
@@ -559,10 +559,10 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
f.log.WarnContext(ctx, "Denying proxy access to unauthenticated user - this can sometimes be caused by inadvertently using an HTTP load balancer instead of a TCP load balancer on the Kubernetes port",
"user_type", logutils.TypeAttr(userTypeI),
)
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
default:
f.log.WarnContext(ctx, "Denying proxy access to unsupported user type", "user_type", logutils.TypeAttr(userTypeI))
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
}
userContext, err := f.cfg.Authz.Authorize(ctx)
@@ -574,7 +574,7 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
if err != nil {
f.log.WarnContext(ctx, "Unable to setup context", "error", err)
if trace.IsAccessDenied(err) {
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
}
return nil, trace.Wrap(err)
}
@@ -1088,16 +1088,16 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
kubeAccessDetails, err := f.getKubeAccessDetails(actx.kubeServers, actx.Checker, actx.kubeClusterName, actx.sessionTTL, actx.kubeResource)
if err != nil && !trace.IsNotFound(err) {
if actx.kubeResource != nil {
return trace.AccessDenied(notFoundMessage)
return trace.AccessDenied("%s", notFoundMessage)
}
// TODO (tigrato): should return another message here.
return trace.AccessDenied(accessDeniedMsg)
return trace.AccessDenied("%s", accessDeniedMsg)
// roles.CheckKubeGroupsAndUsers returns trace.NotFound if the user does
// does not have at least one configured kubernetes_users or kubernetes_groups.
} else if trace.IsNotFound(err) {
const errMsg = "Your user's Teleport role does not allow Kubernetes access." +
" Please ask cluster administrator to ensure your role has appropriate kubernetes_groups and kubernetes_users set."
return trace.NotFound(errMsg)
return trace.NotFound("%s", errMsg)
}
kubeUsers = kubeAccessDetails.kubeUsers
@@ -1125,7 +1125,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
case errors.Is(err, services.ErrTrustedDeviceRequired):
return trace.Wrap(err)
case err != nil:
return trace.AccessDenied(notFoundMessage)
return trace.AccessDenied("%s", notFoundMessage)
}
// If the user has active Access requests we need to validate that they allow
@@ -1141,7 +1141,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
// list will be empty.
allowed, denied := actx.Checker.GetKubeResources(ks)
if result, err := matchKubernetesResource(*actx.kubeResource, allowed, denied); err != nil || !result {
return trace.AccessDenied(notFoundMessage)
return trace.AccessDenied("%s", notFoundMessage)
}
}
// store a copy of the Kubernetes Cluster.
@@ -1154,7 +1154,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
)
return nil
}
return trace.AccessDenied(notFoundMessage)
return trace.AccessDenied("%s", notFoundMessage)
}
// matchKubernetesResource checks if the Kubernetes Resource does not match any
+1 -1
View File
@@ -81,7 +81,7 @@ func (f *Forwarder) listResources(sess *clusterSession, w http.ResponseWriter, r
sess.requestVerb,
sess.apiResource,
)
return nil, trace.AccessDenied(notFoundMessage)
return nil, trace.AccessDenied("%s", notFoundMessage)
}
// isWatch identifies if the request is long-lived watch stream based on
// HTTP connection.
+4 -4
View File
@@ -104,10 +104,10 @@ func ensureRouteNotOverwritten(ident *tlsca.Identity, routeToCluster, kubernetes
const overwriteDeniedMsg = "existing route in identity may not be overwritten"
if ident.RouteToCluster != "" && teleportClusterChanged {
return trace.AccessDenied(overwriteDeniedMsg)
return trace.AccessDenied("%s", overwriteDeniedMsg)
}
if ident.KubernetesCluster != "" && kubeClusterChanged {
return trace.AccessDenied(overwriteDeniedMsg)
return trace.AccessDenied("%s", overwriteDeniedMsg)
}
return nil
@@ -127,7 +127,7 @@ func (f *Forwarder) singleCertHandler() httprouter.Handle {
userTypeI, err := authz.UserFromContext(req.Context())
if err != nil {
f.log.WarnContext(req.Context(), "error getting user from context", "error", err)
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
}
// Insert the extracted routing information from the path into the
@@ -170,7 +170,7 @@ func (f *Forwarder) singleCertHandler() httprouter.Handle {
userType = o
default:
f.log.WarnContext(req.Context(), "Denying proxy access to unsupported user type", "user_type", logutils.TypeAttr(userTypeI))
return nil, trace.AccessDenied(accessDeniedMsg)
return nil, trace.AccessDenied("%s", accessDeniedMsg)
}
ctx := authz.ContextWithUser(req.Context(), userType)
+1 -1
View File
@@ -472,7 +472,7 @@ func (e *wsStreamClient) handlePortForwardRequest(conn net.Conn, remoteConn *gwe
return
}
case portforwardErrChan:
err := trace.Errorf(string(buf[1:]))
err := trace.Errorf("%s", string(buf[1:]))
errChan <- trace.Wrap(err)
// Once we receive an error from streamErr, we must stop processing.
// The server also stops the execution and closes the connection.
+1 -1
View File
@@ -203,7 +203,7 @@ func (c *Client) request(ctx context.Context, method string, uri string, payload
lastErr = trace.Wrap(graphError)
} else {
// API did not return a valid error structure, best-effort reporting.
lastErr = trace.Errorf(resp.Status)
lastErr = trace.Errorf("%s", resp.Status)
}
if !isRetriable(resp.StatusCode) {
break
+9 -9
View File
@@ -513,12 +513,12 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
}
if m.PROXYProtocolMode == PROXYProtocolOff {
return nil, trace.BadParameter(externalProxyProtocolDisabledError)
return nil, trace.BadParameter("%s", externalProxyProtocolDisabledError)
}
if unsignedPROXYLineReceived {
// We allow only one unsigned PROXY line
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
}
unsignedPROXYLineReceived = true
@@ -534,7 +534,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
if proxyLine != nil && proxyLine.IsVerified {
// Unsigned PROXY line after signed one should not happen
return nil, trace.BadParameter(unsignedPROXYLineAfterSignedError)
return nil, trace.BadParameter("%s", unsignedPROXYLineAfterSignedError)
}
proxyLine = newPROXYLine
@@ -548,7 +548,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
if newPROXYLine == nil {
if unsignedPROXYLineReceived {
// We allow only one unsigned PROXY line
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
}
unsignedPROXYLineReceived = true
continue // Skipping LOCAL command of PROXY protocol
@@ -578,7 +578,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
// we accept, otherwise reject
if newPROXYLine.IsVerified {
if proxyLine != nil && proxyLine.IsVerified {
return nil, trace.BadParameter(duplicateSignedProxyLineError)
return nil, trace.BadParameter("%s", duplicateSignedProxyLineError)
}
proxyLine = newPROXYLine
@@ -591,12 +591,12 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
// This is unsigned proxy line, return error if external PROXY protocol is not enabled
if m.PROXYProtocolMode == PROXYProtocolOff {
return nil, trace.BadParameter(externalProxyProtocolDisabledError)
return nil, trace.BadParameter("%s", externalProxyProtocolDisabledError)
}
if unsignedPROXYLineReceived {
// We allow only one unsigned PROXY line
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
}
unsignedPROXYLineReceived = true
@@ -612,7 +612,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
// Unsigned PROXY line after signed should not happen
if proxyLine != nil && proxyLine.IsVerified {
return nil, trace.BadParameter(unsignedPROXYLineAfterSignedError)
return nil, trace.BadParameter("%s", unsignedPROXYLineAfterSignedError)
}
proxyLine = newPROXYLine
@@ -631,7 +631,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
}
}
// if code ended here after three attempts, something is wrong
return nil, trace.BadParameter(unknownProtocolError)
return nil, trace.BadParameter("%s", unknownProtocolError)
}
// checkPROXYProtocolRequirement checks that if multiplexer is required to receive unsigned PROXY line
+1 -1
View File
@@ -491,7 +491,7 @@ func (p *PAM) codeToError(returnValue C.int) error {
// released.
err := C._pam_strerror(pamHandle, p.pamh, returnValue)
if err != nil {
return trace.BadParameter(C.GoString(err))
return trace.BadParameter("%s", C.GoString(err))
}
return nil
+3 -3
View File
@@ -706,14 +706,14 @@ func (s *localSite) getConn(params reversetunnelclient.DialParams) (conn net.Con
// Skip direct dial when the tunnel error is not a not found error. This
// means the agent is tunneling but the connection failed for some reason.
if !trace.IsNotFound(tunnelErr) {
return nil, false, trace.ConnectionProblem(tunnelErr, tunnelMsg)
return nil, false, trace.ConnectionProblem(tunnelErr, "%s", tunnelMsg)
}
skip, err := s.skipDirectDial(params)
if err != nil {
return nil, false, trace.Wrap(err)
} else if skip {
return nil, false, trace.ConnectionProblem(tunnelErr, tunnelMsg)
return nil, false, trace.ConnectionProblem(tunnelErr, "%s", tunnelMsg)
}
// If no tunnel connection was found, dial to the target host.
@@ -727,7 +727,7 @@ func (s *localSite) getConn(params reversetunnelclient.DialParams) (conn net.Con
"direct_error", directErr,
)
aggregateErr := trace.NewAggregate(tunnelErr, peerErr, directErr)
return nil, false, trace.ConnectionProblem(aggregateErr, directMsg)
return nil, false, trace.ConnectionProblem(aggregateErr, "%s", directMsg)
}
// Return a direct dialed connection.
+2 -3
View File
@@ -984,11 +984,10 @@ func (s *remoteSite) connThroughTunnel(req *sshutils.DialReq) (*sshutils.ChConn,
if err == nil {
// Return the appropriate message if the user is trying to connect to a
// cluster or a node.
message := fmt.Sprintf("cluster %v is offline", s.GetName())
if req.Address != constants.RemoteAuthServer {
message = fmt.Sprintf("node %v is offline", req.Address)
return nil, trace.ConnectionProblem(nil, "node %v is offline", req.Address)
}
err = trace.ConnectionProblem(nil, message)
return nil, trace.ConnectionProblem(nil, "cluster %v is offline", s.GetName())
}
return nil, err
}
+1 -1
View File
@@ -977,7 +977,7 @@ func (s *server) checkClientCert(user string, clusterName string, cert *ssh.Cert
FIPS: s.FIPS,
}
if err := checker.CheckCert(user, cert); err != nil {
return trace.BadParameter(err.Error())
return trace.BadParameter("%s", err)
}
return nil
+3 -3
View File
@@ -79,12 +79,12 @@ func CheckDynamicLabelsInDenyRules(r types.Role) error {
}
for label := range labelMatchers.Labels {
if strings.HasPrefix(label, types.TeleportDynamicLabelPrefix) {
return trace.BadParameter(dynamicLabelsErrorMessage)
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
}
}
const expressionMatch = `"` + types.TeleportDynamicLabelPrefix
if strings.Contains(labelMatchers.Expression, expressionMatch) {
return trace.BadParameter(dynamicLabelsErrorMessage)
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
}
}
@@ -93,7 +93,7 @@ func CheckDynamicLabelsInDenyRules(r types.Role) error {
r.GetImpersonateConditions(types.Deny).Where,
} {
if strings.Contains(where, types.TeleportDynamicLabelPrefix) {
return trace.BadParameter(dynamicLabelsErrorMessage)
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
}
}
+3 -3
View File
@@ -107,7 +107,7 @@ func UnmarshalAccessList(data []byte, opts ...MarshalOption) (*accesslist.Access
}
var accessList accesslist.AccessList
if err := utils.FastUnmarshal(data, &accessList); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := accessList.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -208,7 +208,7 @@ func UnmarshalAccessListMember(data []byte, opts ...MarshalOption) (*accesslist.
}
var member accesslist.AccessListMember
if err := utils.FastUnmarshal(data, &member); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := member.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -270,7 +270,7 @@ func UnmarshalAccessListReview(data []byte, opts ...MarshalOption) (*accesslist.
}
var review accesslist.Review
if err := utils.FastUnmarshal(data, &review); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := review.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -1209,7 +1209,7 @@ func (m *RequestValidator) Validate(ctx context.Context, req types.AccessRequest
return trace.Wrap(err)
}
if required {
return trace.BadParameter(explanation)
return trace.BadParameter("%s", explanation)
}
}
+2 -2
View File
@@ -92,7 +92,7 @@ func UnmarshalApp(data []byte, opts ...MarshalOption) (types.Application, error)
case types.V3:
var app types.AppV3
if err := utils.FastUnmarshal(data, &app); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := app.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -144,7 +144,7 @@ func UnmarshalAppServer(data []byte, opts ...MarshalOption) (types.AppServer, er
case types.V3:
var s types.AppServerV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -52,7 +52,7 @@ func UnmarshalClusterAuditConfig(bytes []byte, opts ...MarshalOption) (types.Clu
}
if err := utils.FastUnmarshal(bytes, &auditConfig); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := auditConfig.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -81,7 +81,7 @@ func UnmarshalAuthPreference(bytes []byte, opts ...MarshalOption) (types.AuthPre
}
if err := utils.FastUnmarshal(bytes, &authPreference); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := authPreference.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+2 -2
View File
@@ -331,7 +331,7 @@ func MarshalCertRoles(roles []string) (string, error) {
func UnmarshalCertRoles(data string) ([]string, error) {
var certRoles types.CertRoles
if err := utils.FastUnmarshal([]byte(data), &certRoles); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
return certRoles.Roles, nil
}
@@ -351,7 +351,7 @@ func UnmarshalCertAuthority(bytes []byte, opts ...MarshalOption) (types.CertAuth
case types.V2:
var ca types.CertAuthorityV2
if err := utils.FastUnmarshal(bytes, &ca); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := ValidateCertAuthority(&ca); err != nil {
+1 -1
View File
@@ -49,7 +49,7 @@ func UnmarshalClusterName(bytes []byte, opts ...MarshalOption) (types.ClusterNam
}
if err := utils.FastUnmarshal(bytes, &clusterName); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
err = clusterName.CheckAndSetDefaults()
+1 -1
View File
@@ -89,7 +89,7 @@ func UnmarshalConnectionDiagnostic(data []byte, opts ...MarshalOption) (types.Co
case types.V1:
var s types.ConnectionDiagnosticV1
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
+1 -1
View File
@@ -100,7 +100,7 @@ func UnmarshalDatabase(data []byte, opts ...MarshalOption) (types.Database, erro
case types.V3:
var database types.DatabaseV3
if err := utils.FastUnmarshal(data, &database); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := database.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -61,7 +61,7 @@ func UnmarshalDatabaseServer(data []byte, opts ...MarshalOption) (types.Database
case types.V3:
var s types.DatabaseServerV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -75,7 +75,7 @@ func UnmarshalDatabaseService(data []byte, opts ...MarshalOption) (types.Databas
case types.V1:
var s types.DatabaseServiceV1
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+2 -2
View File
@@ -80,7 +80,7 @@ func UnmarshalWindowsDesktop(data []byte, opts ...MarshalOption) (types.WindowsD
case types.V3:
var s types.WindowsDesktopV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -132,7 +132,7 @@ func UnmarshalWindowsDesktopService(data []byte, opts ...MarshalOption) (types.W
case types.V3:
var s types.WindowsDesktopServiceV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -91,7 +91,7 @@ func UnmarshalDiscoveryConfig(data []byte, opts ...MarshalOption) (*discoverycon
}
var discoveryConfig *discoveryconfig.DiscoveryConfig
if err := utils.FastUnmarshal(data, &discoveryConfig); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := discoveryConfig.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -74,7 +74,7 @@ func UnmarshalDynamicWindowsDesktop(data []byte, opts ...MarshalOption) (types.D
case types.V1:
var s types.DynamicWindowsDesktopV1
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -36,7 +36,7 @@ func UnmarshalExternalAuditStorage(data []byte, opts ...MarshalOption) (*externa
}
var out *externalauditstorage.ExternalAuditStorage
if err := utils.FastUnmarshal(data, &out); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := out.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -49,7 +49,7 @@ func getHeaderProtoJSONOptions() *protojson.UnmarshalOptions {
func unmarshalHeaderWithProtoJSON(data []byte) (types.ResourceHeader, error) {
var h types.MessageWithHeader
if err := getHeaderProtoJSONOptions().Unmarshal(data, protoadapt.MessageV2Of(&h)); err != nil {
return types.ResourceHeader{}, trace.BadParameter(err.Error())
return types.ResourceHeader{}, trace.BadParameter("%s", err)
}
return h.ResourceHeader, nil
+1 -1
View File
@@ -39,7 +39,7 @@ func UnmarshalInstaller(data []byte, opts ...MarshalOption) (types.Installer, er
}
if err := utils.FastUnmarshal(data, &installer); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := installer.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+2 -2
View File
@@ -91,7 +91,7 @@ func UnmarshalKubeServer(data []byte, opts ...MarshalOption) (types.KubeServer,
case types.V3:
var s types.KubernetesServerV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -147,7 +147,7 @@ func UnmarshalKubeCluster(data []byte, opts ...MarshalOption) (types.KubeCluster
case types.V3:
var s types.KubernetesClusterV3
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -35,7 +35,7 @@ func UnmarshalLicense(bytes []byte) (types.License, error) {
var license types.LicenseV3
err := utils.FastUnmarshal(bytes, &license)
if err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if license.Version != types.V3 {
+1 -1
View File
@@ -1035,7 +1035,7 @@ func (a *AccessListService) VerifyAccessListCreateLimit(ctx context.Context, tar
}
const limitReachedMessage = "cluster has reached its limit for creating access lists, please contact the cluster administrator"
return trace.AccessDenied(limitReachedMessage)
return trace.AccessDenied("%s", limitReachedMessage)
}
// keepAWSIdentityCenterLabels preserves member labels if
+1 -1
View File
@@ -109,7 +109,7 @@ func unmarshalResource(data []byte, opts ...services.MarshalOption) (*testResour
var r testResource
if err := utils.FastUnmarshal(data, &r); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := r.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -71,7 +71,7 @@ func unmarshalResource153(data []byte, opts ...services.MarshalOption) (*testRes
var r testResource153
if err := utils.FastUnmarshal(data, &r); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if r.Metadata == nil {
@@ -131,7 +131,7 @@ func (s *SAMLIdPServiceProviderService) CreateSAMLIdPServiceProvider(ctx context
"acs_url", sp.GetACSURL(),
"error", err,
)
return trace.BadParameter(errMsg.Error())
return trace.BadParameter("%s", errMsg)
}
}
+2 -2
View File
@@ -1460,7 +1460,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty
mfaConnector, err = s.GetOIDCConnector(ctx, cb.Connector.ID, false /* withSecrets */)
case constants.Github:
// Github connectors do not support SSO MFA.
return nil, trace.NotFound(ssoMFADisabledErr)
return nil, trace.NotFound("%s", ssoMFADisabledErr)
default:
return nil, trace.NotFound("user created by unknown auth connector type %v", cb.Connector.Type)
}
@@ -1473,7 +1473,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty
}
if !mfaConnector.IsMFAEnabled() {
return nil, trace.NotFound(ssoMFADisabledErr)
return nil, trace.NotFound("%s", ssoMFADisabledErr)
}
return types.NewMFADevice(mfaConnector.GetDisplay(), cb.Connector.ID, cb.Time.UTC(), &types.MFADevice_Sso{
+2 -2
View File
@@ -36,7 +36,7 @@ func LockInForceAccessDenied(lock types.Lock) error {
if len(msg) > 0 {
s += ": " + msg
}
err := trace.AccessDenied(s)
err := trace.AccessDenied("%s", s)
return trace.WithField(err, "lock-in-force", lock)
}
@@ -85,7 +85,7 @@ func UnmarshalLock(bytes []byte, opts ...MarshalOption) (types.Lock, error) {
var lock types.LockV2
if err := utils.FastUnmarshal(bytes, &lock); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := lock.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -53,7 +53,7 @@ func UnmarshalNamespace(data []byte, opts ...MarshalOption) (*types.Namespace, e
// the namespace is always created by teleport now
var namespace types.Namespace
if err := utils.FastUnmarshal(data, &namespace); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := namespace.CheckAndSetDefaults(); err != nil {
+1 -1
View File
@@ -39,7 +39,7 @@ func UnmarshalClusterNetworkingConfig(bytes []byte, opts ...MarshalOption) (type
}
if err := utils.FastUnmarshal(bytes, &netConfig); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
err = netConfig.CheckAndSetDefaults()
+1 -1
View File
@@ -89,7 +89,7 @@ func UnmarshalOIDCConnector(bytes []byte, opts ...MarshalOption) (types.OIDCConn
case types.V2, types.V3:
var c types.OIDCConnectorV3
if err := utils.FastUnmarshal(bytes, &c); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := c.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+2 -2
View File
@@ -116,7 +116,7 @@ func UnmarshalOktaImportRule(data []byte, opts ...MarshalOption) (types.OktaImpo
case types.V1:
var i types.OktaImportRuleV1
if err := utils.FastUnmarshal(data, &i); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := i.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -168,7 +168,7 @@ func UnmarshalOktaAssignment(data []byte, opts ...MarshalOption) (types.OktaAssi
case types.V1:
var a types.OktaAssignmentV1
if err := utils.FastUnmarshal(data, &a); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := a.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+2 -2
View File
@@ -82,13 +82,13 @@ func UnmarshalPluginStaticCredentials(data []byte, opts ...MarshalOption) (types
}
h, err := unmarshalHeaderWithProtoJSON(data)
if err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
switch h.Version {
case types.V1:
var pluginStaticCredentials types.PluginStaticCredentialsV1
if err := protojson.Unmarshal(data, protoadapt.MessageV2Of(&pluginStaticCredentials)); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := pluginStaticCredentials.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -84,7 +84,7 @@ func UnmarshalPlugin(data []byte, opts ...MarshalOption) (types.Plugin, error) {
var plugin types.PluginV1
m := jsonpb.Unmarshaler{AllowUnknownFields: true}
if err := m.Unmarshal(bytes.NewReader(data), &plugin); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := plugin.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -92,7 +92,7 @@ func UnmarshalProvisionToken(data []byte, opts ...MarshalOption) (types.Provisio
case types.V2:
var p types.ProvisionTokenV2
if err := utils.FastUnmarshal(data, &p); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := p.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -61,7 +61,7 @@ func UnmarshalNetworkRestrictions(bytes []byte, opts ...MarshalOption) (types.Ne
case types.V4:
var nr types.NetworkRestrictionsV4
if err := utils.FastUnmarshal(bytes, &nr); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := ValidateNetworkRestrictions(&nr); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -3551,7 +3551,7 @@ func UnmarshalRoleV6(bytes []byte, opts ...MarshalOption) (*types.RoleV6, error)
var role types.RoleV6
if err := utils.FastUnmarshal(bytes, &role); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if role.Version != version {
return nil, trace.BadParameter("inconsistent version in role data, got %q and %q", role.Version, version)
+1 -1
View File
@@ -358,7 +358,7 @@ func UnmarshalSAMLConnector(bytes []byte, opts ...MarshalOption) (types.SAMLConn
case types.V2:
var c types.SAMLConnectorV2
if err := utils.FastUnmarshal(bytes, &c); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := ValidateSAMLConnector(&c, nil); err != nil {
+1 -1
View File
@@ -90,7 +90,7 @@ func UnmarshalSAMLIdPServiceProvider(data []byte, opts ...MarshalOption) (types.
case types.V1:
var s types.SAMLIdPServiceProviderV1
if err := utils.FastUnmarshal(data, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := s.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+4 -4
View File
@@ -121,7 +121,7 @@ func UnmarshalAuditQuery(data []byte, opts ...MarshalOption) (*secreports.AuditQ
}
var out *secreports.AuditQuery
if err := utils.FastUnmarshal(data, &out); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := out.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -161,7 +161,7 @@ func UnmarshalSecurityReport(data []byte, opts ...MarshalOption) (*secreports.Re
}
var out *secreports.Report
if err := utils.FastUnmarshal(data, &out); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := out.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -199,7 +199,7 @@ func UnmarshalSecurityReportState(data []byte, opts ...MarshalOption) (*secrepor
}
var out *secreports.ReportState
if err := utils.FastUnmarshal(data, &out); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := out.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
@@ -237,7 +237,7 @@ func UnmarshalSecurityCostLimiter(data []byte, opts ...MarshalOption) (*secrepor
}
var out *secreports.CostLimiter
if err := utils.FastUnmarshal(data, &out); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := out.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -380,7 +380,7 @@ func UnmarshalSemaphore(bytes []byte, opts ...MarshalOption) (types.Semaphore, e
}
if err := utils.FastUnmarshal(bytes, &semaphore); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
err = semaphore.CheckAndSetDefaults()
+1 -1
View File
@@ -365,7 +365,7 @@ func UnmarshalServer(bytes []byte, kind string, opts ...MarshalOption) (types.Se
var s types.ServerV2
if err := utils.FastUnmarshal(bytes, &s); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
s.Kind = kind
if err := s.CheckAndSetDefaults(); err != nil {
+1 -1
View File
@@ -39,7 +39,7 @@ func UnmarshalServerInfo(bytes []byte, opts ...MarshalOption) (types.ServerInfo,
var si types.ServerInfoV1
if err := utils.FastUnmarshal(bytes, &si); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := si.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -48,7 +48,7 @@ func UnmarshalSessionRecordingConfig(bytes []byte, opts ...MarshalOption) (types
return nil, trace.Wrap(err)
}
if err := utils.FastUnmarshal(bytes, &recConfig); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
err = recConfig.CheckAndSetDefaults()
+1 -1
View File
@@ -61,7 +61,7 @@ func UnmarshalSessionTracker(bytes []byte) (types.SessionTracker, error) {
var session types.SessionTrackerV1
if err := utils.FastUnmarshal(bytes, &session); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := session.CheckAndSetDefaults(); err != nil {
+1 -1
View File
@@ -39,7 +39,7 @@ func UnmarshalStaticTokens(bytes []byte, opts ...MarshalOption) (types.StaticTok
}
if err := utils.FastUnmarshal(bytes, &staticTokens); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := staticTokens.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -157,7 +157,7 @@ func UnmarshalTrustedCluster(bytes []byte, opts ...MarshalOption) (types.Trusted
}
if err := utils.FastUnmarshal(bytes, &trustedCluster); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
// DELETE IN(7.0)
// temporarily allow to read trusted cluster with no role map
+1 -1
View File
@@ -60,7 +60,7 @@ func UnmarshalReverseTunnel(bytes []byte, opts ...MarshalOption) (types.ReverseT
case types.V2:
var r types.ReverseTunnelV2
if err := utils.FastUnmarshal(bytes, &r); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := ValidateReverseTunnel(&r); err != nil {
return nil, trace.Wrap(err)
+1 -1
View File
@@ -75,7 +75,7 @@ func UnmarshalTunnelConnection(data []byte, opts ...MarshalOption) (types.Tunnel
var r types.TunnelConnectionV2
if err := utils.FastUnmarshal(data, &r); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := r.CheckAndSetDefaults(); err != nil {
+1 -1
View File
@@ -38,7 +38,7 @@ func UnmarshalUIConfig(data []byte, opts ...MarshalOption) (types.UIConfig, erro
var uiconfig types.UIConfigV1
if err := utils.FastUnmarshal(data, &uiconfig); err != nil {
return nil, trace.BadParameter(err.Error())
return nil, trace.BadParameter("%s", err)
}
if err := uiconfig.CheckAndSetDefaults(); err != nil {
return nil, trace.Wrap(err)

Some files were not shown because too many files have changed in this diff Show More