Add v3 api samples for scheduler-hints

Adds api sample tests and api samples for scheduler-hints

Partially implements blueprint v3-api-unittests
Partially implements blueprint v3-api-specification

Change-Id: If7bc47dc92c1e7f33f80ea567688d067c42fa219
This commit is contained in:
He Jie Xu
2013-10-28 15:54:56 +08:00
parent 79d0ce6171
commit 6222379def
9 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"server" : {
"name" : "new-server-test",
"image_ref" : "http://glance.openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
"flavor_ref" : "http://openstack.example.com/openstack/flavors/1",
"os-scheduler-hints:scheduler_hints": {
"hypervisor": "xen",
"near": "48e6a9f6-30af-47e0-bc04-acaed113bb4e"
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<server xmlns:os-scheduler-hints="http://docs.openstack.org/compute/ext/scheduler-hints/api/v3" xmlns="http://docs.openstack.org/compute/api/v1.1" image_ref="http://glance.openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" flavor_ref="http://openstack.example.com/flavors/1" name="new-server-test">
<os-scheduler-hints:scheduler_hints>
<hypervisor>xen</hypervisor>
<near>a424ff53-f7ef-405c-871f-3f8c08c6e0e9</near>
</os-scheduler-hints:scheduler_hints>
</server>

View File

@@ -0,0 +1,16 @@
{
"server": {
"admin_password": "erQXgJ8NBDD4",
"id": "4c8b1df3-46f7-4555-98d8-cdb869aaf9ad",
"links": [
{
"href": "http://openstack.example.com/v3/servers/4c8b1df3-46f7-4555-98d8-cdb869aaf9ad",
"rel": "self"
},
{
"href": "http://openstack.example.com/servers/4c8b1df3-46f7-4555-98d8-cdb869aaf9ad",
"rel": "bookmark"
}
]
}
}

View File

@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="2bb7ebcf-e142-4c81-9504-6bf917405f92" admin_password="kW5jziJ3BKd8">
<metadata/>
<atom:link href="http://openstack.example.com/v3/servers/2bb7ebcf-e142-4c81-9504-6bf917405f92" rel="self"/>
<atom:link href="http://openstack.example.com/servers/2bb7ebcf-e142-4c81-9504-6bf917405f92" rel="bookmark"/>
</server>

View File

@@ -0,0 +1,11 @@
{
"server" : {
"name" : "new-server-test",
"image_ref" : "%(glance_host)s/openstack/images/%(image_id)s",
"flavor_ref" : "%(host)s/openstack/flavors/1",
"os-scheduler-hints:scheduler_hints": {
"hypervisor": "xen",
"near": "%(image_near)s"
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<server xmlns:os-scheduler-hints="http://docs.openstack.org/compute/ext/scheduler-hints/api/v3" xmlns="http://docs.openstack.org/compute/api/v1.1" image_ref="%(glance_host)s/openstack/images/%(image_id)s" flavor_ref="%(host)s/flavors/1" name="new-server-test">
<os-scheduler-hints:scheduler_hints>
<hypervisor>xen</hypervisor>
<near>%(image_near)s</near>
</os-scheduler-hints:scheduler_hints>
</server>

View File

@@ -0,0 +1,16 @@
{
"server": {
"admin_password": "%(password)s",
"id": "%(id)s",
"links": [
{
"href": "http://openstack.example.com/v3/servers/%(uuid)s",
"rel": "self"
},
{
"href": "http://openstack.example.com/servers/%(uuid)s",
"rel": "bookmark"
}
]
}
}

View File

@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="%(id)s" admin_password="%(password)s">
<metadata/>
<atom:link href="%(host)s/v3/servers/%(uuid)s" rel="self"/>
<atom:link href="%(host)s/servers/%(uuid)s" rel="bookmark"/>
</server>

View File

@@ -0,0 +1,37 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2012 Nebula, Inc.
# Copyright 2013 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import uuid
from nova.tests.image import fake
from nova.tests.integrated.v3 import api_sample_base
class SchedulerHintsJsonTest(api_sample_base.ApiSampleTestBaseV3):
extension_name = "os-scheduler-hints"
def test_scheduler_hints_post(self):
# Get api sample of scheduler hint post request.
subs = self._get_regexes()
subs.update({'image_id': fake.get_valid_image_id(),
'image_near': str(uuid.uuid4())})
response = self._do_post('servers', 'scheduler-hints-post-req',
subs)
self._verify_response('scheduler-hints-post-resp', subs, response, 202)
class SchedulerHintsXmlTest(SchedulerHintsJsonTest):
ctype = 'xml'