github.com/hashicorp/vault/sdk@v0.13.0/plugin/mock/path_errors.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package mock 5 6 import ( 7 "context" 8 "errors" 9 "net/rpc" 10 11 "github.com/hashicorp/vault/sdk/framework" 12 "github.com/hashicorp/vault/sdk/helper/errutil" 13 "github.com/hashicorp/vault/sdk/logical" 14 "github.com/hashicorp/vault/sdk/plugin/pb" 15 ) 16 17 // pathInternal is used to test viewing internal backend values. In this case, 18 // it is used to test the invalidate func. 19 func errorPaths(b *backend) []*framework.Path { 20 return []*framework.Path{ 21 { 22 Pattern: "errors/rpc", 23 Callbacks: map[logical.Operation]framework.OperationFunc{ 24 logical.ReadOperation: b.pathErrorRPCRead, 25 }, 26 }, 27 { 28 Pattern: "errors/kill", 29 Callbacks: map[logical.Operation]framework.OperationFunc{ 30 logical.ReadOperation: b.pathErrorRPCRead, 31 }, 32 }, 33 { 34 Pattern: "errors/type", 35 Fields: map[string]*framework.FieldSchema{ 36 "err_type": {Type: framework.TypeInt}, 37 }, 38 Callbacks: map[logical.Operation]framework.OperationFunc{ 39 logical.UpdateOperation: b.pathErrorRPCRead, 40 }, 41 }, 42 } 43 } 44 45 func (b *backend) pathErrorRPCRead(ctx context.Context, req *logical.Request, data *framework.FieldData) (*logical.Response, error) { 46 errTypeRaw, ok := data.GetOk("err_type") 47 if !ok { 48 return nil, rpc.ErrShutdown 49 } 50 51 var err error 52 switch uint32(errTypeRaw.(int)) { 53 case pb.ErrTypeUnknown: 54 err = errors.New("test") 55 case pb.ErrTypeUserError: 56 err = errutil.UserError{Err: "test"} 57 case pb.ErrTypeInternalError: 58 err = errutil.InternalError{Err: "test"} 59 case pb.ErrTypeCodedError: 60 err = logical.CodedError(403, "test") 61 case pb.ErrTypeStatusBadRequest: 62 err = &logical.StatusBadRequest{Err: "test"} 63 case pb.ErrTypeUnsupportedOperation: 64 err = logical.ErrUnsupportedOperation 65 case pb.ErrTypeUnsupportedPath: 66 err = logical.ErrUnsupportedPath 67 case pb.ErrTypeInvalidRequest: 68 err = logical.ErrInvalidRequest 69 case pb.ErrTypePermissionDenied: 70 err = logical.ErrPermissionDenied 71 case pb.ErrTypeMultiAuthzPending: 72 err = logical.ErrMultiAuthzPending 73 } 74 75 return nil, err 76 }