X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Flibjuju.py;h=22ba1822d77589304390b1f0674dd009b093c981;hp=daedc3b2abab47fa7a0479f8fbec864883f4db0a;hb=refs%2Fchanges%2F52%2F9352%2F8;hpb=b8ff39bee1fffc09564f911ab522269306163f84 diff --git a/n2vc/libjuju.py b/n2vc/libjuju.py index daedc3b..22ba182 100644 --- a/n2vc/libjuju.py +++ b/n2vc/libjuju.py @@ -29,6 +29,8 @@ from n2vc.n2vc_conn import N2VCConnector from n2vc.exceptions import ( JujuMachineNotFound, JujuApplicationNotFound, + JujuLeaderUnitNotFound, + JujuActionNotFound, JujuModelAlreadyExists, JujuControllerFailedConnecting, JujuApplicationExists, @@ -70,7 +72,10 @@ class Libjuju: self.log = log or logging.getLogger("Libjuju") self.db = db - self.endpoints = self._get_api_endpoints_db() or [endpoint] + db_endpoints = self._get_api_endpoints_db() + self.endpoints = db_endpoints or [endpoint] + if db_endpoints is None: + self._update_api_endpoints_db(self.endpoints) self.api_proxy = api_proxy self.username = username self.password = password @@ -295,7 +300,7 @@ class Libjuju: machine_id, model_name ) ) - machine = model.machines[machine_id] + machine = machines[machine_id] else: raise JujuMachineNotFound("Machine {} not found".format(machine_id)) @@ -567,7 +572,6 @@ class Libjuju: :param: application_name: Application name :param: model_name: Model name - :param: cloud_name: Cloud name :param: action_name: Name of the action :param: db_dict: Dictionary with data of the DB to write the updates :param: progress_timeout: Maximum time between two updates in the model @@ -598,12 +602,12 @@ class Libjuju: if await u.is_leader_from_status(): unit = u if unit is None: - raise Exception("Cannot execute action: leader unit not found") + raise JujuLeaderUnitNotFound("Cannot execute action: leader unit not found") actions = await application.get_actions() if action_name not in actions: - raise Exception( + raise JujuActionNotFound( "Action {} not in available actions".format(action_name) ) @@ -634,8 +638,6 @@ class Libjuju: action_name, action.status, application_name, model_name ) ) - except Exception as e: - raise e finally: await self.disconnect_model(model) await self.disconnect_controller(controller) @@ -816,7 +818,7 @@ class Libjuju: """ machines = await model.get_machines() if machine_id in machines: - machine = model.machines[machine_id] + machine = machines[machine_id] await machine.destroy(force=True) # max timeout end = time.time() + total_timeout