[openstack-dev] [all] cross project communication: Return request-id to caller
geguileo at redhat.com
Tue Jul 28 08:37:42 UTC 2015
On Fri, Jul 24, 2015 at 10:08:45AM -0400, Doug Hellmann wrote:
> Excerpts from Kekane, Abhishek's message of 2015-07-24 06:33:00 +0000:
> > Hi Devs,
> > X-Openstack-Request-Id. We have analysed python-cinderclient, python-glanceclient, python-novaclient, python-keystoneclient and python-neutronclient to check the return types.
> > There are 9 ways return values are returned from python clients:
> > 1. List
> > 2. Dict
> > 3. Resource class object
> > 4. None
> > 5. Tuple
> > 6. Exception
> > 7. Boolean (True/False, for keystoneclient)
> > 8. Generator (for list api's in glanceclient)
> > 9. String (for novaclient)
> > Out of 9 we have solution for all return types except generator.
> > In case of glance-client list api's are returning generator which is immutable. So it is not possible to return request-id in this case, which is a blocker for adopting the solution.
> > I have added detail analysis for above return types in etherpad  as solution #3.
> > If you have any suggestion in case of generation type then please let me know.
> It should be possible to create a new class to wrap the existing
> generator and implement the iterator protocol .
>  https://docs.python.org/2/reference/expressions.html#generator-iterator-methods
Unless I'm missing something I think we wouldn't even need to create a
new class that implements the iterator protocol, we can just return a
generator that generates from the other one.
For example, for each of the requests, if we get the generator in
variable *result* that returns dictionaries and we want to add *headers*
to each dictionary:
return (DictWithHeaders(resource, headers) for resource in result)
Wouldn't that work?
> >  http://eavesdrop.openstack.org/meetings/crossproject/2015/crossproject.2015-07-07-21.01.log.html
> >  https://etherpad.openstack.org/p/request-id
> > Thanks & Best Regards,
> > Abhishek Kekane
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
More information about the OpenStack-dev