Add baseline object in the drivers update callbacks

Commit Ide4beaf73bb99be5c3b4c71c12fecef3499f45d9 updated the drivers api spec.
This patch implements the new api for the update callbacks which needs the
original objet as well.

Change-Id: I530ec49acdc249a1f29e3e366eee70e29627a047
This commit is contained in:
Adit Sarfaty 2018-06-05 11:32:33 +03:00 committed by Michael Johnson
parent 92e00449fc
commit 4688739662
13 changed files with 206 additions and 107 deletions

View File

@ -73,9 +73,9 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.LOAD_BALANCER_ID: loadbalancer_id}
self.client.cast({}, 'failover_load_balancer', **payload)
def loadbalancer_update(self, loadbalancer):
def loadbalancer_update(self, old_loadbalancer, new_loadbalancer):
# Adapt the provider data model to the queue schema
lb_dict = loadbalancer.to_dict()
lb_dict = new_loadbalancer.to_dict()
if 'admin_state_up' in lb_dict:
lb_dict['enabled'] = lb_dict.pop('admin_state_up')
lb_id = lb_dict.pop('loadbalancer_id')
@ -94,8 +94,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.LISTENER_ID: listener_id}
self.client.cast({}, 'delete_listener', **payload)
def listener_update(self, listener):
listener_dict = listener.to_dict()
def listener_update(self, old_listener, new_listener):
listener_dict = new_listener.to_dict()
if 'admin_state_up' in listener_dict:
listener_dict['enabled'] = listener_dict.pop('admin_state_up')
listener_id = listener_dict.pop('listener_id')
@ -114,8 +114,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.POOL_ID: pool_id}
self.client.cast({}, 'delete_pool', **payload)
def pool_update(self, pool):
pool_dict = pool.to_dict()
def pool_update(self, old_pool, new_pool):
pool_dict = new_pool.to_dict()
if 'admin_state_up' in pool_dict:
pool_dict['enabled'] = pool_dict.pop('admin_state_up')
pool_id = pool_dict.pop('pool_id')
@ -134,8 +134,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.MEMBER_ID: member_id}
self.client.cast({}, 'delete_member', **payload)
def member_update(self, member):
member_dict = member.to_dict()
def member_update(self, old_member, new_member):
member_dict = new_member.to_dict()
if 'admin_state_up' in member_dict:
member_dict['enabled'] = member_dict.pop('admin_state_up')
member_id = member_dict.pop('member_id')
@ -191,8 +191,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.HEALTH_MONITOR_ID: healthmonitor_id}
self.client.cast({}, 'delete_health_monitor', **payload)
def health_monitor_update(self, healthmonitor):
healthmon_dict = healthmonitor.to_dict()
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
healthmon_dict = new_healthmonitor.to_dict()
if 'admin_state_up' in healthmon_dict:
healthmon_dict['enabled'] = healthmon_dict.pop('admin_state_up')
if 'max_retries_down' in healthmon_dict:
@ -217,8 +217,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.L7POLICY_ID: l7policy_id}
self.client.cast({}, 'delete_l7policy', **payload)
def l7policy_update(self, l7policy):
l7policy_dict = l7policy.to_dict()
def l7policy_update(self, old_l7policy, new_l7policy):
l7policy_dict = new_l7policy.to_dict()
if 'admin_state_up' in l7policy_dict:
l7policy_dict['enabled'] = l7policy_dict.pop('admin_state_up')
l7policy_id = l7policy_dict.pop('l7policy_id')
@ -237,8 +237,8 @@ class AmphoraProviderDriver(driver_base.ProviderDriver):
payload = {consts.L7RULE_ID: l7rule_id}
self.client.cast({}, 'delete_l7rule', **payload)
def l7rule_update(self, l7rule):
l7rule_dict = l7rule.to_dict()
def l7rule_update(self, old_l7rule, new_l7rule):
l7rule_dict = new_l7rule.to_dict()
if 'admin_state_up' in l7rule_dict:
l7rule_dict['enabled'] = l7rule_dict.pop('admin_state_up')
l7rule_id = l7rule_dict.pop('l7rule_id')

View File

@ -70,12 +70,14 @@ class NoopManager(object):
self.driverconfig[loadbalancer_id] = (loadbalancer_id,
'loadbalancer_failover')
def loadbalancer_update(self, loadbalancer):
LOG.debug('Provider %s no-op, loadbalancer_update loadbalancer %s',
self.__class__.__name__, loadbalancer.loadbalancer_id)
def loadbalancer_update(self, old_loadbalancer, new_loadbalancer):
LOG.debug('Provider %s no-op, loadbalancer_update loadbalancer %s '
'old: %s. new: %s',
self.__class__.__name__, new_loadbalancer.loadbalancer_id,
old_loadbalancer.to_dict(), new_loadbalancer.to_dict())
self.driverconfig[loadbalancer.loadbalancer_id] = (
loadbalancer, 'loadbalancer_update')
self.driverconfig[new_loadbalancer.loadbalancer_id] = (
new_loadbalancer, 'loadbalancer_update')
# Listener
def listener_create(self, listener):
@ -91,11 +93,14 @@ class NoopManager(object):
self.driverconfig[listener_id] = (listener_id, 'listener_delete')
def listener_update(self, listener):
LOG.debug('Provider %s no-op, listener_update listener %s',
self.__class__.__name__, listener.listener_id)
def listener_update(self, old_listener, new_listener):
LOG.debug('Provider %s no-op, listener_update listener %s '
'old: %s. new: %s',
self.__class__.__name__, new_listener.listener_id,
old_listener.to_dict(), new_listener.to_dict())
self.driverconfig[listener.listener_id] = (listener, 'listener_update')
self.driverconfig[new_listener.listener_id] = (
new_listener, 'listener_update')
# Pool
def pool_create(self, pool):
@ -111,11 +116,14 @@ class NoopManager(object):
self.driverconfig[pool_id] = (pool_id, 'pool_delete')
def pool_update(self, pool):
LOG.debug('Provider %s no-op, pool_update pool %s',
self.__class__.__name__, pool.pool_id)
def pool_update(self, old_pool, new_pool):
LOG.debug('Provider %s no-op, pool_update pool %s '
'old: %s. new: %s',
self.__class__.__name__, new_pool.pool_id,
old_pool.to_dict(), new_pool.to_dict())
self.driverconfig[pool.pool_id] = (pool, 'pool_update')
self.driverconfig[new_pool.pool_id] = (
new_pool, 'pool_update')
# Member
def member_create(self, member):
@ -131,11 +139,14 @@ class NoopManager(object):
self.driverconfig[member_id] = (member_id, 'member_delete')
def member_update(self, member):
LOG.debug('Provider %s no-op, member_update member %s',
self.__class__.__name__, member.member_id)
def member_update(self, old_member, new_member):
LOG.debug('Provider %s no-op, member_update member %s '
'old: %s. new: %s',
self.__class__.__name__, new_member.member_id,
old_member.to_dict(), new_member.to_dict())
self.driverconfig[member.member_id] = (member, 'member_update')
self.driverconfig[new_member.member_id] = (
new_member, 'member_update')
def member_batch_update(self, members):
for member in members:
@ -161,12 +172,14 @@ class NoopManager(object):
self.driverconfig[healthmonitor_id] = (healthmonitor_id,
'health_monitor_delete')
def health_monitor_update(self, healthmonitor):
LOG.debug('Provider %s no-op, health_monitor_update healthmonitor %s',
self.__class__.__name__, healthmonitor.healthmonitor_id)
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
LOG.debug('Provider %s no-op, health_monitor_update healthmonitor %s '
'old: %s. new: %s',
self.__class__.__name__, new_healthmonitor.healthmonitor_id,
old_healthmonitor.to_dict(), new_healthmonitor.to_dict())
self.driverconfig[healthmonitor.healthmonitor_id] = (
healthmonitor, 'health_monitor_update')
self.driverconfig[new_healthmonitor.healthmonitor_id] = (
new_healthmonitor, 'health_monitor_update')
# L7 Policy
def l7policy_create(self, l7policy):
@ -182,11 +195,14 @@ class NoopManager(object):
self.driverconfig[l7policy_id] = (l7policy_id, 'l7policy_delete')
def l7policy_update(self, l7policy):
LOG.debug('Provider %s no-op, l7policy_update l7policy %s',
self.__class__.__name__, l7policy.l7policy_id)
def l7policy_update(self, old_l7policy, new_l7policy):
LOG.debug('Provider %s no-op, l7policy_update l7policy %s '
'old: %s. new: %s',
self.__class__.__name__, new_l7policy.l7policy_id,
old_l7policy.to_dict(), new_l7policy.to_dict())
self.driverconfig[l7policy.l7policy_id] = (l7policy, 'l7policy_update')
self.driverconfig[new_l7policy.l7policy_id] = (
new_l7policy, 'l7policy_update')
# L7 Rule
def l7rule_create(self, l7rule):
@ -202,11 +218,13 @@ class NoopManager(object):
self.driverconfig[l7rule_id] = (l7rule_id, 'l7rule_delete')
def l7rule_update(self, l7rule):
LOG.debug('Provider %s no-op, l7rule_update l7rule %s',
self.__class__.__name__, l7rule.l7rule_id)
def l7rule_update(self, old_l7rule, new_l7rule):
LOG.debug('Provider %s no-op, l7rule_update l7rule %s. '
'old: %s. new: %s',
self.__class__.__name__, new_l7rule.l7rule_id,
old_l7rule.to_dict(), new_l7rule.to_dict())
self.driverconfig[l7rule.l7rule_id] = (l7rule, 'l7rule_update')
self.driverconfig[new_l7rule.l7rule_id] = (new_l7rule, 'l7rule_update')
# Flavor
def get_supported_flavor_metadata(self):
@ -243,8 +261,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def loadbalancer_failover(self, loadbalancer_id):
self.driver.loadbalancer_failover(loadbalancer_id)
def loadbalancer_update(self, loadbalancer):
self.driver.loadbalancer_update(loadbalancer)
def loadbalancer_update(self, old_loadbalancer, new_loadbalancer):
self.driver.loadbalancer_update(old_loadbalancer, new_loadbalancer)
# Listener
def listener_create(self, listener):
@ -253,8 +271,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def listener_delete(self, listener):
self.driver.listener_delete(listener)
def listener_update(self, listener):
self.driver.listener_update(listener)
def listener_update(self, old_listener, new_listener):
self.driver.listener_update(old_listener, new_listener)
# Pool
def pool_create(self, pool):
@ -263,8 +281,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def pool_delete(self, pool):
self.driver.pool_delete(pool)
def pool_update(self, pool):
self.driver.pool_update(pool)
def pool_update(self, old_pool, new_pool):
self.driver.pool_update(old_pool, new_pool)
# Member
def member_create(self, member):
@ -273,8 +291,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def member_delete(self, member):
self.driver.member_delete(member)
def member_update(self, member):
self.driver.member_update(member)
def member_update(self, old_member, new_member):
self.driver.member_update(old_member, new_member)
def member_batch_update(self, members):
self.driver.member_batch_update(members)
@ -286,8 +304,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def health_monitor_delete(self, healthmonitor):
self.driver.health_monitor_delete(healthmonitor)
def health_monitor_update(self, healthmonitor):
self.driver.health_monitor_update(healthmonitor)
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
self.driver.health_monitor_update(old_healthmonitor, new_healthmonitor)
# L7 Policy
def l7policy_create(self, l7policy):
@ -296,8 +314,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def l7policy_delete(self, l7policy):
self.driver.l7policy_delete(l7policy)
def l7policy_update(self, l7policy):
self.driver.l7policy_update(l7policy)
def l7policy_update(self, old_l7policy, new_l7policy):
self.driver.l7policy_update(old_l7policy, new_l7policy)
# L7 Rule
def l7rule_create(self, l7rule):
@ -306,8 +324,8 @@ class NoopProviderDriver(driver_base.ProviderDriver):
def l7rule_delete(self, l7rule):
self.driver.l7rule_delete(l7rule)
def l7rule_update(self, l7rule):
self.driver.l7rule_update(l7rule)
def l7rule_update(self, old_l7rule, new_l7rule):
self.driver.l7rule_update(old_l7rule, new_l7rule)
# Flavor
def get_supported_flavor_metadata(self):

View File

@ -98,11 +98,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support failing '
'over load balancers.')
def loadbalancer_update(self, loadbalancer):
def loadbalancer_update(self, old_loadbalancer, new_loadbalncer):
"""Updates a load balancer.
:param loadbalancer: The load balancer object.
:type loadbalancer: object
:param old_loadbalancer: The baseline load balancer object.
:type old_loadbalancer: object
:param new_loadbalancer: The updated load balancer object.
:type new_loadbalancer: object
:return: Nothing if the update request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: The driver does not support request.
@ -148,11 +150,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'listeners.')
def listener_update(self, listener):
def listener_update(self, old_listener, new_listener):
"""Updates a listener.
:param listener: The listener object.
:type listener: object
:param old_listener: The baseline listener object.
:type old_listener: object
:param new_listener: The updated listener object.
:type new_listener: object
:return: Nothing if the update request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: if driver does not support request.
@ -198,10 +202,12 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'pools.')
def pool_update(self, pool):
def pool_update(self, old_pool, new_pool):
"""Updates a pool.
:param pool: The pool object.
:param pool: The baseline pool object.
:type pool: object
:param pool: The updated pool object.
:type pool: object
:return: Nothing if the create request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
@ -248,11 +254,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'members.')
def member_update(self, member):
def member_update(self, old_member, new_member):
"""Updates a pool member.
:param member: The member object.
:type member: object
:param old_member: The baseline member object.
:type old_member: object
:param new_member: The updated member object.
:type new_member: object
:return: Nothing if the create request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: if driver does not support request.
@ -315,11 +323,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'health monitors.')
def health_monitor_update(self, healthmonitor):
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
"""Updates a health monitor.
:param healthmonitor: The health monitor object.
:type healthmonitor: object
:param old_healthmonitor: The baseline health monitor object.
:type old_healthmonitor: object
:param new_healthmonitor: The updated health monitor object.
:type new_healthmonitor: object
:return: Nothing if the create request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: if driver does not support request.
@ -336,7 +346,7 @@ class ProviderDriver(object):
def l7policy_create(self, l7policy):
"""Creates a new L7 policy.
:param l7policy: The l7policy object.
:param l7policy: The L7 policy object.
:type l7policy: object
:return: Nothing if the create request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
@ -365,11 +375,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'l7policies.')
def l7policy_update(self, l7policy):
def l7policy_update(self, old_l7policy, new_l7policy):
"""Updates an L7 policy.
:param l7policy: The l7policy object.
:type l7policy: object
:param old_l7policy: The baseline L7 policy object.
:type old_l7policy: object
:param new_l7policy: The updated L7 policy object.
:type new_l7policy: object
:return: Nothing if the update request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: if driver does not support request.
@ -415,11 +427,13 @@ class ProviderDriver(object):
operator_fault_string='This provider does not support deleting '
'l7rules.')
def l7rule_update(self, l7rule):
def l7rule_update(self, old_l7rule, new_l7rule):
"""Updates an L7 rule.
:param l7rule: The L7 rule object.
:type l7rule: object
:param old_l7rule: The baseline L7 rule object.
:type old_l7rule: object
:param new_l7rule: The updated L7 rule object.
:type new_l7rule: object
:return: Nothing if the update request was accepted.
:raises DriverError: An unexpected error occurred in the driver.
:raises NotImplementedError: if driver does not support request.

View File

@ -269,11 +269,15 @@ class HealthMonitorController(base.BaseController):
provider_healthmon_dict = (
driver_utils.hm_dict_to_provider_dict(healthmon_dict))
# Also prepare the baseline object data
old_provider_healthmon = driver_utils.db_HM_to_provider_HM(db_hm)
# Dispatch to the driver
LOG.info("Sending update Health Monitor %s to provider %s",
id, driver.name)
driver_utils.call_provider(
driver.name, driver.health_monitor_update,
old_provider_healthmon,
driver_dm.HealthMonitor.from_dict(provider_healthmon_dict))
# Update the database to reflect what the driver just accepted

View File

@ -238,11 +238,16 @@ class L7PolicyController(base.BaseController):
provider_l7policy_dict = (
driver_utils.l7policy_dict_to_provider_dict(l7policy_dict))
# Also prepare the baseline object data
old_provider_l7policy = (
driver_utils.db_l7policy_to_provider_l7policy(db_l7policy))
# Dispatch to the driver
LOG.info("Sending update L7 Policy %s to provider %s",
id, driver.name)
driver_utils.call_provider(
driver.name, driver.l7policy_update,
old_provider_l7policy,
driver_dm.L7Policy.from_dict(provider_l7policy_dict))
# Update the database to reflect what the driver just accepted

View File

@ -235,11 +235,16 @@ class L7RuleController(base.BaseController):
provider_l7rule_dict = (
driver_utils.l7rule_dict_to_provider_dict(l7rule_dict))
# Also prepare the baseline object data
old_provider_l7rule = driver_utils.db_l7rule_to_provider_l7rule(
db_l7rule)
# Dispatch to the driver
LOG.info("Sending update L7 Rule %s to provider %s", id,
driver.name)
driver_utils.call_provider(
driver.name, driver.l7rule_update,
old_provider_l7rule,
driver_dm.L7Rule.from_dict(provider_l7rule_dict))
# Update the database to reflect what the driver just accepted

View File

@ -326,11 +326,16 @@ class ListenersController(base.BaseController):
provider_listener_dict = (
driver_utils.listener_dict_to_provider_dict(listener_dict))
# Also prepare the baseline object data
old_provider_llistener = (
driver_utils.db_listener_to_provider_listener(db_listener))
# Dispatch to the driver
LOG.info("Sending update Listener %s to provider %s", id,
driver.name)
driver_utils.call_provider(
driver.name, driver.listener_update,
old_provider_llistener,
driver_dm.Listener.from_dict(provider_listener_dict))
# Update the database to reflect what the driver just accepted

View File

@ -478,11 +478,16 @@ class LoadBalancersController(base.BaseController):
if 'qos_policy_id' in vip_dict:
lb_dict['vip_qos_policy_id'] = vip_dict['qos_policy_id']
# Also prepare the baseline object data
old_provider_lb = (
driver_utils.db_loadbalancer_to_provider_loadbalancer(db_lb))
# Dispatch to the driver
LOG.info("Sending update Load Balancer %s to provider "
"%s", id, driver.name)
driver_utils.call_provider(
driver.name, driver.loadbalancer_update,
old_provider_lb,
driver_dm.LoadBalancer.from_dict(lb_dict))
db_lb_dict = load_balancer.to_dict(render_unsets=False)

View File

@ -224,11 +224,16 @@ class MemberController(base.BaseController):
provider_member_dict = (
driver_utils.member_dict_to_provider_dict(member_dict))
# Also prepare the baseline object data
old_provider_member = driver_utils.db_member_to_provider_member(
db_member)
# Dispatch to the driver
LOG.info("Sending update Member %s to provider %s", id,
driver.name)
driver_utils.call_provider(
driver.name, driver.member_update,
old_provider_member,
driver_dm.Member.from_dict(provider_member_dict))
# Update the database to reflect what the driver just accepted

View File

@ -285,10 +285,15 @@ class PoolsController(base.BaseController):
provider_pool_dict = (
driver_utils.pool_dict_to_provider_dict(pool_dict))
# Also prepare the baseline object data
old_provider_pool = driver_utils.db_pool_to_provider_pool(
db_pool)
# Dispatch to the driver
LOG.info("Sending update Pool %s to provider %s", id, driver.name)
driver_utils.call_provider(
driver.name, driver.pool_update,
old_provider_pool,
driver_dm.Pool.from_dict(provider_pool_dict))
# Update the database to reflect what the driver just accepted

View File

@ -79,20 +79,24 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_loadbalancer_update(self, mock_cast):
old_provider_lb = driver_dm.LoadBalancer(
loadbalancer_id=self.sample_data.lb_id)
provider_lb = driver_dm.LoadBalancer(
loadbalancer_id=self.sample_data.lb_id, admin_state_up=True)
lb_dict = {'enabled': True}
self.amp_driver.loadbalancer_update(provider_lb)
self.amp_driver.loadbalancer_update(old_provider_lb, provider_lb)
payload = {consts.LOAD_BALANCER_ID: self.sample_data.lb_id,
consts.LOAD_BALANCER_UPDATES: lb_dict}
mock_cast.assert_called_with({}, 'update_load_balancer', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_loadbalancer_update_name(self, mock_cast):
old_provider_lb = driver_dm.LoadBalancer(
loadbalancer_id=self.sample_data.lb_id)
provider_lb = driver_dm.LoadBalancer(
loadbalancer_id=self.sample_data.lb_id, name='Great LB')
lb_dict = {'name': 'Great LB'}
self.amp_driver.loadbalancer_update(provider_lb)
self.amp_driver.loadbalancer_update(old_provider_lb, provider_lb)
payload = {consts.LOAD_BALANCER_ID: self.sample_data.lb_id,
consts.LOAD_BALANCER_UPDATES: lb_dict}
mock_cast.assert_called_with({}, 'update_load_balancer', **payload)
@ -116,20 +120,26 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_listener_update(self, mock_cast):
old_provider_listener = driver_dm.Listener(
listener_id=self.sample_data.listener1_id)
provider_listener = driver_dm.Listener(
listener_id=self.sample_data.listener1_id, admin_state_up=False)
listener_dict = {'enabled': False}
self.amp_driver.listener_update(provider_listener)
self.amp_driver.listener_update(old_provider_listener,
provider_listener)
payload = {consts.LISTENER_ID: self.sample_data.listener1_id,
consts.LISTENER_UPDATES: listener_dict}
mock_cast.assert_called_with({}, 'update_listener', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_listener_update_name(self, mock_cast):
old_provider_listener = driver_dm.Listener(
listener_id=self.sample_data.listener1_id)
provider_listener = driver_dm.Listener(
listener_id=self.sample_data.listener1_id, name='Great Listener')
listener_dict = {'name': 'Great Listener'}
self.amp_driver.listener_update(provider_listener)
self.amp_driver.listener_update(old_provider_listener,
provider_listener)
payload = {consts.LISTENER_ID: self.sample_data.listener1_id,
consts.LISTENER_UPDATES: listener_dict}
mock_cast.assert_called_with({}, 'update_listener', **payload)
@ -153,20 +163,24 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_pool_update(self, mock_cast):
old_provider_pool = driver_dm.Pool(
pool_id=self.sample_data.pool1_id)
provider_pool = driver_dm.Pool(
pool_id=self.sample_data.pool1_id, admin_state_up=True)
pool_dict = {'enabled': True}
self.amp_driver.pool_update(provider_pool)
self.amp_driver.pool_update(old_provider_pool, provider_pool)
payload = {consts.POOL_ID: self.sample_data.pool1_id,
consts.POOL_UPDATES: pool_dict}
mock_cast.assert_called_with({}, 'update_pool', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_pool_update_name(self, mock_cast):
old_provider_pool = driver_dm.Pool(
pool_id=self.sample_data.pool1_id)
provider_pool = driver_dm.Pool(
pool_id=self.sample_data.pool1_id, name='Great pool')
pool_dict = {'name': 'Great pool'}
self.amp_driver.pool_update(provider_pool)
self.amp_driver.pool_update(old_provider_pool, provider_pool)
payload = {consts.POOL_ID: self.sample_data.pool1_id,
consts.POOL_UPDATES: pool_dict}
mock_cast.assert_called_with({}, 'update_pool', **payload)
@ -190,20 +204,24 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_member_update(self, mock_cast):
old_provider_member = driver_dm.Member(
member_id=self.sample_data.member1_id)
provider_member = driver_dm.Member(
member_id=self.sample_data.member1_id, admin_state_up=True)
member_dict = {'enabled': True}
self.amp_driver.member_update(provider_member)
self.amp_driver.member_update(old_provider_member, provider_member)
payload = {consts.MEMBER_ID: self.sample_data.member1_id,
consts.MEMBER_UPDATES: member_dict}
mock_cast.assert_called_with({}, 'update_member', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_member_update_name(self, mock_cast):
old_provider_member = driver_dm.Member(
member_id=self.sample_data.member1_id)
provider_member = driver_dm.Member(
member_id=self.sample_data.member1_id, name='Great member')
member_dict = {'name': 'Great member'}
self.amp_driver.member_update(provider_member)
self.amp_driver.member_update(old_provider_member, provider_member)
payload = {consts.MEMBER_ID: self.sample_data.member1_id,
consts.MEMBER_UPDATES: member_dict}
mock_cast.assert_called_with({}, 'update_member', **payload)
@ -296,21 +314,25 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_health_monitor_update(self, mock_cast):
old_provider_hm = driver_dm.HealthMonitor(
healthmonitor_id=self.sample_data.hm1_id)
provider_hm = driver_dm.HealthMonitor(
healthmonitor_id=self.sample_data.hm1_id, admin_state_up=True,
max_retries=1, max_retries_down=2)
hm_dict = {'enabled': True, 'rise_threshold': 1, 'fall_threshold': 2}
self.amp_driver.health_monitor_update(provider_hm)
self.amp_driver.health_monitor_update(old_provider_hm, provider_hm)
payload = {consts.HEALTH_MONITOR_ID: self.sample_data.hm1_id,
consts.HEALTH_MONITOR_UPDATES: hm_dict}
mock_cast.assert_called_with({}, 'update_health_monitor', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_health_monitor_update_name(self, mock_cast):
old_provider_hm = driver_dm.HealthMonitor(
healthmonitor_id=self.sample_data.hm1_id)
provider_hm = driver_dm.HealthMonitor(
healthmonitor_id=self.sample_data.hm1_id, name='Great HM')
hm_dict = {'name': 'Great HM'}
self.amp_driver.health_monitor_update(provider_hm)
self.amp_driver.health_monitor_update(old_provider_hm, provider_hm)
payload = {consts.HEALTH_MONITOR_ID: self.sample_data.hm1_id,
consts.HEALTH_MONITOR_UPDATES: hm_dict}
mock_cast.assert_called_with({}, 'update_health_monitor', **payload)
@ -334,20 +356,26 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_l7policy_update(self, mock_cast):
old_provider_l7policy = driver_dm.L7Policy(
l7policy_id=self.sample_data.l7policy1_id)
provider_l7policy = driver_dm.L7Policy(
l7policy_id=self.sample_data.l7policy1_id, admin_state_up=True)
l7policy_dict = {'enabled': True}
self.amp_driver.l7policy_update(provider_l7policy)
self.amp_driver.l7policy_update(old_provider_l7policy,
provider_l7policy)
payload = {consts.L7POLICY_ID: self.sample_data.l7policy1_id,
consts.L7POLICY_UPDATES: l7policy_dict}
mock_cast.assert_called_with({}, 'update_l7policy', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_l7policy_update_name(self, mock_cast):
old_provider_l7policy = driver_dm.L7Policy(
l7policy_id=self.sample_data.l7policy1_id)
provider_l7policy = driver_dm.L7Policy(
l7policy_id=self.sample_data.l7policy1_id, name='Great L7Policy')
l7policy_dict = {'name': 'Great L7Policy'}
self.amp_driver.l7policy_update(provider_l7policy)
self.amp_driver.l7policy_update(old_provider_l7policy,
provider_l7policy)
payload = {consts.L7POLICY_ID: self.sample_data.l7policy1_id,
consts.L7POLICY_UPDATES: l7policy_dict}
mock_cast.assert_called_with({}, 'update_l7policy', **payload)
@ -371,20 +399,24 @@ class TestAmphoraDriver(base.TestCase):
@mock.patch('oslo_messaging.RPCClient.cast')
def test_l7rule_update(self, mock_cast):
old_provider_l7rule = driver_dm.L7Rule(
l7rule_id=self.sample_data.l7rule1_id)
provider_l7rule = driver_dm.L7Rule(
l7rule_id=self.sample_data.l7rule1_id, admin_state_up=True)
l7rule_dict = {'enabled': True}
self.amp_driver.l7rule_update(provider_l7rule)
self.amp_driver.l7rule_update(old_provider_l7rule, provider_l7rule)
payload = {consts.L7RULE_ID: self.sample_data.l7rule1_id,
consts.L7RULE_UPDATES: l7rule_dict}
mock_cast.assert_called_with({}, 'update_l7rule', **payload)
@mock.patch('oslo_messaging.RPCClient.cast')
def test_l7rule_update_invert(self, mock_cast):
old_provider_l7rule = driver_dm.L7Rule(
l7rule_id=self.sample_data.l7rule1_id)
provider_l7rule = driver_dm.L7Rule(
l7rule_id=self.sample_data.l7rule1_id, invert=True)
l7rule_dict = {'invert': True}
self.amp_driver.l7rule_update(provider_l7rule)
self.amp_driver.l7rule_update(old_provider_l7rule, provider_l7rule)
payload = {consts.L7RULE_ID: self.sample_data.l7rule1_id,
consts.L7RULE_UPDATES: l7rule_dict}
mock_cast.assert_called_with({}, 'update_l7rule', **payload)

View File

@ -50,7 +50,7 @@ class TestProviderBase(base.TestCase):
def test_loadbalancer_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.loadbalancer_update,
False)
False, False)
def test_listener_create(self):
self.assertRaises(exceptions.NotImplementedError,
@ -65,7 +65,7 @@ class TestProviderBase(base.TestCase):
def test_listener_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.listener_update,
False)
False, False)
def test_pool_create(self):
self.assertRaises(exceptions.NotImplementedError,
@ -80,7 +80,7 @@ class TestProviderBase(base.TestCase):
def test_pool_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.pool_update,
False)
False, False)
def test_member_create(self):
self.assertRaises(exceptions.NotImplementedError,
@ -95,7 +95,7 @@ class TestProviderBase(base.TestCase):
def test_member_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.member_update,
False)
False, False)
def test_member_batch_update(self):
self.assertRaises(exceptions.NotImplementedError,
@ -115,7 +115,7 @@ class TestProviderBase(base.TestCase):
def test_health_monitor_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.health_monitor_update,
False)
False, False)
def test_l7policy_create(self):
self.assertRaises(exceptions.NotImplementedError,
@ -130,7 +130,7 @@ class TestProviderBase(base.TestCase):
def test_l7policy_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.l7policy_update,
False)
False, False)
def test_l7rule_create(self):
self.assertRaises(exceptions.NotImplementedError,
@ -145,7 +145,7 @@ class TestProviderBase(base.TestCase):
def test_l7rule_update(self):
self.assertRaises(exceptions.NotImplementedError,
self.driver.l7rule_update,
False)
False, False)
def test_get_supported_flavor_metadata(self):
self.assertRaises(exceptions.NotImplementedError,

View File

@ -170,7 +170,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.loadbalancer_id])
def test_loadbalancer_update(self):
self.driver.loadbalancer_update(self.ref_lb)
self.driver.loadbalancer_update(self.ref_lb, self.ref_lb)
self.assertEqual((self.ref_lb, 'loadbalancer_update'),
self.driver.driver.driverconfig[self.loadbalancer_id])
@ -188,7 +188,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.listener_id])
def test_listener_update(self):
self.driver.listener_update(self.ref_listener)
self.driver.listener_update(self.ref_listener, self.ref_listener)
self.assertEqual((self.ref_listener, 'listener_update'),
self.driver.driver.driverconfig[self.listener_id])
@ -206,7 +206,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.pool_id])
def test_pool_update(self):
self.driver.pool_update(self.ref_pool)
self.driver.pool_update(self.ref_pool, self.ref_pool)
self.assertEqual((self.ref_pool, 'pool_update'),
self.driver.driver.driverconfig[self.pool_id])
@ -224,7 +224,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.member_id])
def test_member_update(self):
self.driver.member_update(self.ref_member)
self.driver.member_update(self.ref_member, self.ref_member)
self.assertEqual((self.ref_member, 'member_update'),
self.driver.driver.driverconfig[self.member_id])
@ -250,7 +250,8 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.healthmonitor_id])
def test_health_monitor_update(self):
self.driver.health_monitor_update(self.ref_healthmonitor)
self.driver.health_monitor_update(self.ref_healthmonitor,
self.ref_healthmonitor)
self.assertEqual(
(self.ref_healthmonitor, 'health_monitor_update'),
@ -269,7 +270,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.l7policy_id])
def test_l7policy_update(self):
self.driver.l7policy_update(self.ref_l7policy)
self.driver.l7policy_update(self.ref_l7policy, self.ref_l7policy)
self.assertEqual((self.ref_l7policy, 'l7policy_update'),
self.driver.driver.driverconfig[self.l7policy_id])
@ -287,7 +288,7 @@ class TestNoopProviderDriver(base.TestCase):
self.driver.driver.driverconfig[self.l7rule_id])
def test_l7rule_update(self):
self.driver.l7rule_update(self.ref_l7rule)
self.driver.l7rule_update(self.ref_l7rule, self.ref_l7rule)
self.assertEqual((self.ref_l7rule, 'l7rule_update'),
self.driver.driver.driverconfig[self.l7rule_id])