<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Nov 19, 2014, at 8:49 AM, Denis Makogon <<a href="mailto:dmakogon@mirantis.com">dmakogon@mirantis.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Hello Stackers.</span></div><br><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> <br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"></span><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> </span>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. <br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">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 <br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">multiple versions (actually it can if manager implementation can handle request for different RPC API versions).</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> 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.</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">But, as first step to understanding multi-versioning/multi-managers strategy for RPC services, i want to clarify few things. Current code maps <br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">single version to a list of RPC service endpoints implementation, so here comes question:</span></div><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; margin-left: 72pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> -</span><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline;"> Does a set of endpoints represent single RPC API version cap?</span></div><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> </span>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,</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> 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</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify; margin-left: 40px;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"> caps ‘endpoints’ would become a dictionary that contains pairs of ‘version_cap’-’endpoints’. This type of multi-versioning seems to be the easiest.</span></div><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-indent: 36pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-indent: 36pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Thoughts/Suggestion?</span></div></div></blockquote><div><br></div><div>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.</div><div><br></div><div>Thanks!</div><div>Doug</div><div><br></div><div>[1] <a href="http://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo/messaging/rpc/dispatcher.py#n153">http://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo/messaging/rpc/dispatcher.py#n153</a></div><br><blockquote type="cite"><div dir="ltr"><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"><br></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">[1] <a href="https://bugs.launchpad.net/oslo.messaging">https://bugs.launchpad.net/oslo.messaging</a></span><a href="https://launchpad.net/oslo.messaging" style="text-decoration:none"><span style="font-size:16px;font-family:"Times New Roman";color:rgb(17,85,204);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline"></span></a></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">[2] </span><a href="https://bugs.launchpad.net/oslo.messaging/+bug/1050374" style="text-decoration:none"><span style="font-size:16px;font-family:"Times New Roman";color:rgb(17,85,204);background-color:transparent;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">https://bugs.launchpad.net/oslo.messaging/+bug/1050374</span></a></div><br><br><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Kind regards,</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; text-align: justify;"><span style="font-size: 16px; font-family: 'Times New Roman'; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">Denis Makogon</span></div></div>
_______________________________________________<br>OpenStack-dev mailing list<br><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev<br></blockquote></div><br></body></html>