Alright, spoke with tsp on irc on testing methods etc. I fixed [1] the 
apiserver to make it backward compatible;

- For all pre 3.x apis, both uuid, internal id can be used, all pre 3.x apis 
don't have since field in their annotation.
- For post 3.x apis, uuid param checking is enforced.

The response (xml or json) always had uuid (and not internal id) since 3.x 
which is fine with everyone and I fail to understand the case.

[1] 
https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=commit;h=623e7389ef0b2923b7859629cd70406e2e471525

Regards.

On 27-Dec-2012, at 2:04 PM, Will Chan <will.c...@citrix.com> wrote:

> I personally do not like flags changing syntax which is what it is in this 
> case.  A flag to support whether a feature like "snapshots" is supported is 
> ok.  A flag to say whether ID or UUID is accepted means issues with backwards 
> compatibility and also the fact that both ways needs to be tested and 
> validated.
> 
> Will
> 
>> -----Original Message-----
>> From: Alex Huang [mailto:alex.hu...@citrix.com]
>> Sent: Thursday, December 27, 2012 12:44 PM
>> To: cloudstack-dev@incubator.apache.org
>> Cc: cloudstack-us...@incubator.apache.org
>> Subject: RE: [VOTE] Enforcing UUID string in API query
>> 
>> Sorry I don't understand why it needs to be a vote.  Why can't we just offer
>> a flag to turn it on and off?
>> 
>> --Alex
>> 
>>> -----Original Message-----
>>> From: Rohit Yadav [mailto:rohit.ya...@citrix.com]
>>> Sent: Thursday, December 27, 2012 12:11 PM
>>> To: cloudstack-dev@incubator.apache.org
>>> Cc: cloudstack-us...@incubator.apache.org
>>> Subject: [VOTE] Enforcing UUID string in API query
>>> 
>>> Hi,
>>> 
>>> I'm asking for the community to vote if they want to enforce UUID
>>> string to be used in parameters while querying an API. This would
>>> break any client or script that uses internal ID. AFAIK api response
>>> (json or xml, since 3.x for sure) always have had UUIDs so if any
>>> client/script that uses apis to query entities and base their further
>>> operations using ids from the response(s) should be fine.
>>> 
>>> You may vote by:
>>> +1 Agree
>>> 0  No opinion
>>> -1 Disagree
>>> 
>>> Some context and description:
>>> 
>>> CloudStack uses internal IDs which are long ints and they have a
>>> mapping between this ID and the external ID or UUID which is a random
>>> string of characters.
>>> There are DAO classes which provides a mechanism to query a particular
>>> table(s) and do other operations. There are VO objects which can hold
>>> content of a row. In most VO objects a method getId() would return a
>>> long int number which is the internal ID of that entity and they would
>>> have a
>>> getUuid() which returns a unique random string of chars.
>>> 
>>> At present an API can be queried with both ids, for example for param
>>> domainid using uuid in 1 and using id in 2:
>>> 
>>> 1.
>>> 
>> http://localhost:8080/client?command=listResourceLimits&domainid=866
>> 4e
>>> 0
>>> 4a-9931-4765-b3456e6888d0fa1d
>>> 2.
>> http://localhost:8080/client?command=listResourceLimits&domainid=1
>>> 
>>> For querying using id, the caller should have idea of the id for that
>>> entity and which is only possible if they have access to CloudStack's
>>> database. There is no other way of knowing an entity's id, only uuids
>>> are sent as ids in the response.
>>> 
>>> Regards.
>>> 
> 

Reply via email to