| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| import oslo_messaging |
| from oslo_config import cfg |
| |
| from ceilometer.agent import plugin_base |
| from oslo_log import log |
| from ceilometer import sample |
| |
| OPTS = [ |
| cfg.StrOpt('passivetestservice_control_exchange', |
| default='passivetestservice', |
| help="Exchange name for PassiveTest notifications."), |
| ] |
| |
| cfg.CONF.register_opts(OPTS) |
| |
| LOG = log.getLogger(__name__) |
| |
| class PassiveTestNotification(plugin_base.NotificationBase): |
| |
| resource_name = None |
| event_types = ['passivetest.stats'] |
| |
| def get_targets(self,conf): |
| """Return a sequence of oslo.messaging.Target |
| |
| This sequence is defining the exchange and topics to be connected for |
| this plugin. |
| """ |
| |
| return [oslo_messaging.Target(topic=topic, |
| exchange=conf.passivetestservice_control_exchange) |
| for topic in self.get_notification_topics(conf)] |
| |
| |
| def process_notification(self, message): |
| LOG.debug('Received Passivetest event passivetest.stats') |
| |
| if message['payload']: |
| message['payload']['volume']=float(message['payload']['volume']) |
| yield sample.Sample.from_notification( |
| message=message, |
| **message['payload']) |