NSX|V: be able to deal with more than 256 edges
Ensure that the admin utility can work when there are more than 256 edges deifned. The NSX api returns details that enable us to work with pagination. Change-Id: I1083875193d9d893d725c48d7c1434f064fef5b6
This commit is contained in:
parent
a7ba4590f5
commit
df2b366593
@ -262,16 +262,6 @@ class EdgeApplianceDriver(object):
|
||||
|
||||
return status_level
|
||||
|
||||
def get_edges_statuses(self):
|
||||
edges_status_level = {}
|
||||
edges = self._get_edges()
|
||||
for edge in edges['edgePage'].get('data', []):
|
||||
edge_id = edge['id']
|
||||
status = edge['edgeStatus']
|
||||
edges_status_level[edge_id] = self._edge_status_to_level(status)
|
||||
|
||||
return edges_status_level
|
||||
|
||||
def get_interface(self, edge_id, vnic_index):
|
||||
# get vnic interface address groups
|
||||
try:
|
||||
@ -372,13 +362,6 @@ class EdgeApplianceDriver(object):
|
||||
LOG.debug("Deletion complete vnic %(vnic_index)s: on edge %(edge_id)s",
|
||||
{'vnic_index': index, 'edge_id': edge_id})
|
||||
|
||||
def _get_edges(self):
|
||||
try:
|
||||
return self.vcns.get_edges()[1]
|
||||
except exceptions.VcnsApiException as e:
|
||||
LOG.exception("VCNS: Failed to get edges:\n%s", e.response)
|
||||
raise e
|
||||
|
||||
def deploy_edge(self, context, router_id, name, internal_network,
|
||||
dist=False, loadbalancer_enable=True,
|
||||
appliance_size=nsxv_constants.LARGE,
|
||||
|
@ -236,10 +236,26 @@ class Vcns(object):
|
||||
uri = "%s/%s" % (URI_PREFIX, edge_id)
|
||||
return self.do_request(HTTP_GET, uri, decode=True)
|
||||
|
||||
def get_edges(self):
|
||||
uri = URI_PREFIX
|
||||
def _get_edges(self, startindex=0):
|
||||
uri = '%s?startIndex=%d' % (URI_PREFIX, startindex)
|
||||
return self.do_request(HTTP_GET, uri, decode=True)
|
||||
|
||||
def get_edges(self):
|
||||
edges = []
|
||||
h, d = self._get_edges()
|
||||
edges.extend(d['edgePage']['data'])
|
||||
paging_info = d['edgePage']['pagingInfo']
|
||||
page_size = int(paging_info['pageSize'])
|
||||
count = int(paging_info['totalCount'])
|
||||
LOG.debug("There are total %s edges and page size is %s",
|
||||
count, page_size)
|
||||
pages = count / page_size + 1
|
||||
for i in range(1, pages):
|
||||
start_index = page_size * i
|
||||
h, d = self._get_edges(start_index)
|
||||
edges.extend(d['edgePage']['data'])
|
||||
return edges
|
||||
|
||||
def get_edge_syslog(self, edge_id):
|
||||
uri = "%s/%s/syslog/config" % (URI_PREFIX, edge_id)
|
||||
return self.do_request(HTTP_GET, uri, decode=True)
|
||||
|
@ -101,8 +101,7 @@ def get_nsxv_backend_edges():
|
||||
"""Get a list of all the backend edges and some of their attributes
|
||||
"""
|
||||
nsxv = get_nsxv_client()
|
||||
edges = nsxv.get_edges()[1]
|
||||
edges = edges['edgePage'].get('data', [])
|
||||
edges = nsxv.get_edges()
|
||||
backend_edges = []
|
||||
for edge in edges:
|
||||
# get all the relevant backend information for this edge
|
||||
|
@ -411,9 +411,6 @@ class FakeVcns(object):
|
||||
return (header, response)
|
||||
|
||||
def get_edges(self):
|
||||
header = {
|
||||
'status': 200
|
||||
}
|
||||
edges = []
|
||||
for edge_id in self._edges:
|
||||
edges.append({
|
||||
@ -421,12 +418,7 @@ class FakeVcns(object):
|
||||
'edgeStatus': 'GREEN',
|
||||
'name': self._edges[edge_id]['name']
|
||||
})
|
||||
response = {
|
||||
'edgePage': {
|
||||
'data': edges
|
||||
}
|
||||
}
|
||||
return (header, response)
|
||||
return edges
|
||||
|
||||
def get_vdn_switch(self, dvs_id):
|
||||
header = {
|
||||
|
@ -380,16 +380,6 @@ class VcnsDriverTestCase(base.BaseTestCase):
|
||||
status = self.vcns_driver.get_edge_status(self.edge_id)
|
||||
self.assertEqual(vcns_const.RouterStatus.ROUTER_STATUS_ACTIVE, status)
|
||||
|
||||
def test_get_edges(self):
|
||||
self._deploy_edge()
|
||||
edges = self.vcns_driver.get_edges_statuses()
|
||||
found = False
|
||||
for edge_id, status in six.iteritems(edges):
|
||||
if edge_id == self.edge_id:
|
||||
found = True
|
||||
break
|
||||
self.assertTrue(found)
|
||||
|
||||
def test_update_nat_rules(self):
|
||||
self._deploy_edge()
|
||||
snats = [{
|
||||
|
Loading…
x
Reference in New Issue
Block a user