403 Forbidden


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

3

o��f��(@s.ddlZddlZddlmZddlmZddlmZddlmZddlmZddlm	Z	d	Z
d
ddd
dgZe�Z
dd�Zdd�deddd�eedeeeeedd�eeeedd�ejdd�ejdejdd�eeeeejddejedd�edded�'Zdd�Zdd�ZGdd�de�Zd d!�Zd"d#�Zd$d%�ZdS)&�N�)�	constants)�	log_utils)�utils)�config)�
http_utils)�ConfigParserz/etc/sysconfig/kcare/kcare.conf�ENABLE_CRASHREPORTER�FORCE_JSON_SIG_V2�KCORE_OUTPUT�KMSG_OUTPUT�USE_CONTENT_FILE_V2cCs|j�dkS)N�1�TRUE�YES�Y)rrrr)�upper)�value�r�5/usr/libexec/kcare/python/kcarectl/config_handlers.py�bool_convertersrcCs|j�S)N)�strip)�vrrr�<lambda>$srcCs|j�S)N)r)rrrrr(scCs
|jd�S)N�/)�rstrip)rrrrr1scCs|pdS)Nr)rrrrr6scCs
|jd�S)Nr)r)rrrrr8scCs
|jd�S)Nr)r)rrrrr<scCsdd�|jd�D�S)NcSsg|]}|j�j��qSr)r�lower)�.0�ptchrrr�
<listcomp>Fsz<lambda>.<locals>.<listcomp>�,)�split)rrrrrFs)'�AFTER_UPDATE_COMMAND�AUTO_STICKY_PATCHSET�AUTO_UPDATE�AUTO_UPDATE_DELAY�BEFORE_UPDATE_COMMAND�CHECK_SSL_CERTSr	�	FORCE_GIDr
�HTTP_TIMEOUT�IGNORE_UNKNOWN_KERNELr�KCORE_OUTPUT_SIZE�
KDUMPS_DIRr�LIBCARE_DISABLED�!LIBCARE_PIDLOGS_MAX_TOTAL_SIZE_MB�LIB_AUTO_UPDATE�PATCH_LEVEL�PATCH_METHOD�PATCH_SERVER�
PATCH_TYPE�PREFIX�PREV_PATCH_TYPE�REGISTRATION_URL�PRINT_LEVEL�REPORT_FQDN�SILENCE_ERRORS�STATUS_CHANGE_GAP�STICKY_PATCH�STICKY_PATCHSET�UPDATE_DELAY�
UPDATE_POLICY�UPDATE_SYSCTL_CONFIG�USERSPACE_PATCHESr
�KERNEL_VERSION_FILE�KCARE_UNAME_FILE�SUCCESS_TIMEOUTc	Ks�tt�}|j�}|j�x�|j�D]�\}}d}|d}|d}x^tt|��D]N}||j|�sl||j|�rL|dkr|||=n|dt|�d||<d}PqLW|s"|j	|dt|�d�q"Wt
jtdj|��dS)NF�=� z = �
T�)
�open�CONFIG�	readlines�close�items�range�len�
startswith�str�appendr�atomic_write�join)	�kwargsZcf�linesZpropr�updatedZprop_eqZprop_sp�irrr�
update_configNs"rXc
Cs�i}tjd�}xD|D]<}|j|�}|r<|j�\}}|sHd}ntd|��|||<qWt|�tt�}|r~tddjt|����x`|j	�D]T\}}t|}	|dks�|	dkr�q�y|	|�Wq�t
k
r�td||f��Yq�Xq�Wtf|�dS)Nz^([^=]+)=([^=]*)$z8Invalid parameter format: %s. Format should be KEY=VALUEzUnknown parameter: %sz, zBad value for %s: %s)�re�compile�match�groups�
SystemExit�set�POSSIBLE_CONFIG_OPTIONSrS�sortedrL�	ExceptionrX)
�paramsZparams_for_update�pattern�paramr[�keyrZunknown_params�var_name�convertrrr�update_config_from_argscs,


rhc@s$eZdZdd�Zdd�Zdd�ZdS)�FakeSecHeadcCs||_d|_dS)Nz[asection]
)�fp�sechead)�selfrjrrr�__init__�szFakeSecHead.__init__cCs&|jrz|jSd|_Xn
|jj�SdS)N)rkrj�readline)rlrrrrn�s

zFakeSecHead.readlineccs.|jr|jVd|_x|jD]
}|VqWdS)N)rkrj)rl�linerrr�__iter__�s
zFakeSecHead.__iter__N)�__name__�
__module__�__qualname__rmrnrprrrrri�s	ric
s�tj�i�tddd�d��y,ttt��}tjr<�j|�n
�j	|�Wnt
k
r\iSXd��fdd�	}x4dD],\}}tj|�st�j
d
|�}|rt|tj|<qtWx tj�D]\}}|||d�q�W�S)NrG)�
HTTP_PROXY�HTTPS_PROXY)�defaultscsTy�jd|�}Wntk
r(|}YnX|dk	rP|r>||�}|�|<tj|�dS)N�asection)�getra�CONFIG_OPTIONS�add)�name�defaultrgr)�cp�resultrr�read_var�s
z%get_config_settings.<locals>.read_var�httprt�httpsrurw)rg)NN�r�rt�r�ru)r�r�)ry�clearrrirHrIr�PY2�readfp�	read_filerar�get_proxy_from_envrx�os�environr_rL)rr�scheme�variable�proxyrfrgr)r}r~r�get_config_settings�s&
r�cCsPi}xF|j�D]:\}}|j�}|jd�r|jdd�jdd�j�}|||<qW|S)ao
    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', ...}
    zKC-FLAG-rG�-�_)rLrrO�replace)�headers�flagsrerZ	key_upperZ
formatted_keyrrr�%get_config_options_from_feature_flags�s

r�cCs�t|�}xz|j�D]n\}}|tkr$q|dk	r|tkry&tt|��tj|<tj	j
d||�Wqtk
r~tj	jd||�YqXqWdS)z�
    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
    Nz'patchserver config override: %s with %szGInvalid value during attempt to override config from patchserver %s: %s)
r�rL�FEATURE_FLAGS_WHITELISTry�bool�intr�__dict__r�kcarelog�info�
ValueError�error)r�Zoptions_from_psrerrrr�set_config_from_patchserver�sr�)r�rYrGrrrrr�py23rrIr�r^ryrr�rPrrr_rXrh�objectrir�r�r�rrrr�<module>sx(

404 Not Found
[ LogOut ]