Feature 10239: Distributed VCA
[osm/N2VC.git] / n2vc / exceptions.py
index 59bcc1a..1f48661 100644 (file)
 #     limitations under the License.
 
 
 #     limitations under the License.
 
 
-class JujuCharmNotFound(Exception):
-    """The Charm can't be found or is not readable."""
-
-
-class JujuControllerFailedConnecting(Exception):
-    """Failed connecting to juju controller."""
-
-
-class JujuModelAlreadyExists(Exception):
-    """The model already exists."""
-
-
-class JujuApplicationExists(Exception):
-    """The Application already exists."""
-
-
-class JujuApplicationNotFound(Exception):
-    """The Application cannot be found."""
-
-
-class JujuMachineNotFound(Exception):
-    """The machine cannot be found."""
-
-
-class JujuK8sProxycharmNotSupported(Exception):
-    """K8s Proxy Charms not supported in this installation."""
-
-
-class N2VCPrimitiveExecutionFailed(Exception):
-    """Something failed while attempting to execute a primitive."""
-
-
-class NetworkServiceDoesNotExist(Exception):
-    """The Network Service being acted against does not exist."""
-
-
-class PrimitiveDoesNotExist(Exception):
-    """The Primitive being executed does not exist."""
-
-
-class NoRouteToHost(Exception):
-    """There was no route to the specified host."""
-
-
-class AuthenticationFailed(Exception):
-    """The authentication for the specified user failed."""
-
-
-class MethodNotImplemented(Exception):
-    """The method is not implemented."""
-
-
 class N2VCException(Exception):
     """
     N2VC exception base class
 class N2VCException(Exception):
     """
     N2VC exception base class
@@ -163,6 +111,18 @@ class N2VCNotFound(N2VCException):
         return "<{}> Not found: {}".format(type(self), super().__str__())
 
 
         return "<{}> Not found: {}".format(type(self), super().__str__())
 
 
+class JujuError(N2VCException):
+    """
+    Juju Error
+    """
+
+    def __init__(self, message: str = ""):
+        N2VCException.__init__(self, message=message)
+
+    def __str__(self):
+        return "<{}> Juju Error: {}".format(type(self), super().__str__())
+
+
 class K8sException(Exception):
     """
     K8s exception
 class K8sException(Exception):
     """
     K8s exception
@@ -181,3 +141,67 @@ class K8sException(Exception):
 
 class EntityInvalidException(Exception):
     """Entity is not valid, the type does not match any EntityType."""
 
 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 JujuControllerFailedConnecting(N2VCException):
+    """Failed connecting to juju controller."""
+
+
+class JujuModelAlreadyExists(N2VCException):
+    """The model already exists."""
+
+
+class JujuApplicationExists(N2VCException):
+    """The Application already exists."""
+
+
+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(N2VCException):
+    """The Network Service being acted against does not exist."""
+
+
+class PrimitiveDoesNotExist(N2VCException):
+    """The Primitive being executed does not exist."""
+
+
+class NoRouteToHost(N2VCException):
+    """There was no route to the specified host."""
+
+
+class AuthenticationFailed(N2VCException):
+    """The authentication for the specified user failed."""
+
+
+class MethodNotImplemented(N2VCException):
+    """The method is not implemented."""