diff --git a/aodhclient/utils.py b/aodhclient/utils.py index 311b749..d77f03d 100644 --- a/aodhclient/utils.py +++ b/aodhclient/utils.py @@ -173,3 +173,13 @@ def cli_to_array(cli_query): raise ValueError(err) opts.append(opt) return opts + + +def get_client(obj): + if hasattr(obj.app, 'client_manager'): + # NOTE(liusheng): cliff objects loaded by OSC + return obj.app.client_manager.alarming + else: + # TODO(liusheng): Remove this when OSC is able + # to install the aodh client binary itself + return obj.app.client diff --git a/aodhclient/v2/alarm_cli.py b/aodhclient/v2/alarm_cli.py index 3e802f3..931650c 100644 --- a/aodhclient/v2/alarm_cli.py +++ b/aodhclient/v2/alarm_cli.py @@ -68,7 +68,8 @@ class CliAlarmList(lister.Lister): else: query = None filters = dict(parsed_args.filter) if parsed_args.filter else None - alarms = self.app.client.alarm.list(query=query, filters=filters) + alarms = utils.get_client(self).alarm.list(query=query, + filters=filters) return utils.list2cols(ALARM_LIST_COLS, alarms) @@ -137,9 +138,9 @@ class CliAlarmShow(show.ShowOne): def take_action(self, parsed_args): _check_name_and_id(parsed_args, 'query') if parsed_args.id: - alarm = self.app.client.alarm.get(alarm_id=parsed_args.id) + alarm = utils.get_client(self).alarm.get(alarm_id=parsed_args.id) else: - alarm = _find_alarm_by_name(self.app.client.alarm, + alarm = _find_alarm_by_name(utils.get_client(self).alarm, parsed_args.alarm_name) return self.dict2columns(_format_alarm(alarm)) @@ -377,7 +378,7 @@ class CliAlarmCreate(show.ShowOne): return alarm def take_action(self, parsed_args): - alarm = self.app.client.alarm.create( + alarm = utils.get_client(self).alarm.create( alarm=self._alarm_from_args(parsed_args)) return self.dict2columns(_format_alarm(alarm)) @@ -395,13 +396,13 @@ class CliAlarmUpdate(CliAlarmCreate): _check_name_and_id(parsed_args, 'update') attributes = self._alarm_from_args(parsed_args) if parsed_args.id: - updated_alarm = self.app.client.alarm.update( + updated_alarm = utils.get_client(self).alarm.update( alarm_id=parsed_args.id, alarm_update=attributes) else: - alarm_id = _find_alarm_by_name(self.app.client.alarm, + alarm_id = _find_alarm_by_name(utils.get_client(self).alarm, parsed_args.alarm_name, return_id=True) - updated_alarm = self.app.client.alarm.update( + updated_alarm = utils.get_client(self).alarm.update( alarm_id=alarm_id, alarm_update=attributes) return self.dict2columns(_format_alarm(updated_alarm)) @@ -416,9 +417,9 @@ class CliAlarmDelete(command.Command): def take_action(self, parsed_args): _check_name_and_id(parsed_args, 'delete') if parsed_args.id: - self.app.client.alarm.delete(parsed_args.id) + utils.get_client(self).alarm.delete(parsed_args.id) else: - alarm_id = _find_alarm_by_name(self.app.client.alarm, + alarm_id = _find_alarm_by_name(utils.get_client(self).alarm, parsed_args.alarm_name, return_id=True) - self.app.client.alarm.delete(alarm_id) + utils.get_client(self).alarm.delete(alarm_id) diff --git a/aodhclient/v2/alarm_history_cli.py b/aodhclient/v2/alarm_history_cli.py index 2889bb6..272822b 100644 --- a/aodhclient/v2/alarm_history_cli.py +++ b/aodhclient/v2/alarm_history_cli.py @@ -34,7 +34,7 @@ class CliAlarmHistorySearch(lister.Lister): if parsed_args.query: query = jsonutils.dumps( utils.search_query_builder(parsed_args.query)) - history = self.app.client.alarm_history.search(query=query) + history = utils.get_client(self).alarm_history.search(query=query) return utils.list2cols(self.COLS, history) @@ -49,6 +49,6 @@ class CliAlarmHistoryShow(lister.Lister): return parser def take_action(self, parsed_args): - history = self.app.client.alarm_history.get( + history = utils.get_client(self).alarm_history.get( alarm_id=parsed_args.alarm_id) return utils.list2cols(self.COLS, history) diff --git a/aodhclient/v2/capabilities_cli.py b/aodhclient/v2/capabilities_cli.py index a3466bf..c6d79e4 100644 --- a/aodhclient/v2/capabilities_cli.py +++ b/aodhclient/v2/capabilities_cli.py @@ -13,10 +13,12 @@ from cliff import show +from aodhclient import utils + class CliCapabilitiesList(show.ShowOne): """List capabilities""" def take_action(self, parsed_args): - caps = self.app.client.capabilities.list() + caps = utils.get_client(self).capabilities.list() return self.dict2columns(caps)