Fix hypervisors paginted collection_name.
Hypervisor view builder's _collection_name, 'hypervisors' is used to build next link that sdk use as uri to do paginated query. But correct API should be `GET /v2.1/os-hypervisors?<params>` rather than `GET /v2.1/hypervisors?<params>`. This patch fixes this bug. Change-Id: Idc4f3fe54136a6bd3dbc7dc0efd3f62745991199 Closes-Bug: 1864428 Signed-off-by: Fan Zhang <zh.f@outlook.com>
This commit is contained in:
@@ -42,7 +42,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=2",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=2",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=2",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors?limit=1&marker=2",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -17,7 +17,7 @@ from nova.api.openstack import common
|
|||||||
|
|
||||||
|
|
||||||
class ViewBuilder(common.ViewBuilder):
|
class ViewBuilder(common.ViewBuilder):
|
||||||
_collection_name = "hypervisors"
|
_collection_name = "os-hypervisors"
|
||||||
|
|
||||||
def get_links(self, request, hypervisors, detail=False):
|
def get_links(self, request, hypervisors, detail=False):
|
||||||
coll_name = (self._collection_name + '/detail' if detail else
|
coll_name = (self._collection_name + '/detail' if detail else
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=2",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=2",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=2",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors?limit=1&marker=2",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=%(hypervisor_id)s",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors/detail?limit=1&marker=%(hypervisor_id)s",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
],
|
],
|
||||||
"hypervisors_links": [
|
"hypervisors_links": [
|
||||||
{
|
{
|
||||||
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=%(hypervisor_id)s",
|
"href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-hypervisors?limit=1&marker=%(hypervisor_id)s",
|
||||||
"rel": "next"
|
"rel": "next"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -746,7 +746,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
|
|||||||
'status': 'enabled'}
|
'status': 'enabled'}
|
||||||
],
|
],
|
||||||
'hypervisors_links': [
|
'hypervisors_links': [
|
||||||
{'href': 'http://localhost/v2/hypervisors?limit=1&marker=2',
|
{'href': 'http://localhost/v2/os-hypervisors?limit=1&marker=2',
|
||||||
'rel': 'next'}
|
'rel': 'next'}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -807,7 +807,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
|
|||||||
'status': 'enabled'}
|
'status': 'enabled'}
|
||||||
],
|
],
|
||||||
'hypervisors_links': [
|
'hypervisors_links': [
|
||||||
{'href': 'http://localhost/v2/hypervisors?limit=1&marker=2',
|
{'href': 'http://localhost/v2/os-hypervisors?limit=1&marker=2',
|
||||||
'rel': 'next'}
|
'rel': 'next'}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -820,7 +820,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
|
|||||||
req = self._get_request(
|
req = self._get_request(
|
||||||
True, '/v2/1234/os-hypervisors/detail?limit=1&marker=1')
|
True, '/v2/1234/os-hypervisors/detail?limit=1&marker=1')
|
||||||
result = self.controller.detail(req)
|
result = self.controller.detail(req)
|
||||||
link = 'http://localhost/v2/hypervisors/detail?limit=1&marker=2'
|
link = 'http://localhost/v2/os-hypervisors/detail?limit=1&marker=2'
|
||||||
expected = {
|
expected = {
|
||||||
'hypervisors': [
|
'hypervisors': [
|
||||||
{'cpu_info': {'arch': 'x86_64',
|
{'cpu_info': {'arch': 'x86_64',
|
||||||
@@ -922,7 +922,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
|
|||||||
self.assertEqual(expected, result['hypervisors'])
|
self.assertEqual(expected, result['hypervisors'])
|
||||||
|
|
||||||
def test_detail_pagination_with_additional_filter(self):
|
def test_detail_pagination_with_additional_filter(self):
|
||||||
link = 'http://localhost/v2/hypervisors/detail?limit=1&marker=2'
|
link = 'http://localhost/v2/os-hypervisors/detail?limit=1&marker=2'
|
||||||
expected = {
|
expected = {
|
||||||
'hypervisors': [
|
'hypervisors': [
|
||||||
{'cpu_info': {'arch': 'x86_64',
|
{'cpu_info': {'arch': 'x86_64',
|
||||||
@@ -1256,7 +1256,7 @@ class HypervisorsTestV253(HypervisorsTestV252):
|
|||||||
url='/os-hypervisors/detail?limit=1&marker=%s' %
|
url='/os-hypervisors/detail?limit=1&marker=%s' %
|
||||||
TEST_HYPERS_OBJ[0].uuid)
|
TEST_HYPERS_OBJ[0].uuid)
|
||||||
result = self.controller.detail(req)
|
result = self.controller.detail(req)
|
||||||
link = ('http://localhost/v2/hypervisors/detail?limit=1&marker=%s' %
|
link = ('http://localhost/v2/os-hypervisors/detail?limit=1&marker=%s' %
|
||||||
TEST_HYPERS_OBJ[1].uuid)
|
TEST_HYPERS_OBJ[1].uuid)
|
||||||
expected = {
|
expected = {
|
||||||
'hypervisors': [
|
'hypervisors': [
|
||||||
@@ -1332,7 +1332,7 @@ class HypervisorsTestV253(HypervisorsTestV252):
|
|||||||
url='/os-hypervisors?limit=1&marker=%s' %
|
url='/os-hypervisors?limit=1&marker=%s' %
|
||||||
TEST_HYPERS_OBJ[0].uuid)
|
TEST_HYPERS_OBJ[0].uuid)
|
||||||
result = self.controller.index(req)
|
result = self.controller.index(req)
|
||||||
link = ('http://localhost/v2/hypervisors?limit=1&marker=%s' %
|
link = ('http://localhost/v2/os-hypervisors?limit=1&marker=%s' %
|
||||||
TEST_HYPERS_OBJ[1].uuid)
|
TEST_HYPERS_OBJ[1].uuid)
|
||||||
expected = {
|
expected = {
|
||||||
'hypervisors': [{
|
'hypervisors': [{
|
||||||
|
Reference in New Issue
Block a user