Repository URL to install this package:
|
Version:
2.5 ▾
|
ó
̍EYc @ sð d Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l
m Z d d l
m Z d d l
m
Z
e j e Z d d Z d d d
Z d Z e
j j d d d d d Z e
j j d d d d
Z e
j j d d Z d Z d Z e
j j d Z e
j j d Z e
j j d Z e
j j d Z e
j j d Z e
j j d Z! d d d Z" e
j j d Z# e
j j d d Z$ e
j j d d Z% d S( s0 Implements vlans, bridges using linux utilities.iÿÿÿÿN( t processutils( t log( t excutils( t constants( t exception( t privsepc C s d g } | d k r) | d | g 7} n | | 7} y t j | SWnC t k
r } t j d i | d 6| d 6 t j d | n Xd S( Ns ovs-vsctls --timeout=%ss3 Unable to execute %(cmd)s. Exception: %(exception)st cmdR t method( t NoneR t executet Exceptiont LOGt errorR t
AgentError( t argst timeoutt full_argst e( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt
_ovs_vsctl$ s
c C sz d d d | d d | | d d d | d | d d | d
| g } | r\ | d | g 7} n | rv | d | g 7} n | S(
Ns --s --if-existss del-ports add-portt sett Interfaces external-ids:iface-id=%ss external-ids:iface-status=actives external-ids:attached-mac=%ss external-ids:vm-uuid=%ss type=%ss options:vhost-server-path=%s( ( t bridget devt iface_idt mact instance_idt interface_typet vhost_server_pathR ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt _create_ovs_vif_cmd1 s
c
C s# d d d | d d d | d | g S( Ns --s --may-exists add-brR t Bridges datapath_type=%s( ( R t
datapath_type( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt _create_ovs_bridge_cmdB s c C sB t t | | | | | | | d | t | | | d | d S( NR ( R R t _update_device_mtu( R R R R R t mtuR R R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt create_ovs_vif_portG s c C s t | | | d | d S( NR ( R ( R R! R R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt update_ovs_vif_portQ s c C s- t d d d | | g d | t | d S( Ns --s --if-existss del-portR ( R t _delete_net_dev( R R R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt delete_ovs_vif_portV s c C s t j j d | S( s Check if ethernet device exists.s /sys/class/net/%s( t ost patht exists( t device( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt
device_exists] s c C s t | r y9 t j d d d | d d d d g t j d | Wq t j k
r~ t j t j d | Wd
QXq Xn d
S( s* Delete a network device only if it exists.t ipt linkt deletet check_exit_codei i iþ s Net device removed: '%s's Failed removing net device: '%s'N( R* R R R t debugt ProcessExecutionErrorR t save_and_reraise_exceptionR ( R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyR$ b s
c
C s£ x | | g D] } t | q
Wt j d d d | d d d d | xV | | g D]H } t j d d d | d t j d d d | d
d t | | qS Wd S(
sp Create a pair of veth devices with the specified names,
deleting any previous devices with those names.
R+ R, t addt typet vetht peert nameR t upt promisct onN( R$ R R R ( t dev1_namet dev2_nameR! R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt create_veth_pairn s c C s( x! | | g D] } t | | q
Wd S( s5 Update a pair of veth devices with new configuration.N( R ( R: R; R! R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt update_veth_pair~ s c C s t t | | d S( N( R R ( R R ( ( sK /home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/linux_net.pyt ensure_ovs_bridge
s c C sÞ t | sÁ t j d d | t j d d | d t j d d | d d } | | } t j d | d d
d d d g d
| } t j j | rÁ t j d | d d d d d g qÁ n t j d d d | d d S( Nt brctlt addbrt setfdi t stpt offs+ /sys/class/net/%s/bridge/multicast_snoopingt teet
process_inputt 0R. i s' /proc/sys/net/ipv6/conf/%s/disable_ipv6t 1R+ R, R R7 ( R* R R R&