congress remote REST API - simulation action - multipart message shall be used for passing big parameters, otherwise 414 URI too long is returned

Bug #1410080 reported by Radek Pospisil
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
congress
Fix Released
Undecided
Aaron Rosen
python-congressclient
Fix Released
Undecided
Aaron Rosen

Bug Description

Passing large 'sequence' parameter of policy simulation action to congress remote API (using python congress client) causes 414 URI too long error, because parameters are passed in URI query.

Large parameters shall be passed using multipart message encoding (see http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 ) instead of x-www-form-urlencoded .

It can be easily reproduced using following openstack command:

$ openstack congress policy simulate classification test "a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1) a+(1)" classification
ERROR: openstack Request-URI Too Long (HTTP 414)

Revision history for this message
Radek Pospisil (radek-pospisil) wrote :

Alternative to multipart messages approach is to follow common REST style of messages in openstack - to encode the request arguments into body of POST request:
* client will encode request's arguments into JSON and pass it in body
* server will decode request's arguments from body

Aaron Rosen (arosen)
Changed in congress:
assignee: nobody → Aaron Rosen (arosen)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to congress (master)

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

Changed in congress:
status: New → In Progress
Aaron Rosen (arosen)
Changed in python-congressclient:
assignee: nobody → Aaron Rosen (arosen)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to python-congressclient (master)

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

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

Reviewed: https://review.openstack.org/147629
Committed: https://git.openstack.org/cgit/stackforge/congress/commit/?id=4b0a9fe703ec7ab1b6708d6dcec3cec088a4dee0
Submitter: Jenkins
Branch: master

commit 4b0a9fe703ec7ab1b6708d6dcec3cec088a4dee0
Author: Aaron Rosen <email address hidden>
Date: Thu Jan 15 11:11:49 2015 -0800

    Restructure simulate api to avoid passing query in uri

    This patch restructures the simulate_action api to pass in the
    query/sequence/action_policy via the body rather than the uri in
    order to avoid a request URI to long error.

    Change-Id: Ia44731fa5b63966ef1ccea0f3060ecfef6b08ce4
    Closes-bug: 1410080

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

Reviewed: https://review.openstack.org/147632
Committed: https://git.openstack.org/cgit/stackforge/python-congressclient/commit/?id=69bdfe942fc4d318791ebc6b62efb01a10b8b617
Submitter: Jenkins
Branch: master

commit 69bdfe942fc4d318791ebc6b62efb01a10b8b617
Author: Aaron Rosen <email address hidden>
Date: Wed Jan 14 16:39:16 2015 -0800

    Restructure simulate api to avoid passing query in uri

    This patch restructures the simulate_action api to pass in the
    query/sequence/action_policy via the body rather than the uri in
    order to avoid a request URI to long error.

    Note: one needs the corresponding server side change as well.
    DocImpact
    Closes-bug: 1410080

    Change-Id: I35be50021d50b0a84bc57d63e09817a7485113f9

no longer affects: murano
Tim Hinrichs (thinrichs)
Changed in congress:
milestone: none → kilo-3
status: Fix Committed → Fix Released
Tim Hinrichs (thinrichs)
Changed in python-congressclient:
status: Fix Committed → Fix Released
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.