Test case for neutron_v2 driver(2)
This patch completed the test case of neutron_v2 driver. Change-Id: I5c864945fe04f706de5f57c7863193c020b9a58f Closes-Bug: #1472851
This commit is contained in:
parent
8bba5b7df3
commit
28460e97a4
|
@ -295,7 +295,7 @@ class NeutronClient(base.DriverBase):
|
|||
|
||||
def healthmonitor_list(self):
|
||||
try:
|
||||
hms = [hm for hm in self.conn.network.list_health_monitors()]
|
||||
hms = [hm for hm in self.conn.network.health_monitors()]
|
||||
except sdk.exc.HttpException as ex:
|
||||
LOG.exception(_('Failed in listing lb health-monitor: %s.'),
|
||||
six.text_type(ex))
|
||||
|
@ -325,7 +325,7 @@ class NeutronClient(base.DriverBase):
|
|||
kwargs['expected_codes'] = expected_codes
|
||||
|
||||
try:
|
||||
res = self.conn.network.create_pool(**kwargs)
|
||||
res = self.conn.network.create_health_monitor(**kwargs)
|
||||
except sdk.exc.HttpException as ex:
|
||||
LOG.exception(_('Failed in creating lb health-monitor: %s.'),
|
||||
six.text_type(ex))
|
||||
|
|
|
@ -150,3 +150,381 @@ class TestNeutronV2Driver(base.SenlinTestCase):
|
|||
self.nc.loadbalancer_delete(lb_id)
|
||||
self.conn.network.delete_load_balancer.assert_called_with(
|
||||
lb_id, ignore_missing=True)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.delete_load_balancer.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceDeletionFailure,
|
||||
self.nc.loadbalancer_delete,
|
||||
lb_id)
|
||||
msg = _('Failed in deleting loadbalancer:%s.') % lb_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_listener_get(self):
|
||||
name_or_id = 'listener_identifier'
|
||||
listener_obj = mock.Mock()
|
||||
|
||||
self.conn.network.find_listener.return_value = listener_obj
|
||||
res = self.nc.listener_get(name_or_id)
|
||||
self.conn.network.find_listener.assert_called_once_with(
|
||||
name_or_id)
|
||||
self.assertEqual(listener_obj, res)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.find_listener.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.listener_get,
|
||||
name_or_id)
|
||||
msg = _('The resource (listener:%s) could not be found.') % name_or_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_listener_list(self):
|
||||
listeners = ['listener1', 'listener2']
|
||||
|
||||
self.conn.network.listeners.return_value = listeners
|
||||
self.assertEqual(listeners, self.nc.listener_list())
|
||||
self.conn.network.listeners.assert_called_once_with()
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.listeners.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.listener_list)
|
||||
msg = _('The resource (listener:*) could not be found.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_listener_create(self):
|
||||
loadbalancer_id = 'ID1'
|
||||
protocol = 'HTTP'
|
||||
protocol_port = 80
|
||||
listener_obj = mock.Mock()
|
||||
|
||||
# All input parameters are provided
|
||||
kwargs = {
|
||||
'connection_limit': 100,
|
||||
'admin_state_up': True,
|
||||
'name': 'test-listener',
|
||||
'description': 'This is a listener',
|
||||
}
|
||||
|
||||
self.conn.network.create_listener.return_value = listener_obj
|
||||
self.assertEqual(listener_obj, self.nc.listener_create(
|
||||
loadbalancer_id, protocol, protocol_port, **kwargs))
|
||||
self.conn.network.create_listener.assert_called_once_with(
|
||||
loadbalancer_id=loadbalancer_id, protocol=protocol,
|
||||
protocol_port=protocol_port, **kwargs)
|
||||
|
||||
# Use default input parameters
|
||||
kwargs = {
|
||||
'admin_state_up': True
|
||||
}
|
||||
self.assertEqual(listener_obj, self.nc.listener_create(
|
||||
loadbalancer_id, protocol, protocol_port))
|
||||
self.conn.network.create_listener.assert_called_with(
|
||||
loadbalancer_id=loadbalancer_id, protocol=protocol,
|
||||
protocol_port=protocol_port, **kwargs)
|
||||
|
||||
# Exception happened during creating progress
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.create_listener.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceCreationFailure,
|
||||
self.nc.listener_create, loadbalancer_id,
|
||||
protocol, protocol_port)
|
||||
msg = _("Failed in creating %(rtype)s.") % {'rtype': 'listener'}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_listener_delete(self):
|
||||
listener_id = 'ID1'
|
||||
|
||||
self.nc.listener_delete(listener_id, ignore_missing=False)
|
||||
self.conn.network.delete_listener.assert_called_once_with(
|
||||
listener_id, ignore_missing=False)
|
||||
|
||||
self.nc.listener_delete(listener_id)
|
||||
self.conn.network.delete_listener.assert_called_with(
|
||||
listener_id, ignore_missing=True)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.delete_listener.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceDeletionFailure,
|
||||
self.nc.listener_delete,
|
||||
listener_id)
|
||||
msg = _('Failed in deleting listener:%s.') % listener_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_get(self):
|
||||
name_or_id = 'pool_identifier'
|
||||
pool_obj = mock.Mock()
|
||||
|
||||
self.conn.network.find_pool.return_value = pool_obj
|
||||
res = self.nc.pool_get(name_or_id)
|
||||
self.conn.network.find_pool.assert_called_once_with(name_or_id)
|
||||
self.assertEqual(pool_obj, res)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.find_pool.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound, self.nc.pool_get,
|
||||
name_or_id)
|
||||
msg = _('The resource (pool:%s) could not be found.') % name_or_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_list(self):
|
||||
pools = ['pool1', 'pool2']
|
||||
|
||||
self.conn.network.pools.return_value = pools
|
||||
self.assertEqual(pools, self.nc.pool_list())
|
||||
self.conn.network.pools.assert_called_once_with()
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.pools.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound, self.nc.pool_list)
|
||||
msg = _('The resource (pool:*) could not be found.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_create(self):
|
||||
lb_algorithm = 'ROUND_ROBIN'
|
||||
listener_id = 'ID1'
|
||||
protocol = 'HTTP'
|
||||
pool_obj = mock.Mock()
|
||||
|
||||
# All input parameters are provided
|
||||
kwargs = {
|
||||
'admin_state_up': True,
|
||||
'name': 'test-pool',
|
||||
'description': 'This is a pool',
|
||||
}
|
||||
|
||||
self.conn.network.create_pool.return_value = pool_obj
|
||||
self.assertEqual(pool_obj, self.nc.pool_create(
|
||||
lb_algorithm, listener_id, protocol, **kwargs))
|
||||
self.conn.network.create_pool.assert_called_once_with(
|
||||
lb_algorithm=lb_algorithm, listener_id=listener_id,
|
||||
protocol=protocol, **kwargs)
|
||||
|
||||
# Use default input parameters
|
||||
kwargs = {
|
||||
'admin_state_up': True
|
||||
}
|
||||
self.assertEqual(pool_obj, self.nc.pool_create(
|
||||
lb_algorithm, listener_id, protocol))
|
||||
self.conn.network.create_pool.assert_called_with(
|
||||
lb_algorithm=lb_algorithm, listener_id=listener_id,
|
||||
protocol=protocol, **kwargs)
|
||||
|
||||
# Exception happened during creating progress
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.create_pool.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceCreationFailure,
|
||||
self.nc.pool_create, lb_algorithm,
|
||||
listener_id, protocol)
|
||||
msg = _("Failed in creating %(rtype)s.") % {'rtype': 'pool'}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_delete(self):
|
||||
pool_id = 'ID1'
|
||||
|
||||
self.nc.pool_delete(pool_id, ignore_missing=False)
|
||||
self.conn.network.delete_pool.assert_called_once_with(
|
||||
pool_id, ignore_missing=False)
|
||||
|
||||
self.nc.pool_delete(pool_id)
|
||||
self.conn.network.delete_pool.assert_called_with(
|
||||
pool_id, ignore_missing=True)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.delete_pool.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceDeletionFailure,
|
||||
self.nc.pool_delete,
|
||||
pool_id)
|
||||
msg = _('Failed in deleting pool:%s.') % pool_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_member_get(self):
|
||||
name_or_id = 'member_identifier'
|
||||
pool_id = 'ID1'
|
||||
member_obj = mock.Mock()
|
||||
|
||||
self.conn.network.find_pool_member.return_value = member_obj
|
||||
res = self.nc.pool_member_get(pool_id, name_or_id)
|
||||
self.conn.network.find_pool_member.assert_called_once_with(
|
||||
name_or_id, pool_id)
|
||||
self.assertEqual(member_obj, res)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.find_pool_member.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.pool_member_get,
|
||||
pool_id, name_or_id)
|
||||
msg = _('The resource (member:%(p)s:%(m)s) could not be found.'
|
||||
) % {'p': pool_id, 'm': name_or_id}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_member_list(self):
|
||||
pool_id = 'ID1'
|
||||
members = ['member1', 'member2']
|
||||
|
||||
self.conn.network.pool_members.return_value = members
|
||||
self.assertEqual(members, self.nc.pool_member_list(pool_id))
|
||||
self.conn.network.pool_members.assert_called_once_with(pool_id)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.pool_members.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.pool_member_list,
|
||||
pool_id)
|
||||
msg = _('The resource (member:%s:*) could not be found.') % pool_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_member_create(self):
|
||||
pool_id = 'ID1'
|
||||
address = '192.168.1.100'
|
||||
protocol_port = 80
|
||||
subnet_id = 'ID2'
|
||||
weight = 50
|
||||
member_obj = mock.Mock()
|
||||
|
||||
# All input parameters are provided
|
||||
kwargs = {
|
||||
'weight': weight,
|
||||
'admin_state_up': True,
|
||||
}
|
||||
|
||||
self.conn.network.create_pool_member.return_value = member_obj
|
||||
self.assertEqual(member_obj, self.nc.pool_member_create(
|
||||
pool_id, address, protocol_port, subnet_id, **kwargs))
|
||||
self.conn.network.create_pool_member.assert_called_once_with(
|
||||
pool_id=pool_id, address=address, protocol_port=protocol_port,
|
||||
subnet_id=subnet_id, **kwargs)
|
||||
|
||||
# Use default input parameters
|
||||
kwargs = {
|
||||
'admin_state_up': True
|
||||
}
|
||||
self.assertEqual(member_obj, self.nc.pool_member_create(
|
||||
pool_id, address, protocol_port, subnet_id))
|
||||
self.conn.network.create_pool_member.assert_called_with(
|
||||
pool_id=pool_id, address=address, protocol_port=protocol_port,
|
||||
subnet_id=subnet_id, **kwargs)
|
||||
|
||||
# Exception happened during creating progress
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.create_pool_member.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceCreationFailure,
|
||||
self.nc.pool_member_create, pool_id, address,
|
||||
protocol_port, subnet_id)
|
||||
msg = _("Failed in creating %(rtype)s.") % {'rtype': 'lb:member'}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_pool_member_delete(self):
|
||||
pool_id = 'ID1'
|
||||
member_id = 'ID2'
|
||||
|
||||
self.nc.pool_member_delete(pool_id, member_id, ignore_missing=False)
|
||||
self.conn.network.delete_pool_member.assert_called_once_with(
|
||||
member_id, pool_id, ignore_missing=False)
|
||||
|
||||
self.nc.pool_member_delete(pool_id, member_id)
|
||||
self.conn.network.delete_pool_member.assert_called_with(
|
||||
member_id, pool_id, ignore_missing=True)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.delete_pool_member.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceDeletionFailure,
|
||||
self.nc.pool_member_delete,
|
||||
pool_id, member_id)
|
||||
msg = _('Failed in deleting member:%(p)s:%(m)s.'
|
||||
) % {'p': pool_id, 'm': member_id}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_healthmonitor_get(self):
|
||||
name_or_id = 'healthmonitor_identifier'
|
||||
healthmonitor_obj = mock.Mock()
|
||||
|
||||
self.conn.network.find_health_monitor.return_value = healthmonitor_obj
|
||||
res = self.nc.healthmonitor_get(name_or_id)
|
||||
self.conn.network.find_health_monitor.assert_called_once_with(
|
||||
name_or_id)
|
||||
self.assertEqual(healthmonitor_obj, res)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.find_health_monitor.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.healthmonitor_get,
|
||||
name_or_id)
|
||||
msg = _('The resource (healthmonitor:%s) could not be found.'
|
||||
) % name_or_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_healthmonitor_list(self):
|
||||
healthmonitors = ['hm1', 'hm2']
|
||||
|
||||
self.conn.network.health_monitors.return_value = healthmonitors
|
||||
self.assertEqual(healthmonitors, self.nc.healthmonitor_list())
|
||||
self.conn.network.health_monitors.assert_called_once_with()
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.health_monitors.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceNotFound,
|
||||
self.nc.healthmonitor_list)
|
||||
msg = _('The resource (healthmonitor:*) could not be found.')
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_healthmonitor_create(self):
|
||||
hm_type = 'HTTP'
|
||||
delay = 30
|
||||
timeout = 10
|
||||
max_retries = 5
|
||||
pool_id = 'ID1'
|
||||
hm_obj = mock.Mock()
|
||||
|
||||
# All input parameters are provided
|
||||
kwargs = {
|
||||
'http_method': 'test-method',
|
||||
'admin_state_up': True,
|
||||
'url_path': '/test_page',
|
||||
'expected_codes': [200, 201, 202],
|
||||
}
|
||||
|
||||
self.conn.network.create_health_monitor.return_value = hm_obj
|
||||
self.assertEqual(hm_obj, self.nc.healthmonitor_create(
|
||||
hm_type, delay, timeout, max_retries, pool_id, **kwargs))
|
||||
self.conn.network.create_health_monitor.assert_called_once_with(
|
||||
type=hm_type, delay=delay, timeout=timeout,
|
||||
max_retries=max_retries, pool_id=pool_id, **kwargs)
|
||||
|
||||
# Use default input parameters
|
||||
kwargs = {
|
||||
'admin_state_up': True
|
||||
}
|
||||
self.assertEqual(hm_obj, self.nc.healthmonitor_create(
|
||||
hm_type, delay, timeout, max_retries, pool_id))
|
||||
self.conn.network.create_health_monitor.assert_called_with(
|
||||
type=hm_type, delay=delay, timeout=timeout,
|
||||
max_retries=max_retries, pool_id=pool_id, **kwargs)
|
||||
|
||||
# Exception happened during creating progress
|
||||
exception_info = 'Exception happened when creating healthmonitor.'
|
||||
fake_exception = sdk.exc.HttpException(exception_info)
|
||||
self.conn.network.create_health_monitor.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceCreationFailure,
|
||||
self.nc.healthmonitor_create, hm_type, delay,
|
||||
timeout, max_retries, pool_id)
|
||||
msg = _("Failed in creating %(rtype)s.") % {'rtype': 'healthmonitor'}
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
||||
def test_healthmonitor_delete(self):
|
||||
healthmonitor_id = 'ID1'
|
||||
|
||||
self.nc.healthmonitor_delete(healthmonitor_id, ignore_missing=False)
|
||||
self.conn.network.delete_health_monitor.assert_called_once_with(
|
||||
healthmonitor_id, ignore_missing=False)
|
||||
|
||||
self.nc.healthmonitor_delete(healthmonitor_id)
|
||||
self.conn.network.delete_health_monitor.assert_called_with(
|
||||
healthmonitor_id, ignore_missing=True)
|
||||
|
||||
fake_exception = sdk.exc.HttpException('')
|
||||
self.conn.network.delete_health_monitor.side_effect = fake_exception
|
||||
ex = self.assertRaises(exception.ResourceDeletionFailure,
|
||||
self.nc.healthmonitor_delete,
|
||||
healthmonitor_id)
|
||||
msg = _('Failed in deleting healthmonitor:%s.') % healthmonitor_id
|
||||
self.assertEqual(msg, six.text_type(ex))
|
||||
|
|
Loading…
Reference in New Issue