X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fexceptions.py;h=721b1f44fbc6d389e2872e5c7b6edc0cb9fa5c57;hp=f5c9fb047798da3795b66635324e4b31618afa74;hb=475a7221e3598ad1c75ce802c5ad74ef7ecf72f1;hpb=0cd1c02c85f5dbd6d06bd28b79f964fb209ee90a;ds=sidebyside diff --git a/n2vc/exceptions.py b/n2vc/exceptions.py index f5c9fb0..721b1f4 100644 --- a/n2vc/exceptions.py +++ b/n2vc/exceptions.py @@ -12,29 +12,184 @@ # See the License for the specific language governing permissions and # limitations under the License. -class JujuCharmNotFound(Exception): + +class N2VCException(Exception): + """ + N2VC exception base class + """ + + def __init__(self, message: str = ""): + Exception.__init__(self, message) + self.message = message + + def __str__(self): + return self.message + + def __repr__(self): + return "{}({})".format(type(self), self.message) + + +class N2VCBadArgumentsException(N2VCException): + """ + Bad argument values exception + """ + + def __init__(self, message: str = "", bad_args: list = None): + N2VCException.__init__(self, message=message) + self.bad_args = bad_args + + def __str__(self): + return "<{}> Bad arguments: {} -> {}".format( + type(self), super().__str__(), self.bad_args + ) + + +class N2VCConnectionException(N2VCException): + """ + Error connecting to VCA + """ + + def __init__(self, message: str = "", url: str = None): + N2VCException.__init__(self, message=message) + self.url = url + + def __str__(self): + return "<{}> Connection to {} failed: {}".format( + type(self), self.url, super().__str__() + ) + + +class N2VCTimeoutException(N2VCException): + """ + Timeout + """ + + def __init__(self, message: str = "", timeout: str = ""): + N2VCException.__init__(self, message=message) + self.timeout = timeout + + def __str__(self): + return "<{}> {} timeout: {}".format(type(self), self.timeout, super().__str__()) + + +class N2VCExecutionException(N2VCException): + """ + Error executing primitive + """ + + def __init__(self, message: str = "", primitive_name: str = ""): + N2VCException.__init__(self, message=message) + self.primitive_name = primitive_name + + def __str__(self): + return "<{}> Error executing primitive {} failed: {}".format( + type(self), self.primitive_name, super().__str__() + ) + + +class N2VCInvalidCertificate(N2VCException): + """ + Invalid certificate + """ + + def __init__(self, message: str = ""): + N2VCException.__init__(self, message=message) + + def __str__(self): + return "<{}> Invalid certificate: {}".format(type(self), super().__str__()) + + +class N2VCNotFound(N2VCException): + """ + Not found + """ + + def __init__(self, message: str = ""): + N2VCException.__init__(self, message=message) + + def __str__(self): + return "<{}> Not found: {}".format(type(self), super().__str__()) + + +class K8sException(Exception): + """ + K8s exception + """ + + def __init__(self, message: str): + Exception.__init__(self, message) + self._message = message + + def __str__(self): + return self._message + + def __repr__(self): + return self._message + + +class EntityInvalidException(Exception): + """Entity is not valid, the type does not match any EntityType.""" + + +class JujuInvalidK8sConfiguration(N2VCException): + """Invalid K8s configuration.""" + + +class JujuCharmNotFound(N2VCException): """The Charm can't be found or is not readable.""" -class JujuApplicationExists(Exception): +class JujuControllerFailedConnecting(N2VCException): + """Failed connecting to juju controller.""" + + +class JujuModelAlreadyExists(N2VCException): + """The model already exists.""" + + +class JujuApplicationExists(N2VCException): """The Application already exists.""" -class N2VCPrimitiveExecutionFailed(Exception): +class JujuApplicationNotFound(N2VCException): + """The Application cannot be found.""" + + +class JujuLeaderUnitNotFound(N2VCException): + """The Application cannot be found.""" + + +class JujuActionNotFound(N2VCException): + """The Action cannot be found.""" + + +class JujuMachineNotFound(N2VCException): + """The machine cannot be found.""" + + +class JujuK8sProxycharmNotSupported(N2VCException): + """K8s Proxy Charms not supported in this installation.""" + + +class N2VCPrimitiveExecutionFailed(N2VCException): """Something failed while attempting to execute a primitive.""" -class NetworkServiceDoesNotExist(Exception): +class NetworkServiceDoesNotExist(N2VCException): """The Network Service being acted against does not exist.""" -class PrimitiveDoesNotExist(Exception): +class PrimitiveDoesNotExist(N2VCException): """The Primitive being executed does not exist.""" -class NoRouteToHost(Exception): +class NoRouteToHost(N2VCException): """There was no route to the specified host.""" -class AuthenticationFailed(Exception): +class AuthenticationFailed(N2VCException): """The authentication for the specified user failed.""" + + +class MethodNotImplemented(N2VCException): + """The method is not implemented."""