本文整理汇总了Python中dm_utils.DMUtils.get_service_ports方法的典型用法代码示例。如果您正苦于以下问题:Python DMUtils.get_service_ports方法的具体用法?Python DMUtils.get_service_ports怎么用?Python DMUtils.get_service_ports使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dm_utils.DMUtils
的用法示例。
在下文中一共展示了DMUtils.get_service_ports方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: push_conf
# 需要导入模块: from dm_utils import DMUtils [as 别名]
# 或者: from dm_utils.DMUtils import get_service_ports [as 别名]
def push_conf(self, is_delete=False):
if not self.physical_router:
return 0
if is_delete:
return self.send_conf(is_delete=True)
if not self.ensure_bgp_config():
return 0
self.build_bgp_config()
vn_dict = self.get_vn_li_map()
self.physical_router.evaluate_vn_irb_ip_map(set(vn_dict.keys()), 'l2_l3', 'irb', False)
self.physical_router.evaluate_vn_irb_ip_map(set(vn_dict.keys()), 'l3', 'lo0', True)
vn_irb_ip_map = self.physical_router.get_vn_irb_ip_map()
first_vrf = []
pnfs = self.config_pnf_logical_interface()
pnf_dict = pnfs[0]
pnf_ris = pnfs[1]
for vn_id, interfaces in vn_dict.items():
vn_obj = VirtualNetworkDM.get(vn_id)
if (vn_obj is None or
vn_obj.get_vxlan_vni() is None or
vn_obj.vn_network_id is None):
continue
export_set = None
import_set = None
for ri_id in vn_obj.routing_instances:
# Find the primary RI by matching the name
ri_obj = RoutingInstanceDM.get(ri_id)
if ri_obj is None:
continue
if ri_obj.fq_name[-1] == vn_obj.fq_name[-1]:
vrf_name_l2 = DMUtils.make_vrf_name(vn_obj.fq_name[-1],
vn_obj.vn_network_id, 'l2')
vrf_name_l3 = DMUtils.make_vrf_name(vn_obj.fq_name[-1],
vn_obj.vn_network_id, 'l3')
export_set = copy.copy(ri_obj.export_targets)
import_set = copy.copy(ri_obj.import_targets)
for ri2_id in ri_obj.routing_instances:
ri2 = RoutingInstanceDM.get(ri2_id)
if ri2 in pnf_ris:
first_vrf.append(ri2)
if ri2 is None:
continue
import_set |= ri2.export_targets
if vn_obj.get_forwarding_mode() in ['l2', 'l2_l3']:
irb_ips = None
if vn_obj.get_forwarding_mode() == 'l2_l3':
irb_ips = vn_irb_ip_map['irb'].get(vn_id, [])
ri_conf = { 'ri_name': vrf_name_l2, 'vn': vn_obj }
ri_conf['is_l2'] = True
ri_conf['is_l2_l3'] = (vn_obj.get_forwarding_mode() == 'l2_l3')
ri_conf['import_targets'] = import_set
ri_conf['export_targets'] = export_set
ri_conf['prefixes'] = vn_obj.get_prefixes()
ri_conf['gateways'] = irb_ips
ri_conf['router_external'] = vn_obj.router_external
ri_conf['interfaces'] = interfaces
ri_conf['vni'] = vn_obj.get_vxlan_vni()
ri_conf['network_id'] = vn_obj.vn_network_id
ri_conf['highest_enapsulation_priority'] = \
GlobalVRouterConfigDM.global_encapsulation_priority
self.add_routing_instance(ri_conf)
if vn_obj.get_forwarding_mode() in ['l3', 'l2_l3']:
interfaces = []
lo0_ips = None
if vn_obj.get_forwarding_mode() == 'l2_l3':
interfaces = [
JunosInterface(
'irb.' + str(vn_obj.vn_network_id),
'l3', 0)]
else:
lo0_ips = vn_irb_ip_map['lo0'].get(vn_id, [])
ri_conf = { 'ri_name': vrf_name_l3, 'vn': vn_obj }
ri_conf['is_l2_l3'] = (vn_obj.get_forwarding_mode() == 'l2_l3')
ri_conf['import_targets'] = import_set
ri_conf['export_targets'] = export_set
ri_conf['prefixes'] = vn_obj.get_prefixes()
ri_conf['router_external'] = vn_obj.router_external
ri_conf['interfaces'] = interfaces
ri_conf['gateways'] = lo0_ips
ri_conf['network_id'] = vn_obj.vn_network_id
self.add_routing_instance(ri_conf)
break
if (export_set is not None and
self.physical_router.is_junos_service_ports_enabled() and
len(vn_obj.instance_ip_map) > 0):
service_port_ids = DMUtils.get_service_ports(vn_obj.vn_network_id)
if self.physical_router.is_service_port_id_valid(service_port_ids[0]) == False:
self._logger.error("DM can't allocate service interfaces for "
"(vn, vn-id)=(%s,%s)" % (
vn_obj.fq_name,
vn_obj.vn_network_id))
else:
vrf_name = DMUtils.make_vrf_name(vn_obj.fq_name[-1],
vn_obj.vn_network_id, 'l3', True)
#.........这里部分代码省略.........
示例2: build_ri_config
# 需要导入模块: from dm_utils import DMUtils [as 别名]
# 或者: from dm_utils.DMUtils import get_service_ports [as 别名]
#.........这里部分代码省略.........
import_set = copy.copy(ri_obj.import_targets)
for ri2_id in ri_obj.routing_instances:
ri2 = RoutingInstanceDM.get(ri2_id)
if ri2 is None:
continue
import_set |= ri2.export_targets
if vn_obj.get_forwarding_mode() in ['l2', 'l2_l3']:
irb_ips = None
if vn_obj.get_forwarding_mode() == 'l2_l3' and self.is_gateway():
irb_ips = vn_irb_ip_map['irb'].get(vn_id, [])
ri_conf = {'ri_name': vrf_name_l2, 'vn': vn_obj,
'is_l2': True, 'is_l2_l3': (
vn_obj.get_forwarding_mode() == 'l2_l3'),
'import_targets': import_set,
'export_targets': export_set,
'prefixes': vn_obj.get_prefixes(),
'gateways': irb_ips,
'router_external': vn_obj.router_external,
'interfaces': interfaces,
'vni': vn_obj.get_vxlan_vni(),
'network_id': vn_obj.vn_network_id,
'encapsulation_priorities':
GlobalVRouterConfigDM.
global_encapsulation_priorities}
self.add_routing_instance(ri_conf)
if vn_obj.get_forwarding_mode() in ['l3', 'l2_l3']:
interfaces = []
lo0_ips = None
if vn_obj.get_forwarding_mode() == 'l2_l3':
interfaces = [
JunosInterface(
'irb.' + str(vn_obj.vn_network_id),
'l3', 0)]
elif self.is_gateway():
lo0_ips = vn_irb_ip_map['lo0'].get(vn_id, [])
is_internal_vn = True if '_contrail_lr_internal_vn_' in vn_obj.name else False
is_dci_vn = True if '_contrail_dci_internal_vn_' in vn_obj.name else False
ri_conf = {'ri_name': vrf_name_l3, 'vn': vn_obj,
'is_l2': False,
'is_l2_l3': vn_obj.get_forwarding_mode() ==
'l2_l3',
'import_targets': import_set,
'export_targets': export_set,
'prefixes': vn_obj.get_prefixes(),
'router_external': vn_obj.router_external,
'interfaces': interfaces,
'gateways': lo0_ips,
'network_id': vn_obj.vn_network_id}
if is_dci_vn:
ri_conf["prefixes"] = vn_obj.get_prefixes(self.physical_router.uuid)
ri_conf['vni'] = vn_obj.get_vxlan_vni(is_dci_vn = is_dci_vn)
ri_conf['is_dci_network'] = True
elif is_internal_vn:
ri_conf['vni'] = vn_obj.get_vxlan_vni(is_internal_vn = is_internal_vn)
lr_uuid = DMUtils.extract_lr_uuid_from_internal_vn_name(vrf_name_l3)
lr = LogicalRouterDM.get(lr_uuid)
if lr:
ri_conf['router_external'] = lr.logical_router_gateway_external
if lr.data_center_interconnect:
ri_conf['connected_dci_network'] = lr.data_center_interconnect
self.add_routing_instance(ri_conf)
break
if export_set and\
self.physical_router.is_junos_service_ports_enabled() and\
len(vn_obj.instance_ip_map) > 0:
service_port_ids = DMUtils.get_service_ports(
vn_obj.vn_network_id)
if not self.physical_router \
.is_service_port_id_valid(service_port_ids[0]):
self._logger.error("DM can't allocate service interfaces"
" for (vn, vn-id)=(%s,%s)" %
(vn_obj.fq_name,
vn_obj.vn_network_id))
else:
vrf_name = DMUtils.make_vrf_name(vn_obj.fq_name[-1],
vn_obj.vn_network_id,
'l3', True)
interfaces = []
service_ports = self.physical_router.junos_service_ports.\
get('service_port')
interfaces.append(
JunosInterface(
service_ports[0] + "." + str(service_port_ids[0]),
'l3', 0))
interfaces.append(
JunosInterface(
service_ports[0] + "." + str(service_port_ids[1]),
'l3', 0))
ri_conf = {'ri_name': vrf_name, 'vn': vn_obj,
'import_targets': import_set,
'interfaces': interfaces,
'fip_map': vn_obj.instance_ip_map,
'network_id': vn_obj.vn_network_id,
'restrict_proxy_arp': vn_obj.router_external}
self.add_routing_instance(ri_conf)
return