[openstack-dev] [nova] Versioned notifications... who cares about the version?

Ryan Rossiter rlrossit at linux.vnet.ibm.com
Thu Nov 19 22:05:54 UTC 2015


Reading through [1] I started getting worries in the back of my head 
about versioning these notifications. The main concern being how can the 
consumer know about the versions and what's different between them? 
Because these versioned notification payloads hold live nova objects, 
there can be a lot of rug-pulling going on underneath these 
notifications. If the payload doesn't pin itself to a certain level of 
the object, a consumer can never be guaranteed the version of the 
payload's object they will be receiving. I ran through a few of the 
scenarios about irregular versions in the notifications subteam meeting 
on Tuesday [2].

My question is.... do we care about the consumer? Or is it a case of 
"the consumer is always right" so we need to make sure we hand them 
super consistent, well-defined blobs across the wire? Consumers will 
have no idea of nova object internals, unless they feel like `python -c 
import nova`. I do think we get one piece of help from o.vo though. When 
the object is serialized, it hands the version with the object. So 
consumers can look at the object and say "oh, I got 1.4 I know what to 
do with this". But... they will have to implement their own compat 
logic. Everyone will have to implement their own compat logic.

We could expose a new API for getting the schema for a specific version 
of a notification, so a consumer will know what they're getting with 
their notifications. But I think that made mriedem nauseous. We could 
make an oslo library that stuffs a shim in between o.vo and nova's 
notifications to help out with compat/versioning, but that sounds like a 
lot of work, especially because the end goal is still not clearly defined.

Thoughts?

[1] https://review.openstack.org/#/c/247024
[2] 
http://eavesdrop.openstack.org/irclogs/%23openstack-meeting-alt/%23openstack-meeting-alt.2015-11-17.log.html#t2015-11-17T20:22:29

-- 
Thanks,

Ryan Rossiter (rlrossit)




More information about the OpenStack-dev mailing list