%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/sysfs.pyo

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZ	ddl
Z	ddlZ	ddlm
Z
eje�Zd�Zdd�Zd�Zdd	�Zed
�Zd�ZdS(u�
Module for interfacing with SysFS

.. seealso:: https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt
.. versionadded:: 2016.3.0
i(tabsolute_importtunicode_literalstprint_functionN(tsixcC@stjjj�S(u
    Only work on Linux
    (tsalttutilstplatformtis_linux(((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyt__virtual__scC@sYt|�}|tkrtStjj|�r2|S|dk	rKt||�St|�SdS(u�
    Access/write a SysFS attribute.
    If the attribute is a symlink, it's destination is returned

    :return: value or bool

    CLI example:
     .. code-block:: bash

        salt '*' sysfs.attr block/sda/queue/logical_block_size
    N(ttargettFalsetostpathtisdirtNonetwritetread(tkeytvalue((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pytattr s
cC@s�ymt|�}tjd||�tjjj|d��0}|jtjjj	dj
|���tSWdQXWntk
r�t
SXdS(u�
    Write a SysFS attribute/action

    CLI example:
     .. code-block:: bash

        salt '*' sysfs.write devices/system/cpu/cpu0/cpufreq/scaling_governor 'performance'
    uWriting %s to %suwu{0}
N(R	tlogttraceRRtfilestfopenRtstringutilstto_strtformattTruet	ExceptionR
(RRttwriter((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyR8s	
uc	C@s,t|tj�sai}xB|D]:}ttjj||��}|tk	r|||<qqW|Sttjj||��}|tkr�tStjj	|�rit
|�}i}x�|d|dD]�}ttjj||��}|tk	r�|jd�}	|	j�}|}
t
|	�rTx4|	D])}||
krCi|
|<n|
|}
q$Wn||
|<q�q�W|Sy�tjd|�tjtj|tjtjB���o}|j�j�}
|
s�tSyt|
�}
Wn5tk
ryt|
�}
Wqtk
rqXnX|
SWdQXWntk
r'tSXdS(u
    Read from SysFS

    :param key: file or path in SysFS; if key is a list then root will be prefixed on each key

    :return: the full (tree of) SysFS attributes under key

    CLI example:
     .. code-block:: bash

        salt '*' sysfs.read class/net/em1/statistics
    ururwu/u
Reading %s...N(t
isinstanceRtstring_typesRRRtjoinR
R	R
t
interfacestsplittpoptlenRRtfdopentopentO_RDONLYt
O_NONBLOCKtstriptintRtfloat(Rtroottrestakeytarestkeystresulttsubkeytsubvaltsubkeyst	subresulttskeyttreadertval((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyRMsT


(


cC@s}|jd�s'tjjd|�}ntjj|�}tjj|�s_tjd|�tS|ri|Stjj	|�SdS(u
    Return the basename of a SysFS key path

    :param key: the location to resolve within SysFS
    :param full: full path instead of basename

    :return: fullpath or basename of path

    CLI example:
     .. code-block:: bash

        salt '*' sysfs.read class/ttyS0

    u/sysuUnkown SysFS key %sN(
t
startswithRRR trealpathtexistsRtdebugR
tbasename(Rtfull((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyR	�sc
C@svt|�}|tks+tjj|�r?tjd|�tSg}g}g}x	tjjj	|dt�D]�\}}}x�|D]�}tjj
||�}tjj|�s�q�ntj|�j
}	ttj|	@�}
ttj|	@�}tjj||�}|r/|
r|j|�qU|j|�q�|
rE|j|�q�tjd|�q�WqmWi|d6|d6|d6S(u�
    Generate a dictionary with all available interfaces relative to root.
    Symlinks are not followed.

    CLI example:
     .. code-block:: bash

        salt '*' sysfs.interfaces block/bcache0/bcache

    Output example:
     .. code-block:: json

       {
          "r": [
            "state",
            "partial_stripes_expensive",
            "writeback_rate_debug",
            "stripe_size",
            "dirty_data",
            "stats_total/cache_hits",
            "stats_total/cache_bypass_misses",
            "stats_total/bypassed",
            "stats_total/cache_readaheads",
            "stats_total/cache_hit_ratio",
            "stats_total/cache_miss_collisions",
            "stats_total/cache_misses",
            "stats_total/cache_bypass_hits",
          ],
          "rw": [
            "writeback_rate",
            "writeback_rate_update_seconds",
            "cache_mode",
            "writeback_delay",
            "label",
            "writeback_running",
            "writeback_metadata",
            "running",
            "writeback_rate_p_term_inverse",
            "sequential_cutoff",
            "writeback_percent",
            "writeback_rate_d_term",
            "readahead"
          ],
          "w": [
            "stop",
            "clear_stats",
            "attach",
            "detach"
          ]
       }

    .. note::
      * 'r' interfaces are read-only
      * 'w' interfaces are write-only (e.g. actions)
      * 'rw' are interfaces that can both be read or written
    uSysFS %s not a dirtfollowlinksu#Unable to find any interfaces in %suruwurw(R	R
RRR
RterrorRRtos_walkR tisfiletstattst_modetbooltS_IRUSRtS_IWUSRtrelpathtappendtwarning(
R,t
readwritestreadstwritesRt_Rtafiletcanpatht	stat_modetis_rtis_wRH((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyR!�s6:+
(t__doc__t
__future__RRRtloggingRRCtsalt.utils.filesRtsalt.utils.pathtsalt.utils.platformtsalt.extRt	getLoggert__name__RRRRRRRR	R!(((s6/usr/lib/python2.7/site-packages/salt/modules/sysfs.pyt<module>s		A

Zerion Mini Shell 1.0