lb octavia backend validation, mdproxy validation, rbac with lb
Change-Id: I4de9e15570cb6981612bba0dd6b4247bb8dd252d
This commit is contained in:
parent
4dc52cb9bd
commit
16c5d9e214
@ -271,7 +271,7 @@ class TrafficManager(appliance_manager.ApplianceManager):
|
||||
start_server = ('while true; do '
|
||||
'sudo nc -ll -p %(port)s -e sh /tmp/%(script)s; '
|
||||
'done > /dev/null &')
|
||||
cmd = start_server % {'port': constants.HTTP_PORT,
|
||||
cmd = start_server % {'port': protocol_port,
|
||||
'script': 'script'}
|
||||
ssh_client.exec_command(cmd)
|
||||
|
||||
|
@ -441,3 +441,90 @@ class VSMClient(object):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def check_cert_at_backend(self, lb_id=None, cert_conent=None):
|
||||
lbaas_edge_name = 'lbaas-' + lb_id[:-6]
|
||||
edge_id = self.get_lbaas_edge_id(lbaas_edge_name)
|
||||
self.__set_api_version('2.0')
|
||||
endpoint = '/services/truststore/certificate/scope/%s' % edge_id
|
||||
self.__set_endpoint(endpoint)
|
||||
response = self.get()
|
||||
certs = response.json()['certificates']
|
||||
for cert in certs:
|
||||
if cert['pemEncoding'] == cert_conent:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_lbaas_edge_id(self, edge_name):
|
||||
edges = self.get_all_edges()
|
||||
edge_ids = [e['id'] for e in edges if edge_name in e['name']]
|
||||
if len(edge_ids) == 0:
|
||||
LOG.debug('Edge %s NOT found!' % edge_name)
|
||||
edge = None
|
||||
else:
|
||||
edge = edge_ids[0]
|
||||
LOG.debug('Found edge: %s' % edge)
|
||||
return edge
|
||||
|
||||
def get_lbaas_config_from_edge(self, lbaas_id):
|
||||
lbaas_edge_name = 'lbaas-' + lbaas_id[:-6]
|
||||
edge_id = self.get_lbaas_edge_id(lbaas_edge_name)
|
||||
if edge_id is not None:
|
||||
self.__set_api_version('4.0')
|
||||
self.__set_endpoint('/edges/%s/loadbalancer/config' % edge_id)
|
||||
response = self.get()
|
||||
lbaas_config = response.json()
|
||||
else:
|
||||
LOG.debug('Edge NOT found with lb_id %s or deleted!' % lbaas_id)
|
||||
lbaas_config = []
|
||||
return lbaas_config
|
||||
|
||||
def verify_lbaas_on_edge(self, lbaas_id, listener=None,
|
||||
pool=None, member=None,
|
||||
hmonitor=None, cleanup=[]):
|
||||
lbaas_config = self.get_lbaas_config_from_edge(lbaas_id)
|
||||
if hmonitor:
|
||||
hms_vsm = [hm['id'] for hm in lbaas_config['monitor']]
|
||||
if 'hm' in cleanup:
|
||||
self.assertFalse(hmonitor['id'] in hms_vsm)
|
||||
else:
|
||||
self.assertTrue(hmonitor['id'] in hms_vsm)
|
||||
if pool:
|
||||
pool_vsm = \
|
||||
[(p['name'], p['algorithm']) for p in lbaas_config['pool']]
|
||||
if 'pool' in cleanup:
|
||||
self.assertFalse(('pool_' + pool['id'],
|
||||
'round-robin') in pool_vsm)
|
||||
else:
|
||||
self.assertTrue(('pool_' + pool['id'],
|
||||
'round-robin') in pool_vsm)
|
||||
if listener:
|
||||
listener_vsm = \
|
||||
[lr['name'] for lr in lbaas_config['virtualServer']]
|
||||
if 'listener' in cleanup:
|
||||
self.assertFalse('vip_' + listener['id'] in listener_vsm)
|
||||
else:
|
||||
self.assertTrue('vip_' + listener['id'] in listener_vsm)
|
||||
|
||||
def verify_member_status_of_md_proxy_edges(self):
|
||||
md_edge_name = 'metadata'
|
||||
edge_id = self.get_lbaas_edge_id(md_edge_name)
|
||||
result = False
|
||||
up_members = 0
|
||||
if edge_id is not None:
|
||||
self.__set_api_version('4.0')
|
||||
self.__set_endpoint('/edges/%s/loadbalancer/statistics' % edge_id)
|
||||
response = self.get()
|
||||
members = response.json()['pool'][0]['member']
|
||||
if members:
|
||||
for member in members:
|
||||
if member['status'] == 'UP':
|
||||
up_members += 1
|
||||
if len(members) == up_members:
|
||||
result = True
|
||||
else:
|
||||
LOG.debug('pool are not present on required edge')
|
||||
else:
|
||||
LOG.debug('Edge NOT found with mdproxy or deleted!')
|
||||
return result
|
||||
|
@ -752,8 +752,12 @@ class OctaviaListenersClient(base.BaseNetworkClient):
|
||||
uri = self.resource_object_path % listener_id
|
||||
return self.delete_resource(uri)
|
||||
|
||||
def update_octavia_listener(self, listener_id, default_pool_id):
|
||||
post_data = {"listener": {"default_pool_id": default_pool_id}}
|
||||
def update_octavia_listener(self, listener_id, default_pool_id=None,
|
||||
listener_data=None):
|
||||
if default_pool_id:
|
||||
post_data = {"listener": {"default_pool_id": default_pool_id}}
|
||||
if listener_data:
|
||||
post_data = {"listener": listener_data}
|
||||
uri = self.resource_object_path % listener_id
|
||||
return self.update_resource(uri, post_data)
|
||||
|
||||
@ -784,6 +788,11 @@ class OctaviaPoolsClient(base.BaseNetworkClient):
|
||||
uri = self.resource_base_path
|
||||
return self.list_resources(uri, **filters)
|
||||
|
||||
def update_octavia_pool(self, pool_id, pool_data):
|
||||
post_data = {"pool": pool_data}
|
||||
uri = self.resource_object_path % pool_id
|
||||
return self.update_resource(uri, post_data)
|
||||
|
||||
|
||||
class OctaviaHealthMonitorClient(base.BaseNetworkClient):
|
||||
"""
|
||||
@ -807,6 +816,11 @@ class OctaviaHealthMonitorClient(base.BaseNetworkClient):
|
||||
uri = self.resource_object_path % hm_id
|
||||
return self.delete_resource(uri)
|
||||
|
||||
def update_octavia_hm(self, hm_id, hm_data):
|
||||
post_data = {"healthmonitor": hm_data}
|
||||
uri = self.resource_object_path % hm_id
|
||||
return self.update_resource(uri, post_data)
|
||||
|
||||
|
||||
class OctaviaMembersClient(base.BaseNetworkClient):
|
||||
"""
|
||||
@ -829,6 +843,11 @@ class OctaviaMembersClient(base.BaseNetworkClient):
|
||||
uri = self.resource_object_path % (pool_id, member_id)
|
||||
return self.delete_resource(uri)
|
||||
|
||||
def update_octavia_member(self, pool_id, member_id, member_data):
|
||||
post_data = {'member': member_data}
|
||||
uri = self.resource_object_path % (pool_id, member_id)
|
||||
return self.update_resource(uri, post_data)
|
||||
|
||||
|
||||
class OctaviaL7PolicyClient(base.BaseNetworkClient):
|
||||
"""
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1950,3 +1950,9 @@ class TestNewCase(feature_manager.FeatureManager):
|
||||
port_id = self.cmgr_adm.ports_client.create_port(**args)['port']['id']
|
||||
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
|
||||
self.cmgr_adm.ports_client.delete_port, port_id)
|
||||
|
||||
@decorators.attr(type='nsxv')
|
||||
@decorators.idempotent_id('2226016b-91cc-8905-b217-22344cab24a2')
|
||||
def test_verify_mdproxy_member_status(self):
|
||||
"""verify mdproxy edges has member status is up"""
|
||||
self.assertTrue(self.vsm.verify_member_status_of_md_proxy_edges())
|
||||
|
Loading…
x
Reference in New Issue
Block a user