add missing objectstore entry points
the ceilometermiddleware notifications are missing entry points. this patch adds them. it also breaks the endpoint in two: one to build real meters and one to build the request event meter. Change-Id: I75ba73c150c0d9fa282d0388fb7178e351511097 Closes-Bug: #1425303
This commit is contained in:
parent
beed4d4569
commit
29b2709256
@ -46,6 +46,25 @@ class _Base(plugin_base.NotificationBase):
|
||||
|
||||
class SwiftWsgiMiddleware(_Base):
|
||||
|
||||
@property
|
||||
def event_types(self):
|
||||
return ['objectstore.http.request']
|
||||
|
||||
def process_notification(self, message):
|
||||
yield sample.Sample.from_notification(
|
||||
name='storage.api.request',
|
||||
type=sample.TYPE_DELTA,
|
||||
unit='request',
|
||||
volume=1,
|
||||
resource_id=message['payload']['target']['id'],
|
||||
user_id=message['payload']['initiator']['id'],
|
||||
project_id=message['payload']['initiator']['project_id'],
|
||||
message=message)
|
||||
|
||||
|
||||
class SwiftWsgiMiddlewareMeters(_Base):
|
||||
|
||||
@property
|
||||
def event_types(self):
|
||||
return ['objectstore.http.request']
|
||||
|
||||
@ -61,12 +80,3 @@ class SwiftWsgiMiddleware(_Base):
|
||||
user_id=message['payload']['initiator']['id'],
|
||||
project_id=message['payload']['initiator']['project_id'],
|
||||
message=message)
|
||||
yield sample.Sample.from_notification(
|
||||
name='storage.api.request',
|
||||
type=sample.TYPE_DELTA,
|
||||
unit='request',
|
||||
volume=1,
|
||||
resource_id=message['payload']['target']['id'],
|
||||
user_id=message['payload']['initiator']['id'],
|
||||
project_id=message['payload']['initiator']['project_id'],
|
||||
message=message)
|
||||
|
@ -92,15 +92,24 @@ class TestMiddlewareNotifications(test.BaseTestCase):
|
||||
def test_middleware_event(self):
|
||||
v = notifications.SwiftWsgiMiddleware(mock.Mock())
|
||||
samples = list(v.process_notification(MIDDLEWARE_EVENT))
|
||||
self.assertEqual(3, len(samples))
|
||||
self.assertEqual(1, len(samples))
|
||||
target = MIDDLEWARE_EVENT['payload']['target']
|
||||
initiator = MIDDLEWARE_EVENT['payload']['initiator']
|
||||
self.assertEqual(target['id'], samples[0].resource_id)
|
||||
self.assertEqual(initiator['id'], samples[0].user_id)
|
||||
self.assertEqual(initiator['project_id'], samples[0].project_id)
|
||||
|
||||
def test_middleware_event_meters(self):
|
||||
v = notifications.SwiftWsgiMiddlewareMeters(mock.Mock())
|
||||
samples = list(v.process_notification(MIDDLEWARE_EVENT))
|
||||
self.assertEqual(2, len(samples))
|
||||
target = MIDDLEWARE_EVENT['payload']['target']
|
||||
initiator = MIDDLEWARE_EVENT['payload']['initiator']
|
||||
for i in range(2):
|
||||
measure = MIDDLEWARE_EVENT['payload']['measurements'][i]
|
||||
self.assertEqual(measure['metric']['name'], samples[i].name)
|
||||
self.assertEqual(measure['metric']['unit'], samples[i].unit)
|
||||
self.assertEqual(measure['result'], samples[i].volume)
|
||||
target = MIDDLEWARE_EVENT['payload']['target']
|
||||
initiator = MIDDLEWARE_EVENT['payload']['initiator']
|
||||
for i in range(3):
|
||||
self.assertEqual(target['id'], samples[i].resource_id)
|
||||
self.assertEqual(initiator['id'], samples[i].user_id)
|
||||
self.assertEqual(initiator['project_id'], samples[i].project_id)
|
||||
|
@ -92,6 +92,8 @@ ceilometer.notification =
|
||||
network.services.vpn.ipsecpolicy = ceilometer.network.notifications:IPSecPolicy
|
||||
network.services.vpn.ikepolicy = ceilometer.network.notifications:IKEPolicy
|
||||
network.services.vpn.connections = ceilometer.network.notifications:IPSecSiteConnection
|
||||
objectstore.request = ceilometer.objectstore.notifications:SwiftWsgiMiddleware
|
||||
objectstore.request.meters = ceilometer.objectstore.notifications:SwiftWsgiMiddlewareMeters
|
||||
|
||||
ceilometer.discover =
|
||||
local_instances = ceilometer.compute.discovery:InstanceDiscovery
|
||||
|
Loading…
x
Reference in New Issue
Block a user