github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/v2/shared/handle_error.go (about) 1 package shared 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/pushaction" 5 "code.cloudfoundry.org/cli/actor/sharedaction" 6 "code.cloudfoundry.org/cli/actor/v2action" 7 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 8 "code.cloudfoundry.org/cli/api/uaa" 9 "code.cloudfoundry.org/cli/command" 10 ) 11 12 func HandleError(err error) error { 13 switch e := err.(type) { 14 case ccerror.APINotFoundError: 15 return command.APINotFoundError{URL: e.URL} 16 case ccerror.RequestError: 17 return command.APIRequestError{Err: e.Err} 18 case ccerror.SSLValidationHostnameError: 19 return command.SSLCertErrorError{Message: e.Message} 20 case ccerror.UnverifiedServerError: 21 return command.InvalidSSLCertError{API: e.URL} 22 23 case ccerror.JobFailedError: 24 return JobFailedError{ 25 JobGUID: e.JobGUID, 26 Message: e.Message, 27 } 28 case ccerror.JobTimeoutError: 29 return JobTimeoutError{JobGUID: e.JobGUID} 30 31 case uaa.BadCredentialsError: 32 return command.BadCredentialsError{} 33 case uaa.InvalidAuthTokenError: 34 return InvalidRefreshTokenError{} 35 36 case sharedaction.NotLoggedInError: 37 return command.NotLoggedInError{BinaryName: e.BinaryName} 38 case sharedaction.NoOrganizationTargetedError: 39 return command.NoOrganizationTargetedError{BinaryName: e.BinaryName} 40 case sharedaction.NoSpaceTargetedError: 41 return command.NoSpaceTargetedError{BinaryName: e.BinaryName} 42 43 case v2action.ApplicationNotFoundError: 44 return command.ApplicationNotFoundError{Name: e.Name} 45 case v2action.OrganizationNotFoundError: 46 return OrganizationNotFoundError{Name: e.Name} 47 case v2action.SecurityGroupNotFoundError: 48 return SecurityGroupNotFoundError{Name: e.Name} 49 case v2action.ServiceInstanceNotFoundError: 50 return command.ServiceInstanceNotFoundError{Name: e.Name} 51 case v2action.SpaceNotFoundError: 52 return SpaceNotFoundError{Name: e.Name} 53 case v2action.HTTPHealthCheckInvalidError: 54 return HTTPHealthCheckInvalidError{} 55 case v2action.RouteInDifferentSpaceError: 56 return RouteInDifferentSpaceError{Route: e.Route} 57 case v2action.FileChangedError: 58 return FileChangedError{Filename: e.Filename} 59 case v2action.EmptyDirectoryError: 60 return EmptyDirectoryError{Path: e.Path} 61 62 case pushaction.NoDomainsFoundError: 63 return NoDomainsFoundError{} 64 case pushaction.UploadFailedError: 65 return UploadFailedError{Err: HandleError(e.Err)} 66 } 67 68 return err 69 }