Prepare compatibility with OSC

This change prepares a compatibility layer to
be able to use the Aodh cli command with OSC cli.

Change-Id: Ic04af30567d1d8e371d46bb966d7c2ef220b4197
Signed-off-by: liusheng <liusheng@huawei.com>
This commit is contained in:
liusheng 2016-05-04 15:50:45 +08:00
parent fc502cd83a
commit ffabd07d0f
4 changed files with 26 additions and 13 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)