403 Forbidden


Disable Functions:
Path : /usr/libexec/kcare/python/kcarectl/
File Upload :
Command :
Current File : //usr/libexec/kcare/python/kcarectl/config_handlers.pyc

�
o��fc@sLddlZddlZddlmZddlmZddlmZddlmZddlmZddlm	Z	e
r�dd	lmZm
Z
mZnd
Zddd
ddgZe�Zd�Zi'd�d6dd6ed6dd6d�d6ed6ed6dd6ed6ed6ed6ed
6ed6d�d6ed6ed6ed 6ed!6d"�d#6ejd$6d%�d&6ejd'6dd(6ejd)6d*�d+6ed,6ed-6ed.6ed/6ejd06dd16dd26ejd36ed46d5�d66ed6dd76dd86ed96Zd:�Zd;�Zd<efd=��YZd>�Zd?�Zd@�Z dS(Ai����Ni(t	constants(t	log_utils(tutils(tconfig(t
http_utils(tConfigParser(tOptionaltSettLists/etc/sysconfig/kcare/kcare.conftENABLE_CRASHREPORTERtFORCE_JSON_SIG_V2tKCORE_OUTPUTtKMSG_OUTPUTtUSE_CONTENT_FILE_V2cCs|j�dkS(Nt1tTRUEtYEStY(RRRR(tupper(tvalue((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pytbool_converterscCs
|j�S(N(tstrip(tv((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt<lambda>$stAFTER_UPDATE_COMMANDtAUTO_STICKY_PATCHSETtAUTO_UPDATEtAUTO_UPDATE_DELAYcCs
|j�S(N(R(R((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyR(stBEFORE_UPDATE_COMMANDtCHECK_SSL_CERTSt	FORCE_GIDtHTTP_TIMEOUTtIGNORE_UNKNOWN_KERNELtKCORE_OUTPUT_SIZEcCs
|jd�S(Nt/(trstrip(R((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyR1st
KDUMPS_DIRtLIBCARE_DISABLEDt!LIBCARE_PIDLOGS_MAX_TOTAL_SIZE_MBtLIB_AUTO_UPDATEcCs
|p	dS(N(tNone(R((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyR6stPATCH_LEVELtPATCH_METHODcCs
|jd�S(NR"(R#(R((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyR8stPATCH_SERVERt
PATCH_TYPEtPREFIXtPREV_PATCH_TYPEcCs
|jd�S(NR"(R#(R((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyR<stREGISTRATION_URLtPRINT_LEVELtREPORT_FQDNtSILENCE_ERRORStSTATUS_CHANGE_GAPtSTICKY_PATCHtSTICKY_PATCHSETtUPDATE_DELAYt
UPDATE_POLICYtUPDATE_SYSCTL_CONFIGcCs,g|jd�D]}|j�j�^qS(Nt,(tsplitRtlower(Rtptch((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyRFstUSERSPACE_PATCHEStKERNEL_VERSION_FILEtKCARE_UNAME_FILEtSUCCESS_TIMEOUTc	Kstt�}|j�}|j�x�|j�D]�\}}t}|d}|d}x|tt|��D]h}||j|�s�||j|�rh|dkr�||=n|dt
|�d||<t}PqhqhW|s/|j|dt
|�d�q/q/Wt
jtdj|��dS(Nt=t s = s
t(topentCONFIGt	readlinestclosetitemstFalsetrangetlent
startswithR(tstrtTruetappendRtatomic_writetjoin(	tkwargstcftlinestpropRtupdatedtprop_eqtprop_spti((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt
update_configNs"


&
&c
CsBi}tjd�}xa|D]Y}|j|�}|r[|j�\}}|skd}qkntd|��|||<qWt|�tt�}|r�tddjt	|����nxz|j
�D]l\}}t|}	|dks�|	dkr�q�ny|	|�Wq�tk
r/td||f��q�Xq�Wt|�dS(Ns^([^=]+)=([^=]*)$s8Invalid parameter format: %s. Format should be KEY=VALUEsUnknown parameter: %ss, sBad value for %s: %s(
tretcompiletmatchtgroupsR(t
SystemExittsettPOSSIBLE_CONFIG_OPTIONSRQtsortedRHt	ExceptionRZ(
tparamstparams_for_updatetpatterntparamR]tkeyRtunknown_paramstvar_nametconvert((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pytupdate_config_from_argscs,
"

tFakeSecHeadcBs#eZd�Zd�Zd�ZRS(cCs||_d|_dS(Ns[asection]
(tfptsechead(tselfRn((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt__init__�s	cCs5|jr$z|jSWdd|_Xn
|jj�SdS(N(RoR(Rntreadline(Rp((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyRr�s
	
ccs:|jr|jVd|_nx|jD]}|Vq'WdS(N(RoR(Rn(Rptline((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt__iter__�s
	(t__name__t
__module__RqRrRt(((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyRm�s			cstj�i�tdidd6dd6��y<ttt��}tjr[�j|�n
�j	|�Wnt
k
r}iSXdd��fd�}xTd
dgD]F\}}tj
|�s��jd|�}|r�|tj|<q�q�q�Wx*tj�D]\}}||d	|�q�W�S(NtdefaultsRCt
HTTP_PROXYtHTTPS_PROXYcsoy�jd|�}Wntk
r/|}nX|dk	rk|rQ||�}n|�|<tj|�ndS(Ntasection(tgetRcR(tCONFIG_OPTIONStadd(tnametdefaultRkR(tcptresult(s5/usr/libexec/kcare/python/kcarectl/config_handlers.pytread_var�s


thttpthttpsRzRk(R�Rx(R�Ry(R|tclearRRmRDRERtPY2treadfpt	read_fileRcR(Rtget_proxy_from_envR{tostenvironRaRH(RR�tschemetvariabletproxyRjRk((R�R�s5/usr/libexec/kcare/python/kcarectl/config_handlers.pytget_config_settings�s&
	
cCssi}xf|j�D]X\}}|j�}|jd�r|jdd�jdd�j�}|||<qqW|S(so
    Checking headers for feature flags which start with 'KC-Flag-' and
    reformat it to dictionary with keys in upper case and without 'KC-Flag-' prefix
    and dashes replaced with underscores. For unification all header keys are checking in upper case.
    For example:
    'KC-Flag-Some-Value' -> 'SOME_VALUE'
    :return: dict {'SOME_VALUE': 'value', ...}
    sKC-FLAG-RCt-t_(RHRRLtreplace(theaderstflagsRhRt	key_uppert
formatted_key((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt%get_config_options_from_feature_flags�s
$cCs�t|�}x�|j�D]�\}}|tkr7qn|dk	r|tkry3tt|��tj|<t	j
jd||�Wq�tk
r�t	j
j
d||�q�XqqWdS(s�
    Set global variables using feature flag from patchserver headers.
    Checks that option is allowed by whitelist and update global variable
    using globals()
    :param headers: Response headers from patchserver
    :return: None
    s'patchserver config override: %s with %ssGInvalid value during attempt to override config from patchserver %s: %sN(R�RHtFEATURE_FLAGS_WHITELISTR(R|tbooltintRt__dict__Rtkcarelogtinfot
ValueErrorterror(R�toptions_from_psRhR((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pytset_config_from_patchserver�s
(!R�R[RCRRRRRtpy23RRIttypingRRRRER�R`R|RR(R�RMRR;RaRZRltobjectRmR�R�R�(((s5/usr/libexec/kcare/python/kcarectl/config_handlers.pyt<module>s~			












			(	

404 Not Found
[ LogOut ]