Merge "Add methods to resource classes"
This commit is contained in:
@@ -201,6 +201,10 @@ fixtures = {
|
|||||||
{},
|
{},
|
||||||
UPDATED_ALARM,
|
UPDATED_ALARM,
|
||||||
),
|
),
|
||||||
|
'DELETE': (
|
||||||
|
{},
|
||||||
|
None,
|
||||||
|
),
|
||||||
},
|
},
|
||||||
'/v2/alarms/alarm-id/state':
|
'/v2/alarms/alarm-id/state':
|
||||||
{
|
{
|
||||||
@@ -343,6 +347,40 @@ class AlarmManagerTest(testtools.TestCase):
|
|||||||
self.assertEqual(self.api.calls, expect)
|
self.assertEqual(self.api.calls, expect)
|
||||||
self.assertTrue(deleted is None)
|
self.assertTrue(deleted is None)
|
||||||
|
|
||||||
|
def test_get_from_alarm_class(self):
|
||||||
|
alarm = self.mgr.get(alarm_id='alarm-id')
|
||||||
|
self.assertTrue(alarm)
|
||||||
|
alarm.get()
|
||||||
|
expect = [
|
||||||
|
('GET', '/v2/alarms/alarm-id', {}, None),
|
||||||
|
('GET', '/v2/alarms/alarm-id', {}, None)
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertEqual('alarm-id', alarm.alarm_id)
|
||||||
|
self.assertEqual(alarm.threshold_rule, alarm.rule)
|
||||||
|
|
||||||
|
def test_get_state_from_alarm_class(self):
|
||||||
|
alarm = self.mgr.get(alarm_id='alarm-id')
|
||||||
|
self.assertTrue(alarm)
|
||||||
|
state = alarm.get_state()
|
||||||
|
expect = [
|
||||||
|
('GET', '/v2/alarms/alarm-id', {}, None),
|
||||||
|
('GET', '/v2/alarms/alarm-id/state', {}, None)
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertEqual('alarm', state)
|
||||||
|
|
||||||
|
def test_delete_from_alarm_class(self):
|
||||||
|
alarm = self.mgr.get(alarm_id='alarm-id')
|
||||||
|
self.assertTrue(alarm)
|
||||||
|
deleted = alarm.delete()
|
||||||
|
expect = [
|
||||||
|
('GET', '/v2/alarms/alarm-id', {}, None),
|
||||||
|
('DELETE', '/v2/alarms/alarm-id', {}, None)
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertTrue(deleted is None)
|
||||||
|
|
||||||
def _do_test_get_history(self, q, url):
|
def _do_test_get_history(self, q, url):
|
||||||
history = self.mgr.get_history(q=q, alarm_id='alarm-id')
|
history = self.mgr.get_history(q=q, alarm_id='alarm-id')
|
||||||
expect = [('GET', url, {}, None)]
|
expect = [('GET', url, {}, None)]
|
||||||
|
|||||||
@@ -22,22 +22,22 @@ fixtures = {
|
|||||||
{},
|
{},
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
'message_id': '1',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'abc',
|
'traits': {'trait_A': 'abc'},
|
||||||
'message_id': '1'},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
'message_id': '2',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'def',
|
'traits': {'trait_A': 'def'},
|
||||||
'message_id': '2'},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
'message_id': '3',
|
||||||
'event_type': 'Bar',
|
'event_type': 'Bar',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_B': 'bartrait',
|
'traits': {'trait_B': 'bartrait'},
|
||||||
'message_id': '3'},
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@@ -48,18 +48,18 @@ fixtures = {
|
|||||||
{},
|
{},
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
'message_id': '1',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'abc',
|
'traits': {'trait_A': 'abc',
|
||||||
'hostname': 'localhost',
|
'hostname': 'localhost'},
|
||||||
'message_id': '1'},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
'message_id': '2',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'def',
|
'traits': {'trait_A': 'def',
|
||||||
'hostname': 'localhost',
|
'hostname': 'localhost'},
|
||||||
'message_id': '2'},
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@@ -70,18 +70,18 @@ fixtures = {
|
|||||||
{},
|
{},
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
'message_id': '1',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'abc',
|
'traits': {'trait_A': 'abc',
|
||||||
'hostname': 'foreignhost',
|
'hostname': 'foreignhost'},
|
||||||
'message_id': '1'},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
'message_id': '2',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'def',
|
'traits': {'trait_A': 'def',
|
||||||
'hostname': 'foreignhost',
|
'hostname': 'foreignhost'},
|
||||||
'message_id': '2'},
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@@ -93,12 +93,12 @@ fixtures = {
|
|||||||
{},
|
{},
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
'message_id': '1',
|
||||||
'event_type': 'Bar',
|
'event_type': 'Bar',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'abc',
|
'traits': {'trait_A': 'abc',
|
||||||
'hostname': 'localhost',
|
'hostname': 'localhost',
|
||||||
'num_cpus': '5',
|
'num_cpus': '5'},
|
||||||
'message_id': '1'},
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@@ -109,10 +109,10 @@ fixtures = {
|
|||||||
'GET': (
|
'GET': (
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
|
'message_id': '2',
|
||||||
'event_type': 'Foo',
|
'event_type': 'Foo',
|
||||||
'generated': '1970-01-01T00:00:00',
|
'generated': '1970-01-01T00:00:00',
|
||||||
'traits': {'trait_A': 'def',
|
'traits': {'trait_A': 'def',
|
||||||
'message_id': '2',
|
|
||||||
'intTrait': '42'},
|
'intTrait': '42'},
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
@@ -186,3 +186,14 @@ class EventManagerTest(utils.BaseTestCase):
|
|||||||
]
|
]
|
||||||
self.assertEqual(self.api.calls, expect)
|
self.assertEqual(self.api.calls, expect)
|
||||||
self.assertEqual(len(events), 1)
|
self.assertEqual(len(events), 1)
|
||||||
|
|
||||||
|
def test_get_from_event_class(self):
|
||||||
|
event = self.mgr.get(2)
|
||||||
|
self.assertTrue(event)
|
||||||
|
event.get()
|
||||||
|
expect = [
|
||||||
|
('GET', '/v2/events/2', {}, None),
|
||||||
|
('GET', '/v2/events/2', {}, None),
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertEqual('Foo', event.event_type)
|
||||||
|
|||||||
@@ -104,3 +104,14 @@ class ResourceManagerTest(utils.BaseTestCase):
|
|||||||
self.assertEqual(self.api.calls, expect)
|
self.assertEqual(self.api.calls, expect)
|
||||||
self.assertEqual(len(resources), 1)
|
self.assertEqual(len(resources), 1)
|
||||||
self.assertEqual(resources[0].resource_id, 'a')
|
self.assertEqual(resources[0].resource_id, 'a')
|
||||||
|
|
||||||
|
def test_get_from_resource_class(self):
|
||||||
|
resource = self.mgr.get(resource_id='a')
|
||||||
|
self.assertTrue(resource)
|
||||||
|
resource.get()
|
||||||
|
expect = [
|
||||||
|
('GET', '/v2/resources/a', {}, None),
|
||||||
|
('GET', '/v2/resources/a', {}, None),
|
||||||
|
]
|
||||||
|
self.assertEqual(expect, self.api.calls)
|
||||||
|
self.assertEqual('a', resource.resource_id)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import warnings
|
|||||||
|
|
||||||
from ceilometerclient.common import base
|
from ceilometerclient.common import base
|
||||||
from ceilometerclient.common import utils
|
from ceilometerclient.common import utils
|
||||||
|
from ceilometerclient import exc
|
||||||
from ceilometerclient.v2 import options
|
from ceilometerclient.v2 import options
|
||||||
|
|
||||||
|
|
||||||
@@ -48,8 +49,16 @@ class Alarm(base.Resource):
|
|||||||
# that look like the Alarm storage object
|
# that look like the Alarm storage object
|
||||||
if k == 'rule':
|
if k == 'rule':
|
||||||
k = '%s_rule' % self.type
|
k = '%s_rule' % self.type
|
||||||
|
if k == 'id':
|
||||||
|
return self.alarm_id
|
||||||
return super(Alarm, self).__getattr__(k)
|
return super(Alarm, self).__getattr__(k)
|
||||||
|
|
||||||
|
def delete(self):
|
||||||
|
return self.manager.delete(self.alarm_id)
|
||||||
|
|
||||||
|
def get_state(self):
|
||||||
|
return self.manager.get_state(self.alarm_id)
|
||||||
|
|
||||||
|
|
||||||
class AlarmChange(base.Resource):
|
class AlarmChange(base.Resource):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
@@ -74,6 +83,13 @@ class AlarmManager(base.Manager):
|
|||||||
return self._list(self._path(alarm_id), expect_single=True)[0]
|
return self._list(self._path(alarm_id), expect_single=True)[0]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
return None
|
return None
|
||||||
|
except exc.HTTPNotFound:
|
||||||
|
# When we try to get deleted alarm HTTPNotFound occurs
|
||||||
|
# or when alarm doesn't exists this exception don't must
|
||||||
|
# go deeper because cleanUp() (method which remove all
|
||||||
|
# created things like instance, alarm, etc.) at scenario
|
||||||
|
# tests doesn't know how to process it
|
||||||
|
return None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _compat_legacy_alarm_kwargs(cls, kwargs, create=False):
|
def _compat_legacy_alarm_kwargs(cls, kwargs, create=False):
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ class Event(base.Resource):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<Event %s>" % self._info
|
return "<Event %s>" % self._info
|
||||||
|
|
||||||
|
def __getattr__(self, k):
|
||||||
|
if k == 'id':
|
||||||
|
return self.message_id
|
||||||
|
return super(Event, self).__getattr__(k)
|
||||||
|
|
||||||
|
|
||||||
class EventManager(base.Manager):
|
class EventManager(base.Manager):
|
||||||
resource_class = Event
|
resource_class = Event
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ class Resource(base.Resource):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<Resource %s>" % self._info
|
return "<Resource %s>" % self._info
|
||||||
|
|
||||||
|
def __getattr__(self, k):
|
||||||
|
if k == 'id':
|
||||||
|
return self.resource_id
|
||||||
|
return super(Resource, self).__getattr__(k)
|
||||||
|
|
||||||
|
|
||||||
class ResourceManager(base.Manager):
|
class ResourceManager(base.Manager):
|
||||||
resource_class = Resource
|
resource_class = Resource
|
||||||
|
|||||||
@@ -322,9 +322,8 @@ def _display_alarm(alarm):
|
|||||||
help='ID of the alarm to show.')
|
help='ID of the alarm to show.')
|
||||||
def do_alarm_show(cc, args={}):
|
def do_alarm_show(cc, args={}):
|
||||||
'''Show an alarm.'''
|
'''Show an alarm.'''
|
||||||
try:
|
alarm = cc.alarms.get(args.alarm_id)
|
||||||
alarm = cc.alarms.get(args.alarm_id)
|
if alarm is None:
|
||||||
except exc.HTTPNotFound:
|
|
||||||
raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
|
raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
|
||||||
else:
|
else:
|
||||||
_display_alarm(alarm)
|
_display_alarm(alarm)
|
||||||
|
|||||||
Reference in New Issue
Block a user