Public bug reported:

The documentation for the member_of query parameter for GET
/resource_providers [1] claims that it accepts a "comma-separated list
of strings representing aggregate uuids".  But attempting this with more
than one aggregate UUID results in a 400 error claiming:

Invalid uuid value: 1ceb128e-a714-4e4a-8eec-0d0a45c7039a,4a10858c-253e-
4df5-8ada-c5dbe5744462,7cb20f93-8789-434f-bbe4-76ea1d485c32

Turns out the code [2] is expecting a single UUID unless the prefix
'in:' is specified.

I see three possible solutions:

a) Remove the prefix check or make it accepted but ignored.  Don't tell
anyone.  After all, nobody could have been using it unless they had read
the source code.

b) Document the in: prefix.

c) Publish a new placement microversion X with the prefix check removed.
Document the in: prefix as being required up to microversion X-1 and
forbidden (or perhaps ignored?) at microversion X and beyond.

Personally, I think the prefix is superfluous and would rather see it
removed.  And the code change is trivial - one_uuid.split(',') will
happily return [one_uuid] if there's no commas in there.  Surely we
don't need a new microversion if we make it accepted but ignored??

[1] https://developer.openstack.org/api-ref/placement/#resource-providers
[2] 
https://github.com/openstack/nova/blob/57728836f25e9201ddec1e7790b552cfa840d572/nova/api/openstack/placement/handlers/resource_provider.py#L229-L233

** Affects: nova
     Importance: Undecided
     Assignee: Eric Fried (efried)
         Status: In Progress


** Tags: placement

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1733030

Title:
  GET /resource_providers?member_of misdocumented for lists

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  The documentation for the member_of query parameter for GET
  /resource_providers [1] claims that it accepts a "comma-separated list
  of strings representing aggregate uuids".  But attempting this with
  more than one aggregate UUID results in a 400 error claiming:

  Invalid uuid value: 1ceb128e-a714-4e4a-8eec-0d0a45c7039a,4a10858c-
  253e-4df5-8ada-c5dbe5744462,7cb20f93-8789-434f-bbe4-76ea1d485c32

  Turns out the code [2] is expecting a single UUID unless the prefix
  'in:' is specified.

  I see three possible solutions:

  a) Remove the prefix check or make it accepted but ignored.  Don't
  tell anyone.  After all, nobody could have been using it unless they
  had read the source code.

  b) Document the in: prefix.

  c) Publish a new placement microversion X with the prefix check
  removed.  Document the in: prefix as being required up to microversion
  X-1 and forbidden (or perhaps ignored?) at microversion X and beyond.

  Personally, I think the prefix is superfluous and would rather see it
  removed.  And the code change is trivial - one_uuid.split(',') will
  happily return [one_uuid] if there's no commas in there.  Surely we
  don't need a new microversion if we make it accepted but ignored??

  [1] https://developer.openstack.org/api-ref/placement/#resource-providers
  [2] 
https://github.com/openstack/nova/blob/57728836f25e9201ddec1e7790b552cfa840d572/nova/api/openstack/placement/handlers/resource_provider.py#L229-L233

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1733030/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to