Rohit,

Thanks, it's good to see it be consistent across the board

-Kelven


On 1/28/13 3:47 PM, "Rohit Yadav" <bhais...@apache.org> wrote:

>To avoid confusion, I removed the entityType field from the particular
>param in deployvmcmd. Pl. read the commit message, for MAP type params
>it's always processed a map of string,string and the processing should
>be done by an api writer at cmd class level and it's not done in
>ApiDispatcher.
>
>commit 66430c97457041b87bfbaddad6955a77a42ffdee
>Author: Rohit Yadav <bhais...@apache.org>
>Date:   Mon Jan 28 15:43:37 2013 -0800
>
>    DeployVMCmd: Remove entityType for ipToNetworkList, MAP is
>string->string
>
>    Remove entityType as it can confuse people, right now we process
>map to string
>    data type maps<string,string> This map should be handled in cmd
>class level by
>    an api writer to getObject by uuid or by long int id as in
>getIpToNetworkMap()
>    of DeployVMCmd
>
>    Signed-off-by: Rohit Yadav <bhais...@apache.org>
>
>Regards.
>
>
>On Mon, Jan 28, 2013 at 2:32 PM, Rohit Yadav <bhais...@apache.org> wrote:
>> On Sun, Jan 27, 2013 at 8:37 PM, Kelven Yang <kelven.y...@citrix.com>
>>wrote:
>>> I have a question about a change in @Parameter at API layer, in
>>>regards to
>>> entityType, does anyone know the reason behind why it has to go through
>>> with some Response class which in turn declares links to the entity
>>>class
>>> via @EntityReference annotation?
>>>
>>> And in DeployVMCmd as an example, there is also another special field
>>> (ipToNetworkList) declares entity reference directly, could someone
>>> clarify it?
>>>
>>> @ACL(checkKeyAccess=true)
>>>     @Parameter(name = ApiConstants.IP_NETWORK_LIST, type =
>>> CommandType.MAP, entityType={Network.class, IpAddress.class},
>>>             description = "ip to network mapping. Can't be specified
>>>with
>>> networkIds parameter." +
>>>                     " Example:
>>> iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].networkid=uuid -
>>> requests to use ip 10.10.10.11 in network id=uuid")
>>>     private Map ipToNetworkList;
>>
>> Coming straight to the issue, if a parameter type is MAP, right now
>> the present annotation is insufficient to help ApiDispatcher process a
>> parameter which is of map type, so we just set the map as it is (i.e.
>> a string);
>>
>>             case MAP:
>>             default:
>>                 field.set(cmdObj, paramObj);
>>                 break;
>>
>> The ipToNetworkList of DeployVMCmd, is the only variable I found in
>> all apis which has this issue. So, in getIpToNetworkMap() we first try
>> to find a Network object using a network string value from the map's
>> "networkid" keyset and if we fail we try to parse long value. This
>> make the param backward compatible as well as accept both uuid and
>> ids. We can work on better ways to deal with maps in future.
>> Regards.
>>
>>>
>>> Kelven
>>>
>>>

Reply via email to