diff options
author | Lena Novokshonova <enovokshonova@mirantis.com> | 2014-10-27 16:40:57 +0400 |
---|---|---|
committer | Lena Novokshonova <enovokshonova@mirantis.com> | 2014-11-12 17:50:53 +0400 |
commit | 2891d168f81a83eef31f768f7a6e7603acff2ea4 (patch) | |
tree | 45e8232904ae08b18390153f41755e4a7ca8d873 /ceilometer/volume | |
parent | c1323cc47c9edec70b3c4dbfb257d1e6b3af7d14 (diff) | |
download | ceilometer-2891d168f81a83eef31f768f7a6e7603acff2ea4.tar.gz |
Add new notifications types for volumes/snapshots
This change allows to collect and view notifications of different types -
volume/snapshot.(create | delete | update).(start | end) and
volume.(resize | attach | detach).(start | end).
Implements: blueprint add-new-notifications-types-for-volumes-and-snapshots
Change-Id: I592605bcea483d06f219a4d02d3a70a9fc0e27a3
Diffstat (limited to 'ceilometer/volume')
-rw-r--r-- | ceilometer/volume/notifications.py | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/ceilometer/volume/notifications.py b/ceilometer/volume/notifications.py index baee3e23..e9106bcb 100644 --- a/ceilometer/volume/notifications.py +++ b/ceilometer/volume/notifications.py @@ -24,7 +24,6 @@ import oslo.messaging from ceilometer import plugin from ceilometer import sample - OPTS = [ cfg.StrOpt('cinder_control_exchange', default='cinder', @@ -35,7 +34,7 @@ OPTS = [ cfg.CONF.register_opts(OPTS) -class _Base(plugin.NotificationBase): +class VolumeBase(plugin.NotificationBase): """Convert volume/snapshot notification into Counters.""" @staticmethod @@ -50,7 +49,7 @@ class _Base(plugin.NotificationBase): for topic in conf.notification_topics] -class _VolumeBase(_Base): +class VolumeCRUDBase(VolumeBase): """Convert volume notifications into Counters.""" event_types = [ @@ -60,10 +59,24 @@ class _VolumeBase(_Base): 'volume.resize.*', 'volume.attach.*', 'volume.detach.*', + 'volume.update.*' ] -class Volume(_VolumeBase): +class VolumeCRUD(VolumeCRUDBase): + def process_notification(self, message): + yield sample.Sample.from_notification( + name=message['event_type'], + type=sample.TYPE_DELTA, + unit='volume', + volume=1, + user_id=message['payload']['user_id'], + project_id=message['payload']['tenant_id'], + resource_id=message['payload']['volume_id'], + message=message) + + +class Volume(VolumeCRUDBase): def process_notification(self, message): yield sample.Sample.from_notification( name='volume', @@ -76,7 +89,7 @@ class Volume(_VolumeBase): message=message) -class VolumeSize(_VolumeBase): +class VolumeSize(VolumeCRUDBase): def process_notification(self, message): yield sample.Sample.from_notification( name='volume.size', @@ -89,18 +102,31 @@ class VolumeSize(_VolumeBase): message=message) -class _SnapshotBase(_Base): +class SnapshotCRUDBase(VolumeBase): """Convert snapshot notifications into Counters.""" event_types = [ 'snapshot.exists', 'snapshot.create.*', 'snapshot.delete.*', - 'snapshot.resize.*', + 'snapshot.update.*' ] -class Snapshot(_SnapshotBase): +class SnapshotCRUD(SnapshotCRUDBase): + def process_notification(self, message): + yield sample.Sample.from_notification( + name=message['event_type'], + type=sample.TYPE_DELTA, + unit='snapshot', + volume=1, + user_id=message['payload']['user_id'], + project_id=message['payload']['tenant_id'], + resource_id=message['payload']['snapshot_id'], + message=message) + + +class Snapshot(SnapshotCRUDBase): def process_notification(self, message): yield sample.Sample.from_notification( name='snapshot', @@ -113,7 +139,7 @@ class Snapshot(_SnapshotBase): message=message) -class SnapshotSize(_SnapshotBase): +class SnapshotSize(SnapshotCRUDBase): def process_notification(self, message): yield sample.Sample.from_notification( name='snapshot.size', @@ -123,4 +149,4 @@ class SnapshotSize(_SnapshotBase): user_id=message['payload']['user_id'], project_id=message['payload']['tenant_id'], resource_id=message['payload']['snapshot_id'], - message=message) + message=message)
\ No newline at end of file |