openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #09340
Re: Running code on instance start/terminate
Here's my code, i'm using pika library instead of amqplib.
import pika
>
> connection = pika.BlockingConnection(pika.ConnectionParameters(host=
> 'localhost',credentials=pika.PlainCredentials(username='guest',password=
> 'nova')))
>
> channel = connection.channel()
>
> print ' [*] Waiting for messages. To exit press CTRL+C'
>
>
> def callback(ch, method, properties, body):
>
> print " [x] Method:",method
>
> print " Properties:", properties
>
> print " Received %r" % (body,)
>
>
>
> result = channel.queue_declare(exclusive=True)
>
> queue_name = result.method.queue
>
>
> channel.exchange_declare(exchange='nova',type='topic')
>
> channel.queue_bind(exchange='nova',queue=queue_name, routing_key =
> 'notifications.#')
>
> channel.queue_bind(exchange='nova',queue=queue_name, routing_key =
> 'compute.#')
>
> channel.basic_consume(callback,
>
> queue=queue_name,
>
> no_ack=True)
>
>
> channel.start_consuming()
>
On Thu, Mar 29, 2012 at 6:50 PM, Rogério Vinhal Nunes
<rogervn@xxxxxxxxxxx>wrote:
> Actually, I'm having problems in a much simpler layer. I've done the
> following code thinking that I would start from there to find info:
>
> ---------------------
> conn = amqp.Connection(host="localhost:5672", userid="guest",
> password="guest", virtual_host="/", insist=False)
> chan = conn.channel()
> chan.queue_bind(queue="compute", exchange="nova", routing_key="
> notifications.info")
>
> def recv_callback(msg):
> print 'Received: ' + msg.body + ' from channel #' +
> str(msg.channel.channel_id)
>
> chan.basic_consume(queue='compute', no_ack=True, callback=recv_callback,
> consumer_tag="testtag")
> while True:
> chan.wait()
> chan.basic_cancel("testtag")
>
>
> chan.close()
> conn.close()
> ---------------------
>
> But I get no messages at all. The script just stays still. I've added
> "--notification_driver=nova.notifier.rabbit_notifier" to nova.conf also.
>
> Em 28 de março de 2012 18:46, Sandy Walsh <sandy.walsh@xxxxxxxxxxxxx>escreveu:
>
> Look at
>> https://github.com/rackspace/stacktach/blob/master/worker.py
>> (ignore the _process() call, just look at how the queue listeners are
>> set up)
>>
>> my worker_conf.py looks something like
>> DEPLOYMENTS = [
>> dict(
>> tenant_id=1,
>> url='http://stacktach.example.com',
>> rabbit_host="10.0.0.1",
>> rabbit_port=5672,
>> rabbit_userid="nova-staging",
>> rabbit_password="password",
>> rabbit_virtual_host="staging"),
>> dict(
>> tenant_id=2,
>> url='http://stacktach.example.com',
>> rabbit_host="10.99.0.1",
>> rabbit_port=5672,
>> rabbit_userid="nova",
>> rabbit_password="password",
>> rabbit_virtual_host="production"),
>> ]
>>
>>
>> Or the queue listeners in
>> https://github.com/Cerberus98/yagi
>>
>> Hope it helps!
>> -Sandy
>>
>>
>> On 03/28/2012 05:27 PM, Leander Bessa wrote:
>> >>From what i have figured out so far, the exchange queue is "nova" and
>> > the routing key in your case is "notifications.info
>> > <http://notifications.info>".
>> >
>> > On Wed, Mar 28, 2012 at 9:05 PM, Rogério Vinhal Nunes
>> > <rogervn@xxxxxxxxxxx <mailto:rogervn@xxxxxxxxxxx>> wrote:
>> >
>> > I'm trying to find out information to make an application that
>> > consumes the compute info, but I'm having some trouble. Is there a
>> > better documentation I could follow and the precise details of the
>> > queue/exchange/routing_key needed to take information at the end of
>> > each run-instance and terminate-instance?
>> >
>> > Also, I'm using amqplib and I saw that Openstack uses an internal
>> > library named Carrot that uses amqplib. Would it be better to use it
>> > instead?
>> >
>> > Em 27 de março de 2012 12:42, Sandy Walsh <
>> sandy.walsh@xxxxxxxxxxxxx
>> > <mailto:sandy.walsh@xxxxxxxxxxxxx>> escreveu:
>> >
>> > I believe '.exists' is sent via a periodic update in
>> > compute.manager.
>> >
>> >
>> >
>> > On 03/27/2012 12:08 PM, Leander Bessa wrote:
>> > > Hello,
>> > >
>> > > I've been following this topic and i've been trying to
>> receive the
>> > > notifications directly from rabbitmq with python+pika. So i
>> far
>> > > i've managed to receive the start/terminate events and
>> > everything in
>> > > between. What i am unable to find though is the topic
>> regarding
>> > > _compute.instance.exists_
>> > > from http://wiki.openstack.org/SystemUsageData. Does this
>> even
>> > exist, or
>> > > is there some extra configuration required with nova?
>> > >
>> > > Regards,
>> > >
>> > > Leander
>> > >
>> > > On Mon, Mar 26, 2012 at 4:54 PM, Russell Bryant
>> > <rbryant@xxxxxxxxxx <mailto:rbryant@xxxxxxxxxx>
>> > > <mailto:rbryant@xxxxxxxxxx <mailto:rbryant@xxxxxxxxxx>>>
>> wrote:
>> > >
>> > > -----BEGIN PGP SIGNED MESSAGE-----
>> > > Hash: SHA1
>> > >
>> > > On 03/26/2012 11:48 AM, Russell Bryant wrote:
>> > > > On 03/26/2012 10:15 AM, Rogério Vinhal Nunes wrote:
>> > > >> Hello,
>> > > >>
>> > > >> I'm developing a application to work along with
>> > openstack. My
>> > > >> application needs to keep track of all instances being
>> > started
>> > > >> or terminated such as feeding it information about the
>> > location,
>> > > >> status and other information about launched and
>> terminated
>> > > >> instances. The current version makes timed queries to
>> > OpenStack
>> > > >> database, but this is showing to be a little consuming
>> and
>> > > >> inefficient, so I would like to add a portion of code
>> > to make
>> > > >> OpenStack actively feed my application information
>> > whenever an
>> > > >> instance changes its status or location.
>> > > >>
>> > > >> What is the least intrusive way to do that? It would be
>> > very nice
>> > > >> if OpenStack provided a way to run code on these
>> situations
>> > > >> without actually changing any code, such as defining a
>> > directory
>> > > >> of scripts to run in every instance status change.
>> > > >
>> > > > Check out the notifications system:
>> > > >
>> > > > http://wiki.openstack.org/NotificationSystem
>> > > >
>> > >
>> > > That wasn't the page I thought it was ... I meant:
>> > >
>> > > http://wiki.openstack.org/SystemUsageData
>> > >
>> > > You can consume these events via AMQP if you configure
>> > nova to use the
>> > > rabbit notifier.
>> > >
>> > > - --
>> > > Russell Bryant
>> > > -----BEGIN PGP SIGNATURE-----
>> > > Version: GnuPG v1.4.12 (GNU/Linux)
>> > > Comment: Using GnuPG with Mozilla -
>> > http://enigmail.mozdev.org/
>> > >
>> > >
>> > iEYEARECAAYFAk9wkSgACgkQFg9ft4s9SAYFuACfUu23qtxiH6WLCJNyd9gBf8i1
>> > > FwQAnifjwWkFHYxo+KhYt8TAWEzTaMYZ
>> > > =UWlH
>> > > -----END PGP SIGNATURE-----
>> > >
>> > > _______________________________________________
>> > > Mailing list: https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > > Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> > <mailto:openstack@xxxxxxxxxxxxxxxxxxx>
>> > > <mailto:openstack@xxxxxxxxxxxxxxxxxxx
>> > <mailto:openstack@xxxxxxxxxxxxxxxxxxx>>
>> > > Unsubscribe : https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > > More help : https://help.launchpad.net/ListHelp
>> > >
>> > >
>> > >
>> > >
>> > > _______________________________________________
>> > > Mailing list: https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > > Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> > <mailto:openstack@xxxxxxxxxxxxxxxxxxx>
>> > > Unsubscribe : https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > > More help : https://help.launchpad.net/ListHelp
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> > <mailto:openstack@xxxxxxxxxxxxxxxxxxx>
>> > Unsubscribe : https://launchpad.net/~openstack
>> > <https://launchpad.net/%7Eopenstack>
>> > More help : https://help.launchpad.net/ListHelp
>> >
>> >
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~openstack
>> > Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> > <mailto:openstack@xxxxxxxxxxxxxxxxxxx>
>> > Unsubscribe : https://launchpad.net/~openstack
>> > More help : https://help.launchpad.net/ListHelp
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~openstack
>> > Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> > Unsubscribe : https://launchpad.net/~openstack
>> > More help : https://help.launchpad.net/ListHelp
>>
>
>
Follow ups
References