+1 on your issue #2 below plus re-design CS entities (including response)
as well as their relationships. IMHO, with a clearly defined entity model
and relationship diagram is a pre-requisite to come up with a neat full
REST-style API.

Thanks
-min

On 1/30/13 11:03 AM, "Rohit Yadav" <bhais...@apache.org> wrote:

>From wiki: "While CS does support the POST method also, we are not
>aware of any cloudstack clients using this."
>
>So, while GET and POST are both supported by the api servlet (because
>of the base class), POST won't work now as we funnel all requests to a
>single method that assumes GET and parses args based on ampersand
>separated url vars. It would need fixing, issue #0.
>
>Next, the way parsing is done it does not create multimap, so if
>multiple args are passed, it would take the last value which the http
>rfc mentions they should be collected as array for a key, i.e. a
>multimap, this is issue #1.
>
>Lastly, the fix would be largely on client, i.e. the UI and
>cloudmonkey for example to send POST for certain apis and GET. I'm not
>in favour of making a non-rest api server behave like a rest one, so
>atmost we should fix #0 and #1 and accept only GET and POST, GET for
>all read apis and POST for all the create, delete and update apis. I'm
>in favor of deprecated the current api server for say next 1-2 years
>and start working on a full REST-compliant JAX-RS powered api server,
>issue #3
>
>#0 - https://issues.apache.org/jira/browse/CLOUDSTACK-1091
>#1 - https://issues.apache.org/jira/browse/CLOUDSTACK-1092
>#2 - https://issues.apache.org/jira/browse/CLOUDSTACK-1093
>
>Assigned all of them to myself, feel to reassign.
>
>Regards.
>
>On Wed, Jan 30, 2013 at 10:48 AM, Chip Childers
><chip.child...@sungard.com> wrote:
>> On Wed, Jan 30, 2013 at 3:17 AM, Koushik Das <koushik....@citrix.com>
>>wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Ram Ganesh [mailto:ram.gan...@citrix.com]
>>>> Sent: Wednesday, January 30, 2013 1:06 PM
>>>> To: cloudstack-dev@incubator.apache.org
>>>> Subject: RE: [DISCUSS] DeployVirtualMachine userdata enhancements
>>>>
>>>> > -----Original Message-----
>>>> > From: rohityada...@gmail.com [mailto:rohityada...@gmail.com] On
>>>> Behalf
>>>> > Of Rohit Yadav
>>>> > Sent: 30 January 2013 10:30
>>>> > To: cloudstack-dev@incubator.apache.org
>>>> > Subject: Re: [DISCUSS] DeployVirtualMachine userdata enhancements
>>>> >
>>>> > On Tue, Jan 29, 2013 at 8:30 PM, Nitin Mehta
>>>><nitin.me...@citrix.com>
>>>> > wrote:
>>>> > > Good point Rohit, but I suggest making only those API's POST which
>>>> > create
>>>> > > a resource (like deployVm here) and not all of them.
>>>> >
>>>> > > Ideally, we need to be using the right http methods for a true
>>>> > restful web
>>>> > > service.
>>>> >
>>>> > Nice suggestion, while we can use GET for all read/list apis and
>>>>POST
>>>> > for rest kind of apis would work; so we should use correct HTTP
>>>> > request type, for example for general crud apps:
>>>> >
>>>> > create apis: POST
>>>> > list/read apis: GET
>>>> > update apis: PUT or POST
>>>> > delete apis: DELETE or POST
>>>> >
>>>> Per HTTP specs for update api we could use PUT. For delete apis we
>>>>could
>>>> stick with DELETE. That is true REST.
>>>>
>>>
>>> CS has explicit APIs to update/delete entities. In case of PUT/DELETE
>>>there is no need to pass any api name as long as the entity can be
>>>uniquely identified.
>>>
>>>>
>>>>
>>>> > > Also about the length part, how then we allow user data to be of
>>>> > > size
>>>> > 2kb
>>>> > > currently ?
>>>> >
>>>> > It's was a known issue, while it would work with most modern age
>>>> > browsers this was paid less attention. As Mice suggests, should we
>>>> > increase length of tags?
>>>> >
>>>> > Regards.
>>>> >
>>>> > >
>>>> > > On 30/01/13 9:43 AM, "Rohit Yadav" <bhais...@apache.org> wrote:
>>>> > >
>>>> > >>+1 But if we are sending base64 encoded userdata as part of POST,
>>>>we
>>>> > >>can increase the limit even further.
>>>> > >>
>>>> > >>-1 If userdata will be sent as part of GET query, based on the rfc
>>>> > [1]
>>>> > >>and from the widely used ugliest web browser [2] the GET url
>>>>length
>>>> > >>should be <= 2000 (we're already exceeding that how we send
>>>>userdata
>>>> > >>request at present).
>>>> > >>
>>>> > >>Suggestion: Make POST as the default way of requesting apis from
>>>> > >>mgmt server.
>>>> > >>
>>>> > >>[1] http://www.faqs.org/rfcs/rfc2616.html
>>>> > >>[2] http://support.microsoft.com/kb/q208427
>>>> > >>
>>>> > >>Regards.
>>>> > >>
>>>> > >>On Tue, Jan 29, 2013 at 7:40 PM, Hari Kannan
>>>> > >><hari.kan...@citrix.com>
>>>> > >>wrote:
>>>> > >>> Hello All,
>>>> > >>>
>>>> > >>> I wish to propose increasing the size of userdata to be passed
>>>> > along
>>>> > >>>with DeployVirtualMachine API - I have added some info here
>>>> >
>>>> >>>https://cwiki.apache.org/confluence/display/CLOUDSTACK/DeployVirtua
>>>> > >>>l
>>>> > Machi
>>>> > >>>ne+userdata+enhancements
>>>> > >>>  along with a JIRA ticket
>>>> > >>>https://issues.apache.org/jira/browse/CLOUDSTACK-1086
>>>> > >>>
>>>> > >>>
>>>> > >>> Please review and comment
>>>> > >>>
>>>> > >>> Hari Kannan
>>>> > >
>>>
>>
>> Does this proposal (and the technical discussion above) mean that we
>> want our next feature release to break backward compatibility with 4.0
>> (and soon 4.1)?  If so, can someone please start a specific discuss
>> thread about that (elevating the decision from being tied to a
>> specific feature)?

Reply via email to