[openstack-dev] [Glance] Why are location indices in Glance '1' (and not '0') based?
    David Koo 
    kpublicmail at gmail.com
       
    Sat Feb  8 03:25:40 UTC 2014
    
    
  
Hi all,
In api.v2.images.ImagesController._get_locations_op_pos there is a
comment that location indices start from one from the client's
perspective and the code subtracts one from the incoming 'index
position' parameter before proceeding with the subsequent operations.
But I see that json-patch RFCs[1][2] say patch indices for lists must be
zero-based and not one-based.
[1] (which is referred to in the "image service dev guide") says:
    If the currently referenced value is a JSON array, the token MUST
    contain an unsigned base-10 integer value, and the new referenced
    value is the array element with the zero-based index identified by
    the token.
And [2] (which I got from Googling and seems newer than [1]) says:
   o  If the currently referenced value is a JSON array, the reference
      token MUST contain either:
      *  characters comprised of digits (see ABNF below; note that
         leading zeros are not allowed) that represent an unsigned
         base-10 integer value, making the new referenced value the
         array element with the zero-based index identified by the
         token, or
      *  exactly the single character "-", making the new referenced
         value the (nonexistent) member after the last array element.
Indeed, warlock (which glanceclient uses to generate json patches)
generates patches with a zero based index, not one.
So why is the location indexing one-based, have I missed something?
Thanks.
--
Koo
[1] http://tools.ietf.org/html/draft-pbryan-zyp-json-pointer-02
[2] http://tools.ietf.org/html/rfc6901
    
    
More information about the OpenStack-dev
mailing list