Source code for synapse.exc

'''
Exceptions used by synapse, all inheriting from SynErr
'''

[docs]class SynErr(Exception): def __init__(self, *args, **info): self.errinfo = info self.errname = self.__class__.__name__ Exception.__init__(self, self._getExcMsg()) def _getExcMsg(self): props = sorted(self.errinfo.items()) displ = ' '.join(['%s=%r' % (p, v) for (p, v) in props]) return '%s: %s' % (self.__class__.__name__, displ) def _setExcMesg(self): '''Should be called when self.errinfo is modified.''' self.args = (self._getExcMsg(),) def __setstate__(self, state): '''Pickle support.''' super(SynErr, self).__setstate__(state) self._setExcMesg()
[docs] def items(self): return {k: v for k, v in self.errinfo.items()}
[docs] def get(self, name, defv=None): ''' Return a value from the errinfo dict. Example: try: foothing() except SynErr as e: blah = e.get('blah') ''' return self.errinfo.get(name, defv)
[docs] def set(self, name, valu): ''' Set a value in the errinfo dict. ''' self.errinfo[name] = valu self._setExcMesg()
[docs] def setdefault(self, name, valu): ''' Set a value in errinfo dict if it is not already set. ''' if name in self.errinfo: return self.errinfo[name] = valu self._setExcMesg()
[docs]class StormRaise(SynErr): ''' This represents a user provided exception inside of a Storm runtime. It requires a errname key. ''' def __init__(self, *args, **info): SynErr.__init__(self, *args, **info) name = info.get('errname') if name is not None: self.errname = name else: raise BadArg(mesg='StormRaise must have a key errname provided')
[docs]class AuthDeny(SynErr): pass
[docs]class BackupAlreadyRunning(SynErr): ''' Only one backup may be running at a time '''
[docs]class StormPkgRequires(SynErr): pass
[docs]class StormPkgConflicts(SynErr): pass
[docs]class BadPkgDef(SynErr): pass
[docs]class BadCmdName(SynErr): pass
[docs]class BadCmprValu(SynErr): pass
[docs]class BadCmprType(SynErr): ''' Attempt to compare two incomparable values '''
[docs]class BadCast(SynErr): pass
[docs]class BadConfValu(SynErr): ''' The configuration value provided is not valid. This should contain the config name, valu and mesg. ''' pass
[docs]class NeedConfValu(SynErr): pass
[docs]class BadCoreStore(SynErr): '''The storage layer has encountered an error''' pass
[docs]class BadCtorType(SynErr): pass
[docs]class BadFormDef(SynErr): pass
[docs]class BadHivePath(SynErr): pass
[docs]class BadLiftValu(SynErr): pass
[docs]class BadPropDef(SynErr): pass
[docs]class BadTypeDef(SynErr): pass
[docs]class BadTypeValu(SynErr): pass
[docs]class BadJsonText(SynErr): pass
[docs]class BadDataValu(SynErr): '''Cannot process the data as intended.''' pass
[docs]class BadArg(SynErr): ''' Improper function arguments ''' pass
[docs]class BadState(SynErr): pass
[docs]class BadFileExt(SynErr): pass
[docs]class BadIndxValu(SynErr): pass
[docs]class BadMesgVers(SynErr): pass
[docs]class BadMesgFormat(SynErr): pass
[docs]class BadOperArg(SynErr): ''' Improper storm function arguments ''' pass
[docs]class BadOptValu(SynErr): pass
[docs]class BadVersion(SynErr): '''Generic Bad Version exception.''' pass
[docs]class BadStorageVersion(SynErr): ''' Stored persistent data is incompatible with running software ''' pass
[docs]class BadSyntax(SynErr): pass
[docs]class BadTag(SynErr): pass
[docs]class BadTime(SynErr): pass
[docs]class BadUrl(SynErr): pass
[docs]class CantDelCmd(SynErr): pass
[docs]class CantDelNode(SynErr): pass
[docs]class CantDelForm(SynErr): pass
[docs]class CantDelProp(SynErr): pass
[docs]class CantDelType(SynErr): pass
[docs]class CantDelUniv(SynErr): pass
[docs]class CantDelView(SynErr): pass
[docs]class CantMergeView(SynErr): pass
[docs]class CantRevLayer(SynErr): pass
[docs]class CliFini(SynErr): ''' Raised when the CLI is to exit. ''' pass
[docs]class CryptoErr(SynErr): ''' Raised when there is a synapse.lib.crypto error. ''' pass
[docs]class BadEccExchange(CryptoErr): ''' Raised when there is an issue doing a ECC Key Exchange ''' pass
[docs]class BadCertBytes(SynErr): '''Raised by certdir when the certificate fails to load.'''
[docs]class BadCertVerify(SynErr): '''Raised by certdir when there is a failure to verify a certificate context.'''
[docs]class PathExists(SynErr): pass
[docs]class DataAlreadyExists(SynErr): ''' Cannot copy data to a location that already contains data ''' pass
[docs]class DbOutOfSpace(SynErr): pass
[docs]class DupName(SynErr): pass
[docs]class DupIden(SynErr): pass
[docs]class DupIndx(SynErr): pass
[docs]class DupFileName(SynErr): pass
[docs]class DupFormName(SynErr): pass
[docs]class DupPropName(SynErr): pass
[docs]class DupRoleName(SynErr): pass
[docs]class DupTagPropName(SynErr): pass
[docs]class DupUserName(SynErr): pass
[docs]class DupStormSvc(SynErr): pass
[docs]class FileExists(SynErr): pass
[docs]class InconsistentStorage(SynErr): ''' Stored persistent data is inconsistent ''' pass
[docs]class IsFini(SynErr): pass
[docs]class IsReadOnly(SynErr): pass
[docs]class IsDeprLocked(SynErr): pass
[docs]class IsRuntForm(SynErr): pass
[docs]class LayerInUse(SynErr): pass
[docs]class LinkErr(SynErr): pass
[docs]class LinkBadCert(LinkErr): pass
[docs]class LinkShutDown(LinkErr): pass
[docs]class LowSpace(SynErr): pass
[docs]class NoCertKey(SynErr): ''' Raised when a Cert object requires a RSA Private Key to perform an operation and the key is not present. ''' pass
[docs]class NoSuchCert(SynErr): pass
[docs]class BadCertHost(SynErr): pass
[docs]class ModAlreadyLoaded(SynErr): pass
[docs]class MustBeJsonSafe(SynErr): pass
[docs]class NotMsgpackSafe(SynErr): pass
[docs]class NoSuchForm(SynErr): # new convention where exceptions with an init() class # method may be called to enforce normalization of message # contents based on variables that are relevant to the # exception type...
[docs] @classmethod def init(cls, name, mesg=None): if mesg is None: mesg = f'No form named {name}.' return NoSuchForm(mesg=mesg, name=name)
[docs]class NoSuchProp(SynErr):
[docs] @classmethod def init(cls, name, mesg=None): if mesg is None: mesg = f'No property named {name}.' return NoSuchProp(mesg=mesg, name=name)
[docs]class NoSuchAbrv(SynErr): pass
[docs]class NoSuchAct(SynErr): pass
[docs]class NoSuchAuthGate(SynErr): pass
[docs]class NoSuchCmd(SynErr): pass
[docs]class NoSuchPkg(SynErr): pass
[docs]class NoSuchCmpr(SynErr): pass
[docs]class NoSuchCond(SynErr): pass
[docs]class NoSuchCtor(SynErr): pass
[docs]class NoSuchDecoder(SynErr): pass
[docs]class NoSuchDir(SynErr): pass
[docs]class NoSuchDyn(SynErr): pass
[docs]class NoSuchEncoder(SynErr): pass
[docs]class NoSuchFile(SynErr): pass
[docs]class NoSuchFunc(SynErr): pass
[docs]class NoSuchIden(SynErr): pass
[docs]class NoSuchImpl(SynErr): pass
[docs]class NoSuchIndx(SynErr): pass
[docs]class NoSuchLayer(SynErr): pass
[docs]class NoSuchLift(SynErr): pass
[docs]class NoSuchMeth(SynErr): pass
[docs]class NoSuchName(SynErr): pass
[docs]class NoSuchObj(SynErr): pass
[docs]class NoSuchOpt(SynErr): pass
[docs]class NoSuchPath(SynErr): pass
[docs]class NoSuchPivot(SynErr): pass
[docs]class NoSuchUniv(SynErr): pass
[docs]class NoSuchRole(SynErr): pass
[docs]class NoSuchType(SynErr): pass
[docs]class NoSuchUser(SynErr): pass
[docs]class NoSuchVar(SynErr): pass
[docs]class NoSuchView(SynErr): pass
[docs]class NoSuchTagProp(SynErr): pass
[docs]class NoSuchStormSvc(SynErr): pass
[docs]class NotANumberCompared(SynErr): pass
[docs]class ParserExit(SynErr): ''' Raised by synapse.lib.cmd.Parser on Parser exit() ''' pass
[docs]class DmonSpawn(SynErr): ''' Raised by a dispatched telepath method that has answered the call using a spawned process. ( control flow that is compatible with aborting standard calls, generators, and async generators ). ''' pass
[docs]class SchemaViolation(SynErr): pass
[docs]class SlabAlreadyOpen(SynErr): pass
[docs]class SlabInUse(SynErr): pass
[docs]class SpawnExit(SynErr): pass
[docs]class FeatureNotSupported(SynErr): pass
[docs]class HitLimit(SynErr): pass
[docs]class ReadOnlyLayer(SynErr): pass
[docs]class ReadOnlyProp(SynErr): pass
[docs]class RecursionLimitHit(SynErr): pass
[docs]class TimeOut(SynErr): pass
[docs]class Retry(SynErr): pass
[docs]class NotReady(Retry): pass
[docs]class StepTimeout(SynErr): ''' Raised when a TestStep.wait() call times out. ''' pass
[docs]class StormRuntimeError(SynErr): pass
[docs]class StormVarListError(StormRuntimeError): pass
[docs]class FatalErr(SynErr): ''' Raised when a fatal error has occurred which an application cannot recover from. ''' pass
[docs]class LmdbLock(SynErr): pass