On 11/19/2014 09:18 AM, Doug Hellmann wrote: > > On Nov 19, 2014, at 8:49 AM, Denis Makogon <dmako...@mirantis.com > <mailto:dmako...@mirantis.com>> wrote: > >> Hello Stackers. >> >> >> >> When i was browsing through bugs of oslo.messaging [1] i found >> one [2] pretty interesting (it’s old as universe), but it doesn’t seem >> like a bug, mostly like a blueprint. >> Digging into code of oslo.messaging i’ve found that, at least, for >> now, there’s no way launch single service that would be able to handle >> multiple versions (actually it can if manager implementation can >> handle request for different RPC API versions). >> >> So, i’d like to understand if it’s still valid? And if it is >> i’d like to collect use cases from all projects and see if >> oslo.messaging can handle such case. >> But, as first step to understanding multi-versioning/multi-managers >> strategy for RPC services, i want to clarify few things. Current code >> maps >> single version to a list of RPC service endpoints implementation, so >> here comes question: >> >> -Does a set of endpoints represent single RPC API version cap? >> >> If that’s it, how should we represent multi-versioning? If >> we’d follow existing pattern: each RPC API version cap represents its >> own set of endpoints, >> let me provide some implementation details here, for now ‘endpoints’ >> is a list of classes for a single version cap, but if we’d support >> multiple version >> caps ‘endpoints’ would become a dictionary that contains pairs of >> ‘version_cap’-’endpoints’. This type of multi-versioning seems to be >> the easiest. >> >> >> Thoughts/Suggestion? > > The dispatcher [1] supports endpoints with versions, and searches for a > compatible endpoint for incoming requests. I’ll go ahead and close the > ticket. There are lots of others open and valid, so you might want to > start looking at some that aren’t quite so old if you’re looking for > something to contribute. Drop by #openstack-oslo on freenode if you want > to chat about any of them. > > Thanks! > Doug > > [1] > http://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo/messaging/rpc/dispatcher.py#n153
In particular, each endpoint can have an associated namespace, which effectively allows separate APIs to be separately versioned since a request comes in and identifies the namespace it is targeting. Services can also separate versions by just using multiple topics. -- Russell Bryant _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev