mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-10-19 13:49:53 +00:00
5280b67327
Bumps [github.com/hashicorp/vault/api](https://github.com/hashicorp/vault) from 1.1.1 to 1.2.0. - [Release notes](https://github.com/hashicorp/vault/releases) - [Changelog](https://github.com/hashicorp/vault/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/vault/compare/v1.1.1...v1.2.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/vault/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package multierror
|
|
|
|
// Append is a helper function that will append more errors
|
|
// onto an Error in order to create a larger multi-error.
|
|
//
|
|
// If err is not a multierror.Error, then it will be turned into
|
|
// one. If any of the errs are multierr.Error, they will be flattened
|
|
// one level into err.
|
|
// Any nil errors within errs will be ignored. If err is nil, a new
|
|
// *Error will be returned.
|
|
func Append(err error, errs ...error) *Error {
|
|
switch err := err.(type) {
|
|
case *Error:
|
|
// Typed nils can reach here, so initialize if we are nil
|
|
if err == nil {
|
|
err = new(Error)
|
|
}
|
|
|
|
// Go through each error and flatten
|
|
for _, e := range errs {
|
|
switch e := e.(type) {
|
|
case *Error:
|
|
if e != nil {
|
|
err.Errors = append(err.Errors, e.Errors...)
|
|
}
|
|
default:
|
|
if e != nil {
|
|
err.Errors = append(err.Errors, e)
|
|
}
|
|
}
|
|
}
|
|
|
|
return err
|
|
default:
|
|
newErrs := make([]error, 0, len(errs)+1)
|
|
if err != nil {
|
|
newErrs = append(newErrs, err)
|
|
}
|
|
newErrs = append(newErrs, errs...)
|
|
|
|
return Append(&Error{}, newErrs...)
|
|
}
|
|
}
|