Convert RPC client to PycURL
Instead of using our custom HTTP client, using PycURL's multi interface allows us to get rid of the HTTP client threadpool. The majority of the code is still in the ganeti.http.client module. A simple per-thread HTTP client pool gives cURL a chance to cache and retain as much information as possible (e.g. SSL certs). Unused HTTP clients (e.g. due to removed nodes) are deleted after 25 requests going through the pool. Signed-off-by:Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
Showing
- Makefile.am 1 addition, 0 deletionsMakefile.am
- daemons/ganeti-masterd 1 addition, 1 deletiondaemons/ganeti-masterd
- lib/http/client.py 300 additions, 269 deletionslib/http/client.py
- lib/rpc.py 63 additions, 28 deletionslib/rpc.py
- test/ganeti.http_unittest.py 71 additions, 6 deletionstest/ganeti.http_unittest.py
- test/ganeti.rpc_unittest.py 223 additions, 0 deletionstest/ganeti.rpc_unittest.py
Loading
Please register or sign in to comment