Bug 2055 fixed: raising JujuControllerFailedConnecting with error message
[osm/N2VC.git] / n2vc / libjuju.py
index 8324cd4..7b01d5d 100644 (file)
@@ -121,7 +121,10 @@ class Libjuju:
             )
             if controller:
                 await self.disconnect_controller(controller)
-            raise JujuControllerFailedConnecting(e)
+
+            raise JujuControllerFailedConnecting(
+                f"Error connecting to Juju controller: {e}"
+            )
 
     async def disconnect(self):
         """Disconnect"""
@@ -1179,6 +1182,10 @@ class Libjuju:
                 controller,
                 timeout=total_timeout,
             )
+        except Exception as e:
+            if not await self.model_exists(model_name, controller=controller):
+                return
+            raise e
         finally:
             if model:
                 await self.disconnect_model(model)
@@ -1210,6 +1217,10 @@ class Libjuju:
             raise Exception(
                 "Timeout waiting for model {} to be destroyed".format(model_name)
             )
+        except juju.errors.JujuError as e:
+            if any("has been removed" in error for error in e.errors):
+                return
+            raise e
 
     async def destroy_application(
         self, model_name: str, application_name: str, total_timeout: float