Nova API v2.1 error to specify multiple different_hosts.

Bug #1521928 reported by Yukinori Yagisawa on 2015-12-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
High
Ken'ichi Ohmichi
Liberty
High
Ken'ichi Ohmichi

Bug Description

1.rpm -qa | grep nova
openstack-novncproxy-12.0.0-1.el7.noarch
openstack-console-12.0.0-1.el7.noarch
openstack-common-12.0.0-1.el7.noarch
openstack-conductor-12.0.0-1.el7.noarch
openstack-cert-12.0.0-1.el7.noarch
openstack-nova-api-12.0.0-1.el7.noarch
openstack-nova-scheduler-12.0.0-1.el7.noarch
python-novaclient-2.30.1-1.el7.noarch
python-nova-12.0.0-1.el7.noarch

2.log
[server create request]
POST /v2/28983b2ce4354747a9958de57ea9c328/servers HTTP/1.1
Host: 220.xxx.xxx.xxx:8774
X-Auth-Token: 54fdf9becfcc4540b009a29618f13545
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 7c2f7922-7ac6-0667-0c09-a3a1587d60ba

{
    "os:scheduler_hints": {
        "different_host": [
            "099b8bee-9264-48fe-a745-45b22f7ff79f",
            "99644acc-8893-4656-9481-0114efdbc9b6"
        ]
    },
    "server": {
        "name": "ccc",
        "imageRef": "df4191a9-caa6-496b-bed0-eb57ec683fcf",
        "flavorRef": "1",
        "networks": [
            {
                "uuid": "fb0232ba-e9f0-423f-b928-aea3fd3741c7"
            }
        ],
        "availability_zone": "nova"
    }
}

[api response]
Status 400 OK
Time 768 ms

Connection →
Connection
Options that are desired for the connection
close
Content-Length → 283
Content-Type → application/json; charset=UTF-8
Date → Wed, 02 Dec 2015 09:21:43 GMT
Server → Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
X-Compute-Request-Id → req-f3702257-76b1-4f32-b07c-a0d3608c014f

{
    "badRequest": {
        "message": "Invalid input for field/attribute different_host. Value: [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6']. [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6'] is not a 'uuid'",
        "code": 400
    }
}

[nova-api.log]
2015-12-02 09:21:43.975 22018 DEBUG nova.osapi_compute.wsgi.server [-] (22018) accepted ('192.168.0.22', 43272) server /usr/lib/python2.7/site-packages/eventlet/wsgi.py:826
2015-12-02 09:21:43.982 22018 DEBUG nova.api.openstack.wsgi [req-f3702257-76b1-4f32-b07c-a0d3608c014f 5c5696fa83854f7690e7fc36320bacd0 28983b2ce4354747a9958de57ea9c328 - - -] Action: 'create', calling method: <bound method ServersController.create of <nova.api.openstack.compute.servers.ServersController object at 0x79c6110>>, body: {
    "os:scheduler_hints": {
        "different_host": [
            "099b8bee-9264-48fe-a745-45b22f7ff79f",
            "99644acc-8893-4656-9481-0114efdbc9b6"
        ]
    },
    "server": {
        "name": "ccc",
        "imageRef": "df4191a9-caa6-496b-bed0-eb57ec683fcf",
        "flavorRef": "1",
        "networks": [
            {
                "uuid": "fb0232ba-e9f0-423f-b928-aea3fd3741c7"
            }
        ],
        "availability_zone": "nova"
    }
} _process_stack /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:789
2015-12-02 09:21:43.986 22018 DEBUG nova.api.openstack.wsgi [req-f3702257-76b1-4f32-b07c-a0d3608c014f 5c5696fa83854f7690e7fc36320bacd0 28983b2ce4354747a9958de57ea9c328 - - -] Returning 400 to user: Invalid input for field/attribute different_host. Value: [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6']. [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6'] is not a 'uuid' __call__ /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:1175
2015-12-02 09:21:43.987 22018 INFO nova.osapi_compute.wsgi.server [req-f3702257-76b1-4f32-b07c-a0d3608c014f 5c5696fa83854f7690e7fc36320bacd0 28983b2ce4354747a9958de57ea9c328 - - -] xxx.xxx.xxx.xxx,192.168.0.22 "POST /v2/28983b2ce4354747a9958de57ea9c328/servers HTTP/1.1" status: 400 len: 493 time: 0.0096600

[nova list]
[root@liberty-controll-1 ~(keystone_admin)]# nova list --all-tenants --fields name,host_id
+--------------------------------------+---------------------------+----------------------------------------------------------+
| ID | Name | Host Id |
+--------------------------------------+---------------------------+----------------------------------------------------------+
| 099b8bee-9264-48fe-a745-45b22f7ff79f | aa02 | 9962f246261aeb103a440fdd0141da24e15b383a05573f50ed201616 |
| 99644acc-8893-4656-9481-0114efdbc9b6 | aa03 | f8bc3b367d0efd50a587acebcc887a020f776a5a14f3f2e9689cd639 |
| 22bdd6e1-336b-4d74-a1c2-4d3eb1b776a2 | server-test2 | 9962f246261aeb103a440fdd0141da24e15b383a05573f50ed201616 |
| 474603c5-dc69-456e-b237-5a502d79b2d2 | server-test3/server-test4 | f8bc3b367d0efd50a587acebcc887a020f776a5a14f3f2e9689cd639 |
| 9205a464-6c81-475b-b632-7d0890b66e6e | test1 | 36b8822f9a58a1fa1da66ed61482e4c599311eb62b4a73e0eac0be63 |
| 25c1cebf-bbcd-4593-936d-79fe8af5b658 | test2 | 936afc22f57c1a3f6513e4cec1a3ad6c8527173c6580bee4c303900c |
| 8127f5a8-3a80-41ad-b937-ea1a3580f543 | test2 | 936afc22f57c1a3f6513e4cec1a3ad6c8527173c6580bee4c303900c |
| 118dfb58-3b46-4af4-ab59-77cdbdc2d4cb | test3 | 936afc22f57c1a3f6513e4cec1a3ad6c8527173c6580bee4c303900c |
| 5fc8378b-ad45-4af3-a317-2fc6c53fdd49 | test5 | 36b8822f9a58a1fa1da66ed61482e4c599311eb62b4a73e0eac0be63 |
| 525b845f-5edc-47b2-bd1a-172ab6efc7d8 | test6 | 936afc22f57c1a3f6513e4cec1a3ad6c8527173c6580bee4c303900c |
| 6d50a40b-3ca1-4861-8069-a3b20b4b158c | test7 | 8065a46dcb5f3b23e4deaa5cab9e08b4dcccf57fa2fc089d81d0332d |
| 351d9151-d616-4e29-996f-9be0fd2a87e8 | test8 | 936afc22f57c1a3f6513e4cec1a3ad6c8527173c6580bee4c303900c |
| ea909da4-5246-41cb-b070-5aab65214283 | test9 | 36b8822f9a58a1fa1da66ed61482e4c599311eb62b4a73e0eac0be63 |
+--------------------------------------+---------------------------+----------------------------------------------------------+

3.step
(1)create server aa02
(2)create server aa03 with DifferentHostFilter(different_host=aa02_ID) -> OK
(3)create server ccc with DifferentHostFilter(different_host=aa02,aa03 ID) -> NG
 Error:
  nvalid input for field/attribute different_host. Value: [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6']. [u'099b8bee-9264-48fe-a745-45b22f7ff79f', u'99644acc-8893-4656-9481-0114efdbc9b6'] is not a 'uuid'

This error has not occured on "Kilo Compute v2" and "Juno Compute v2",but same error has occured on "Kilo Compute V2.1"

description: updated
tags: added: api
Changed in nova:
assignee: nobody → Yg03769 (yyagi)

Fix proposed to branch: master
Review: https://review.openstack.org/253012

Changed in nova:
status: New → In Progress

Fix proposed to branch: master
Review: https://review.openstack.org/259247

Changed in nova:
assignee: Yukinori Yagisawa (yyagi) → Ken'ichi Ohmichi (oomichi)
Changed in nova:
importance: Undecided → Medium
tags: added: scheduler

Reviewed: https://review.openstack.org/259247
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=2841dd3de96792bd9172115945b5ffa5a1fe7c31
Submitter: Jenkins
Branch: master

commit 2841dd3de96792bd9172115945b5ffa5a1fe7c31
Author: Ken'ichi Ohmichi <email address hidden>
Date: Fri Dec 18 01:23:47 2015 +0000

    Make scheduler_hints schema allow list of id

    Nova v2.0 API allows a list of server_id, and the corresponding
    filter handles it. However, Nova v2.1 API doesn't do that now.
    That is backward incompatibile issue.
    This patch fixes this issue.

    NOTE: Tempest patch Ib3365ac2783a0578c7a1a1e72d9b6c9cfea340f5
          is for reproducing this problem on the gate.
          After this fixing, the Tempest patch can be merged and
          we will be able to block this problem.

    Change-Id: I1de7d184c590e84ab1b38880c8d784d38c37b820
    Closes-Bug: #1521928

Changed in nova:
status: In Progress → Fix Released
Matt Riedemann (mriedem) on 2016-01-07
Changed in nova:
importance: Medium → High
Changed in nova:
milestone: none → mitaka-2

Reviewed: https://review.openstack.org/263567
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=9d47930c8d131b807cbb7f8392435ba54ff45b3c
Submitter: Jenkins
Branch: stable/liberty

commit 9d47930c8d131b807cbb7f8392435ba54ff45b3c
Author: Ken'ichi Ohmichi <email address hidden>
Date: Fri Dec 18 01:23:47 2015 +0000

    Make scheduler_hints schema allow list of id

    Nova v2.0 API allows a list of server_id, and the corresponding
    filter handles it. However, Nova v2.1 API doesn't do that now.
    That is backward incompatibile issue.
    This patch fixes this issue.

    NOTE: Tempest patch Ib3365ac2783a0578c7a1a1e72d9b6c9cfea340f5
          is for reproducing this problem on the gate.
          After this fixing, the Tempest patch can be merged and
          we will be able to block this problem.

    Change-Id: I1de7d184c590e84ab1b38880c8d784d38c37b820
    Closes-Bug: #1521928
    (cherry picked from commit 2841dd3de96792bd9172115945b5ffa5a1fe7c31)

This issue was fixed in the openstack/nova 12.0.1 release.

Change abandoned by Ken'ichi Ohmichi (<email address hidden>) on branch: master
Review: https://review.openstack.org/253012
Reason: Sorry, but this patch becomes unnecessary now and needs to be abandoned for making the review queue small.

This issue was fixed in the openstack/nova 13.0.0.0b2 development milestone.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers