%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/mount.pyc

�
���^c@@sdZddlmZmZmZddlZddlZddlZddlZ	ddl
Z	ddlZ	ddlZ	ddl
Z	ddlZ	ddlZ	ddlmZddlmZmZddlmZddlmZmZeje�ZdZd	�Zd
�Zd�Z d�Z!d
�Z"d�Z#d�Z$d�Z%d�Z&d�Z'e(d�Z)de*fd��YZ+de*fd��YZ,de*fd��YZ-dd�Z.dd�Z/dd�Z0dd�Z1d ddde(d!d"�Z2d#d#d#d$de(d!d%�Z3d&d'�Z4d(d&e(d)�Z5d&d*�Z6e(d(d ddd+�Z8e(d(d dd,�Z9dddd-�Z:d.�Z;d/�Z<dd0�Z=d1�Z>d2�Z?d3�Z@d4�ZAd5�ZBd6eCd7�ZDd6d8�ZEd#d9d6e(d!d:�ZFd6d;�ZGdS(<u6
Salt module to manage Unix mounts and the fstab file
i(tabsolute_importtprint_functiontunicode_literalsN(tOrderedDict(tCommandNotFoundErrortCommandExecutionError(tsix(tfiltertzipumountcC@s tjjj�rtdfStS(u)
    Only load on POSIX-like systems
    u;The mount module cannot be loaded: not a POSIX-like system.(tsalttutilstplatformt
is_windowstFalsetTrue(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt__virtual__#s
cC@s�i}tdd
kr)tdd�}ntdd�}xY|jd�D]H}tjdd	|�j�}t|�d
krI|d||d<qIqIW|S(NuosuMacOSuDarwinucmd.run_stdoutumountumount -lu
u\s+u iii(uMacOSuDarwin(t
__grains__t__salt__tsplittretsubtlen(trettmountstlinetcomps((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_list_mounts-sc
C@st�}d}tj|tj�sBd}t|j|���ndtkrbtd�td<ntd}tj	j
j|���}xz|D]r}tj	jj
|�j�}|djd�}|jd�}	||	d}
d}d}|
r9|j|
i�jd�}|o|j�}|j|
i�jd�}ni|d	d
6|dd6|d	d
6|dd6|dd6t|djd��d6||	dd6|
jdd�d6|j|dd�d6t||	djd��d6|d6|d6||d<q�WWdQX|S(Nu/proc/self/mountinfouFile not readable {0}u
disk.blkidiu:u-uUUIDuLABELiumountidiuparentidumajoruminoriurootiu,uoptsufstypeu\040u\ udeviceiu
alt_deviceu	superoptsudevice_uuidudevice_label(RtostaccesstR_OKRtformatt__context__RR	R
tfilestfopentstringutilst
to_unicodeRtindextNonetgettlowert_resolve_user_group_namestreplace(
Rt_listtfilenametmsgt
blkid_infotifileRRtdevicet_septdevice_nametdevice_uuidtdevice_label((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mountinfo;sB	

c	C@s�t�}d}tj|tj�sBd}t|j|���ntjjj	|���}x~|D]v}tjj
j|�j�}i|dd6|j
|dd�d6|dd6t|d	jd
��d6||d<qaWWdQX|S(
u-
    List active mounts on Linux systems
    u/proc/self/mountsuFile not readable {0}iudeviceiu
alt_deviceiufstypeiu,uoptsN(RRRRRRR	R
R R!R"R#RR&R%R((RR*R+R,R.RR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mountsfs	
/cC@s�x�tdd�jd�D]�}tjdd|�j�}|r|ddks|ddkrgqnt|�}|jd�rd
|kr�t|djd��ng}|r�i|dd
6|dd6|d6||d<q�i|dd
6|dd6||d<q�d|kr-t|d
jd��ng}|rri|dd6|dd
6|dd6|d6||d<q�i|dd6|dd
6|dd6||d<qqW|S(u+
    List active mounts on AIX systems
    ucmd.run_stdoutumount -pu
u\s+u iunodeu--------u	iiu,udeviceiufstypeuoptsiii(u u	(RRRRRt
startswithR((RRRt	comps_lent	curr_opts((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mounts_aixzs0  ++cC@s�xztdd�jd�D]_}tjdd|�j�}i|dd6|dd	6t|d
jd��d6||d
<qW|S(u/
    List active mounts on FreeBSD systems
    ucmd.run_stdoutumount -pu
u\s+u iudeviceiufstypeiu,uoptsi(RRRRR((RRR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mounts_freebsd�s )cC@s�xztdd�jd�D]_}tjdd|�j�}i|dd6|dd	6t|d
jd��d6||d
<qW|S(u/
    List active mounts on Solaris systems
    ucmd.run_stdoutumount -vu
u\s+u iudeviceiufstypeiu/uoptsi(RRRRR((RRR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mounts_solaris�s )cC@scx\tdd�jd�D]A}tjdd|�j�}tjd|tj�}t|�dkrtddj|d	��}dj|j��jd�}i|d	d
6|dd6t	|djd
��d6t
j|djd��d6t
j|d�d6|d	d6||d<qi|d	d
6|dd6t	|d	jd
��d6||d<qW|S(u/
    List active mounts on OpenBSD systems
    ucmd.run_stdoutumount -vu
u\s+u u	\((.*?)\)iu	ls -l {0}iudeviceiufstypeu, uoptsiu,umajoruminorudevice_uuidii(
RRRRtfindalltDOTALLRRtjoinR(Rt	text_typetstrip(RRRtparenstnod((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mounts_openbsd�s  )cC@s�x�tdd�jd�D]{}tjdd|�j�}tjd|tj�djd�}i|dd	6|dd
6t|d�d6||d
<qW|S(u.
    List active mounts on Mac OS systems
    ucmd.run_stdoutumountu
u\s+u u	\((.*?)\)iu, udeviceufstypeiuoptsi(RRRRR<R=R((RRRRA((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_active_mounts_darwin�s % cC@s�idd6dd6}x�t|�D]�\}}|jd�d|kr�|jd�d}|jd�d}|}tjd|�s�t|||�}|r�||kr�||}q�n|dtj|�||<n||jd	d
�||<q!W|S(u6
    Resolve user and group names in related opts
    u	user.infouuidu
group.infougidu=iiu[0-9]+$u\040u\ (t	enumerateRRtmatchRRR?R)(toptstname_id_optstindtoptt_givenidt_paramt_idt_info((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR(�s

cC@s�i}tddkr#t|�n�dtdkr@t|�n�tddkr]t|�nytddkrzt|�n\tdd	kr�t|�n?|r�yt|�Wq�tk
r�t|�q�Xn
t|�|S(
ul
    List the active mounts.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.active
    uosuFreeBSDuAIXukerneluSunOSuOpenBSDuMacOSuDarwin(uMacOSuDarwin(	RR:R9R;RCRDR4RR5(textendedR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytactive�s$







t_fstab_entrycB@s�eZdZdefd��YZdZdZd
Zeed��Z	ed��Z
ed
��Zd�Zd�Z
d�Zd�Zed��Zd�ZRS(u
    Utility class for manipulating fstab entries. Primarily we're parsing,
    formatting, and comparing lines. Parsing emits dicts expected from
    fstab() or raises a ValueError.

    Note: We'll probably want to use os.normpath and os.normcase on 'name'
    t
ParseErrorcB@seZdZRS(uK
        Error raised when a line isn't parsible as an fstab entry
        (t__name__t
__module__t__doc__(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRRsudeviceunameufstypeuoptsudumpupass_numupassu3{device}		{name}	{fstype}	{opts}	{dump} {pass_num}
cC@s�t|�dkr*tdj|���n|jd�rK|jd��n|j�}t|�dks{t|�dkr�|jd��n|jdgt|�t|��tt||��S(NiuInvalid key array: {0}u#uComment!iuInvalid Entry!u0(	Rt
ValueErrorRR6RRRtextendtdictR(tclsRtkeysR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdict_from_line s$$cO@s||j||��S(N(R[(RYtargstkwargs((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt	from_line/scC@s|jj|�S(N(tfstab_formatR(RYtentry((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdict_to_line3scC@s|j|j�S(u8
        String value, only works for full repr
        (Ratcriteria(tself((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt__str__7scC@s
t|j�S(u
        Always works
        (treprRb(Rc((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt__repr__=scC@s9tg|D]}||j|f^q
�}|j|�S(u:
        Returns an instance with just those keys
        (RXRbt	__class__(RcRZtkeytsubset((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytpickCs,cK@sugtj|�D]}|ddk	r|^q}g|D]#}|dtj|d�f^q9}t|�|_dS(uC
        Store non-empty, non-null values to use as filter
        iiN(Rt	iteritemsR%R?RXRb(RcRbt	key_valuetitemst
key_value1((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt__init__Js20cC@stjjtjj|��S(u7
        Resolve equivalent paths equivalently
        (Rtpathtnormcasetnormpath(Rp((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt	norm_pathRscC@sJ|j|�}x4tj|j�D] \}}|||kr"tSq"WtS(uC
        Compare potentially partial criteria against line
        (R[RRkRbR
R(RcRR`Rhtvalue((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRFYs
(udeviceunameufstypeuoptsudumpupass_num(udeviceunameufstypeuoptsudumpupass(RSRTRURVRRt
fstab_keystcompatibility_keysR_tclassmethodR[R^RaRdRfRjRotstaticmethodRsRF(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRQs				t
_vfstab_entrycB@s�eZdZdefd��YZdZd
Zed��Zed��Z	ed
��Z
d�Zd�Zd�Z
d�Zed��Zd�ZRS(u
    Utility class for manipulating vfstab entries. Primarily we're parsing,
    formatting, and comparing lines. Parsing emits dicts expected from
    fstab() or raises a ValueError.

    Note: We'll probably want to use os.normpath and os.normcase on 'name'
    Note: This parses vfstab entries on Solaris like systems

    #device     device      mount       FS  fsck    mount   mount
    #to mount   to fsck     point       type    pass    at boot options
    #
    /devices    -   /devices            devfs    -   no     -
    RRcB@seZdZRS(u9Error raised when a line isn't parsible as an fstab entry(RSRTRU(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRRssudeviceudevice_fsckunameufstypeu	pass_fscku
mount_at_bootuoptsu^{device:<11} {device_fsck:<3} {name:<19} {fstype:<8} {pass_fsck:<3} {mount_at_boot:<6} {opts}
cC@sg|jd�r!|jd��n|j�}t|�dkrQ|jd��ntt|j|��S(Nu#uComment!iuInvalid Entry!(R6RRRRRXRtvfstab_keys(RYRR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR[zscO@s||j||��S(N(R[(RYR\R]((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR^�scC@s|jj|�S(N(t
vfstab_formatR(RYR`((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRa�scC@s|j|j�S(u8
        String value, only works for full repr
        (RaRb(Rc((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRd�scC@s
t|j�S(u
        Always works
        (ReRb(Rc((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRf�scC@s9tg|D]}||j|f^q
�}|j|�S(u:
        Returns an instance with just those keys
        (RXRbRg(RcRZRhRi((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRj�s,cK@sugtj|�D]}|ddk	r|^q}g|D]#}|dtj|d�f^q9}t|�|_dS(uC
        Store non-empty, non-null values to use as filter
        iiN(RRkR%R?RXRb(RcRbRlRmRn((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRo�s20cC@stjjtjj|��S(u7
        Resolve equivalent paths equivalently
        (RRpRqRr(Rp((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRs�scC@sJ|j|�}x4tj|j�D] \}}|||kr"tSq"WtS(uC
        Compare potentially partial criteria against line
        (R[RRkRbR
R(RcRR`RhRt((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRF�s
(udeviceudevice_fsckunameufstypeu	pass_fscku
mount_at_bootuopts(RSRTRURVRRRzR{RwR[R^RaRdRfRjRoRxRsRF(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRyds
				t_FileSystemsEntrycB@s�eZdZdefd��YZd!Zd"Zeed��Zed��Z	ed��Z
ed��Zd�Zd�Z
d�Zd�Zd�Zed��Zd�Zd �ZRS(#u
    Utility class for manipulating filesystem entries. Primarily we're parsing,
    formatting, and comparing lines. Parsing emits dicts expected from
    fstab() or raises a ValueError.

    Note: We'll probably want to use os.normpath and os.normcase on 'name'
    RRcB@seZdZRS(uK
        Error raised when a line isn't parsible as an fstab entry
        (RSRTRU(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRR�sudeviceunameufstypeuvfstypeuoptsumountudevutypeuvfsuaccountubootucheckufreeunodenameuquotausizeuvolulogcC@sTt|�dkr*tdj|���n|s<tj}n*t|�dkrftdj|���n|}t�}|djd�dj�|d<|jd�x�|D]�}|j	d�r�|j
d	��n|jd
�}t|�dkr|j
d��n|dj�}||kr7|dj�||<q�td
j|���q�W|S(NiuInvalid number of lines: {0}iuInvalid key name array: {0}iu:unameu#uComment!u= uInvalid Entry!iu(Invalid name for use in filesystems: {0}(RRVRR|tfilesystems_keysRRR@tpopR6RR(RYtlinesRZt	blk_linestorddictRRtkey_name((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdict_from_lines�s*	!

cC@s[|}|rWxH|D]=\}}|jd�r4qn|tjkr|||<qqWn|S(Nu__(R6R|Rv(RYtipargsRZt
cmdln_dictRhRt((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdict_from_cmd_line�scO@s||j||��S(N(R�(RYR\R]((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR^�scC@s�|}|ddtj}xItj|�D]8\}}d|kr+|dj||�tj7}q+q+W|tj7}tj|�S(Nunameu:u	{0}		= {1}(RtlinesepRt	viewitemsRR?(RYtfsys_dict_entryR`tstrg_outtktv((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt
dict_to_lines�s$
cC@s!t�}|j||jd<|S(Nuname(RRb(RcR((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdict_from_entrys	cC@s|j|j�S(u8
        String value, only works for full repr
        (R�Rb(Rc((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRdscC@s
t|j�S(u
        Always works
        (ReRb(Rc((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRfscC@s9tg|D]}||j|f^q
�}|j|�S(u:
        Returns an instance with just those keys
        (RXRbRg(RcRZRhRi((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRjs,cK@sugtj|�D]}|ddk	r|^q}g|D]#}|dtj|d�f^q9}t|�|_dS(uC
        Store non-empty, non-null values to use as filter
        iiN(RRkR%R?RRb(RcRbRlRmRn((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRos20cC@stjjtjj|��S(u7
        Resolve equivalent paths equivalently
        (RRpRqRr(Rp((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRs&scC@sX|d}xGtj|j�D]3\}}||krL|||krPtSqtSqWtS(ua
        Compare potentially partial criteria against built filesystems entry dictionary
        i(RR�RbR
R(Rct	fsys_viewtevalue_dictRhRt((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyRF-s
cC@s|j|S(u,
        Return value for input key
        (Rb(RcRh((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt__getitem__:s(udeviceunameufstypeuvfstypeuoptsumount(udevudevunameufstypeuvfstypeuoptsumountutypeuvfsuaccountubootucheckufreeunodenameuquotausizeuvolulog(RSRTRURVRRR}RvRwR�R�R^R�R�RdRfRjRoRxRsRFR�(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR|�s"

						
u
/etc/fstabc
C@s0i}tjj|�s|Stjjj|���}x�|D]�}tjjj|�}y�t	ddkr�|ddkrw;nt
j|�}ntj|tj
�}|djd�|d<x$|d|kr�|dcd7<q�W|||jd�<Wq;tjk
rq;t
jk
r!q;Xq;WWd	QX|S(
u�
    .. versionchanged:: 2016.3.2

    List the contents of the fstab

    CLI Example:

    .. code-block:: bash

        salt '*' mount.fstab
    ukerneluSunOSiu#uoptsu,unameu_N(RRptisfileR	R
R R!R"R#RRyR[RQRvRR~RR(tconfigRR.RR`((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytfstabAs0
u/etc/vfstabcC@s
t|�S(u�
    .. versionadded:: 2016.3.2

    List the contents of the vfstab

    CLI Example:

    .. code-block:: bash

        salt '*' mount.vfstab
    (R�(R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytvfstabls
c
C@s�t}tddkr.td|d|�}ntd|d|�}g}y�tjjj|d���}x�|D]�}tjjj	|�}y)|j
|�r�t}n
|j|�Wqntj
k
r�|j|�qntj
k
r�|j|�qnXqnWWdQXWn7ttfk
r:}d}	t|	j||���nX|r�yAtjjj|d��#}
|
jtjjj|��WdQXWq�ttfk
r�}d	}	t|	j||���q�XntS(
u�
    .. versionchanged:: 2016.3.2

    Remove the mount point from the fstab

    CLI Example:

    .. code-block:: bash

        salt '*' mount.rm_fstab /mnt/foo /dev/sdg
    ukerneluSunOStnameR/urNuCouldn't read from {0}: {1}uwbuCouldn't write to {0}: {1}(R
RRyRQR	R
R R!R"R#RFRtappendRRtIOErrortOSErrorRRt
writelinestdatatencode(R�R/R�tmodifiedRbRR.RtexcR,tofile((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytrm_fstab|s8
	&cC@st|||�S(u�
    .. versionadded:: 2016.3.2

    Remove the mount point from the vfstab

    CLI Example:

    .. code-block:: bash

        salt '*' mount.rm_vfstab /mnt/foo /device/c0t0d0p0
    (R�(R�R/R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt	rm_vfstab�s
udefaultsuautoc	K@s�t|t�r!dj|�}ni|d6|jdd�d6|d6|jdd�d6|d6|d	6}
g}d}t|t�r�n�t|tj�s�d
}
t|
��nc|dkrtdd
ddddddddg
�}||kr�dg}qdg}n	|g}t	|
�}y|j
|�}WnDtk
rvd�}t||�}dj
|�}
t|
��nXtjj|�s�tdj
|���ny�tjjj|d���}x�|D]�}tjjj|�}yd|j|�r7d}|j|�r|j|�qDd}|jtj|��n
|j|�Wq�t	jk
rh|j|�q�Xq�WWdQXWn7ttfk
r�}d}
t|
j
||���nX|dkr�|jtj|��d}n|dkr|tjjjd||	�s|yAtjjj|d ��#}|jtjj j!|��WdQXWqyttfk
rud!}
t|
j
|���qyXq|n|S("u�
    Verify that this mount is represented in the fstab, change the mount
    to match the data passed, or add the mount if it is not present.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.set_fstab /mnt/foo /dev/sdz1 ext4
    u,unameu\ u\040udeviceufstypeuoptsudumpupass_numu,match_on must be a string or list of stringsuautounoneutmpfsusysfsuprocufusectludebugfsu
securityfsudevtmpfsucgroupubtrfscS@s
|tjkS(N(RQRu(Rh((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt<lambda>	su$Unrecognized keys in match_on: "{0}"uBad config file "{0}"urupresentuchangeNuCouldn't read from {0}: {1}unewttestuwbuFile not writable {0}("t
isinstancetlistR>R)R%Rtstring_typesRt	frozensetRQRjtKeyErrorRRRRpR�R	R
R R!R"R#RFR�R?RRR�R�R\t	test_modeR�R�R�(R�R/tfstypeRGtdumptpass_numR�R�tmatch_onR]t
entry_argsRRR,tspecialFSesR`RbtfilterFntinvalid_keysR.RR�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt	set_fstab�s�
	
	
	&u-uyesc

K@s{t|t�r!dj|�}n|dkr6d}ni|d6|d6|d6|d6|d6|d	6|d
6}g}d}
t|	t�r�n�t|	tj�s�d}t|��nZ|	dkrtd
ddddddg�}||kr�dg}	qdg}	n	|	g}	t|�}y|j	|	�}WnDt
k
rqd�}t||	�}dj|�}t|��nXt
jj|�s�tdj|���ny�tjjj|d���}x�|D]�}tjjj|�}yd|j|�r2d}
|j|�r|j|�q?d}
|jtj|��n
|j|�Wq�tjk
rc|j|�q�Xq�WWdQXWn7ttfk
r�}d}t|j||���nX|
dkr�|jtj|��d}
n|
dkrwtjjjd||
�swyAtjjj|d��#}|jtjjj |��WdQXWqtttfk
rpd}t|j|���qtXqwn|
S( u
    ..verionadded:: 2016.3.2
    Verify that this mount is represented in the fstab, change the mount
    to match the data passed, or add the mount if it is not present.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.set_vfstab /mnt/foo /device/c0t0d0p0 ufs
    u,uyesunounameudeviceufstypeuoptsudevice_fscku	pass_fscku
mount_at_bootu,match_on must be a string or list of stringsuautoudevfsuprocuctfsuobjfsusharefsufsutmpfscS@s
|tjkS(N(RyRz(Rh((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR��su$Unrecognized keys in match_on: "{0}"uBad config file "{0}"urupresentuchangeNuCouldn't read from {0}: {1}unewR�uwbuFile not writable {0}(!R�R�R>R%RR�RR�RyRjR�RRRRpR�R	R
R R!R"R#RFR�R?RRR�R�R\R�R�R�R�(R�R/R�RGtdevice_fsckt	pass_fsckt
mount_at_bootR�R�R�R]R�RRR,R�R`RbR�R�R.RR�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt
set_vfstab=s�	
	
	
	&u/etc/auto_saltcC@s+t|�}||krtSg}yBtjjj|d��$}x|D]}tjjj|�}|jd�r�|j	|�qGn|j
�s�|j	|�qGn|j�}t|�dkr�|j	|�qGn|j�}d}|dj
|d�}	|djd�}
|r:|	|krL|
d	|krLqGqLn|	|krLqGn|j	|�qGWWd
QXWn7ttfk
r�}d}t|j||���nXyAtjjj|d��#}
|
jtjjj|��Wd
QXWn7ttfk
r}d
}t|j||���nXtdd�tS(u�
    Remove the mount point from the auto_master

    CLI Example:

    .. code-block:: bash

        salt '*' mount.rm_automaster /mnt/foo /dev/sdg
    uru#iu/..iuiu:iNuCouldn't read from {0}: {1}uwbuCouldn't write to {0}: {1}ucmd.runu
automount -cv(t
automasterRR	R
R R!R"R#R6R�R@RRR)R�R�RRR�R�R�R(R�R/R�tcontentsRR.RRtprefixtname_chkt
device_fmtR�R,R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt
rm_automaster�sN




	&uc
K@st|t�r!dj|�}ng}t}t}	d}
tjj|�svtd|�td|
dj|��ndj|�}dj||�}dj||�}|d	kr�|j	|d
�}ny�t
jjj
|d��y}
xo|
D]g}t
jjj|�}|jd�r,|j|�q�n|j�sK|j|�q�n|j�}t|�d
kr||j|�q�n|d|ks�|d|krIt}	|d|kr�t}||d<n|d|kr�t}||d<n|d|krt}||d<n|rVtjd|�dj|||�}|j|�qVq�|j|�q�WWdQXWn7ttfk
r�}d}t|j||���nX|r9t
jjjd||�s5yAt
jjj
|d��#}|jt
jjj|��WdQXWq5ttfk
r1d}t|j|���q5XndS|s�|	rIdSt
jjjd||�s�dj|||�}|j|�yAt
jjj
|d��#}|jt
jjj|��WdQXWq�ttfk
r�tdj|���q�Xq�ndS(u
    Verify that this mount is represented in the auto_salt, change the mount
    to match the data passed, or add the mount if it is not present.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.set_automaster /mnt/foo /dev/sdz1 ext4
    u,u/etc/auto_masteru
file.touchufile.appendu/-			{0}u/..{0}u{0}:{1}u-fstype={0},{1}usmbfsuuru#iiiiu8auto_master entry for mount point %s needs to be updatedu{0}	{1}	{2}
NuCouldn't read from {0}: {1}R�uwbuFile not writable {0}uchangeupresentunew( R�R�R>R
RRpR�RRR)R	R
R R!R"R#R6R�R@RRRtlogtdebugR�R�RR\R�R�R�R�(R�R/R�RGR�R�R]Rtchangetpresenttautomaster_fileR�t	type_optsR.RRtnewlineR�R,R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytset_automaster�s�



 


&
&c	C@si}tjj|�s|Stjjj|���}x�|D]�}tjjj|�}|j	d�rkq;n|j
�s}q;n|j�}t|�dkr�q;nd}|dj
|d�}|djd�}|djd	�}i|dd
6|dd6|dd6||<q;WWd
QX|S(u}
    List the contents of the auto master

    CLI Example:

    .. code-block:: bash

        salt '*' mount.automaster
    u#iu/..iuiu:iu,udeviceufstypeuoptsN(RRpR�R	R
R R!R"R#R6R@RRR)(	R�RR.RRR�R�R�RG((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR�ss*

c
C@s�|dkr�|dkr,td|d|�S|dkr�td||�}|sUtSttj|��}|tdj|�<|StSd|kr�td	dkr�d}nt	|tj
�r�|jd
�}ntj
j|�r�|r�td|d|�nd}	|dk	r1d
j|�}
dj|
�}	n|rsdtd	kr]|	dj|�7}	qs|	dj|�7}	ndj|	||�}td|d|dt�}|dr�|dStS(uz
    Mount a device

    CLI Example:

    .. code-block:: bash

        salt '*' mount.mount /mnt/foo /dev/sdz1 True
    umountuguestfsu
guestfs.mounttrootuqemu_nbdu
qemu_nbd.inituimg.mnt_{0}udefaultsuosuMacOSuDarwinuAIXu,u
file.mkdirtuseruu-o {0}u -v {0}u -t {0}umount {0} {1} {2} ucmd.run_alltrunastpython_shelluretcodeustderr(uMacOSuDarwinuAIXN(RR
tnextRtiterkeysRRRR%R�R�RRRptexistsR>R(
R�R/tmkmntR�RGR�tutiltmnttfirstR\tloptstcmdtout((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytmount�s<
	
c
C@s�t}tddkrC|dkr+d}n|dkrCt}qCndtdkrk|dkrkd}qknt|tj�r�|jd	�}nt�}||kr�d
|kr�tddkr�|jd
�n|r�t	||d|�nd	j
|�}d
j|�}	dtdkrC|r6|	dj|�7}	n|	d7}	n|	dj|�7}	tddksl|r�dj|	||�}
ndj|	||�}
td|
d|dt�}|dr�|dStSt
|||||d|�S(u�
    Attempt to remount a device, if the device is not already mounted, mount
    is called

    CLI Example:

    .. code-block:: bash

        salt '*' mount.remount /mnt/foo /dev/sdz1 True
    uosuMacOSuDarwinudefaultsunoownersusmbfsuAIXuu,uremountuOpenBSDR�u-o {0}u -v {0}u -o remountu -t {0}umount {0} {1} {2} umount -u {0} {1} {2} ucmd.run_allR�R�uretcodeustderr(uMacOSuDarwin(uOpenBSDuMacOSuDarwin(uOpenBSDuMacOSuDarwin(R
RRR�RR�RRPR�tumountR>RRR�(R�R/R�R�RGR�tforce_mounttmntsR�R\R�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytremount�s@		

cC@s�|dkrRdtkrRdj|�tkrOtdtdj|��dSqRnt�}||krtdj|�S|s�dj|�}ndj|�}td|d|d	t�}|d
r�|dStS(u
    Attempt to unmount a device by specifying the directory it is mounted on

    CLI Example:

    .. code-block:: bash

        salt '*' mount.umount /mnt/foo

    .. versionadded:: 2015.5.0
    .. code-block:: bash

        salt '*' mount.umount /mnt/foo /dev/xvdc1
    umountuqemu_nbd.clearuimg.mnt_{0}Nu"{0} does not have anything mountedu
umount {0}ucmd.run_allR�R�uretcodeustderr(RRRRPR
R(R�R/R�R�R�R�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR�s
	

cC@sltjjj|�}|stStjjjd�sCtd��ntddj|�dt�}d|kS(u�
    Returns true if the command passed is a fuse mountable application.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.is_fuse_exec sshfs
    uldducmd.runuldd {0}R�ulibfuse(R	R
RptwhichR
RRR(R�tcmd_pathR�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytis_fuse_exec+s
c	C@s�i}tddkr�x�tdd�j�D]�}|jd�rHq-n|j�}i|djd"�rpd	nd
d6t|d�d
6t|d�t|d�d6dd6||d<q-Wndtdkrux�tdd�j�D]�}|jd	�rq�n|j�}id	d6t|dd �dd
6t|dd �t|dd �dd6dd6||d<q�WnLtddkr'tjjj	d���}x~|D]v}tjj
j|�}|jd�r�q�n|j�}i|dd6|dd
6|dd6|dd6||d<q�WWdQXn�x�tdd�j�D]}|jd#�rYq>nd
}|j�}|djd�r�d }ni|d6|dd
6|dd6|d!d6||d<q>W|S($u�
    Return a dict containing information on active swap

    .. versionchanged:: 2016.3.2

    CLI Example:

    .. code-block:: bash

        salt '*' mount.swaps
    ukerneluSunOSucmd.run_stdoutuswap -luswapfileiu/devuswapudeviceufileutypeiusizeiuusedu-upriorityuAIXi����iuosuOpenBSDu/proc/swapsuFilenameiiNuswapctl -kluDeviceuTotalu/dev/u	partitioni(u/devuswap(uDeviceuTotal(RRt
splitlinesR6RtintR	R
R R!R"R#(RRRtfp_t	swap_type((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytswapsAsT#
+
#	
cC@si}t�}||kr7|||d<t|d<|Stddkr~tddkrwtddj|�d	t�q�tSnOd
j|�}|r�dtdkr�|dj|�7}ntd|d	t�t�}||kr�|||d<t|d<|S|S(
u�
    Activate a swap disk

    .. versionchanged:: 2016.3.2

    CLI Example:

    .. code-block:: bash

        salt '*' mount.swapon /root/swapfile
    ustatsunewukerneluSunOSuvirtualuzoneucmd.runuswap -a {0}R�u
swapon {0}uAIXu -p {0}(R�R
RRRR(R�tpriorityRton_R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytswapon|s(	
 	
cC@s�t�}||kr�tddkr\tddkrUtddj|�dt�q�tSnMtdd	kr�tdd
j|�dt�ntddj|�dt�t�}||kr�tStSdS(
u�
    Deactivate a named swap mount

    .. versionchanged:: 2016.3.2

    CLI Example:

    .. code-block:: bash

        salt '*' mount.swapoff /root/swapfile
    ukerneluSunOSuvirtualuzoneucmd.runuswap -a {0}R�uosuOpenBSDuswapoff {0}uswapctl -d {0}N(R�RRRR
RR%(R�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytswapoff�s	  	cC@s!t�}||krtStSdS(u�
    .. versionadded:: 2014.7.0

    Provide information if the path is mounted

    CLI Example:

    .. code-block:: bash

        salt '*' mount.is_mounted /mnt/share
    N(RPRR
(R�tactive_((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt
is_mounted�s	cC@sWtjjjt�}|rSd|krS|drS||dkrP|d|SqSniS(u�
    .. versionadded:: 2018.3.0

    Provide information if the path is mounted

    CLI Example:

    .. code-block:: bash

        salt '*' mount.read_mount_cache /mnt/share
    umounts(R	R
R�t
read_cachet__opts__(R�tcache((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytread_mount_cache�scC@s�tjjjt�}|s.i}i|d<nd|krGi|d<ni|d6|d6|d6|d6|d|<tjjj|t�}|r�tStd��dS(u�
    .. versionadded:: 2018.3.0

    Provide information if the path is mounted

    :param real_name:     The real name of the mount point where the device is mounted.
    :param device:        The device that is being mounted.
    :param mkmnt:         Whether or not the mount point should be created.
    :param fstype:        The file system that is used.
    :param mount_opts:    Additional options used when mounting the device.
    :return:              Boolean if message was sent successfully.

    CLI Example:

    .. code-block:: bash

        salt '*' mount.write_mount_cache /mnt/share /dev/sda1 False ext4 defaults,nosuid
    umountsudeviceufstypeumkmntuoptsuUnable to write mount cache.N(R	R
R�R�R�twrite_cacheRR(t	real_nameR/R�R�t
mount_optsR�tcache_write((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytwrite_mount_cache�s


cC@s|tjjjt�}|rxd|krx||dkru|d|=tjjj|t�}|srtd��qrquqxntS(u�
    .. versionadded:: 2018.3.0

    Provide information if the path is mounted

    CLI Example:

    .. code-block:: bash

        salt '*' mount.delete_mount_cache /mnt/share
    umountsuUnable to write mount cache.(R	R
R�R�R�R�RR(R�R�R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytdelete_mount_cachesu/etc/filesystemscC@s�t�}g}t}tjj|�s8dtdkr<|Stjjj	|��>}x4|D],}tjj
j|�}|jd�r�|r�q[n|jd�r�t
}|j|�q[|j�szt}y�tj|tj�}g}d|kr|djd�|d<nx$|d|kr4|dcd7<qW|rQ|||jd�<n|||d<Wq�tjk
rvq�Xq[|j|�q[WWdQX|S(	u"
    Return the contents of the filesystems in an OrderedDict

    config
        File containing filesystem infomation

    leading_key
        True    return dictionary keyed by 'name' and value as dictionary with other keys, values (name excluded)
                OrderedDict({ '/dir' : OrderedDict({'dev': '/dev/hd8', .... }}))

        False   return dictionary  keyed by 'name' and value as dictionary with all keys, values (name included)
                OrderedDict({ '/dir' : OrderedDict({'name': '/dir', 'dev': '/dev/hd8', ... })})
    uAIXukernelu/uoptsu,unameu_N(RR
RRpR�RR	R
R R!R"R#R6RR�RR|R�RvR~RR(R�tleading_keyRRt
parsing_blockR.RR`((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt_filesystems-s>	#
cC@sbi}dtdkr|St|�}|r^tt|j���}it||�|6}n|S(u�
    .. versionadded:: 2018.3.3

    List the contents of the filesystems

    CLI Example:

    .. code-block:: bash

        salt '*' mount.filesystems
    uAIXukernel(RR�R�titerRZRX(R�Rtret_dicttret_key((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytfilesystemsfsutruecK@s�t|t�r!dj|�}ni|d6|jdd�d6|d6|d6|d6}	g}
d0}d	td
krv|St|t�r�n�t|tj�s�td��n�|dkr3t	d
ddddddddddddddddddd d!d"d#d$d%d&g�}||kr'dg}q<dg}n	|g}t
j|	|�}
y|
j|�}Wn>t
k
r�d'�}t||�}td(j|���nXtjj|�s�td)j|���ny�t|t�}x~tj|�D]m}|j|�rNd*}|
j|�r(|
j|�q[d+}|
d}|
j||
f�q�|
j|�q�WWn1ttfk
r�}td,j||���nX|d0kr�x*tj|
j��D]}|
j|�q�Wd-}n|d*kryktjjj|d.��M}xC|
D];}|d/}t
j|�}|j tjj!j"|��qWWd0QXWqttfk
r{td1j|���qXn|S(2u�
    .. versionadded:: 2018.3.3

    Verify that this mount is represented in the filesystems, change the mount
    to match the data passed, or add the mount if it is not present on AIX

        Provide information if the path is mounted

    :param name:          The name of the mount point where the device is mounted.
    :param device:        The device that is being mounted.
    :param vfstype:       The file system that is used (AIX has two fstypes, fstype and vfstype - similar to Linux fstype)
    :param opts:          Additional options used when mounting the device.
    :param mount:         Mount if not mounted, default True.
    :param config:        Configuration file, default /etc/filesystems.
    :param match:         File systems type to match on, default auto

    CLI Example:

    .. code-block:: bash

        salt '*' mount.set_filesystems /mnt/foo /dev/sdz1 jfs2
    u,unameu\ u\040udevuvfstypeuoptsumountuAIXukernelu,match_on must be a string or list of stringsuautounoneutmpfsusysfsuprocufusectludebugfsu
securityfsudevtmpfsucgroupubtrfsucdrfsuprocfsujfsujfs2unfsusfsunfs3ucachefsuudfsucifsunamefsupmemfsuahafsunfs4uautofsustnfscS@s
|tjkS(N(R|Rv(Rh((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyR��su$Unrecognized keys in match_on: "{0}"uBad config file "{0}"upresentuchangeuCouldn't read from {0}: {1}unewuwbiNuFile not writable {0}(#R�R�R>R)R%RRR�RR�R|R^RjR�RRRRpR�R�R
R�RFR�R�R�R�R	R
R R!R�R�R�R�(R�R/tvfstypeRGR�R�R�R�R]R�t
view_linesRR�tentry_ipRbR�R�t
fsys_filedictR�tkvR�t	dict_viewR�R`tmystrg((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytset_filesystems~s�!
	
	
	

*cC@s�t}g}dtdkr |Std|d|�}yzt|t�}xdtj|�D]S}y)|j|�rxt}n
|j|�WqWtj	k
r�|j|�qWXqWWWn1t
tfk
r�}tdj
||���nX|r�yktjjj|d��M}	xC|D];}|d}
tj|
�}|	jtjjj|��qWWdQXWq�t
tfk
r�}td	j
||���q�Xn|S(
u�
    .. versionadded:: 2018.3.3

    Remove the mount point from the filesystems

    CLI Example:

    .. code-block:: bash

        salt '*' mount.rm_filesystems /mnt/foo /dev/sdg
    uAIXukernelR�tdevuCouldn't read from {0}: {1}uwbiNuCouldn't write to {0}: {1}(R
RR|R�RR�RFRR�RRR�R�RRR	R
R R!R�R�R�R�(R�R/R�R�R�RbR�R�R�R�R`R�((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pytrm_filesystemss4	

*(HRUt
__future__RRRRRtloggingtsalt.utils.argsR	tsalt.utils.datatsalt.utils.filestsalt.utils.pathtsalt.utils.platformtsalt.utils.mounttsalt.utils.stringutilstsalt.utils.odictRtsalt.exceptionsRRtsalt.extRtsalt.ext.six.movesRRt	getLoggerRSR�t__virtualname__RRR4R5R9R:R;RCRDR(R
RPtobjectRQRyR|R�R�R�R�R�R�R�R�R�R%R�R�R�R�R�R�R�R�R�R�R�RR�R�R�R(((s6/usr/lib/python2.7/site-packages/salt/modules/mount.pyt<module>s�	
		+		!				
	 YV�+4xwAr&68$		;'				,	9�

Zerion Mini Shell 1.0