Viewing File: /usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyc

ó
 c‰`c@s˜dZddgZddlmZddlmZddlmZddlm	Z	de
fd	„ƒYZdefd
„ƒYZdefd„ƒYZ
dS(
s!Transaction classes for firewalldtFirewallTransactiontFirewallZoneTransactioniÿÿÿÿ(tlog(terrors(t
FirewallError(tLastUpdatedOrderedDicttSimpleFirewallTransactioncBs‰eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zddd
„Z
d„Zd„Zd
„ZRS(s>Base class for FirewallTransaction and FirewallZoneTransactioncCs1||_i|_g|_g|_g|_dS(N(tfwtrulest	pre_funcst
post_funcst
fail_funcs(tselfR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt__init__"s
				cCs&|jjƒ|j2|j2|j2dS(N(RtclearR	R
R(R((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR)s
cCs#|jj|jgƒj|ƒdS(N(Rt
setdefaulttnametappend(Rtbackendtrule((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytadd_rule/scCs%x|D]}|j||ƒqWdS(N(R(RRRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt	add_rules2s
cCs&|j|jko%||j|jkS(N(RR(RRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt
query_rule6scCsF|j|jkrB||j|jkrB|j|jj|ƒndS(N(RRtremove(RRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytremove_rule9s(cGs|jj||fƒdS(N(R	R(Rtfunctargs((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytadd_pre=scGs|jj||fƒdS(N(R
R(RRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytadd_post@scGs|jj||fƒdS(N(RR(RRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytadd_failCscCsñtjdt|ƒ|dfƒ|dkr5i}n|dkrJg}n|s³x”|jD]R}xIt|j|ƒD]4}|j|gƒj|jj	|ƒj
|ƒƒqtWqZWn4x1|jD]&}|j|gƒj|j|ƒq½W||fS(Ns%s.prepare(%s, %s)s...(Rtdebug4ttypetNoneRtreversedRRRtget_backend_by_nametreverse_ruletextend(RtenableRtmodulestbackend_nameR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytprepareFs 		'$cCs1tjdt|ƒ|fƒ|j|ƒ\}}|jƒt}d}g}xe|D]]}y|jj|||ƒWn,tk
r¤}t	}|}tj
|ƒqUX|j|ƒqUW|sÿ|jj||ƒ}	|	rÿ|	\}
}|
rütj
|ƒqüqÿn|r#i}xY|D]Q}g||<x>t||ƒD],}||j|jj|ƒj|ƒƒq3WqWxL|D]D}y|jj|||ƒWqntk
r±}tj
|ƒqnXqnWxU|jD]J\}
}y|
|ŒWqÀtk
r	}tj
d|
||fƒqÀXqÀWttj|ƒ‚n|jƒdS(Ns%s.execute(%s)ts#Calling fail func %s(%s) failed: %s(RRRR(tpretFalseRRt	ExceptiontTrueterrorRthandle_modulestdebug1R!R"R#RRRtCOMMAND_FAILEDtpost(RR%RR&R.terrorMsgtdoneR'tmsgt
module_returntstatust
undo_rulesRRR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytexecuteZsP




$
	cCsstjdt|ƒƒxU|jD]J\}}y||ŒWq!tk
rj}tjd|||fƒq!Xq!WdS(Ns%s.pre()s"Calling pre func %s(%s) failed: %s(RRRR	R,R.(RRRR5((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR*—s	cCsstjdt|ƒƒxU|jD]J\}}y||ŒWq!tk
rj}tjd|||fƒq!Xq!WdS(Ns	%s.post()s#Calling post func %s(%s) failed: %s(RRRR
R,R.(RRRR5((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR2¡s	N(t__name__t
__module__t__doc__R
RRRRRRRRR R(R9R*R2(((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyRs										=	
cBsJeZdZd„Zd„Zd„Zddd„Zd„Zd„Z	RS(s<General FirewallTransaction, contains also zone transactionscCs&tt|ƒj|ƒtƒ|_dS(N(tsuperRR
Rtzone_transactions(RR((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR
°scCs$tt|ƒjƒ|jjƒdS(N(R=RRR>(R((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR´scCs9||jkr.t|j||ƒ|j|<n|j|S(N(R>RR(Rtzone((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytzone_transaction¸scCsàtjdt|ƒ|dfƒtt|ƒj|||ƒ\}}x|jD]„}yR|j|j||ƒx4|j|jD]"}||kr|j|ƒqqWWqNt	k
rÑ}tj
dt|ƒƒqNXqNW||fS(Ns%s.prepare(%s, %s)s...s1Failed to prepare transaction rules for zone '%s'(RRRR=RR(R>R&RRR.tstr(RR%RR&R?tmoduleR5((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR(¾s 	cCsStjdt|ƒƒtt|ƒjƒx"|jD]}|j|jƒq4WdS(Ns%s.pre()(RRRR=RR*R>(RR?((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR*ÐscCsStjdt|ƒƒtt|ƒjƒx"|jD]}|j|jƒq4WdS(Ns	%s.post()(RRRR=RR2R>(RR?((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR2ØsN(
R:R;R<R
RR@R R(R*R2(((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR­s				cBsƒeZdZd
d„Zd„Zd
d
d„Zd„Zd„Zd„Z	d„Z
d„Zd	„Zd
„Z
d„Zd„ZRS(s;Zone transaction with additional chain and module interfacecCs>tt|ƒj|ƒ||_||_g|_g|_dS(N(R=RR
R?tfw_transactiontchainsR&(RRR?RC((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR
ås
			cCs£|jr~tt|jƒjƒx}|jjjƒD]E}tt|jj|ƒjƒ|jj|j2|jj|j2q2Wn!tt|ƒjƒ|j2|j2dS(N(	RCR=RRR>tkeysRRDR&(RR?((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyRìs	cCs~tjdt|ƒ|dfƒtt|ƒj|||ƒ\}}x-|jD]"}||krN|j|ƒqNqNW||fS(Ns%s.prepare(%s, %s)s...(RRRR=RR(R&R(RR%RR&RB((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR(ûs cCs6|jr|jj|ƒntt|ƒj|ƒdS(N(RCR9R=R(RR%((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyR9s	cCsT||f}||jkrP|jjj|jt|g|ƒ|jj|ƒndS(N(RDRR?tgen_chain_rulesR-R(Rttabletchainttable_chain((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt	add_chains"cCs2||f}||jkr.|jj|ƒndS(N(RDR(RRGRHRI((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytremove_chainscCs?x8|D]0}||jkr|j|d|dƒqqWdS(Nii(RDRJ(RRDRI((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt
add_chainss
cCs7x0|D](}||jkr|jj|ƒqqWdS(N(RDR(RRDRI((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt
remove_chains s
cCs&||jkr"|jj|ƒndS(N(R&R(RRB((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt
add_module%scCs&||jkr"|jj|ƒndS(N(R&R(RRB((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt
remove_module)scCs"x|D]}|j|ƒqWdS(N(RN(RR&RB((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytadd_modules-s
cCs"x|D]}|j|ƒqWdS(N(RO(RR&RB((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pytremove_modules1s
N(R:R;R<R R
RR(R9RJRKRLRMRNRORPRQ(((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyRâs										N(R<t__all__tfirewall.core.loggerRtfirewallRtfirewall.errorsRtfirewall.fw_typesRtobjectRRR(((s@/usr/lib/python2.7/site-packages/firewall/core/fw_transaction.pyt<module>sŽ5
Back to Directory File Manager