Bug 1436981 - [RFE] Add support for asynchronous requests and pipe-lining
Summary: [RFE] Add support for asynchronous requests and pipe-lining
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine-sdk-python
Classification: oVirt
Component: Core
Version: 4.1.3
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ovirt-4.1.3
: 4.1.4
Assignee: Ondra Machacek
QA Contact: Radim Hrazdil
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-03-29 07:55 UTC by Juan Hernández
Modified: 2017-07-06 13:18 UTC (History)
8 users (show)

Fixed In Version: python-ovirt-engine-sdk4-4.1.4
Clone Of:
Environment:
Last Closed: 2017-07-06 13:18:23 UTC
oVirt Team: Infra
Embargoed:
rule-engine: ovirt-4.1+
rule-engine: ovirt-4.2+
mgoldboi: planning_ack+
mperina: devel_ack+
lsvaty: testing_ack+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 76041 0 master MERGED Add support for asynchronous requests 2020-06-24 10:27:46 UTC
oVirt gerrit 76462 0 sdk_4.1 MERGED Add support for asynchronous requests 2020-06-24 10:27:45 UTC

Description Juan Hernández 2017-03-29 07:55:34 UTC
Currently the Python SDK works always in a synchronous fashion. This RFE is about adding the ability to perform requests in an asynchronous way, without waiting for the responses. That should be combined with the support for multiple simultaneous HTTP connections, and HTTP pipe-lining.

Similar changes have already been done for the Ruby SDK. I believe that the interface should be similar, using the 'future' concept. There is an example of how to use this in the Ruby SDK here:

  https://github.com/oVirt/ovirt-engine-sdk-ruby/blob/master/sdk/examples/asynchronous_inventory.rb

The relevant patch that added that support to the Ruby SDK is this:

  Add support for asynchronous requests
  https://gerrit.ovirt.org/74088

Note that most of the code in the above patch is written in C. I would like to do the same in the Python SDK, but is not really necessary if the 'pycurl' library that that it uses supports well the 'multi' interface of the underlying 'libcurl' library.

Comment 1 Ondra Machacek 2017-05-25 07:37:15 UTC
Here is the description of this RFE:

 https://www.ovirt.org/blog/2017/05/higher-performance-for-python-sdk/

Comment 2 Radim Hrazdil 2017-05-31 14:09:02 UTC
Verified using Machacek's example and example provided by Juan: 
https://github.com/oVirt/ovirt-engine-sdk/blob/master/sdk/examples/asynchronous_inventory.py  

SDK version 4.1.4


Note You need to log in before you can comment on or make changes to this bug.