X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju%2Fclient%2Fconnection.py;h=5ed073f8d61283428af72f61cf45e9886b571b91;hb=fe19bc72a387b03fb157c873313ecac58b65e338;hp=f0737ca320a44576330a7c47785e5d54f1a695ba;hpb=6f9041acecc03eaf12a6c8e5d50d20d17a28e87f;p=osm%2FN2VC.git diff --git a/juju/client/connection.py b/juju/client/connection.py index f0737ca..5ed073f 100644 --- a/juju/client/connection.py +++ b/juju/client/connection.py @@ -12,7 +12,7 @@ import websockets import yaml -from juju.errors import JujuAPIError +from juju.errors import JujuAPIError, JujuConnectionError log = logging.getLogger("websocket") @@ -180,6 +180,8 @@ class Connection: """ jujudata = JujuData() controller_name = jujudata.current_controller() + if not controller_name: + raise JujuConnectionError('No current controller') return await cls.connect_controller(controller_name) @@ -247,7 +249,7 @@ class Connection: "macaroons": macaroons or [] }}) response = result['response'] - self.build_facades(response['facades']) + self.build_facades(response.get('facades', {})) self.info = response.copy() return response @@ -271,10 +273,10 @@ class JujuData: self.path = os.path.abspath(os.path.expanduser(self.path)) def current_controller(self): - cmd = shlex.split('juju show-controller --format yaml') + cmd = shlex.split('juju list-controllers --format yaml') output = subprocess.check_output(cmd) output = yaml.safe_load(output) - return list(output.keys())[0] + return output.get('current-controller', '') def controllers(self): return self._load_yaml('controllers.yaml', 'controllers')