X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Fjuju%2Ferrors.py;h=da11cdb48af1315f7027a64bbba2e7b6a786eb61;hp=ecd1c0d227171f1fe22e28908b21dcf71109577b;hb=cf253202ee98f285720c18d5c7bae382ea900934;hpb=1a15d1c84fc826fa7996c1c9d221a324edd33432;ds=sidebyside diff --git a/modules/libjuju/juju/errors.py b/modules/libjuju/juju/errors.py index ecd1c0d..da11cdb 100644 --- a/modules/libjuju/juju/errors.py +++ b/modules/libjuju/juju/errors.py @@ -25,3 +25,25 @@ class JujuAPIError(JujuError): class JujuConnectionError(ConnectionError, JujuError): pass + + +class JujuAuthError(JujuConnectionError): + pass + + +class JujuRedirectException(Exception): + """Exception indicating that a redirection was requested""" + def __init__(self, redirect_info): + self.redirect_info = redirect_info + + @property + def ca_cert(self): + return self.redirect_info['ca-cert'] + + @property + def endpoints(self): + return [ + ('{value}:{port}'.format(**s), self.ca_cert) + for servers in self.redirect_info['servers'] + for s in servers if s['scope'] == 'public' + ]