python bindings do not provide retry on rate limiting errors

Bug #1263069 reported by Andrea Frittoli
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Glance Client
Confirmed
Wishlist
Unassigned
python-cinderclient
Fix Released
Wishlist
Yuriy Nesenenko
python-heatclient
Triaged
Medium
Unassigned
python-keystoneclient
Won't Fix
Wishlist
Unassigned
python-neutronclient
Confirmed
Wishlist
Unassigned
python-novaclient
Confirmed
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)

Revision history for this message
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?

Revision history for this message
Andrea Frittoli (andrea-frittoli) wrote :

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

Dolph Mathews (dolph)
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)
Changed in python-novaclient:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
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
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to python-cinderclient (master)

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

Changed in python-cinderclient:
status: In Progress → Fix Committed
Changed in python-cinderclient:
status: Fix Committed → In Progress
Revision history for this message
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)
Changed in python-glanceclient:
status: New → Confirmed
importance: Undecided → Wishlist
Changed in python-cinderclient:
assignee: venkata anil (anil-venkata) → nobody
Revision history for this message
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)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

Changed in python-cinderclient:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to python-cinderclient (master)

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)
Changed in python-neutronclient:
assignee: nobody → lilintan (lilintan)
Revision history for this message
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)
Changed in python-novaclient:
assignee: nobody → Spencer Yu (yushb)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to python-novaclient (master)

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

Changed in python-novaclient:
status: Confirmed → In Progress
Revision history for this message
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)
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)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on python-novaclient (master)

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

Matt Riedemann (mriedem)
Changed in python-novaclient:
status: In Progress → Confirmed
assignee: Spencer Yu (yushb) → nobody
importance: Medium → Wishlist
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.