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
20e5a911
Unverified
Commit
20e5a911
authored
Jun 30, 2020
by
Erik Wilson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace juju/errors with pkg/errors
parent
358ac59c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
35 additions
and
1010 deletions
+35
-1010
go.mod
go.mod
+1
-3
go.sum
go.sum
+2
-8
.gitignore
vendor/github.com/juju/errors/.gitignore
+11
-19
LICENSE
vendor/github.com/juju/errors/LICENSE
+0
-0
Makefile
vendor/github.com/juju/errors/Makefile
+0
-24
README.md
vendor/github.com/juju/errors/README.md
+0
-0
dependencies.tsv
vendor/github.com/juju/errors/dependencies.tsv
+0
-5
doc.go
vendor/github.com/juju/errors/doc.go
+0
-79
error.go
vendor/github.com/juju/errors/error.go
+0
-176
errors.go
vendor/github.com/juju/errors/errors.go
+20
-0
errortypes.go
vendor/github.com/juju/errors/errortypes.go
+0
-333
functions.go
vendor/github.com/juju/errors/functions.go
+0
-330
path.go
vendor/github.com/juju/errors/path.go
+0
-32
modules.txt
vendor/modules.txt
+1
-1
No files found.
go.mod
View file @
20e5a911
...
...
@@ -25,6 +25,7 @@ replace (
github.com/golangci/gosec => github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547
github.com/golangci/ineffassign => github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc
github.com/golangci/lint-1 => github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217
github.com/juju/errors => github.com/rancher/juju-to-pkg-errors v0.0.0-20200701001603-16f3c28b59bd
github.com/kubernetes-sigs/cri-tools => github.com/rancher/cri-tools v1.16.1-k3s.1
github.com/matryer/moq => github.com/rancher/moq v0.0.0-20190404221404-ee5226d43009
github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc10
...
...
@@ -91,8 +92,6 @@ require (
github.com/google/tcpproxy v0.0.0-20180808230851-dfa16c61dad2
github.com/gorilla/mux v1.7.3
github.com/gorilla/websocket v1.4.1
github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d // indirect
github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2 // indirect
github.com/kubernetes-sigs/cri-tools v0.0.0-00010101000000-000000000000
github.com/lib/pq v1.1.1
github.com/lxc/lxd v0.0.0-20191108214106-60ea15630455
...
...
@@ -119,7 +118,6 @@ require (
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9
google.golang.org/grpc v1.23.0
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
gopkg.in/robfig/cron.v2 v2.0.0-20150107220207-be2e0b0deed5 // indirect
gopkg.in/yaml.v2 v2.2.8
k8s.io/api v0.0.0
...
...
go.sum
View file @
20e5a911
...
...
@@ -419,17 +419,11 @@ github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62F
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/juju/errors v0.0.0-20180806074554-22422dad46e1/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q=
github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q=
github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d h1:hJXjZMxj0SWlMoQkzeZDLi2cmeiWKa7y1B8Rg+qaoEc=
github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q=
github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U=
github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI=
github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U=
github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA=
github.com/juju/testing v0.0.0-20190613124551-e81189438503/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA=
github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2 h1:Pp8RxiF4rSoXP9SED26WCfNB28/dwTDpPXS8XMJR8rc=
github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA=
github.com/karrick/godirwalk v1.7.5 h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ0M=
github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
...
...
@@ -603,6 +597,8 @@ github.com/rancher/go-dqlite v1.1.0-k3s.1 h1:w3ghNkY5vqRnnrcqxvHkpBQr6E+R/nIwJfa
github.com/rancher/go-dqlite v1.1.0-k3s.1/go.mod h1:lj8UhpkZddn/Ag0tBsnkbELbxHGMpzrZLMs/nW9/DX4=
github.com/rancher/helm-controller v0.2.2 h1:MUqisy53/Ay1EYOF2uTCYBbGpgtZLNKKrI01BdxIbQo=
github.com/rancher/helm-controller v0.2.2/go.mod h1:0JkL0UjxddNbT4FmLoESarD4Mz8xzA5YlejqJ/U4g+8=
github.com/rancher/juju-to-pkg-errors v0.0.0-20200701001603-16f3c28b59bd h1:KPnQuOFWU6Jm7dTadhZ9TCVf6Y5NxoSyUjwkbD7En5Q=
github.com/rancher/juju-to-pkg-errors v0.0.0-20200701001603-16f3c28b59bd/go.mod h1:QYmg8cqWPPfIbpEuhtJbEdWwA6PEKSY016Z6EdfL9+8=
github.com/rancher/kine v0.2.5 h1:UE0HrxloO95zPEXYN/n8Rwejx276fc7s8I5JbJcLdmY=
github.com/rancher/kine v0.2.5/go.mod h1:SdBUuE7e3XyrJvdBxCl9TMMapF+wyZnMZSP/H59OqNE=
github.com/rancher/kubernetes v1.16.11-k3s1 h1:6Oyo0d0MHwZnyRT2Con7AovmX1s5gDR/5O2dHhAIyJA=
...
...
@@ -958,8 +954,6 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U=
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
...
...
vendor/github.com/juju/errors/.gitignore
View file @
20e5a911
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
# Test binary, built with `go test -c`
*.test
_testmain.go
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
*.exe
*.test
# Dependency directories (remove the comment below to include it)
# vendor/
vendor/github.com/juju/errors/LICENSE
View file @
20e5a911
This diff is collapsed.
Click to expand it.
vendor/github.com/juju/errors/Makefile
deleted
100644 → 0
View file @
358ac59c
PROJECT
:=
github.com/juju/errors
.PHONY
:
check-licence check-go check docs
check
:
check-licence check-go
go
test
$(PROJECT)
/...
check-licence
:
@
(
fgrep
-rl
"Licensed under the LGPLv3"
--exclude
*
.s .
;
\
fgrep
-rl
"MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT"
--exclude
*
.s .
;
\
find
.
-name
"*.go"
)
|
sed
-e
's,\./,,'
|
sort
|
uniq
-u
|
\
xargs
-I
{}
echo
FAIL: licence missed:
{}
check-go
:
$
(
eval
GOFMT :
=
$
(
strip
$(
shell
gofmt
-l
.|
sed
-e
"s/^/ /g"
)
))
@
(
if
[
x
$(GOFMT)
!=
x
""
]
;
then
\
echo
go
fmt
is sad:
$(GOFMT)
;
\
exit
1
;
\
fi
)
@
(
go tool vet
-all
-composites
=
false
-copylocks
=
false
.
)
docs
:
godoc2md github.com/juju/errors
>
README.md
sed
-i
'5i[\[GoDoc](https://godoc.org/github.com/juju/errors?status.svg)](https://godoc.org/github.com/juju/errors)'
README.md
vendor/github.com/juju/errors/README.md
deleted
100644 → 0
View file @
358ac59c
This diff is collapsed.
Click to expand it.
vendor/github.com/juju/errors/dependencies.tsv
deleted
100644 → 0
View file @
358ac59c
github.com/juju/loggo git 8232ab8918d91c72af1a9fb94d3edbe31d88b790 2017-06-05T01:46:07Z
github.com/juju/testing git 72703b1e95eb8ce4737fd8a3d8496c6b0be280a6 2018-05-17T13:41:05Z
gopkg.in/check.v1 git 4f90aeace3a26ad7021961c297b22c42160c7b25 2016-01-05T16:49:36Z
gopkg.in/mgo.v2 git f2b6f6c918c452ad107eec89615f074e3bd80e33 2016-08-18T01:52:18Z
gopkg.in/yaml.v2 git 1be3d31502d6eabc0dd7ce5b0daab022e14a5538 2017-07-12T05:45:46Z
vendor/github.com/juju/errors/doc.go
deleted
100644 → 0
View file @
358ac59c
// Copyright 2013, 2014 Canonical Ltd.
// Licensed under the LGPLv3, see LICENCE file for details.
/*
Package errors provides an easy way to annotate errors without losing the
original error context.
The exported `New` and `Errorf` functions are designed to replace the
`errors.New` and `fmt.Errorf` functions respectively. The same underlying
error is there, but the package also records the location at which the error
was created.
A primary use case for this library is to add extra context any time an
error is returned from a function.
if err := SomeFunc(); err != nil {
return err
}
This instead becomes:
if err := SomeFunc(); err != nil {
return errors.Trace(err)
}
which just records the file and line number of the Trace call, or
if err := SomeFunc(); err != nil {
return errors.Annotate(err, "more context")
}
which also adds an annotation to the error.
When you want to check to see if an error is of a particular type, a helper
function is normally exported by the package that returned the error, like the
`os` package does. The underlying cause of the error is available using the
`Cause` function.
os.IsNotExist(errors.Cause(err))
The result of the `Error()` call on an annotated error is the annotations joined
with colons, then the result of the `Error()` method for the underlying error
that was the cause.
err := errors.Errorf("original")
err = errors.Annotatef(err, "context")
err = errors.Annotatef(err, "more context")
err.Error() -> "more context: context: original"
Obviously recording the file, line and functions is not very useful if you
cannot get them back out again.
errors.ErrorStack(err)
will return something like:
first error
github.com/juju/errors/annotation_test.go:193:
github.com/juju/errors/annotation_test.go:194: annotation
github.com/juju/errors/annotation_test.go:195:
github.com/juju/errors/annotation_test.go:196: more context
github.com/juju/errors/annotation_test.go:197:
The first error was generated by an external system, so there was no location
associated. The second, fourth, and last lines were generated with Trace calls,
and the other two through Annotate.
Sometimes when responding to an error you want to return a more specific error
for the situation.
if err := FindField(field); err != nil {
return errors.Wrap(err, errors.NotFoundf(field))
}
This returns an error where the complete error stack is still available, and
`errors.Cause()` will return the `NotFound` error.
*/
package
errors
vendor/github.com/juju/errors/error.go
deleted
100644 → 0
View file @
358ac59c
// Copyright 2014 Canonical Ltd.
// Licensed under the LGPLv3, see LICENCE file for details.
package
errors
import
(
"fmt"
"reflect"
"runtime"
)
// Err holds a description of an error along with information about
// where the error was created.
//
// It may be embedded in custom error types to add extra information that
// this errors package can understand.
type
Err
struct
{
// message holds an annotation of the error.
message
string
// cause holds the cause of the error as returned
// by the Cause method.
cause
error
// previous holds the previous error in the error stack, if any.
previous
error
// file and line hold the source code location where the error was
// created.
file
string
line
int
}
// NewErr is used to return an Err for the purpose of embedding in other
// structures. The location is not specified, and needs to be set with a call
// to SetLocation.
//
// For example:
// type FooError struct {
// errors.Err
// code int
// }
//
// func NewFooError(code int) error {
// err := &FooError{errors.NewErr("foo"), code}
// err.SetLocation(1)
// return err
// }
func
NewErr
(
format
string
,
args
...
interface
{})
Err
{
return
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
),
}
}
// NewErrWithCause is used to return an Err with cause by other error for the purpose of embedding in other
// structures. The location is not specified, and needs to be set with a call
// to SetLocation.
//
// For example:
// type FooError struct {
// errors.Err
// code int
// }
//
// func (e *FooError) Annotate(format string, args ...interface{}) error {
// err := &FooError{errors.NewErrWithCause(e.Err, format, args...), e.code}
// err.SetLocation(1)
// return err
// })
func
NewErrWithCause
(
other
error
,
format
string
,
args
...
interface
{})
Err
{
return
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
),
cause
:
Cause
(
other
),
previous
:
other
,
}
}
// Location is the file and line of where the error was most recently
// created or annotated.
func
(
e
*
Err
)
Location
()
(
filename
string
,
line
int
)
{
return
e
.
file
,
e
.
line
}
// Underlying returns the previous error in the error stack, if any. A client
// should not ever really call this method. It is used to build the error
// stack and should not be introspected by client calls. Or more
// specifically, clients should not depend on anything but the `Cause` of an
// error.
func
(
e
*
Err
)
Underlying
()
error
{
return
e
.
previous
}
// Cause returns the most recent error in the error stack that
// meets one of these criteria: the original error that was raised; the new
// error that was passed into the Wrap function; the most recently masked
// error; or nil if the error itself is considered the Cause. Normally this
// method is not invoked directly, but instead through the Cause stand alone
// function.
func
(
e
*
Err
)
Cause
()
error
{
return
e
.
cause
}
// Message returns the message stored with the most recent location. This is
// the empty string if the most recent call was Trace, or the message stored
// with Annotate or Mask.
func
(
e
*
Err
)
Message
()
string
{
return
e
.
message
}
// Error implements error.Error.
func
(
e
*
Err
)
Error
()
string
{
// We want to walk up the stack of errors showing the annotations
// as long as the cause is the same.
err
:=
e
.
previous
if
!
sameError
(
Cause
(
err
),
e
.
cause
)
&&
e
.
cause
!=
nil
{
err
=
e
.
cause
}
switch
{
case
err
==
nil
:
return
e
.
message
case
e
.
message
==
""
:
return
err
.
Error
()
}
return
fmt
.
Sprintf
(
"%s: %v"
,
e
.
message
,
err
)
}
// Format implements fmt.Formatter
// When printing errors with %+v it also prints the stack trace.
// %#v unsurprisingly will print the real underlying type.
func
(
e
*
Err
)
Format
(
s
fmt
.
State
,
verb
rune
)
{
switch
verb
{
case
'v'
:
switch
{
case
s
.
Flag
(
'+'
)
:
fmt
.
Fprintf
(
s
,
"%s"
,
ErrorStack
(
e
))
return
case
s
.
Flag
(
'#'
)
:
// avoid infinite recursion by wrapping e into a type
// that doesn't implement Formatter.
fmt
.
Fprintf
(
s
,
"%#v"
,
(
*
unformatter
)(
e
))
return
}
fallthrough
case
's'
:
fmt
.
Fprintf
(
s
,
"%s"
,
e
.
Error
())
case
'q'
:
fmt
.
Fprintf
(
s
,
"%q"
,
e
.
Error
())
default
:
fmt
.
Fprintf
(
s
,
"%%!%c(%T=%s)"
,
verb
,
e
,
e
.
Error
())
}
}
// helper for Format
type
unformatter
Err
func
(
unformatter
)
Format
()
{
/* break the fmt.Formatter interface */
}
// SetLocation records the source location of the error at callDepth stack
// frames above the call.
func
(
e
*
Err
)
SetLocation
(
callDepth
int
)
{
_
,
file
,
line
,
_
:=
runtime
.
Caller
(
callDepth
+
1
)
e
.
file
=
trimSourcePath
(
file
)
e
.
line
=
line
}
// StackTrace returns one string for each location recorded in the stack of
// errors. The first value is the originating error, with a line for each
// other annotation or tracing of the error.
func
(
e
*
Err
)
StackTrace
()
[]
string
{
return
errorStack
(
e
)
}
// Ideally we'd have a way to check identity, but deep equals will do.
func
sameError
(
e1
,
e2
error
)
bool
{
return
reflect
.
DeepEqual
(
e1
,
e2
)
}
vendor/github.com/juju/errors/errors.go
0 → 100644
View file @
20e5a911
package
errors
import
pkgErrors
"github.com/pkg/errors"
var
(
// New is assigned to "github.com/pkg/errors".New by default
New
=
pkgErrors
.
New
// Cause is assigned to "github.com/pkg/errors".Cause by default
Cause
=
pkgErrors
.
Cause
// Errorf is assigned to "github.com/pkg/errors".Errorf by default
Errorf
=
pkgErrors
.
Errorf
// Annotate is assigned to "github.com/pkg/errors".Wrap by default
Annotate
=
pkgErrors
.
Wrap
// Annotatef is assigned to "github.com/pkg/errors".Wrapf by default
Annotatef
=
pkgErrors
.
Wrapf
// Wrap is assigned to "github.com/pkg/errors".Wrap by default
Wrap
=
pkgErrors
.
Wrap
// Wrapf is assigned to "github.com/pkg/errors".Wrapf by default
Wrapf
=
pkgErrors
.
Wrapf
)
vendor/github.com/juju/errors/errortypes.go
deleted
100644 → 0
View file @
358ac59c
// Copyright 2014 Canonical Ltd.
// Licensed under the LGPLv3, see LICENCE file for details.
package
errors
import
(
"fmt"
)
// wrap is a helper to construct an *wrapper.
func
wrap
(
err
error
,
format
,
suffix
string
,
args
...
interface
{})
Err
{
newErr
:=
Err
{
message
:
fmt
.
Sprintf
(
format
+
suffix
,
args
...
),
previous
:
err
,
}
newErr
.
SetLocation
(
2
)
return
newErr
}
// timeout represents an error on timeout.
type
timeout
struct
{
Err
}
// Timeoutf returns an error which satisfies IsTimeout().
func
Timeoutf
(
format
string
,
args
...
interface
{})
error
{
return
&
timeout
{
wrap
(
nil
,
format
,
" timeout"
,
args
...
)}
}
// NewTimeout returns an error which wraps err that satisfies
// IsTimeout().
func
NewTimeout
(
err
error
,
msg
string
)
error
{
return
&
timeout
{
wrap
(
err
,
msg
,
""
)}
}
// IsTimeout reports whether err was created with Timeoutf() or
// NewTimeout().
func
IsTimeout
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
timeout
)
return
ok
}
// notFound represents an error when something has not been found.
type
notFound
struct
{
Err
}
// NotFoundf returns an error which satisfies IsNotFound().
func
NotFoundf
(
format
string
,
args
...
interface
{})
error
{
return
&
notFound
{
wrap
(
nil
,
format
,
" not found"
,
args
...
)}
}
// NewNotFound returns an error which wraps err that satisfies
// IsNotFound().
func
NewNotFound
(
err
error
,
msg
string
)
error
{
return
&
notFound
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotFound reports whether err was created with NotFoundf() or
// NewNotFound().
func
IsNotFound
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notFound
)
return
ok
}
// userNotFound represents an error when an inexistent user is looked up.
type
userNotFound
struct
{
Err
}
// UserNotFoundf returns an error which satisfies IsUserNotFound().
func
UserNotFoundf
(
format
string
,
args
...
interface
{})
error
{
return
&
userNotFound
{
wrap
(
nil
,
format
,
" user not found"
,
args
...
)}
}
// NewUserNotFound returns an error which wraps err and satisfies
// IsUserNotFound().
func
NewUserNotFound
(
err
error
,
msg
string
)
error
{
return
&
userNotFound
{
wrap
(
err
,
msg
,
""
)}
}
// IsUserNotFound reports whether err was created with UserNotFoundf() or
// NewUserNotFound().
func
IsUserNotFound
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
userNotFound
)
return
ok
}
// unauthorized represents an error when an operation is unauthorized.
type
unauthorized
struct
{
Err
}
// Unauthorizedf returns an error which satisfies IsUnauthorized().
func
Unauthorizedf
(
format
string
,
args
...
interface
{})
error
{
return
&
unauthorized
{
wrap
(
nil
,
format
,
""
,
args
...
)}
}
// NewUnauthorized returns an error which wraps err and satisfies
// IsUnauthorized().
func
NewUnauthorized
(
err
error
,
msg
string
)
error
{
return
&
unauthorized
{
wrap
(
err
,
msg
,
""
)}
}
// IsUnauthorized reports whether err was created with Unauthorizedf() or
// NewUnauthorized().
func
IsUnauthorized
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
unauthorized
)
return
ok
}
// notImplemented represents an error when something is not
// implemented.
type
notImplemented
struct
{
Err
}
// NotImplementedf returns an error which satisfies IsNotImplemented().
func
NotImplementedf
(
format
string
,
args
...
interface
{})
error
{
return
&
notImplemented
{
wrap
(
nil
,
format
,
" not implemented"
,
args
...
)}
}
// NewNotImplemented returns an error which wraps err and satisfies
// IsNotImplemented().
func
NewNotImplemented
(
err
error
,
msg
string
)
error
{
return
&
notImplemented
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotImplemented reports whether err was created with
// NotImplementedf() or NewNotImplemented().
func
IsNotImplemented
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notImplemented
)
return
ok
}
// alreadyExists represents and error when something already exists.
type
alreadyExists
struct
{
Err
}
// AlreadyExistsf returns an error which satisfies IsAlreadyExists().
func
AlreadyExistsf
(
format
string
,
args
...
interface
{})
error
{
return
&
alreadyExists
{
wrap
(
nil
,
format
,
" already exists"
,
args
...
)}
}
// NewAlreadyExists returns an error which wraps err and satisfies
// IsAlreadyExists().
func
NewAlreadyExists
(
err
error
,
msg
string
)
error
{
return
&
alreadyExists
{
wrap
(
err
,
msg
,
""
)}
}
// IsAlreadyExists reports whether the error was created with
// AlreadyExistsf() or NewAlreadyExists().
func
IsAlreadyExists
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
alreadyExists
)
return
ok
}
// notSupported represents an error when something is not supported.
type
notSupported
struct
{
Err
}
// NotSupportedf returns an error which satisfies IsNotSupported().
func
NotSupportedf
(
format
string
,
args
...
interface
{})
error
{
return
&
notSupported
{
wrap
(
nil
,
format
,
" not supported"
,
args
...
)}
}
// NewNotSupported returns an error which wraps err and satisfies
// IsNotSupported().
func
NewNotSupported
(
err
error
,
msg
string
)
error
{
return
&
notSupported
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotSupported reports whether the error was created with
// NotSupportedf() or NewNotSupported().
func
IsNotSupported
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notSupported
)
return
ok
}
// notValid represents an error when something is not valid.
type
notValid
struct
{
Err
}
// NotValidf returns an error which satisfies IsNotValid().
func
NotValidf
(
format
string
,
args
...
interface
{})
error
{
return
&
notValid
{
wrap
(
nil
,
format
,
" not valid"
,
args
...
)}
}
// NewNotValid returns an error which wraps err and satisfies IsNotValid().
func
NewNotValid
(
err
error
,
msg
string
)
error
{
return
&
notValid
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotValid reports whether the error was created with NotValidf() or
// NewNotValid().
func
IsNotValid
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notValid
)
return
ok
}
// notProvisioned represents an error when something is not yet provisioned.
type
notProvisioned
struct
{
Err
}
// NotProvisionedf returns an error which satisfies IsNotProvisioned().
func
NotProvisionedf
(
format
string
,
args
...
interface
{})
error
{
return
&
notProvisioned
{
wrap
(
nil
,
format
,
" not provisioned"
,
args
...
)}
}
// NewNotProvisioned returns an error which wraps err that satisfies
// IsNotProvisioned().
func
NewNotProvisioned
(
err
error
,
msg
string
)
error
{
return
&
notProvisioned
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotProvisioned reports whether err was created with NotProvisionedf() or
// NewNotProvisioned().
func
IsNotProvisioned
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notProvisioned
)
return
ok
}
// notAssigned represents an error when something is not yet assigned to
// something else.
type
notAssigned
struct
{
Err
}
// NotAssignedf returns an error which satisfies IsNotAssigned().
func
NotAssignedf
(
format
string
,
args
...
interface
{})
error
{
return
&
notAssigned
{
wrap
(
nil
,
format
,
" not assigned"
,
args
...
)}
}
// NewNotAssigned returns an error which wraps err that satisfies
// IsNotAssigned().
func
NewNotAssigned
(
err
error
,
msg
string
)
error
{
return
&
notAssigned
{
wrap
(
err
,
msg
,
""
)}
}
// IsNotAssigned reports whether err was created with NotAssignedf() or
// NewNotAssigned().
func
IsNotAssigned
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
notAssigned
)
return
ok
}
// badRequest represents an error when a request has bad parameters.
type
badRequest
struct
{
Err
}
// BadRequestf returns an error which satisfies IsBadRequest().
func
BadRequestf
(
format
string
,
args
...
interface
{})
error
{
return
&
badRequest
{
wrap
(
nil
,
format
,
""
,
args
...
)}
}
// NewBadRequest returns an error which wraps err that satisfies
// IsBadRequest().
func
NewBadRequest
(
err
error
,
msg
string
)
error
{
return
&
badRequest
{
wrap
(
err
,
msg
,
""
)}
}
// IsBadRequest reports whether err was created with BadRequestf() or
// NewBadRequest().
func
IsBadRequest
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
badRequest
)
return
ok
}
// methodNotAllowed represents an error when an HTTP request
// is made with an inappropriate method.
type
methodNotAllowed
struct
{
Err
}
// MethodNotAllowedf returns an error which satisfies IsMethodNotAllowed().
func
MethodNotAllowedf
(
format
string
,
args
...
interface
{})
error
{
return
&
methodNotAllowed
{
wrap
(
nil
,
format
,
""
,
args
...
)}
}
// NewMethodNotAllowed returns an error which wraps err that satisfies
// IsMethodNotAllowed().
func
NewMethodNotAllowed
(
err
error
,
msg
string
)
error
{
return
&
methodNotAllowed
{
wrap
(
err
,
msg
,
""
)}
}
// IsMethodNotAllowed reports whether err was created with MethodNotAllowedf() or
// NewMethodNotAllowed().
func
IsMethodNotAllowed
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
methodNotAllowed
)
return
ok
}
// forbidden represents an error when a request cannot be completed because of
// missing privileges
type
forbidden
struct
{
Err
}
// Forbiddenf returns an error which satistifes IsForbidden()
func
Forbiddenf
(
format
string
,
args
...
interface
{})
error
{
return
&
forbidden
{
wrap
(
nil
,
format
,
""
,
args
...
)}
}
// NewForbidden returns an error which wraps err that satisfies
// IsForbidden().
func
NewForbidden
(
err
error
,
msg
string
)
error
{
return
&
forbidden
{
wrap
(
err
,
msg
,
""
)}
}
// IsForbidden reports whether err was created with Forbiddenf() or
// NewForbidden().
func
IsForbidden
(
err
error
)
bool
{
err
=
Cause
(
err
)
_
,
ok
:=
err
.
(
*
forbidden
)
return
ok
}
vendor/github.com/juju/errors/functions.go
deleted
100644 → 0
View file @
358ac59c
// Copyright 2014 Canonical Ltd.
// Licensed under the LGPLv3, see LICENCE file for details.
package
errors
import
(
"fmt"
"strings"
)
// New is a drop in replacement for the standard library errors module that records
// the location that the error is created.
//
// For example:
// return errors.New("validation failed")
//
func
New
(
message
string
)
error
{
err
:=
&
Err
{
message
:
message
}
err
.
SetLocation
(
1
)
return
err
}
// Errorf creates a new annotated error and records the location that the
// error is created. This should be a drop in replacement for fmt.Errorf.
//
// For example:
// return errors.Errorf("validation failed: %s", message)
//
func
Errorf
(
format
string
,
args
...
interface
{})
error
{
err
:=
&
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
)}
err
.
SetLocation
(
1
)
return
err
}
// Trace adds the location of the Trace call to the stack. The Cause of the
// resulting error is the same as the error parameter. If the other error is
// nil, the result will be nil.
//
// For example:
// if err := SomeFunc(); err != nil {
// return errors.Trace(err)
// }
//
func
Trace
(
other
error
)
error
{
if
other
==
nil
{
return
nil
}
err
:=
&
Err
{
previous
:
other
,
cause
:
Cause
(
other
)}
err
.
SetLocation
(
1
)
return
err
}
// Annotate is used to add extra context to an existing error. The location of
// the Annotate call is recorded with the annotations. The file, line and
// function are also recorded.
//
// For example:
// if err := SomeFunc(); err != nil {
// return errors.Annotate(err, "failed to frombulate")
// }
//
func
Annotate
(
other
error
,
message
string
)
error
{
if
other
==
nil
{
return
nil
}
err
:=
&
Err
{
previous
:
other
,
cause
:
Cause
(
other
),
message
:
message
,
}
err
.
SetLocation
(
1
)
return
err
}
// Annotatef is used to add extra context to an existing error. The location of
// the Annotate call is recorded with the annotations. The file, line and
// function are also recorded.
//
// For example:
// if err := SomeFunc(); err != nil {
// return errors.Annotatef(err, "failed to frombulate the %s", arg)
// }
//
func
Annotatef
(
other
error
,
format
string
,
args
...
interface
{})
error
{
if
other
==
nil
{
return
nil
}
err
:=
&
Err
{
previous
:
other
,
cause
:
Cause
(
other
),
message
:
fmt
.
Sprintf
(
format
,
args
...
),
}
err
.
SetLocation
(
1
)
return
err
}
// DeferredAnnotatef annotates the given error (when it is not nil) with the given
// format string and arguments (like fmt.Sprintf). If *err is nil, DeferredAnnotatef
// does nothing. This method is used in a defer statement in order to annotate any
// resulting error with the same message.
//
// For example:
//
// defer DeferredAnnotatef(&err, "failed to frombulate the %s", arg)
//
func
DeferredAnnotatef
(
err
*
error
,
format
string
,
args
...
interface
{})
{
if
*
err
==
nil
{
return
}
newErr
:=
&
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
),
cause
:
Cause
(
*
err
),
previous
:
*
err
,
}
newErr
.
SetLocation
(
1
)
*
err
=
newErr
}
// Wrap changes the Cause of the error. The location of the Wrap call is also
// stored in the error stack.
//
// For example:
// if err := SomeFunc(); err != nil {
// newErr := &packageError{"more context", private_value}
// return errors.Wrap(err, newErr)
// }
//
func
Wrap
(
other
,
newDescriptive
error
)
error
{
err
:=
&
Err
{
previous
:
other
,
cause
:
newDescriptive
,
}
err
.
SetLocation
(
1
)
return
err
}
// Wrapf changes the Cause of the error, and adds an annotation. The location
// of the Wrap call is also stored in the error stack.
//
// For example:
// if err := SomeFunc(); err != nil {
// return errors.Wrapf(err, simpleErrorType, "invalid value %q", value)
// }
//
func
Wrapf
(
other
,
newDescriptive
error
,
format
string
,
args
...
interface
{})
error
{
err
:=
&
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
),
previous
:
other
,
cause
:
newDescriptive
,
}
err
.
SetLocation
(
1
)
return
err
}
// Maskf masks the given error with the given format string and arguments (like
// fmt.Sprintf), returning a new error that maintains the error stack, but
// hides the underlying error type. The error string still contains the full
// annotations. If you want to hide the annotations, call Wrap.
func
Maskf
(
other
error
,
format
string
,
args
...
interface
{})
error
{
if
other
==
nil
{
return
nil
}
err
:=
&
Err
{
message
:
fmt
.
Sprintf
(
format
,
args
...
),
previous
:
other
,
}
err
.
SetLocation
(
1
)
return
err
}
// Mask hides the underlying error type, and records the location of the masking.
func
Mask
(
other
error
)
error
{
if
other
==
nil
{
return
nil
}
err
:=
&
Err
{
previous
:
other
,
}
err
.
SetLocation
(
1
)
return
err
}
// Cause returns the cause of the given error. This will be either the
// original error, or the result of a Wrap or Mask call.
//
// Cause is the usual way to diagnose errors that may have been wrapped by
// the other errors functions.
func
Cause
(
err
error
)
error
{
var
diag
error
if
err
,
ok
:=
err
.
(
causer
);
ok
{
diag
=
err
.
Cause
()
}
if
diag
!=
nil
{
return
diag
}
return
err
}
type
causer
interface
{
Cause
()
error
}
type
wrapper
interface
{
// Message returns the top level error message,
// not including the message from the Previous
// error.
Message
()
string
// Underlying returns the Previous error, or nil
// if there is none.
Underlying
()
error
}
type
locationer
interface
{
Location
()
(
string
,
int
)
}
var
(
_
wrapper
=
(
*
Err
)(
nil
)
_
locationer
=
(
*
Err
)(
nil
)
_
causer
=
(
*
Err
)(
nil
)
)
// Details returns information about the stack of errors wrapped by err, in
// the format:
//
// [{filename:99: error one} {otherfile:55: cause of error one}]
//
// This is a terse alternative to ErrorStack as it returns a single line.
func
Details
(
err
error
)
string
{
if
err
==
nil
{
return
"[]"
}
var
s
[]
byte
s
=
append
(
s
,
'['
)
for
{
s
=
append
(
s
,
'{'
)
if
err
,
ok
:=
err
.
(
locationer
);
ok
{
file
,
line
:=
err
.
Location
()
if
file
!=
""
{
s
=
append
(
s
,
fmt
.
Sprintf
(
"%s:%d"
,
file
,
line
)
...
)
s
=
append
(
s
,
": "
...
)
}
}
if
cerr
,
ok
:=
err
.
(
wrapper
);
ok
{
s
=
append
(
s
,
cerr
.
Message
()
...
)
err
=
cerr
.
Underlying
()
}
else
{
s
=
append
(
s
,
err
.
Error
()
...
)
err
=
nil
}
s
=
append
(
s
,
'}'
)
if
err
==
nil
{
break
}
s
=
append
(
s
,
' '
)
}
s
=
append
(
s
,
']'
)
return
string
(
s
)
}
// ErrorStack returns a string representation of the annotated error. If the
// error passed as the parameter is not an annotated error, the result is
// simply the result of the Error() method on that error.
//
// If the error is an annotated error, a multi-line string is returned where
// each line represents one entry in the annotation stack. The full filename
// from the call stack is used in the output.
//
// first error
// github.com/juju/errors/annotation_test.go:193:
// github.com/juju/errors/annotation_test.go:194: annotation
// github.com/juju/errors/annotation_test.go:195:
// github.com/juju/errors/annotation_test.go:196: more context
// github.com/juju/errors/annotation_test.go:197:
func
ErrorStack
(
err
error
)
string
{
return
strings
.
Join
(
errorStack
(
err
),
"
\n
"
)
}
func
errorStack
(
err
error
)
[]
string
{
if
err
==
nil
{
return
nil
}
// We want the first error first
var
lines
[]
string
for
{
var
buff
[]
byte
if
err
,
ok
:=
err
.
(
locationer
);
ok
{
file
,
line
:=
err
.
Location
()
// Strip off the leading GOPATH/src path elements.
file
=
trimSourcePath
(
file
)
if
file
!=
""
{
buff
=
append
(
buff
,
fmt
.
Sprintf
(
"%s:%d"
,
file
,
line
)
...
)
buff
=
append
(
buff
,
": "
...
)
}
}
if
cerr
,
ok
:=
err
.
(
wrapper
);
ok
{
message
:=
cerr
.
Message
()
buff
=
append
(
buff
,
message
...
)
// If there is a cause for this error, and it is different to the cause
// of the underlying error, then output the error string in the stack trace.
var
cause
error
if
err1
,
ok
:=
err
.
(
causer
);
ok
{
cause
=
err1
.
Cause
()
}
err
=
cerr
.
Underlying
()
if
cause
!=
nil
&&
!
sameError
(
Cause
(
err
),
cause
)
{
if
message
!=
""
{
buff
=
append
(
buff
,
": "
...
)
}
buff
=
append
(
buff
,
cause
.
Error
()
...
)
}
}
else
{
buff
=
append
(
buff
,
err
.
Error
()
...
)
err
=
nil
}
lines
=
append
(
lines
,
string
(
buff
))
if
err
==
nil
{
break
}
}
// reverse the lines to get the original error, which was at the end of
// the list, back to the start.
var
result
[]
string
for
i
:=
len
(
lines
);
i
>
0
;
i
--
{
result
=
append
(
result
,
lines
[
i
-
1
])
}
return
result
}
vendor/github.com/juju/errors/path.go
deleted
100644 → 0
View file @
358ac59c
// Copyright 2013, 2014 Canonical Ltd.
// Licensed under the LGPLv3, see LICENCE file for details.
package
errors
import
(
"go/build"
"os"
"path/filepath"
"strings"
"sync/atomic"
)
var
trimValue
atomic
.
Value
var
trimDefault
=
filepath
.
Join
(
build
.
Default
.
GOPATH
,
"src"
)
+
string
(
os
.
PathSeparator
)
func
trimSourcePath
(
filename
string
)
string
{
prefix
:=
trimDefault
if
v
:=
trimValue
.
Load
();
v
!=
nil
{
prefix
=
v
.
(
string
)
}
return
strings
.
TrimPrefix
(
filename
,
prefix
)
}
func
SetSourceTrimPrefix
(
s
string
)
string
{
previous
:=
trimDefault
if
v
:=
trimValue
.
Load
();
v
!=
nil
{
previous
=
v
.
(
string
)
}
trimValue
.
Store
(
s
)
return
previous
}
vendor/modules.txt
View file @
20e5a911
...
...
@@ -631,7 +631,7 @@ github.com/jmespath/go-jmespath
github.com/jonboulle/clockwork
# github.com/json-iterator/go v1.1.7
github.com/json-iterator/go
# github.com/juju/errors v0.0.0-201
90806202954-0232dcc7464
d
# github.com/juju/errors v0.0.0-201
81118221551-089d3ea4e4d5 => github.com/rancher/juju-to-pkg-errors v0.0.0-20200701001603-16f3c28b59b
d
github.com/juju/errors
# github.com/karrick/godirwalk v1.7.5
github.com/karrick/godirwalk
...
...
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