NSXv3 Client: Add paginated response
Change-Id: I8fb23fb239c0c2d9f5d08085dabcb2e96384b8fd
This commit is contained in:
parent
6bd068859e
commit
3650b33e4d
@ -27,6 +27,7 @@ LOG = log.getLogger(__name__)
|
||||
ERRORS = {requests.codes.NOT_FOUND: exceptions.ResourceNotFound,
|
||||
requests.codes.PRECONDITION_FAILED: exceptions.StaleRevision}
|
||||
DEFAULT_ERROR = exceptions.ManagerError
|
||||
NULL_CURSOR_PREFIX = '0000'
|
||||
|
||||
|
||||
class RESTClient(object):
|
||||
@ -54,8 +55,8 @@ class RESTClient(object):
|
||||
default_headers=self._default_headers,
|
||||
client_obj=self)
|
||||
|
||||
def list(self, headers=None):
|
||||
return self.url_list('')
|
||||
def list(self, resource='', headers=None):
|
||||
return self.url_list(resource, headers=headers)
|
||||
|
||||
def get(self, uuid, headers=None):
|
||||
return self.url_get(uuid, headers=headers)
|
||||
@ -70,7 +71,16 @@ class RESTClient(object):
|
||||
return self.url_post(resource, body, headers=headers)
|
||||
|
||||
def url_list(self, url, headers=None):
|
||||
return self.url_get(url, headers=headers)
|
||||
concatenate_response = self.url_get(url, headers=headers)
|
||||
cursor = concatenate_response.get('cursor', NULL_CURSOR_PREFIX)
|
||||
op = '&' if urlparse.urlparse(url).query else '?'
|
||||
url += op + 'cursor='
|
||||
|
||||
while cursor and not cursor.startswith(NULL_CURSOR_PREFIX):
|
||||
page = self.url_get(url + cursor, headers=headers)
|
||||
concatenate_response['results'].extend(page.get('results', []))
|
||||
cursor = page.get('cursor', NULL_CURSOR_PREFIX)
|
||||
return concatenate_response
|
||||
|
||||
def url_get(self, url, headers=None):
|
||||
return self._rest_call(url, method='GET', headers=headers)
|
||||
|
@ -159,7 +159,7 @@ class NsxLibNsGroup(utils.NsxLibApiBase):
|
||||
return self.client.create('ns-groups', body)
|
||||
|
||||
def list(self):
|
||||
return self.client.get(
|
||||
return self.client.list(
|
||||
'ns-groups?populate_references=false').get('results', [])
|
||||
|
||||
def update(self, nsgroup_id, display_name=None, description=None,
|
||||
@ -370,7 +370,7 @@ class NsxLibFirewallSection(utils.NsxLibApiBase):
|
||||
|
||||
def list(self):
|
||||
resource = 'firewall/sections'
|
||||
return self.client.get(resource).get('results', [])
|
||||
return self.client.list(resource).get('results', [])
|
||||
|
||||
def delete(self, section_id):
|
||||
resource = 'firewall/sections/%s?cascade=true' % section_id
|
||||
|
Loading…
x
Reference in New Issue
Block a user