Merge "Add support for deleting alarms."

This commit is contained in:
Jenkins
2013-05-20 04:29:04 +00:00
committed by Gerrit Code Review
3 changed files with 37 additions and 5 deletions

View File

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

View File

@@ -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={}):

View File

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