Import ceilometer-nova-compute

This script is used to grab notifications from existing hosts

Change-Id: I45826fd6941d7bd93464bf945903b6b41223745c
Signed-off-by: Julien Danjou <julien.danjou@enovance.com>
This commit is contained in:
Julien Danjou 2012-05-09 11:57:03 +02:00
parent bca0ead8d2
commit 85beac0fa8
3 changed files with 75 additions and 0 deletions

42
bin/ceilometer-nova-compute Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# Copyright © 2012 eNovance <licensing@enovance.com>
#
# Author: Julien Danjou <julien@danjou.info>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
def consumer(msg):
# XXX This should resend message to some bus for data collection
pass
if __name__ == '__main__':
import sys
from nova import flags
# Import rabbit_notifier to register notification_topics flag
import nova.notifier.rabbit_notifier
flags.FLAGS(sys.argv)
from ceilometer.rpc import Connection
connection = Connection(flags.FLAGS)
connection.create_consumer("%s.info" % flags.FLAGS.notification_topics[0],
consumer, fanout=False)
while True:
connection.consume()

0
ceilometer/__init__.py Normal file
View File

View File

@ -0,0 +1,33 @@
# -*- encoding: utf-8 -*-
#
# Copyright © 2012 eNovance <licensing@enovance.com>
#
# Author: Julien Danjou <julien@danjou.info>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from nova.rpc import impl_kombu
class Connection(impl_kombu.Connection):
"""A Kombu connection that does not use the AMQP Proxy class when
creating a consumer, so we can decode the message ourself."""
def create_consumer(self, topic, proxy, fanout=False):
"""Create a consumer without using ProxyCallback."""
if fanout:
self.declare_fanout_consumer(topic, proxy)
else:
self.declare_topic_consumer(topic, proxy)