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": [
 | 
			
		||||
        {
 | 
			
		||||
            "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ from nova.api.openstack import common
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ViewBuilder(common.ViewBuilder):
 | 
			
		||||
    _collection_name = "hypervisors"
 | 
			
		||||
    _collection_name = "os-hypervisors"
 | 
			
		||||
 | 
			
		||||
    def get_links(self, request, hypervisors, detail=False):
 | 
			
		||||
        coll_name = (self._collection_name + '/detail' if detail else
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
    ],
 | 
			
		||||
    "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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
@@ -746,7 +746,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
 | 
			
		||||
                 'status': 'enabled'}
 | 
			
		||||
            ],
 | 
			
		||||
            'hypervisors_links': [
 | 
			
		||||
                {'href': 'http://localhost/v2/hypervisors?limit=1&marker=2',
 | 
			
		||||
                {'href': 'http://localhost/v2/os-hypervisors?limit=1&marker=2',
 | 
			
		||||
                 'rel': 'next'}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
@@ -807,7 +807,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
 | 
			
		||||
                 'status': 'enabled'}
 | 
			
		||||
            ],
 | 
			
		||||
            'hypervisors_links': [
 | 
			
		||||
                {'href': 'http://localhost/v2/hypervisors?limit=1&marker=2',
 | 
			
		||||
                {'href': 'http://localhost/v2/os-hypervisors?limit=1&marker=2',
 | 
			
		||||
                 'rel': 'next'}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
@@ -820,7 +820,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
 | 
			
		||||
        req = self._get_request(
 | 
			
		||||
            True, '/v2/1234/os-hypervisors/detail?limit=1&marker=1')
 | 
			
		||||
        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 = {
 | 
			
		||||
            'hypervisors': [
 | 
			
		||||
                {'cpu_info': {'arch': 'x86_64',
 | 
			
		||||
@@ -922,7 +922,7 @@ class HypervisorsTestV233(HypervisorsTestV228):
 | 
			
		||||
            self.assertEqual(expected, result['hypervisors'])
 | 
			
		||||
 | 
			
		||||
    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 = {
 | 
			
		||||
            'hypervisors': [
 | 
			
		||||
                {'cpu_info': {'arch': 'x86_64',
 | 
			
		||||
@@ -1256,7 +1256,7 @@ class HypervisorsTestV253(HypervisorsTestV252):
 | 
			
		||||
            url='/os-hypervisors/detail?limit=1&marker=%s' %
 | 
			
		||||
                TEST_HYPERS_OBJ[0].uuid)
 | 
			
		||||
        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)
 | 
			
		||||
        expected = {
 | 
			
		||||
            'hypervisors': [
 | 
			
		||||
@@ -1332,7 +1332,7 @@ class HypervisorsTestV253(HypervisorsTestV252):
 | 
			
		||||
            url='/os-hypervisors?limit=1&marker=%s' %
 | 
			
		||||
                TEST_HYPERS_OBJ[0].uuid)
 | 
			
		||||
        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)
 | 
			
		||||
        expected = {
 | 
			
		||||
            'hypervisors': [{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user