@@ -81,11 +81,12 @@ func InvalidArgumentError(msg string, f map[string]string) error {
81
81
// and credentials. This method will fallback to parsing the http status code
82
82
// when it cannot match an aws error code. This method does not handle specific
83
83
// service type errors such as S3 or EC2.
84
- func ParseAWSError (err error , msg string ) (st * status.Status , permission * pb.Permission ) {
84
+ func ParseAWSError (op string , err error ) (st * status.Status , permission * pb.Permission ) {
85
85
if err == nil {
86
86
return nil , nil
87
87
}
88
88
89
+ msg := fmt .Sprintf ("%s: %v" , op , err )
89
90
// find the service name of the aws api
90
91
serviceName := "unknown"
91
92
var oe * smithy.OperationError
@@ -113,7 +114,7 @@ func ParseAWSError(err error, msg string) (st *status.Status, permission *pb.Per
113
114
Codes : retry .DefaultThrottleErrorCodes ,
114
115
}
115
116
if throttleErr .IsErrorThrottle (err ).Bool () {
116
- statusMsg := fmt .Sprintf ("aws service %s: throttling error : %s" , serviceName , msg )
117
+ statusMsg := fmt .Sprintf ("aws service %s: throttling: %s" , serviceName , msg )
117
118
return status .New (codes .Unavailable , statusMsg ), nil
118
119
}
119
120
@@ -126,31 +127,31 @@ func ParseAWSError(err error, msg string) (st *status.Status, permission *pb.Per
126
127
case awsErrorInvalidAccessKeyId :
127
128
fallthrough
128
129
case awsErrorExpiredToken :
129
- statusMsg := fmt .Sprintf ("aws service %s: invalid credentials error : %s" , serviceName , msg )
130
+ statusMsg := fmt .Sprintf ("aws service %s: invalid credentials: %s" , serviceName , msg )
130
131
return status .New (codes .PermissionDenied , statusMsg ), & pb.Permission {
131
132
State : pb .StateType_STATE_TYPE_ERROR ,
132
133
ErrorDetails : apiErr .ErrorMessage (),
133
134
CheckedAt : timestamppb .Now (),
134
135
}
135
136
case awsErrorNoSuchBucket :
136
- statusMsg := fmt .Sprintf ("aws %s error : %s" , serviceName , msg )
137
+ statusMsg := fmt .Sprintf ("aws service %s : %s" , serviceName , msg )
137
138
return status .New (codes .NotFound , statusMsg ), & pb.Permission {
138
139
State : pb .StateType_STATE_TYPE_ERROR ,
139
140
ErrorDetails : apiErr .ErrorMessage (),
140
141
CheckedAt : timestamppb .Now (),
141
142
}
142
143
case awsErrorBadDigest :
143
- statusMsg := fmt .Sprintf ("aws %s error : %s" , serviceName , msg )
144
+ statusMsg := fmt .Sprintf ("aws service %s : %s" , serviceName , msg )
144
145
return status .New (codes .Aborted , statusMsg ), nil
145
146
case awsErrorNoSuchKey :
146
147
fallthrough
147
148
case awsErrorInvalidObjectState :
148
- statusMsg := fmt .Sprintf ("aws %s error : %s" , serviceName , msg )
149
+ statusMsg := fmt .Sprintf ("aws service %s : %s" , serviceName , msg )
149
150
return status .New (codes .NotFound , statusMsg ), nil
150
151
case awsErrorRequestTimeout :
151
152
fallthrough
152
153
case awsErrorRequestTimeoutException :
153
- statusMsg := fmt .Sprintf ("aws %s error : %s" , serviceName , msg )
154
+ statusMsg := fmt .Sprintf ("aws service %s : %s" , serviceName , msg )
154
155
return status .New (codes .DeadlineExceeded , statusMsg ), nil
155
156
}
156
157
}
@@ -165,39 +166,39 @@ func ParseAWSError(err error, msg string) (st *status.Status, permission *pb.Per
165
166
defer httpErr .Response .Body .Close ()
166
167
switch httpErr .HTTPStatusCode () {
167
168
case http .StatusBadRequest :
168
- statusMsg := fmt .Sprintf ("aws service %s: bad request error : %s" , serviceName , msg )
169
+ statusMsg := fmt .Sprintf ("aws service %s: bad request: %s" , serviceName , msg )
169
170
return status .New (codes .InvalidArgument , statusMsg ), nil
170
171
case http .StatusUnauthorized :
171
- statusMsg := fmt .Sprintf ("aws service %s: invalid credentials error : %s" , serviceName , msg )
172
+ statusMsg := fmt .Sprintf ("aws service %s: invalid credentials: %s" , serviceName , msg )
172
173
return status .New (codes .PermissionDenied , statusMsg ), & pb.Permission {
173
174
State : pb .StateType_STATE_TYPE_ERROR ,
174
175
ErrorDetails : buf .String (),
175
176
CheckedAt : timestamppb .Now (),
176
177
}
177
178
case http .StatusForbidden :
178
- statusMsg := fmt .Sprintf ("aws service %s: invalid credentials error : %s" , serviceName , msg )
179
+ statusMsg := fmt .Sprintf ("aws service %s: invalid credentials: %s" , serviceName , msg )
179
180
return status .New (codes .PermissionDenied , statusMsg ), & pb.Permission {
180
181
State : pb .StateType_STATE_TYPE_ERROR ,
181
182
ErrorDetails : buf .String (),
182
183
CheckedAt : timestamppb .Now (),
183
184
}
184
185
case http .StatusNotFound :
185
- statusMsg := fmt .Sprintf ("aws service %s: resource not found error : %s" , serviceName , msg )
186
+ statusMsg := fmt .Sprintf ("aws service %s: resource not found: %s" , serviceName , msg )
186
187
return status .New (codes .NotFound , statusMsg ), nil
187
188
case http .StatusTooManyRequests :
188
- statusMsg := fmt .Sprintf ("aws service %s: throttling error : %s" , serviceName , msg )
189
+ statusMsg := fmt .Sprintf ("aws service %s: throttling: %s" , serviceName , msg )
189
190
return status .New (codes .Unavailable , statusMsg ), nil
190
191
case http .StatusInternalServerError :
191
192
fallthrough
192
193
case http .StatusBadGateway :
193
194
fallthrough
194
195
case http .StatusServiceUnavailable :
195
- statusMsg := fmt .Sprintf ("aws service %s: connectivity error : %s" , serviceName , msg )
196
+ statusMsg := fmt .Sprintf ("aws service %s: connectivity: %s" , serviceName , msg )
196
197
return status .New (codes .Unavailable , statusMsg ), nil
197
198
case http .StatusRequestTimeout :
198
199
fallthrough
199
200
case http .StatusGatewayTimeout :
200
- statusMsg := fmt .Sprintf ("aws service %s: timeout error : %s" , serviceName , msg )
201
+ statusMsg := fmt .Sprintf ("aws service %s: timeout: %s" , serviceName , msg )
201
202
return status .New (codes .DeadlineExceeded , statusMsg ), nil
202
203
}
203
204
}
0 commit comments