[openstack-dev] [nova] blueprints / todos out of nova api consistency design session

Monsyne Dragon mdragon at RACKSPACE.COM
Thu Nov 1 22:52:18 UTC 2012


On Nov 1, 2012, at 3:34 PM, Sean Dague wrote:

> On 11/01/2012 02:51 PM, Gabe Westmaas wrote:
> <snip
>> Definitely a big thanks Sean.
>> 
>> I think there was something else in this session we talked about that
>> wasn't captured in the ether pad (also possible it was another session).
>> We need to start thinking about notifications a bit more rigorously as
>> well.  Versioning the notifications and treating them as another
>> (readonly) API.I'm not sure if it should be included in the same set of
>> blueprints, or just done independently, but I want to make sure we don't
>> forget that thread. Seems like we need a blueprint to start versioning if
>> there are changes we want to make to the notifications format.  In
>> addition we may need a blueprint to determine some possible strategies for
>> supporting the venting of multiple notification versions.  I'm happy to
>> work on those as long as no one else has them.
> 
> Absolutely, that actually came up in the live upgrade session in the nova room, and Dan Smith was good enough to do a very big capture of that here - http://lists.openstack.org/pipermail/openstack-dev/2012-October/001969.html
> 
> Assuming there is mostly general thumbs up on these lists, and not flying fruit, we'll start putting them into launchpad tomorrow for prioritizing.
> 
> 	-Sean
> 

Yah, this would be good to see.  
My main concerns are: 

That the versioned notifications are backwards compatible with the current ones, and
that we keep to the KISS principle with notifications :-> 

I think it could be as simple as adding a 'message_version' key to the payload with a major.minor version number (and versioning independently per event_type)

I've also pondered adding a per-event_type config for driver output/filtering, similar to the python logger (which the notification system is largely patterned after).
So compute.instance.resize.* goes to a rabbit queues x and y, error notifications to syslog, and they don't use compute.instance.update, so don't even send those out. 
Such a config could also specify versions desired (1.x for compute.instance.exists, 2.x for some other, whatever is latest for the rest, etc.) 


--
	Monsyne Dragon




More information about the OpenStack-dev mailing list