<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-07-04 16:47 GMT+03:00 Roman Podoliaka <span dir="ltr"><<a href="mailto:rpodolyaka@mirantis.com" target="_blank">rpodolyaka@mirantis.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That's exactly what <a href="https://github.com/koder-ua/os_api" rel="noreferrer" target="_blank">https://github.com/koder-ua/os_api</a> is for: it<br>
polls status changes in a separate thread and then updates the<br>
futures, so that you can wait on multiple futures at once.<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div><br></div><div>This is what i exactly want to avoid - new thread. I'm using event loop with uvloop policy, so i must stay non-blocked within main thread and don't mess up with GIL by instantiating new thread. With coroutines concept from asyncio i can do non-blocking operations relying on EPOLL under the hood.</div><div><br></div><div>Kind regards,</div><div>Denys Makogon</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
On Mon, Jul 4, 2016 at 2:19 PM, Denis Makogon <<a href="mailto:lildee1991@gmail.com">lildee1991@gmail.com</a>> wrote:<br>
><br>
><br>
> 2016-07-04 13:22 GMT+03:00 Roman Podoliaka <<a href="mailto:rpodolyaka@mirantis.com">rpodolyaka@mirantis.com</a>>:<br>
>><br>
>> Denis,<br>
>><br>
>> >  Major problem<br>
>> > appears when you trying to provision resource that requires to have some<br>
>> > time to reach ACTIVE/COMPLETED state (like, nova instance, stack, trove<br>
>> > database, etc.) and you have to use polling for status changes and in<br>
>> > general polling requires to send HTTP requests within specific time<br>
>> > frame<br>
>> > defined by number of polling retries and delays between them (almost all<br>
>> > PaaS solutions in OpenStack are doing it that might be the case of<br>
>> > distributed backend services, but not for async frameworks).<br>
>><br>
>> How would an asynchronous client help you avoid polling here? You'd<br>
>> need some sort of a streaming API producing events on the server side.<br>
>><br>
><br>
> No, it would not help me to get rid of polling, but using async requests<br>
> will allow to proceed with next independent async tasks while awaiting<br>
> result on async HTTP request.<br>
><br>
>><br>
>> If you are simply looking for a better API around polling in OS<br>
>> clients, take a look at <a href="https://github.com/koder-ua/os_api" rel="noreferrer" target="_blank">https://github.com/koder-ua/os_api</a> , which is<br>
>> based on futures (be aware that HTTP requests are still *synchronous*<br>
>> under the hood).<br>
>><br>
>> Thanks,<br>
>> Roman<br>
>><br>
>> __________________________________________________________________________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
><br>
><br>
> __________________________________________________________________________<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>