Edit File: plugin_modules.cpython-36.pyc
3 ��c ������������������@���sj���d�dl�Z�d�dlZddlmZ�ddlT�d�dlZd�dlT�d�dl m Z �d�dljZej j��ZG�dd��dej�ZdS�)�����N����)�base)�*)�commandsc�������������������sb���e�Zd�ZdZ��fdd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Z dd��Z ddd�Zdd��Z���Z S�)� ModulesPlugina!�� `modules`:: Plug-in for applying custom kernel modules options. + This plug-in can set parameters to kernel modules. It creates `/etc/modprobe.d/tuned.conf` file. The syntax is `_module_=_option1=value1 option2=value2..._` where `_module_` is the module name and `_optionx=valuex_` are module options which may or may not be present. + .Load module `netrom` with module parameter `nr_ndevs=2` ==== ---- [modules] netrom=nr_ndevs=2 ---- ==== Modules can also be forced to load/reload by using an additional `+r` option prefix. + .(Re)load module `netrom` with module parameter `nr_ndevs=2` ==== ---- [modules] netrom=+r nr_ndevs=2 ---- ==== The `+r` switch will also cause *TuneD* to try and remove `netrom` module (if loaded) and try and (re)insert it with the specified parameters. The `+r` can be followed by an optional comma (`+r,`) for better readability. + When using `+r` the module will be loaded immediately by the *TuneD* daemon itself rather than waiting for the OS to load it with the specified parameters. c����������������s$���t�t|��j||��d|�_t��|�_d�S�)NT)�superr����__init__Z_has_dynamic_optionsr����_cmd)�self�args�kwargs)� __class__���$/usr/lib/python3.6/plugin_modules.pyr���3���s����zModulesPlugin.__init__c�������������C���s���d|_�d|_|j|_d�S�)NFT)Z_has_dynamic_tuningZ_has_static_tuningZoptions�_modules)r ����instancer���r���r����_instance_init8���s����zModulesPlugin._instance_initc�������������C���s���d�S�)Nr���)r ���r���r���r���r����_instance_cleanup=���s����zModulesPlugin._instance_cleanupc�������������C���s����x�|D�]�}|�j�jdd|g�\}}|dk�r6tjd��d�S�|dkrTtjd||j��f���|�j�jd|g�\}}|dkrtjd||j��f���qW�d�S�)NZmodprobez-rr���zN'modprobe' command not found, cannot reload kernel modules, reboot is requiredz$cannot remove kernel module '%s': %sz:cannot insert/reinsert module '%s', reboot is required: %s)r ����execute�log�warn�debug�strip)r ����modules�module�retcode�outr���r���r����_reload_modules@���s���� zModulesPlugin._reload_modulesc�������������C���sR��|�j����d}d}d}g�}x�t|jj���D�]�\}}|�jj|�}|�jj|�} |s�|�jjd|g�\}} |dk�rxd}tj d��n|dkr�tj d|���|s�|dkr(t| �dkr�| dd ��d kr�tj dd| �} |j|��t| �dkr�|d|�d �| �d�7�}q(tjd|���q(W�|�jjtj|��t|�}|dk�rN|�j|��t|j�|k�rNtjtj��d�S�)N��r���FZmodinfoTz8'modinfo' command not found, not checking kernel modulesz)kernel module '%s' not found, skipping itr�������z+rz^\s*\+r\s*,?\s*zoptions � � zKmodule '%s' doesn't have any option specified, not writing it to modprobe.d)�_clear_modprobe_file�listr����items� _variables�expandr ���r���r���r����error�len�re�sub�appendr���� write_to_file�consts�MODULES_FILEr����infoZSTR_HINT_REBOOT)r ���r����sr���Z skip_checkZreload_list�option�valuer����vr����lr���r���r����_instance_apply_staticL���s8���� z$ModulesPlugin._instance_apply_staticc�������������C���s���t�|�jdd�S�)N�/r���)�str�replace)r ����pathr���r���r���� _unquote_pathk���s����zModulesPlugin._unquote_pathc���������� ���C���s��d}d}t�jd�}�xt|jj���D�]�\}}|�jj|�}|�jj|�} t�jdd| �} d|�} tj j | �s�d}tjt jd�|���q$tjt jd�|���|j| �}xv|D�]n}|jd �} t| �d kr�tjd||f���q�|�j| d�| d �|�jj| d�|�j| d���d�dd�|�dkr�d}q�W�q$W�|S�)NTz\s+z^\s*\+r\s*,?\s*r���z/sys/module/%sFzmodule '%s' is not loadedzmodule '%s' is loaded�=r���z.unrecognized module option for module '%s': %sr���r���z/parameters/)Zerr_ret�no_error)r)����compiler#���r���r$���r%���r&���r*����osr9����existsr���r'���r-���ZSTR_VERIFY_PROFILE_FAILr/���ZSTR_VERIFY_PROFILE_OK�splitr(���r���Z _verify_valuer ���� read_filer:���)r ���r���Zignore_missingZdevices�ret�rr1���r2���r���r3���Zmpathr4����item�argr���r���r����_instance_verify_staticn���s,���� " z%ModulesPlugin._instance_verify_staticFc�������������C���s���|r|�j����d�S�)N)r"���)r ���r���Z full_rollbackr���r���r����_instance_unapply_static����s����z&ModulesPlugin._instance_unapply_staticc�������������C���s����|�j�jtjdd�}|jd�}d�}}t|�}tjd�}x.||k�rd|j||��d�krZ|}|}|d7�}q8W�dj |d|���}t|�dkr�|d7�}|�j�j tj|��d�S�)NT)r<���r!���r���z^\s*#r���)r ���rA���r-���r.���r@���r(���r)���r=����search�joinr,���)r ���r0���r4����i�jZllrC���r���r���r���r"�������s���� z"ModulesPlugin._clear_modprobe_file)F)�__name__� __module__�__qualname__�__doc__r���r���r���r���r5���r:���rF���rG���r"���� __classcell__r���r���)r ���r���r������s���% r���)r)���Zos.pathr>���r���r���Z decoratorsZ tuned.logsZtuned� subprocessZtuned.utils.commandsr���Ztuned.constsr-���Zlogs�getr���ZPluginr���r���r���r���r����<module>���s���