X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fexceptions.py;h=721b1f44fbc6d389e2872e5c7b6edc0cb9fa5c57;hp=a63d6f9b0688397df6281d6292f13bd5ceaf8401;hb=e308c71201537413caf28f8814051470f0418504;hpb=8ca38ed92090ce6cbd1f8e1cdb802b259d31e9d5 diff --git a/n2vc/exceptions.py b/n2vc/exceptions.py index a63d6f9..721b1f4 100644 --- a/n2vc/exceptions.py +++ b/n2vc/exceptions.py @@ -12,38 +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 InvalidCACertificate(Exception): - """The CA Certificate is not valid.""" - - -class NotImplemented(Exception): +class MethodNotImplemented(N2VCException): """The method is not implemented.""" -