github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/state/errors.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package state
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	"github.com/juju/mgo/v3/txn"
     9  
    10  	stateerrors "github.com/juju/juju/state/errors"
    11  )
    12  
    13  var (
    14  	newProviderIDNotUniqueError     = stateerrors.NewProviderIDNotUniqueError
    15  	newParentDeviceHasChildrenError = stateerrors.NewParentDeviceHasChildrenError
    16  	newErrCharmAlreadyUploaded      = stateerrors.NewErrCharmAlreadyUploaded
    17  	newDeletedUserError             = stateerrors.NewDeletedUserError
    18  	newNeverLoggedInError           = stateerrors.NewNeverLoggedInError
    19  	newNeverConnectedError          = stateerrors.NewNeverConnectedError
    20  	newVersionInconsistentError     = stateerrors.NewVersionInconsistentError
    21  
    22  	IsCharmAlreadyUploadedError    = stateerrors.IsCharmAlreadyUploadedError
    23  	IsProviderIDNotUniqueError     = stateerrors.IsProviderIDNotUniqueError
    24  	IsParentDeviceHasChildrenError = stateerrors.IsParentDeviceHasChildrenError
    25  	IsNotAlive                     = stateerrors.IsNotAlive
    26  	IsDeletedUserError             = stateerrors.IsDeletedUserError
    27  	IsNeverLoggedInError           = stateerrors.IsNeverLoggedInError
    28  	IsNeverConnectedError          = stateerrors.IsNeverConnectedError
    29  	IsVersionInconsistentError     = stateerrors.IsVersionInconsistentError
    30  )
    31  
    32  var (
    33  	// State package internal errors.
    34  	machineNotAliveErr     = stateerrors.NewNotAliveError("machine")
    35  	applicationNotAliveErr = stateerrors.NewNotAliveError("application")
    36  	unitNotAliveErr        = stateerrors.NewNotAliveError("unit")
    37  	spaceNotAliveErr       = stateerrors.NewNotAliveError("space")
    38  	subnetNotAliveErr      = stateerrors.NewNotAliveError("subnet")
    39  	notAliveErr            = stateerrors.NewNotAliveError("")
    40  )
    41  
    42  func onAbort(txnErr, err error) error {
    43  	if txnErr == txn.ErrAborted ||
    44  		errors.Cause(txnErr) == txn.ErrAborted {
    45  		return errors.Trace(err)
    46  	}
    47  	return errors.Trace(txnErr)
    48  }