Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
414ebd2d
Commit
414ebd2d
authored
Dec 14, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #17991 from krousey/errorstatus
Auto commit by PR queue bot
parents
29e8b612
ca7c765f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
17 additions
and
18 deletions
+17
-18
errors.go
pkg/api/errors/errors.go
+10
-4
client.go
pkg/client/unversioned/client.go
+0
-6
request.go
pkg/client/unversioned/request.go
+1
-1
request_test.go
pkg/client/unversioned/request_test.go
+1
-1
restclient_test.go
pkg/client/unversioned/restclient_test.go
+2
-1
edit.go
pkg/kubectl/cmd/edit.go
+1
-2
helpers.go
pkg/kubectl/cmd/util/helpers.go
+2
-3
No files found.
pkg/api/errors/errors.go
View file @
414ebd2d
...
@@ -45,6 +45,12 @@ type StatusError struct {
...
@@ -45,6 +45,12 @@ type StatusError struct {
ErrStatus
unversioned
.
Status
ErrStatus
unversioned
.
Status
}
}
// APIStatus is exposed by errors that can be converted to an api.Status object
// for finer grained details.
type
APIStatus
interface
{
Status
()
unversioned
.
Status
}
var
_
error
=
&
StatusError
{}
var
_
error
=
&
StatusError
{}
// Error implements the Error interface.
// Error implements the Error interface.
...
@@ -394,7 +400,7 @@ func IsServerTimeout(err error) bool {
...
@@ -394,7 +400,7 @@ func IsServerTimeout(err error) bool {
// and may be the result of another HTTP actor.
// and may be the result of another HTTP actor.
func
IsUnexpectedServerError
(
err
error
)
bool
{
func
IsUnexpectedServerError
(
err
error
)
bool
{
switch
t
:=
err
.
(
type
)
{
switch
t
:=
err
.
(
type
)
{
case
*
StatusError
:
case
APIStatus
:
if
d
:=
t
.
Status
()
.
Details
;
d
!=
nil
{
if
d
:=
t
.
Status
()
.
Details
;
d
!=
nil
{
for
_
,
cause
:=
range
d
.
Causes
{
for
_
,
cause
:=
range
d
.
Causes
{
if
cause
.
Type
==
unversioned
.
CauseTypeUnexpectedServerResponse
{
if
cause
.
Type
==
unversioned
.
CauseTypeUnexpectedServerResponse
{
...
@@ -416,7 +422,7 @@ func IsUnexpectedObjectError(err error) bool {
...
@@ -416,7 +422,7 @@ func IsUnexpectedObjectError(err error) bool {
// suggested seconds to wait, or false if the error does not imply a wait.
// suggested seconds to wait, or false if the error does not imply a wait.
func
SuggestsClientDelay
(
err
error
)
(
int
,
bool
)
{
func
SuggestsClientDelay
(
err
error
)
(
int
,
bool
)
{
switch
t
:=
err
.
(
type
)
{
switch
t
:=
err
.
(
type
)
{
case
*
StatusError
:
case
APIStatus
:
if
t
.
Status
()
.
Details
!=
nil
{
if
t
.
Status
()
.
Details
!=
nil
{
switch
t
.
Status
()
.
Reason
{
switch
t
.
Status
()
.
Reason
{
case
unversioned
.
StatusReasonServerTimeout
,
unversioned
.
StatusReasonTimeout
:
case
unversioned
.
StatusReasonServerTimeout
,
unversioned
.
StatusReasonTimeout
:
...
@@ -429,8 +435,8 @@ func SuggestsClientDelay(err error) (int, bool) {
...
@@ -429,8 +435,8 @@ func SuggestsClientDelay(err error) (int, bool) {
func
reasonForError
(
err
error
)
unversioned
.
StatusReason
{
func
reasonForError
(
err
error
)
unversioned
.
StatusReason
{
switch
t
:=
err
.
(
type
)
{
switch
t
:=
err
.
(
type
)
{
case
*
StatusError
:
case
APIStatus
:
return
t
.
ErrStatus
.
Reason
return
t
.
Status
()
.
Reason
}
}
return
unversioned
.
StatusReasonUnknown
return
unversioned
.
StatusReasonUnknown
}
}
pkg/client/unversioned/client.go
View file @
414ebd2d
...
@@ -120,12 +120,6 @@ type VersionInterface interface {
...
@@ -120,12 +120,6 @@ type VersionInterface interface {
ServerAPIVersions
()
(
*
unversioned
.
APIVersions
,
error
)
ServerAPIVersions
()
(
*
unversioned
.
APIVersions
,
error
)
}
}
// APIStatus is exposed by errors that can be converted to an api.Status object
// for finer grained details.
type
APIStatus
interface
{
Status
()
unversioned
.
Status
}
// Client is the implementation of a Kubernetes client.
// Client is the implementation of a Kubernetes client.
type
Client
struct
{
type
Client
struct
{
*
RESTClient
*
RESTClient
...
...
pkg/client/unversioned/request.go
View file @
414ebd2d
...
@@ -710,7 +710,7 @@ func (r *Request) Stream() (io.ReadCloser, error) {
...
@@ -710,7 +710,7 @@ func (r *Request) Stream() (io.ReadCloser, error) {
if
runtimeObject
,
err
:=
r
.
codec
.
Decode
(
bodyBytes
);
err
==
nil
{
if
runtimeObject
,
err
:=
r
.
codec
.
Decode
(
bodyBytes
);
err
==
nil
{
statusError
:=
errors
.
FromObject
(
runtimeObject
)
statusError
:=
errors
.
FromObject
(
runtimeObject
)
if
_
,
ok
:=
statusError
.
(
APIStatus
);
ok
{
if
_
,
ok
:=
statusError
.
(
errors
.
APIStatus
);
ok
{
return
nil
,
statusError
return
nil
,
statusError
}
}
}
}
...
...
pkg/client/unversioned/request_test.go
View file @
414ebd2d
...
@@ -333,7 +333,7 @@ func TestTransformResponse(t *testing.T) {
...
@@ -333,7 +333,7 @@ func TestTransformResponse(t *testing.T) {
if
hasErr
!=
test
.
Error
{
if
hasErr
!=
test
.
Error
{
t
.
Errorf
(
"%d: unexpected error: %t %v"
,
i
,
test
.
Error
,
err
)
t
.
Errorf
(
"%d: unexpected error: %t %v"
,
i
,
test
.
Error
,
err
)
}
else
if
hasErr
&&
test
.
Response
.
StatusCode
>
399
{
}
else
if
hasErr
&&
test
.
Response
.
StatusCode
>
399
{
status
,
ok
:=
err
.
(
APIStatus
)
status
,
ok
:=
err
.
(
apierrors
.
APIStatus
)
if
!
ok
{
if
!
ok
{
t
.
Errorf
(
"%d: response should have been transformable into APIStatus: %v"
,
i
,
err
)
t
.
Errorf
(
"%d: response should have been transformable into APIStatus: %v"
,
i
,
err
)
continue
continue
...
...
pkg/client/unversioned/restclient_test.go
View file @
414ebd2d
...
@@ -25,6 +25,7 @@ import (
...
@@ -25,6 +25,7 @@ import (
"testing"
"testing"
"time"
"time"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util"
...
@@ -95,7 +96,7 @@ func TestDoRequestFailed(t *testing.T) {
...
@@ -95,7 +96,7 @@ func TestDoRequestFailed(t *testing.T) {
if
err
==
nil
||
body
!=
nil
{
if
err
==
nil
||
body
!=
nil
{
t
.
Errorf
(
"unexpected non-error: %#v"
,
body
)
t
.
Errorf
(
"unexpected non-error: %#v"
,
body
)
}
}
ss
,
ok
:=
err
.
(
APIStatus
)
ss
,
ok
:=
err
.
(
errors
.
APIStatus
)
if
!
ok
{
if
!
ok
{
t
.
Errorf
(
"unexpected error type %v"
,
err
)
t
.
Errorf
(
"unexpected error type %v"
,
err
)
}
}
...
...
pkg/kubectl/cmd/edit.go
View file @
414ebd2d
...
@@ -29,7 +29,6 @@ import (
...
@@ -29,7 +29,6 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
...
@@ -370,7 +369,7 @@ func (r *editResults) addError(err error, info *resource.Info) string {
...
@@ -370,7 +369,7 @@ func (r *editResults) addError(err error, info *resource.Info) string {
reason
:=
editReason
{
reason
:=
editReason
{
head
:
fmt
.
Sprintf
(
"%s %s was not valid"
,
info
.
Mapping
.
Kind
,
info
.
Name
),
head
:
fmt
.
Sprintf
(
"%s %s was not valid"
,
info
.
Mapping
.
Kind
,
info
.
Name
),
}
}
if
err
,
ok
:=
err
.
(
client
.
APIStatus
);
ok
{
if
err
,
ok
:=
err
.
(
errors
.
APIStatus
);
ok
{
if
details
:=
err
.
Status
()
.
Details
;
details
!=
nil
{
if
details
:=
err
.
Status
()
.
Details
;
details
!=
nil
{
for
_
,
cause
:=
range
details
.
Causes
{
for
_
,
cause
:=
range
details
.
Causes
{
reason
.
other
=
append
(
reason
.
other
,
cause
.
Message
)
reason
.
other
=
append
(
reason
.
other
,
cause
.
Message
)
...
...
pkg/kubectl/cmd/util/helpers.go
View file @
414ebd2d
...
@@ -31,7 +31,6 @@ import (
...
@@ -31,7 +31,6 @@ import (
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/resource"
...
@@ -57,7 +56,7 @@ type debugError interface {
...
@@ -57,7 +56,7 @@ type debugError interface {
// souce is the filename or URL to the template file(*.json or *.yaml), or stdin to use to handle the resource.
// souce is the filename or URL to the template file(*.json or *.yaml), or stdin to use to handle the resource.
func
AddSourceToErr
(
verb
string
,
source
string
,
err
error
)
error
{
func
AddSourceToErr
(
verb
string
,
source
string
,
err
error
)
error
{
if
source
!=
""
{
if
source
!=
""
{
if
statusError
,
ok
:=
err
.
(
*
errors
.
StatusError
);
ok
{
if
statusError
,
ok
:=
err
.
(
errors
.
APIStatus
);
ok
{
status
:=
statusError
.
Status
()
status
:=
statusError
.
Status
()
status
.
Message
=
fmt
.
Sprintf
(
"error when %s %q: %v"
,
verb
,
source
,
status
.
Message
)
status
.
Message
=
fmt
.
Sprintf
(
"error when %s %q: %v"
,
verb
,
source
,
status
.
Message
)
return
&
errors
.
StatusError
{
ErrStatus
:
status
}
return
&
errors
.
StatusError
{
ErrStatus
:
status
}
...
@@ -145,7 +144,7 @@ func StandardErrorMessage(err error) (string, bool) {
...
@@ -145,7 +144,7 @@ func StandardErrorMessage(err error) (string, bool) {
if
debugErr
,
ok
:=
err
.
(
debugError
);
ok
{
if
debugErr
,
ok
:=
err
.
(
debugError
);
ok
{
glog
.
V
(
4
)
.
Infof
(
debugErr
.
DebugError
())
glog
.
V
(
4
)
.
Infof
(
debugErr
.
DebugError
())
}
}
_
,
isStatus
:=
err
.
(
client
.
APIStatus
)
_
,
isStatus
:=
err
.
(
errors
.
APIStatus
)
switch
{
switch
{
case
isStatus
:
case
isStatus
:
return
fmt
.
Sprintf
(
"Error from server: %s"
,
err
.
Error
()),
true
return
fmt
.
Sprintf
(
"Error from server: %s"
,
err
.
Error
()),
true
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment