Source code for dockerreg.exceptions

from dockerreg.log import LOG

[docs]class DockerRegistryError(Exception): pass
[docs]class AuthStorageError(DockerRegistryError): pass
[docs]class BearerTokenError(DockerRegistryError): pass
[docs]class MissingCredentialsError(DockerRegistryError): pass
[docs]class BearerRedirectError(DockerRegistryError): pass
[docs]class UnsupportedAuthorizationTypeError(DockerRegistryError): pass
[docs]class UnsupportedRegistryVersionError(DockerRegistryError): pass
[docs]class ModelApiVersionMismatch(DockerRegistryError): pass
[docs]class IllegalArgumentError(DockerRegistryError): pass
[docs]class UnknownManifestFormat(DockerRegistryError): pass
[docs]class MalformedManifestError(DockerRegistryError): pass
[docs]class MalformedManifestListError(DockerRegistryError): pass
[docs]class LayerContentMismatch(DockerRegistryError): pass
[docs]class DockerRegistryAPIError(DockerRegistryError):
[docs] def __init__(self,httpcode,errors=[]): LOG.debug("%d %s" % (httpcode,str(errors))) self._httpcode = httpcode if errors is None: errors = [] self._errors = errors
@property def count(self): return len(self._errors) @property def httpcode(self): return self._httpcode
[docs] def code(self,idx=0): if idx >= self.count or not "code" in self._errors[idx]: return None return self._errors[idx]["code"]
[docs] def message(self,idx=0): if idx >= self.count or not "message" in self._errors[idx]: return None return self._errors[idx]["message"]
[docs] def detail(self,idx=0): if idx >= self.count or not "detail" in self._errors[idx]: return None return self._errors[idx]["detail"]
def __repr__(self): if self.count == 1: return "<%s:HTTP %s,%s,%s,%r>" % ( self.__class__.__name__,self._httpcode, self.code(),self.message(),repr(self.detail())) else: tmp = ["[%s,%s,%r]" \ % (x["code"],x["message"],repr(x["detail"])) for x in self._errors] return "<%s:HTTP %s,%s,[%s]>" % ( self.__class__.__name__,self._httpcode,tmp.join(","))
[docs]class AuthorizationRequiredError(DockerRegistryAPIError):
[docs] def __init__(self,errors=[]): if not errors: errors = [{"code":401,"message":"Authorization required"}] super(AuthorizationRequiredError,self).__init__(401,errors=errors)
[docs]class ImageNotFoundError(DockerRegistryAPIError):
[docs] def __init__(self,errors=[]): if not errors: errors = [{"code":404,"message":"Image not found"}] super(ImageNotFoundError,self).__init__(404,errors=errors)
[docs]class TagNotFoundError(DockerRegistryAPIError):
[docs] def __init__(self,errors=[]): if not errors: errors = [{"code":404,"message":"Tag not found"}] super(TagNotFoundError,self).__init__(404,errors=errors)
[docs]class LayerNotFoundError(DockerRegistryAPIError):
[docs] def __init__(self,errors=[]): if not errors: errors = [{"code":404,"message":"Layer not found"}] super(LayerNotFoundError,self).__init__(404,errors=errors)
[docs]class RepositoryNotFoundError(DockerRegistryAPIError):
[docs] def __init__(self,errors=[]): if not errors: errors = [{"code":404,"message":"Repository not found"}] super(RepositoryNotFoundError,self).__init__(404,errors=errors)