From shtripat at redhat.com Fri Nov 8 01:58:30 2013 Content-Type: multipart/mixed; boundary="===============2494190027566406054==" MIME-Version: 1.0 From: Shubhendu Tripathi To: devel at ovirt.org Subject: [Engine-devel] REST-API: Problem with additional DELETE action at collection level Date: Fri, 08 Nov 2013 11:29:59 +0530 Message-ID: <527C7DDF.2050308@redhat.com> --===============2494190027566406054== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format. --------------050509030900000404030401 Content-Type: text/plain; charset=3DISO-8859-1; format=3Dflowed Content-Transfer-Encoding: 7bit Hi All, There is a DELETE action defined at collection level for Gluster Bricks = with signature - /@DELETE public////Response//remove//(//GlusterBricks//bricks//);/ Recently we had needed a commit action to remove migrated bricks. After multiple rounds of discussion on introducing a commit action to = remove migrated bricks we introduced a DELETE action [1] which accepts a = boolean parameter isForce. If the parameter is set to /true/, forced deletion of bricks happens = without any data migration. And if the parameter is not set or set to /false,/ the deletion is meant = for a brick on which migration has already taken place. To achieve the above functionality we introduced another DELETE action = with new signature as below and also marked the first action as deprecated - /@DELETE public////Response//remove//(//Action//action//);/ The problem arises now as the new api works fine for all possible = scenarios with below input structure - / //// // true/false// // // // // // //brick1-name// // brick2-name// // // // // /// BUT after these change backward compatibility is broken and the old api = does not work. If we try invoking old DELETE with bricks as input parameter as below, = it still invokes the new api and gives an error saying "Invalid parameter". / // // / Kindly suggest a solution around the same. *PS:* Both the actions are defined at collection level = (//api/clusters//glustervolumes//bricks/) [1]: http://gerrit.ovirt.org/#/c/21043/ Thanks and Regards, Shubhendu --------------050509030900000404030401 Content-Type: text/html; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit Hi All,

There is a DELETE action defined at collection level for Gluster Bricks with signature -

@DELETE
public
Response remove(GlusterBricks bricks
);

Recently we had needed a commit action to remove migrated bricks.
After multiple rounds of discussion on introducing a commit action to remove migrated bricks we introduced a DELETE action [1] which accepts a boolean parameter isForce.
If the parameter is set to true, forced deletion of bricks happens without any data migration.
And if the parameter is not set or set to false, the deletion is meant for a brick on which migration has already taken place.

To achieve the above functionality we introduced another DELETE action with new signature as below and
also marked the first action as deprecated -

@DELETE
public
Response remove= (Action<= /i> action
);

The problem arises now as the new api works fine for all possible scenarios with below input structure -

<action>
    <force>true/false</force>
    <bricks>
        <brick>=
            &= lt;name>brick1-name</name>
= &nbs= p;           <name>brick2-name</name>
        </brick><= /i>
    </bricks>
</action>


BUT after these change backward compatibility is broken and the old api does not work.
If we try invoking old DELETE with bricks as input parameter as below, it still invokes the new api and gives an error saying "Invalid parameter".

<bricks>
    <brick id=3D"brick1-id"/>
    = <brick id=3D"brick2-id"/> </bricks>

Kindly suggest a solution around the same.

PS: Both the actions are defined at collection level (/api/clusters/<cluster-id>/glustervolu= mes/<volume-id>/bricks)

[1]: http://gerrit.o= virt.org/#/c/21043/

Thanks and Regards,
Shubhendu


--------------050509030900000404030401-- --===============2494190027566406054== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wNTA1MDkwMzA5MDAwMDA0MDQwMzA0MDEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog N2JpdAoKSGkgQWxsLAoKVGhlcmUgaXMgYSBERUxFVEUgYWN0aW9uIGRlZmluZWQgYXQgY29sbGVj dGlvbiBsZXZlbCBmb3IgR2x1c3RlciBCcmlja3MgCndpdGggc2lnbmF0dXJlIC0KCi9AREVMRVRF CnB1YmxpYy8vLy9SZXNwb25zZS8vcmVtb3ZlLy8oLy9HbHVzdGVyQnJpY2tzLy9icmlja3MvLyk7 LwoKUmVjZW50bHkgd2UgaGFkIG5lZWRlZCBhIGNvbW1pdCBhY3Rpb24gdG8gcmVtb3ZlIG1pZ3Jh dGVkIGJyaWNrcy4KQWZ0ZXIgbXVsdGlwbGUgcm91bmRzIG9mIGRpc2N1c3Npb24gb24gaW50cm9k dWNpbmcgYSBjb21taXQgYWN0aW9uIHRvIApyZW1vdmUgbWlncmF0ZWQgYnJpY2tzIHdlIGludHJv ZHVjZWQgYSBERUxFVEUgYWN0aW9uIFsxXSB3aGljaCBhY2NlcHRzIGEgCmJvb2xlYW4gcGFyYW1l dGVyIGlzRm9yY2UuCklmIHRoZSBwYXJhbWV0ZXIgaXMgc2V0IHRvIC90cnVlLywgZm9yY2VkIGRl bGV0aW9uIG9mIGJyaWNrcyBoYXBwZW5zIAp3aXRob3V0IGFueSBkYXRhIG1pZ3JhdGlvbi4KQW5k IGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNldCBvciBzZXQgdG8gL2ZhbHNlLC8gdGhlIGRlbGV0 aW9uIGlzIG1lYW50IApmb3IgYSBicmljayBvbiB3aGljaCBtaWdyYXRpb24gaGFzIGFscmVhZHkg dGFrZW4gcGxhY2UuCgpUbyBhY2hpZXZlIHRoZSBhYm92ZSBmdW5jdGlvbmFsaXR5IHdlIGludHJv ZHVjZWQgYW5vdGhlciBERUxFVEUgYWN0aW9uIAp3aXRoIG5ldyBzaWduYXR1cmUgYXMgYmVsb3cg YW5kIGFsc28gbWFya2VkIHRoZSBmaXJzdCBhY3Rpb24gYXMgZGVwcmVjYXRlZCAtCgovQERFTEVU RQpwdWJsaWMvLy8vUmVzcG9uc2UvL3JlbW92ZS8vKC8vQWN0aW9uLy9hY3Rpb24vLyk7LwoKVGhl IHByb2JsZW0gYXJpc2VzIG5vdyBhcyB0aGUgbmV3IGFwaSB3b3JrcyBmaW5lIGZvciBhbGwgcG9z c2libGUgCnNjZW5hcmlvcyB3aXRoIGJlbG93IGlucHV0IHN0cnVjdHVyZSAtCi8KLy88YWN0aW9u Pi8vCi8vICAgIDxmb3JjZT50cnVlL2ZhbHNlPC9mb3JjZT4vLwovLyAgICA8YnJpY2tzPi8vCi8v ICAgICAgICA8YnJpY2s+Ly8KLy8gICAgICAgICAgICA8bmFtZT4vL2JyaWNrMS1uYW1lPC9uYW1l Pi8vCi8vICAgIDxuYW1lPmJyaWNrMi1uYW1lPC9uYW1lPi8vCi8vICAgICAgICA8L2JyaWNrPi8v Ci8vICAgIDwvYnJpY2tzPi8vCi8vPC9hY3Rpb24+LwoKQlVUIGFmdGVyIHRoZXNlIGNoYW5nZSBi YWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzIGJyb2tlbiBhbmQgdGhlIG9sZCBhcGkgCmRvZXMgbm90 IHdvcmsuCklmIHdlIHRyeSBpbnZva2luZyBvbGQgREVMRVRFIHdpdGggYnJpY2tzIGFzIGlucHV0 IHBhcmFtZXRlciBhcyBiZWxvdywgCml0IHN0aWxsIGludm9rZXMgdGhlIG5ldyBhcGkgYW5kIGdp dmVzIGFuIGVycm9yIHNheWluZyAiSW52YWxpZCBwYXJhbWV0ZXIiLgovCi8vPGJyaWNrcz4KICAg ICA8YnJpY2sgaWQ9ImJyaWNrMS1pZCIvPgovLyAgICA8YnJpY2sgaWQ9ImJyaWNrMi1pZCIvPgo8 L2JyaWNrcz4vCgpLaW5kbHkgc3VnZ2VzdCBhIHNvbHV0aW9uIGFyb3VuZCB0aGUgc2FtZS4KCipQ UzoqIEJvdGggdGhlIGFjdGlvbnMgYXJlIGRlZmluZWQgYXQgY29sbGVjdGlvbiBsZXZlbCAKKC8v YXBpL2NsdXN0ZXJzLzxjbHVzdGVyLWlkPi9nbHVzdGVydm9sdW1lcy88dm9sdW1lLWlkPi9icmlj a3MvKQoKWzFdOiBodHRwOi8vZ2Vycml0Lm92aXJ0Lm9yZy8jL2MvMjEwNDMvCgpUaGFua3MgYW5k IFJlZ2FyZHMsClNodWJoZW5kdQoKCgotLS0tLS0tLS0tLS0tLTA1MDUwOTAzMDkwMDAwMDQwNDAz MDQwMQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCjxodG1sPgogIDxoZWFkPgoKICAgIDxtZXRhIGh0dHAt ZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5 LTEiPgogIDwvaGVhZD4KICA8Ym9keSBiZ2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIj4K ICAgIEhpIEFsbCw8YnI+CiAgICA8YnI+CiAgICBUaGVyZSBpcyBhIERFTEVURSBhY3Rpb24gZGVm aW5lZCBhdCBjb2xsZWN0aW9uIGxldmVsIGZvciBHbHVzdGVyCiAgICBCcmlja3Mgd2l0aCBzaWdu YXR1cmUgLTxicj4KICAgIDxicj4KICAgIDxmb250IGNvbG9yPSIjMzMzM2ZmIj48aT48c3BhbiBj bGFzcz0ia3dkIj5AREVMRVRFPGJyPgogICAgICAgICAgcHVibGljPC9zcGFuPjwvaT48aT48c3Bh biBjbGFzcz0icGxuIj4gPC9zcGFuPjwvaT48aT48c3BhbgogICAgICAgICAgY2xhc3M9InR5cCI+ UmVzcG9uc2U8L3NwYW4+PC9pPjxpPjxzcGFuIGNsYXNzPSJwbG4iPiByZW1vdmU8L3NwYW4+PC9p PjxpPjxzcGFuCiAgICAgICAgICBjbGFzcz0icHVuIj4oPC9zcGFuPjwvaT48aT48c3BhbiBjbGFz cz0idHlwIj5HbHVzdGVyQnJpY2tzPC9zcGFuPjwvaT48aT48c3BhbgogICAgICAgICAgY2xhc3M9 InBsbiI+IGJyaWNrczwvc3Bhbj48L2k+PC9mb250PjxzcGFuIGNsYXNzPSJwdW4iPjxmb250CiAg ICAgICAgY29sb3I9IiMzMzMzZmYiPjxpPik7PC9pPjwvZm9udD48YnI+CiAgICAgIDxicj4KICAg ICAgUmVjZW50bHkgd2UgaGFkIG5lZWRlZCBhIGNvbW1pdCBhY3Rpb24gdG8gcmVtb3ZlIG1pZ3Jh dGVkIGJyaWNrcy4KICAgICAgPGJyPgogICAgICBBZnRlciBtdWx0aXBsZSByb3VuZHMgb2YgZGlz Y3Vzc2lvbiBvbiBpbnRyb2R1Y2luZyBhIGNvbW1pdCBhY3Rpb24KICAgICAgdG8gcmVtb3ZlIG1p Z3JhdGVkIGJyaWNrcyB3ZSBpbnRyb2R1Y2VkIGEgREVMRVRFIGFjdGlvbiBbMV0gd2hpY2gKICAg ICAgYWNjZXB0cyBhIGJvb2xlYW4gcGFyYW1ldGVyIGlzRm9yY2UuPGJyPgogICAgICBJZiB0aGUg cGFyYW1ldGVyIGlzIHNldCB0byA8aT50cnVlPC9pPiwgZm9yY2VkIGRlbGV0aW9uIG9mIGJyaWNr cwogICAgICBoYXBwZW5zIHdpdGhvdXQgYW55IGRhdGEgbWlncmF0aW9uLjxicj4KICAgICAgQW5k IGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNldCBvciBzZXQgdG8gPGk+ZmFsc2UsPC9pPiB0aGUK ICAgICAgZGVsZXRpb24gaXMgbWVhbnQgZm9yIGEgYnJpY2sgb24gd2hpY2ggbWlncmF0aW9uIGhh cyBhbHJlYWR5IHRha2VuCiAgICAgIHBsYWNlLjxicj4KICAgICAgPGJyPgogICAgICBUbyBhY2hp ZXZlIHRoZSBhYm92ZSBmdW5jdGlvbmFsaXR5IHdlIGludHJvZHVjZWQgYW5vdGhlciBERUxFVEUK ICAgICAgYWN0aW9uIHdpdGggbmV3IHNpZ25hdHVyZSBhcyBiZWxvdyBhbmQgPC9zcGFuPjxzcGFu IGNsYXNzPSJwdW4iPjxzcGFuCiAgICAgICAgY2xhc3M9InB1biI+PHNwYW4gY2xhc3M9InB1biI+ YWxzbyBtYXJrZWQgdGhlIGZpcnN0IGFjdGlvbiBhcwogICAgICAgICAgZGVwcmVjYXRlZDwvc3Bh bj48L3NwYW4+IC08YnI+CiAgICAgIDxicj4KICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0icHVuIj48 Zm9udCBjb2xvcj0iIzMzMzNmZiI+PGk+PHNwYW4gY2xhc3M9Imt3ZCI+QERFTEVURTxicj4KICAg ICAgICAgICAgcHVibGljPC9zcGFuPjwvaT48aT48c3BhbiBjbGFzcz0icGxuIj4gPC9zcGFuPjwv aT48aT48c3BhbgogICAgICAgICAgICBjbGFzcz0idHlwIj5SZXNwb25zZTwvc3Bhbj48L2k+PGk+ PHNwYW4gY2xhc3M9InBsbiI+IHJlbW92ZTwvc3Bhbj48L2k+PGk+PHNwYW4KICAgICAgICAgICAg Y2xhc3M9InB1biI+KDwvc3Bhbj48L2k+PGk+PHNwYW4gY2xhc3M9InR5cCI+QWN0aW9uPC9zcGFu PjwvaT48aT48c3BhbgogICAgICAgICAgICBjbGFzcz0icGxuIj4gYWN0aW9uPC9zcGFuPjwvaT48 L2ZvbnQ+PHNwYW4gY2xhc3M9InB1biI+PGZvbnQKICAgICAgICAgIGNvbG9yPSIjMzMzM2ZmIj48 aT4pOzwvaT48L2ZvbnQ+PGJyPgogICAgICAgIDxicj4KICAgICAgICBUaGUgcHJvYmxlbSBhcmlz ZXMgbm93IGFzIHRoZSBuZXcgYXBpIHdvcmtzIGZpbmUgZm9yIGFsbAogICAgICAgIHBvc3NpYmxl IHNjZW5hcmlvcyB3aXRoIGJlbG93IGlucHV0IHN0cnVjdHVyZSAtPGJyPgogICAgICAgIDxmb250 IGNvbG9yPSIjMzMzM2ZmIj48aT48YnI+CiAgICAgICAgICA8L2k+PGk+Jmx0O2FjdGlvbiZndDs8 L2k+PGk+PGJyPgogICAgICAgICAgPC9pPjxpPiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7Zm9yY2Um Z3Q7dHJ1ZS9mYWxzZSZsdDsvZm9yY2UmZ3Q7PC9pPjxpPjxicj4KICAgICAgICAgIDwvaT48aT4m bmJzcDsmbmJzcDsmbmJzcDsgJmx0O2JyaWNrcyZndDs8L2k+PGk+PGJyPgogICAgICAgICAgPC9p PjxpPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O2JyaWNrJmd0Ozwv aT48aT48YnI+CiAgICAgICAgICA8L2k+PGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNw OyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O25hbWUmZ3Q7PC9pPjxpPmJyaWNrMS1uYW1l Jmx0Oy9uYW1lJmd0OzwvaT48aT48YnI+CiAgICAgICAgICA8L2k+PC9mb250Pjwvc3Bhbj48L3Nw YW4+PHNwYW4gY2xhc3M9InB1biI+PHNwYW4gY2xhc3M9InB1biI+PGZvbnQKICAgICAgICAgIGNv bG9yPSIjMzMzM2ZmIj48aT48c3BhbiBjbGFzcz0icHVuIj48c3BhbiBjbGFzcz0icHVuIj4mbmJz cDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgICAgICAmbmJzcDsm bmJzcDsmbmJzcDsgJmx0O25hbWUmZ3Q7YnJpY2syLW5hbWUmbHQ7L25hbWUmZ3Q7PC9zcGFuPjwv c3Bhbj48L2k+PGk+PGJyPgogICAgICAgICAgPC9pPjxpPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L2JyaWNrJmd0OzwvaT48aT48YnI+CiAgICAgICAgICA8 L2k+PGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDsvYnJpY2tzJmd0OzwvaT48aT48YnI+CiAgICAg ICAgICA8L2k+PGk+Jmx0Oy9hY3Rpb24mZ3Q7PC9pPjwvZm9udD48YnI+CiAgICAgICAgPGJyPgog ICAgICAgIEJVVCBhZnRlciB0aGVzZSBjaGFuZ2UgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBi cm9rZW4gYW5kIHRoZQogICAgICAgIG9sZCBhcGkgZG9lcyBub3Qgd29yay48YnI+CiAgICAgICAg SWYgd2UgdHJ5IGludm9raW5nIG9sZCBERUxFVEUgd2l0aCBicmlja3MgYXMgaW5wdXQgcGFyYW1l dGVyIGFzCiAgICAgICAgYmVsb3csIGl0IHN0aWxsIGludm9rZXMgdGhlIG5ldyBhcGkgYW5kIGdp dmVzIGFuIGVycm9yIHNheWluZyAiPGZvbnQKICAgICAgICAgIGNvbG9yPSIjZmYwMDAwIj5JbnZh bGlkIHBhcmFtZXRlcjwvZm9udD4iLjxicj4KICAgICAgICA8Zm9udCBjb2xvcj0iIzMzMzNmZiI+ PGk+PGJyPgogICAgICAgICAgPC9pPjwvZm9udD48L3NwYW4+PC9zcGFuPjxmb250IGNvbG9yPSIj MzMzM2ZmIj48aT48c3BhbgogICAgICAgICAgY2xhc3M9InB1biI+PHNwYW4gY2xhc3M9InB1biI+ PHNwYW4gY2xhc3M9InB1biI+PHNwYW4KICAgICAgICAgICAgICAgIGNsYXNzPSJwdW4iPiZsdDti cmlja3MmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDticmlj ayBpZD0iYnJpY2sxLWlkIi8mZ3Q7PGJyPgogICAgICAgICAgICAgIDwvc3Bhbj48L3NwYW4+PC9z cGFuPjwvc3Bhbj48L2k+PC9mb250PjxzcGFuIGNsYXNzPSJwdW4iPjxzcGFuCiAgICAgICAgY2xh c3M9InB1biI+PGZvbnQgY29sb3I9IiMzMzMzZmYiPjxpPjxzcGFuIGNsYXNzPSJwdW4iPjxzcGFu CiAgICAgICAgICAgICAgICBjbGFzcz0icHVuIj48c3BhbiBjbGFzcz0icHVuIj48c3BhbiBjbGFz cz0icHVuIj48c3BhbgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InB1biI+PHNwYW4gY2xh c3M9InB1biI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDticmljawogICAgICAgICAgICAgICAgICAg ICAgICBpZD0iYnJpY2syLWlkIi8mZ3Q7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxicj4K ICAgICAgICAgICAgICAgICZsdDsvYnJpY2tzJmd0Ozwvc3Bhbj48L3NwYW4+PC9pPjwvZm9udD48 YnI+CiAgICAgICAgPGJyPgogICAgICAgIEtpbmRseSBzdWdnZXN0IGEgc29sdXRpb24gYXJvdW5k IHRoZSBzYW1lLjxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+UFM6PC9iPiBCb3RoIHRoZSBh Y3Rpb25zIGFyZSBkZWZpbmVkIGF0IGNvbGxlY3Rpb24gbGV2ZWwgKDxmb250CiAgICAgICAgICBj b2xvcj0iIzMzMzNmZiI+PGk+L2FwaS9jbHVzdGVycy8mbHQ7Y2x1c3Rlci1pZCZndDsvZ2x1c3Rl cnZvbHVtZXMvJmx0O3ZvbHVtZS1pZCZndDsvYnJpY2tzPC9pPjwvZm9udD4pPGJyPgogICAgICAg IDxicj4KICAgICAgICBbMV06IDxhIGhyZWY9Imh0dHA6Ly9nZXJyaXQub3ZpcnQub3JnLyMvYy8y MTA0My8iPmh0dHA6Ly9nZXJyaXQub3ZpcnQub3JnLyMvYy8yMTA0My88L2E+PGJyPgogICAgICAg IDxicj4KICAgICAgICBUaGFua3MgYW5kIFJlZ2FyZHMsPGJyPgogICAgICAgIFNodWJoZW5kdTxi cj4KICAgICAgICA8YnI+CiAgICAgICAgPGJyPgogICAgICA8L3NwYW4+PC9zcGFuPgogIDwvYm9k eT4KPC9odG1sPgoKLS0tLS0tLS0tLS0tLS0wNTA1MDkwMzA5MDAwMDA0MDQwMzA0MDEtLQo= --===============2494190027566406054==--