Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
̍EYc@s‰ddlZddlmZddlmZddlmZddlmZddlmZddlm	Z	dej
fd	„ƒYZdS(
iÿÿÿÿN(tobjects(tplugin(tcfg(t	constants(t	exception(t	linux_nett	OvsPluginc	BsàeZdZdZejdddddddƒejd	dd
ddddƒfZed„ƒZed
„ƒZ	d„Z
d„Zd„Zd„Z
d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s˜An OVS plugin that can setup VIFs in many ways

    The OVS plugin supports several different VIF types, VIFBridge
    and VIFOpenVSwitch, and will choose the appropriate plugging
    action depending on the type of VIF config it receives.

    If given a VIFBridge, then it will create connect the VM via
    a regular Linux bridge device to allow security group rules to
    be applied to VM traiffic.
    itnetwork_device_mtutdefaultiÜthelps"MTU setting for network interface.tdeprecated_grouptDEFAULTtovs_vsctl_timeoutixsnAmount of time, in seconds, that ovs_vsctl should wait for a response from the database. 0 is to wait forever.cCsd||ftj S(Ns%s%s(RtNIC_NAME_LEN(tprefixtid((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt
gen_port_name:scCs(tjd|jƒtjd|jƒfS(Ntqvbtqvo(RRR(tvif((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pytget_veth_pair_names>sc
CsŽtjjdddtjjdtjjjddddƒtjjdtjjjddddƒtjjdtjjjddddƒgƒS(Ntplugin_nametovstvif_infotvif_object_nametmin_versions1.0tmax_version(	Rt	host_infotHostPluginInfotHostVIFInfoRt	VIFBridget__name__tVIFOpenVSwitchtVIFVHostUser(tself((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pytdescribeCscCs)|jr|jjr|jjS|jjS(N(tnetworktmtutconfigR(R"R((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_get_mtuUs
c
KsP|j|ƒ}tj|jj||jj|j|j|d|j	j
|dS(Nttimeout(R'Rtcreate_ovs_vif_portR$tbridgetport_profiletinterface_idtaddresstuuidR&R(R"Rtvif_namet
instance_infotkwargsR%((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_create_vif_portZs			cCs#|j|ƒ}tj||ƒdS(N(R'Rtupdate_ovs_vif_port(R"RR/R%((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_update_vif_portescCsŠtj|jjtjƒtjtj|j	ƒ}i}|j
dkrVtj|d<ntj|d<|j
|d<|j||||dS(Ntclienttinterface_typetvhost_server_path(Rtensure_ovs_bridgeR$R*RtOVS_DATAPATH_NETDEVRRtOVS_VHOSTUSER_PREFIXRtmodetOVS_VHOSTUSER_INTERFACE_TYPEt#OVS_VHOSTUSER_CLIENT_INTERFACE_TYPEtpathR2(R"RR0R/targs((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_plug_vhostuseris


cCs¿|j|ƒ\}}tj|jƒ|j|ƒ}tj|ƒs˜tj|||ƒtj|j|ƒtj|j	j
tjƒ|j
|||ƒn#tj|||ƒ|j||ƒdS(s<Plug using hybrid strategy

        Create a per-VIF linux bridge, then link that bridge to the OVS
        integration bridge via a veth device, setting up the other end
        of the veth device just like a normal OVS port. Then boot the
        VIF on the linux bridge using standard libvirt mechanisms.
        N(RRt
ensure_bridgetbridge_nameR't
device_existstcreate_veth_pairtadd_bridge_portR8R$R*RtOVS_DATAPATH_SYSTEMR2tupdate_veth_pairR4(R"RR0tv1_nametv2_nameR%((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_plug_bridgezs	
cCsHtj|jƒsDtj|jjtjƒ|j||j|ƒndS(sCreate a per-VIF OVS port.N(	RRCRR8R$R*RRFR2(R"RR0((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_plug_vif_windows’s
cCs#t|dƒstjƒ‚nt|jtjjƒsTtjd|jj	j
ƒ‚nt|tjjƒrªtj
tjkr—tj|jjtjƒq|j||ƒnut|tjjƒr÷tj
tjkrä|j||ƒq|j||ƒn(t|tjjƒr|j||ƒndS(NR+tprofile(thasattrRtMissingPortProfilet
isinstanceR+RRtVIFPortProfileOpenVSwitchtWrongPortProfilet	__class__RR tsystplatformRtPLATFORM_WIN32RR8R$R*RFRKRRJR!R@(R"RR0((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pytplugšs"		
cCs8tj|jjtjtj|jƒd|j	j
ƒdS(NR((Rtdelete_ovs_vif_portR$R*RRRR:RR&R(R"RR0((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_unplug_vhostuser°s
cCsN|j|ƒ\}}tj|j|ƒtj|jj|d|jjƒdS(s’UnPlug using hybrid strategy

        Unhook port from OVS, unhook port from bridge, delete
        bridge, and delete both veth devices.
        R(N(	RRt
delete_bridgeRBRWR$R*R&R(R"RR0RHRI((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_unplug_bridge·scCs)tj|jj|jd|jjƒdS(sRemove port from OVS.R(N(RRWR$R*RR&R(R"RR0((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt_unplug_vif_windowsÅscCs
t|dƒstjƒ‚nt|jtjjƒsTtjd|jj	j
ƒ‚nt|tjjƒr‘tj
tjkr|j||ƒqnut|tjjƒrÞtj
tjkrË|j||ƒq|j||ƒn(t|tjjƒr|j||ƒndS(NR+RL(RMRRNROR+RRRPRQRRRR RSRTRRUR[RRZR!RX(R"RR0((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pytunplugËs		(Rt
__module__t__doc__R
RtIntOpttCONFIG_OPTStstaticmethodRRR#R'R2R4R@RJRKRVRXRZR[R\(((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyRs0
											(RStos_vifRRtoslo_configRtvif_plug_ovsRRRt
PluginBaseR(((sE/home/tvault/.virtenv/lib/python2.7/site-packages/vif_plug_ovs/ovs.pyt<module>s