Public bug reported:

In the legacy v2 API, we create server with network like this:
"networks": [{"uuid": "f4001fde-7bb8-4a73-b1a9-03b444d1f6f8", "port": null}]'
The port can be null.

With v2.1 API, you will get 400:

curl -g -i -X POST 
http://192.168.2.176:8774/v2.1/b90b53ed87d74e19806da34dbaa056c9/servers -H 
"User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: 
application/json" -H "X-Auth-Token: e740965218754560a98d9ac188271253" -d 
'{"server": {"name": "vm4", "imageRef": "33a713dc-7efe-488c-bf12-d902ff5e6118", 
"flavorRef": "1", "max_count": 1, "min_count": 1, "networks": [{"uuid": 
"f4001fde-7bb8-4a73-b1a9-03b444d1f6f8", "port": null}]}}'
HTTP/1.1 400 Bad Request
X-Openstack-Nova-Api-Version: 2.1
Vary: X-OpenStack-Nova-API-Version
Content-Type: application/json; charset=UTF-8
Content-Length: 117
X-Compute-Request-Id: req-c5ab91ca-dc24-42ea-8272-7f35571b15da
Date: Mon, 07 Mar 2016 13:01:58 GMT

{"badRequest": {"message": "Invalid input for field/attribute port.
Value: None. None is not a 'uuid'", "code": 400}}

This is due to we write json-schema like this:
'port': {
       'type': ['string', 'null'],
       format': 'uuid'
 },


We assume 'type' will enable 'null' value and 'format' only against on string 
type. Actually 'null' will be passed to format check also, then the format 
check return fault.

** Affects: nova
     Importance: Medium
     Assignee: Alex Xu (xuhj)
         Status: In Progress

** Changed in: nova
     Assignee: (unassigned) => Alex Xu (xuhj)

** Changed in: nova
       Status: New => In Progress

** Changed in: nova
   Importance: Undecided => Medium

-- 
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/1555656

Title:
  None value allowed for port parameter in legacy v2 API, but not
  allowed in v2.1 API

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  In the legacy v2 API, we create server with network like this:
  "networks": [{"uuid": "f4001fde-7bb8-4a73-b1a9-03b444d1f6f8", "port": null}]'
  The port can be null.

  With v2.1 API, you will get 400:

  curl -g -i -X POST 
http://192.168.2.176:8774/v2.1/b90b53ed87d74e19806da34dbaa056c9/servers -H 
"User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: 
application/json" -H "X-Auth-Token: e740965218754560a98d9ac188271253" -d 
'{"server": {"name": "vm4", "imageRef": "33a713dc-7efe-488c-bf12-d902ff5e6118", 
"flavorRef": "1", "max_count": 1, "min_count": 1, "networks": [{"uuid": 
"f4001fde-7bb8-4a73-b1a9-03b444d1f6f8", "port": null}]}}'
  HTTP/1.1 400 Bad Request
  X-Openstack-Nova-Api-Version: 2.1
  Vary: X-OpenStack-Nova-API-Version
  Content-Type: application/json; charset=UTF-8
  Content-Length: 117
  X-Compute-Request-Id: req-c5ab91ca-dc24-42ea-8272-7f35571b15da
  Date: Mon, 07 Mar 2016 13:01:58 GMT

  {"badRequest": {"message": "Invalid input for field/attribute port.
  Value: None. None is not a 'uuid'", "code": 400}}

  This is due to we write json-schema like this:
  'port': {
         'type': ['string', 'null'],
         format': 'uuid'
   },

  
  We assume 'type' will enable 'null' value and 'format' only against on string 
type. Actually 'null' will be passed to format check also, then the format 
check return fault.

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to