Return-Path: X-Original-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D57B0E939 for ; Wed, 30 Jan 2013 22:40:00 +0000 (UTC) Received: (qmail 6626 invoked by uid 500); 30 Jan 2013 22:40:00 -0000 Delivered-To: apmail-incubator-cloudstack-dev-archive@incubator.apache.org Received: (qmail 6595 invoked by uid 500); 30 Jan 2013 22:40:00 -0000 Mailing-List: contact cloudstack-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-dev@incubator.apache.org Received: (qmail 6585 invoked by uid 99); 30 Jan 2013 22:40:00 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2013 22:40:00 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of Chiradeep.Vittal@citrix.com designates 66.165.176.89 as permitted sender) Received: from [66.165.176.89] (HELO SMTP.CITRIX.COM) (66.165.176.89) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2013 22:39:54 +0000 X-IronPort-AV: E=Sophos;i="4.84,572,1355097600"; d="scan'208";a="5718155" Received: from sjcpmailmx02.citrite.net ([10.216.14.75]) by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5; 30 Jan 2013 22:39:32 +0000 Received: from SJCPMAILBOX01.citrite.net ([10.216.4.73]) by SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi; Wed, 30 Jan 2013 14:39:32 -0800 From: Chiradeep Vittal To: CloudStack DeveloperList Date: Wed, 30 Jan 2013 14:39:29 -0800 Subject: Re: [DISCUSS] DeployVirtualMachine userdata enhancements Thread-Topic: [DISCUSS] DeployVirtualMachine userdata enhancements Thread-Index: Ac3/Oqv3+pzxKcdYQBuns8SafgfavA== Message-ID: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.13.0.110805 acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org +1 to all 3 issues identified. -1 to breaking API (using PUT/DELETE etc) The underlying limitation for userdata is from the size of the database column. We should continue supporting GET semantics for deployVirtualMachine, in which case the limit would continue to be 2K. We can support POST for ALL APIs in which case the user data would be limited by the size of the database column again. I don't mind increasing the size to 32K even. On 1/30/13 11:03 AM, "Rohit Yadav" 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 > wrote: >> On Wed, Jan 30, 2013 at 3:17 AM, Koushik Das >>wrote: >>> >>> >>>> -----Original Message----- >>>> From: Ram Ganesh [mailto:Ram.Ganesh@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: rohityadav89@gmail.com [mailto:rohityadav89@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 >>>> >>>> > 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" 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 <=3D 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 >>>> > >> >>>> > >>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)?