Support get/set alarm state interfaces
Change-Id: Iaa317aeabcf18ff09c52215892643da25135bbcd
This commit is contained in:
parent
c6b5b0b429
commit
c0b47565a4
@ -40,6 +40,8 @@ class AodhCommandManager(commandmanager.CommandManager):
|
|||||||
"alarm list": alarm_cli.CliAlarmList,
|
"alarm list": alarm_cli.CliAlarmList,
|
||||||
"alarm show": alarm_cli.CliAlarmShow,
|
"alarm show": alarm_cli.CliAlarmShow,
|
||||||
"alarm update": alarm_cli.CliAlarmUpdate,
|
"alarm update": alarm_cli.CliAlarmUpdate,
|
||||||
|
"alarm state get": alarm_cli.CliAlarmStateGet,
|
||||||
|
"alarm state set": alarm_cli.CliAlarmStateSet,
|
||||||
"alarm-history show": alarm_history_cli.CliAlarmHistoryShow,
|
"alarm-history show": alarm_history_cli.CliAlarmHistoryShow,
|
||||||
"alarm-history search": alarm_history_cli.CliAlarmHistorySearch,
|
"alarm-history search": alarm_history_cli.CliAlarmHistorySearch,
|
||||||
"capabilities list": capabilities_cli.CliCapabilitiesList,
|
"capabilities list": capabilities_cli.CliCapabilitiesList,
|
||||||
|
@ -437,6 +437,27 @@ class AodhClientTest(base.ClientTestBase):
|
|||||||
params = 'create --type event --name alarm-no-query'
|
params = 'create --type event --name alarm-no-query'
|
||||||
self._test_alarm_create_show_query(params, {'query': ''})
|
self._test_alarm_create_show_query(params, {'query': ''})
|
||||||
|
|
||||||
|
def test_set_get_alarm_state(self):
|
||||||
|
result = self.aodh(
|
||||||
|
'alarm',
|
||||||
|
params=("create --type threshold --name alarm_state_test "
|
||||||
|
"-m meter_name --threshold 5"))
|
||||||
|
alarm = self.details_multiple(result)[0]
|
||||||
|
alarm_id = alarm['alarm_id']
|
||||||
|
result = self.aodh(
|
||||||
|
'alarm', params="show %s" % alarm_id)
|
||||||
|
alarm_show = self.details_multiple(result)[0]
|
||||||
|
self.assertEqual('insufficient data', alarm_show['state'])
|
||||||
|
result = self.aodh('alarm', params="state get %s" % alarm_id)
|
||||||
|
state_get = self.details_multiple(result)[0]
|
||||||
|
self.assertEqual('insufficient data', state_get['state'])
|
||||||
|
self.aodh('alarm',
|
||||||
|
params="state set --state ok %s" % alarm_id)
|
||||||
|
result = self.aodh('alarm', params="state get %s" % alarm_id)
|
||||||
|
state_get = self.details_multiple(result)[0]
|
||||||
|
self.assertEqual('ok', state_get['state'])
|
||||||
|
self.aodh('alarm', params='delete %s' % alarm_id)
|
||||||
|
|
||||||
|
|
||||||
class AodhClientGnocchiRulesTest(base.ClientTestBase):
|
class AodhClientGnocchiRulesTest(base.ClientTestBase):
|
||||||
|
|
||||||
|
@ -128,3 +128,24 @@ class AlarmManager(base.Manager):
|
|||||||
:type alarm_id: str
|
:type alarm_id: str
|
||||||
"""
|
"""
|
||||||
self._delete(self.url + '/' + alarm_id)
|
self._delete(self.url + '/' + alarm_id)
|
||||||
|
|
||||||
|
def get_state(self, alarm_id):
|
||||||
|
"""Get the state of an alarm
|
||||||
|
|
||||||
|
:param alarm_id: ID of the alarm
|
||||||
|
:type alarm_id: str
|
||||||
|
"""
|
||||||
|
return self._get(self.url + '/' + alarm_id + '/state').json()
|
||||||
|
|
||||||
|
def set_state(self, alarm_id, state):
|
||||||
|
"""Set the state of an alarm
|
||||||
|
|
||||||
|
:param alarm_id: ID of the alarm
|
||||||
|
:type alarm_id: str
|
||||||
|
:param state: the state to be updated to the alarm
|
||||||
|
:type state: str
|
||||||
|
"""
|
||||||
|
return self._put(self.url + '/' + alarm_id + '/state',
|
||||||
|
headers={'Content-Type': "application/json"},
|
||||||
|
data='"%s"' % state
|
||||||
|
).json()
|
||||||
|
@ -476,3 +476,67 @@ class CliAlarmDelete(command.Command):
|
|||||||
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
||||||
|
|
||||||
c.alarm.delete(_id)
|
c.alarm.delete(_id)
|
||||||
|
|
||||||
|
|
||||||
|
class CliAlarmStateGet(show.ShowOne):
|
||||||
|
"""Delete an alarm"""
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
return _add_name_to_parser(
|
||||||
|
_add_id_to_parser(
|
||||||
|
super(CliAlarmStateGet, self).get_parser(prog_name)))
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
_check_name_and_id(parsed_args, 'get state of')
|
||||||
|
c = utils.get_client(self)
|
||||||
|
|
||||||
|
if parsed_args.name:
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.name)
|
||||||
|
elif uuidutils.is_uuid_like(parsed_args.id):
|
||||||
|
try:
|
||||||
|
state = c.alarm.get_state(parsed_args.id)
|
||||||
|
except exceptions.NotFound:
|
||||||
|
# Maybe it was not an ID after all
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
||||||
|
else:
|
||||||
|
return self.dict2columns({'state': state})
|
||||||
|
else:
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
||||||
|
|
||||||
|
state = c.alarm.get_state(_id)
|
||||||
|
return self.dict2columns({'state': state})
|
||||||
|
|
||||||
|
|
||||||
|
class CliAlarmStateSet(show.ShowOne):
|
||||||
|
"""Delete an alarm"""
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = _add_name_to_parser(
|
||||||
|
_add_id_to_parser(
|
||||||
|
super(CliAlarmStateSet, self).get_parser(prog_name)))
|
||||||
|
parser.add_argument('--state', metavar='<STATE>',
|
||||||
|
required=True,
|
||||||
|
choices=ALARM_STATES,
|
||||||
|
help='State of the alarm, one of: '
|
||||||
|
+ str(ALARM_STATES))
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
_check_name_and_id(parsed_args, 'set state of')
|
||||||
|
c = utils.get_client(self)
|
||||||
|
|
||||||
|
if parsed_args.name:
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.name)
|
||||||
|
elif uuidutils.is_uuid_like(parsed_args.id):
|
||||||
|
try:
|
||||||
|
state = c.alarm.set_state(parsed_args.id, parsed_args.state)
|
||||||
|
except exceptions.NotFound:
|
||||||
|
# Maybe it was not an ID after all
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
||||||
|
else:
|
||||||
|
return self.dict2columns({'state': state})
|
||||||
|
else:
|
||||||
|
_id = _find_alarm_id_by_name(c, parsed_args.id)
|
||||||
|
|
||||||
|
state = c.alarm.set_state(_id, parsed_args.state)
|
||||||
|
return self.dict2columns({'state': state})
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Add support of get/set alarm state interfaces.
|
@ -38,6 +38,8 @@ openstack.alarming.v2 =
|
|||||||
alarm show = aodhclient.v2.alarm_cli:CliAlarmShow
|
alarm show = aodhclient.v2.alarm_cli:CliAlarmShow
|
||||||
alarm delete = aodhclient.v2.alarm_cli:CliAlarmDelete
|
alarm delete = aodhclient.v2.alarm_cli:CliAlarmDelete
|
||||||
alarm update = aodhclient.v2.alarm_cli:CliAlarmUpdate
|
alarm update = aodhclient.v2.alarm_cli:CliAlarmUpdate
|
||||||
|
alarm state get = aodhclient.v2.alarm_cli:CliAlarmStateGet
|
||||||
|
alarm state set = aodhclient.v2.alarm_cli:CliAlarmStateSet
|
||||||
alarm-history search = aodhclient.v2.alarm_history_cli:CliAlarmHistorySearch
|
alarm-history search = aodhclient.v2.alarm_history_cli:CliAlarmHistorySearch
|
||||||
alarm-history show = aodhclient.v2.alarm_history_cli:CliAlarmHistoryShow
|
alarm-history show = aodhclient.v2.alarm_history_cli:CliAlarmHistoryShow
|
||||||
alarming capabilities list = aodhclient.v2.capabilities_cli:CliCapabilitiesList
|
alarming capabilities list = aodhclient.v2.capabilities_cli:CliCapabilitiesList
|
||||||
|
Loading…
x
Reference in New Issue
Block a user