github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/v3/shared/handle_error.go (about) 1 package shared 2 3 import ( 4 "strings" 5 6 "code.cloudfoundry.org/cli/actor/sharedaction" 7 "code.cloudfoundry.org/cli/actor/v3action" 8 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 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.UnprocessableEntityError: 21 if strings.Contains(e.Message, "Task must have a droplet. Specify droplet or assign current droplet to app.") { 22 return RunTaskError{ 23 Message: "App is not staged."} 24 } 25 case ccerror.UnverifiedServerError: 26 return command.InvalidSSLCertError{API: e.URL} 27 28 case sharedaction.NotLoggedInError: 29 return command.NotLoggedInError{BinaryName: e.BinaryName} 30 case sharedaction.NoOrganizationTargetedError: 31 return command.NoOrganizationTargetedError{BinaryName: e.BinaryName} 32 case sharedaction.NoSpaceTargetedError: 33 return command.NoSpaceTargetedError{BinaryName: e.BinaryName} 34 case v3action.ApplicationNotFoundError: 35 return command.ApplicationNotFoundError{Name: e.Name} 36 case v3action.TaskWorkersUnavailableError: 37 return RunTaskError{Message: "Task workers are unavailable."} 38 case v3action.OrganizationNotFoundError: 39 return OrganizationNotFoundError{Name: e.Name} 40 case v3action.IsolationSegmentNotFoundError: 41 return IsolationSegmentNotFoundError{Name: e.Name} 42 case v3action.AssignDropletError: 43 return AssignDropletError{} 44 } 45 46 return err 47 }