python bindings do not provide retry on rate limiting errors

Bug #1263069 reported by Andrea Frittoli on 2013-12-20
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Glance Client
Wishlist
Unassigned
python-cinderclient
Wishlist
Yuriy Nesenenko
python-heatclient
Triaged
Medium
Unassigned
python-keystoneclient
Wishlist
Unassigned
python-neutronclient
Wishlist
Unassigned
python-novaclient
Wishlist
Unassigned

Bug Description

The openstack python bindings do not provide retries on rate limiting errors.

This is a missing feature rather than a bug.
It would be both useful for users as well as for tempest tests (see https://bugs.launchpad.net/tempest/+bug/1250809)

Giulio Fidente (gfidente) wrote :

I'm personally not sure how useful would this be, it seems to go against the purpose of the limits. Yet if it gets implemented maybe the clients should honor the "Retry-After" passed by the server?

I agree it shall honor "Retry-After" if available.

Dolph Mathews (dolph) on 2013-12-20
Changed in python-keystoneclient:
importance: Undecided → Wishlist
summary: - python bindings do not provide rerty on rate limiting errors
+ python bindings do not provide retry on rate limiting errors
Changed in python-keystoneclient:
status: New → Triaged
Joe Gordon (jogo) on 2014-01-15
Changed in python-novaclient:
status: New → Confirmed
importance: Undecided → Medium
Chmouel Boudjnah (chmouel) wrote :

Planning to add that for python-heatclient as part of the rewrite to requests https://review.openstack.org/#/c/65704/

Changed in python-heatclient:
assignee: nobody → Chmouel Boudjnah (chmouel)
Changed in python-heatclient:
status: New → Triaged
importance: Undecided → High
milestone: none → v0.2.8
Changed in python-cinderclient:
assignee: nobody → venkata anil (anil-venkata)
Changed in python-cinderclient:
status: New → In Progress
Changed in python-cinderclient:
status: In Progress → Fix Committed
Changed in python-cinderclient:
status: Fix Committed → In Progress
venkata anil (anil-venkata) wrote :

Committed the changes for cinderclient for review https://review.openstack.org/#/c/76113/

Changed in python-heatclient:
milestone: v0.2.8 → v0.2.9
Changed in python-heatclient:
assignee: Chmouel Boudjnah (chmouel) → nobody
Changed in python-heatclient:
milestone: v0.2.9 → none
importance: High → Medium
Louis Taylor (kragniz) on 2014-11-17
Changed in python-glanceclient:
status: New → Confirmed
importance: Undecided → Wishlist
Changed in python-cinderclient:
assignee: venkata anil (anil-venkata) → nobody
Akihiro Motoki (amotoki) wrote :

no activity for a long time ....

Changed in python-neutronclient:
status: New → Confirmed
importance: Undecided → Wishlist
Changed in python-cinderclient:
status: In Progress → Fix Committed
status: Fix Committed → In Progress
Changed in python-cinderclient:
importance: Undecided → Wishlist
Changed in python-cinderclient:
status: In Progress → Confirmed
assignee: nobody → Sheel Rana (ranasheel2000)
Changed in python-cinderclient:
assignee: Sheel Rana (ranasheel2000) → Yuriy Nesenenko (ynesenenko)

Fix proposed to branch: master
Review: https://review.openstack.org/332848

Changed in python-cinderclient:
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/332848
Committed: https://git.openstack.org/cgit/openstack/python-cinderclient/commit/?id=f8eef18297ec2dba4abf45f8ca57c40c2380cad9
Submitter: Jenkins
Branch: master

commit f8eef18297ec2dba4abf45f8ca57c40c2380cad9
Author: Yuriy Nesenenko <email address hidden>
Date: Wed Jun 22 17:36:49 2016 +0300

    Cinder client should retry with Retry-After value

    If a request fails but the response contains a "Retry-After",
    the cinder client should wait the amount of time and then retry.
    Cinder client should report a warning to user and continue with
    retry, so that user can cancel the operation if not interested
    in retry. The value in "Retry-After" header will be in seconds
    or GMT value, client should handle both the cases.

    How many times client should retry will be controlled by user
    through "--retries" argument to cinder api example,
    $ cinder --retries 3 availability-zone-list

    If request was not sucessful within the retries, client should
    raise the exception.

    Change-Id: I99af957bfbbe3a202b148dc2fcafdd20b5d7cda0
    Partial-Bug: #1263069

lilintan (lilintan) on 2016-09-27
Changed in python-neutronclient:
assignee: nobody → lilintan (lilintan)
Sean McGinnis (sean-mcginnis) wrote :

Change committed to cinderclient. It was marked as Partial, but I don't see what else needs to be done here. Please reopen if additional work is planned.

Changed in python-cinderclient:
status: In Progress → Fix Released
Spencer Yu (yushb) on 2017-03-20
Changed in python-novaclient:
assignee: nobody → Spencer Yu (yushb)

Fix proposed to branch: master
Review: https://review.openstack.org/447766

Changed in python-novaclient:
status: Confirmed → In Progress
Akihiro Motoki (amotoki) wrote :

Currently most python bindings use keystoneauth Session as a backend, so it sounds good to start adding a support of retry-after in keystoneauth library. After that, individual python bindings can expose some parameter to control the number of retries to users.

Akihiro Motoki (amotoki) on 2017-04-19
Changed in python-neutronclient:
assignee: lilintan (lilintan) → nobody
Changed in python-novaclient:
assignee: Spencer Yu (yushb) → Jeremy Liu (liujiong)
Changed in python-novaclient:
assignee: Jeremy Liu (liujiong) → Spencer Yu (yushb)
Changed in python-novaclient:
assignee: Spencer Yu (yushb) → Jeremy Liu (liujiong)
Changed in python-novaclient:
assignee: Jeremy Liu (liujiong) → Spencer Yu (yushb)

Change abandoned by Matt Riedemann (<email address hidden>) on branch: master
Review: https://review.openstack.org/447766

Matt Riedemann (mriedem) on 2017-10-24
Changed in python-novaclient:
status: In Progress → Confirmed
assignee: Spencer Yu (yushb) → nobody
importance: Medium → Wishlist
Morgan Fainberg (mdrnstm) wrote :

This could be integrated in keystoneauth (and has been proposed as such). Marking as invalid for keystoneclient/wont fix.

Changed in python-keystoneclient:
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers