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  }