Merge "Add support for deleting alarms."
This commit is contained in:
@@ -28,13 +28,18 @@ class Alarm(base.Resource):
|
||||
class AlarmManager(base.Manager):
|
||||
resource_class = Alarm
|
||||
|
||||
@staticmethod
|
||||
def _path(id=None):
|
||||
return '/v2/alarms/%s' % id if id else '/v2/alarms'
|
||||
|
||||
def list(self, q=None):
|
||||
path = '/v2/alarms'
|
||||
return self._list(options.build_url(path, q))
|
||||
return self._list(options.build_url(self._path(), q))
|
||||
|
||||
def get(self, alarm_id):
|
||||
path = '/v2/alarms/%s' % alarm_id
|
||||
try:
|
||||
return self._list(path, expect_single=True)[0]
|
||||
return self._list(self._path(alarm_id), expect_single=True)[0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
def delete(self, alarm_id):
|
||||
return self._delete(self._path(alarm_id))
|
||||
|
||||
@@ -117,6 +117,18 @@ def do_alarm_show(cc, args={}):
|
||||
utils.print_dict(data, wrap=72)
|
||||
|
||||
|
||||
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
||||
help='ID of the alarm to show.')
|
||||
def do_alarm_delete(cc, args={}):
|
||||
'''Delete an alarm'''
|
||||
if args.alarm_id is None:
|
||||
raise exc.CommandError('Alarm ID not provided (-a <alarm id>)')
|
||||
try:
|
||||
resource = cc.alarms.delete(args.alarm_id)
|
||||
except exc.HTTPNotFound:
|
||||
raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
|
||||
|
||||
|
||||
@utils.arg('-q', '--query', metavar='<QUERY>',
|
||||
help='key[op]value; list.')
|
||||
def do_resource_list(cc, args={}):
|
||||
|
||||
@@ -64,7 +64,14 @@ fixtures = {
|
||||
{},
|
||||
[AN_ALARM],
|
||||
),
|
||||
}
|
||||
},
|
||||
'/v2/alarms/victim-id':
|
||||
{
|
||||
'DELETE': (
|
||||
{},
|
||||
None,
|
||||
),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -108,3 +115,11 @@ class AlarmManagerTest(unittest.TestCase):
|
||||
self.assertEqual(self.api.calls, expect)
|
||||
self.assertTrue(alarm)
|
||||
self.assertEqual(alarm.alarm_id, 'alarm-id')
|
||||
|
||||
def test_delete(self):
|
||||
deleted = self.mgr.delete(alarm_id='victim-id')
|
||||
expect = [
|
||||
('DELETE', '/v2/alarms/victim-id', {}, None),
|
||||
]
|
||||
self.assertEqual(self.api.calls, expect)
|
||||
self.assertTrue(deleted is None)
|
||||
|
||||
Reference in New Issue
Block a user