本文整理汇总了Python中f5_openstack_agent.lbaasv2.drivers.bigip.network_helper.NetworkHelper.delete_fdb_entries方法的典型用法代码示例。如果您正苦于以下问题:Python NetworkHelper.delete_fdb_entries方法的具体用法?Python NetworkHelper.delete_fdb_entries怎么用?Python NetworkHelper.delete_fdb_entries使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类f5_openstack_agent.lbaasv2.drivers.bigip.network_helper.NetworkHelper
的用法示例。
在下文中一共展示了NetworkHelper.delete_fdb_entries方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_network_helper_delete_fdb_entries
# 需要导入模块: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper import NetworkHelper [as 别名]
# 或者: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper.NetworkHelper import delete_fdb_entries [as 别名]
def test_network_helper_delete_fdb_entries(
self, l2_service, service, bigips):
# delete member fdb entry
loadbalancer = None
members = list()
member = service['members'][1]
network_id = member['network_id']
member['network'] = service['networks'][network_id]
members.append(member)
tunnel_records = l2_service.create_fdb_records(loadbalancer, members)
network_helper = NetworkHelper()
tunnel = mock.MagicMock()
tunnel.exists = mock.MagicMock(return_value=True)
tunnel_record = mock.MagicMock()
tunnel.records_s.records.load = mock.MagicMock(
return_value=tunnel_record)
tunnel.records_s.records.exist = mock.MagicMock(return_value=True)
bigip = bigips[0]
bigip.tm.net.fdb.tunnels.tunnel.load = mock.MagicMock(
return_value=tunnel)
network_helper.delete_fdb_entries(bigip, fdb_entries=tunnel_records)
# expect to delete
tunnel_record.delete.assert_called()
示例2: test_network_helper_delete_fdb_entries
# 需要导入模块: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper import NetworkHelper [as 别名]
# 或者: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper.NetworkHelper import delete_fdb_entries [as 别名]
def test_network_helper_delete_fdb_entries(
self, l2_service, service, bigips):
# delete member fdb entry
loadbalancer = None
members = list()
member = service['members'][1]
network_id = member['network_id']
member['network'] = service['networks'][network_id]
members.append(member)
tunnel_records = l2_service.create_fdb_records(loadbalancer, members)
network_helper = NetworkHelper()
fdb_entry = mock.MagicMock()
fdb_entry.modify = mock.MagicMock()
bigip = bigips[0]
bigip.tm.net.fdb.tunnels.tunnel.load = mock.MagicMock(
return_value=fdb_entry)
network_helper.delete_fdb_entries(bigip, fdb_entries=tunnel_records)
# expect to modify with no records (i.e, removing entry)
fdb_entry.modify.assert_called_with(records=None)
示例3: L2ServiceBuilder
# 需要导入模块: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper import NetworkHelper [as 别名]
# 或者: from f5_openstack_agent.lbaasv2.drivers.bigip.network_helper.NetworkHelper import delete_fdb_entries [as 别名]
#.........这里部分代码省略.........
# Add L2 records for a specific network+vtep
folder = vtep_info['folder']
tunnel_name = vtep_info['tunnel_name']
for entry in vtep_info['fdb_entries']:
mac_address = entry[0]
if mac_address == '00:00:00:00:00:00':
continue
ip_address = entry[1]
# create/get tunnel data
if tunnel_name not in fdbs:
fdbs[tunnel_name] = {}
tunnel_fdbs = fdbs[tunnel_name]
# update tunnel folder
tunnel_fdbs['folder'] = folder
# maybe create records for tunnel
if 'records' not in tunnel_fdbs:
tunnel_fdbs['records'] = {}
# add entry to records map keyed by mac address
tunnel_fdbs['records'][mac_address] = \
{'endpoint': vtep_info['vtep'], 'ip_address': ip_address}
def update_bigip_fdb(self, bigip, fdb):
# Update l2 records
self.add_bigip_fdb(bigip, fdb)
def remove_bigip_fdb(self, bigip, fdb):
# Add L2 records for MAC addresses behind tunnel endpoints
for fdb_operation in \
[{'network_type': 'vxlan',
'get_tunnel_folder': self.network_helper.get_tunnel_folder,
'fdb_method': self.network_helper.delete_fdb_entries},
{'network_type': 'gre',
'get_tunnel_folder': self.network_helper.get_tunnel_folder,
'fdb_method': self.network_helper.delete_fdb_entries}]:
self._operate_bigip_fdb(bigip, fdb, fdb_operation)
# Utilities
def get_network_name(self, bigip, network):
# This constructs a name for a tunnel or vlan interface
preserve_network_name = False
if network['id'] in self.conf.common_network_ids:
network_name = self.conf.common_network_ids[network['id']]
preserve_network_name = True
elif network['provider:network_type'] == 'vlan':
network_name = self.get_vlan_name(network,
bigip.hostname)
elif network['provider:network_type'] == 'flat':
network_name = self.get_vlan_name(network,
bigip.hostname)
elif network['provider:network_type'] == 'vxlan':
network_name = _get_tunnel_name(network)
elif network['provider:network_type'] == 'gre':
network_name = _get_tunnel_name(network)
else:
error_message = 'Unsupported network type %s.' \
% network['provider:network_type'] + \
' Cannot setup selfip or snat.'
LOG.error(error_message)
raise f5_ex.InvalidNetworkType(error_message)
return network_name, preserve_network_name
def _get_network_folder(self, network):
if self.is_common_network(network):