403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3.6/site-packages/cloudinit/config/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.6/site-packages/cloudinit/config/__pycache__/cc_mounts.cpython-36.opt-1.pyc
3

��b?I�@s�dZddlZddlZddlZddlmZddlmZmZm	Z	dZ
eje
�ZdZ
eje
�Zejde�ZdZd	Zeje�Zd
d�Zdd
�Zdd�Zddd�Zd dd�Zd!dd�Zeedd�dd�Zd"dd�Zdd�Zdd�ZdS)#a<
Mounts
------
**Summary:** configure mount points and swap files

This module can add or remove mountpoints from ``/etc/fstab`` as well as
configure swap. The ``mounts`` config key takes a list of fstab entries to add.
Each entry is specified as a list of ``[ fs_spec, fs_file, fs_vfstype,
fs_mntops, fs-freq, fs_passno ]``. For more information on these options,
consult the manual for ``/etc/fstab``. When specifying the ``fs_spec``, if the
device name starts with one of ``xvd``, ``sd``, ``hd``, or ``vd``, the leading
``/dev`` may be omitted.

In order to remove a previously listed mount, an entry can be added to the
mounts list containing ``fs_spec`` for the device to be removed but no
mountpoint (i.e. ``[ sda1 ]`` or ``[ sda1, null ]``).

The ``mount_default_fields`` config key allows default options to be specified
for the values in a ``mounts`` entry that are not specified, aside from the
``fs_spec`` and the ``fs_file``. If specified, this must be a list containing 6
values. It defaults to::

    mount_default_fields: [none, none, "auto", "defaults,nobootwait", "0", "2"]

On a systemd booted system that default is the mostly equivalent::

    mount_default_fields: [none, none, "auto",
       "defaults,nofail,x-systemd.requires=cloud-init.service", "0", "2"]

Note that `nobootwait` is an upstart specific boot option that somewhat
equates to the more standard `nofail`.

Swap files can be configured by setting the path to the swap file to create
with ``filename``, the size of the swap file with ``size`` maximum size of
the swap file if using an ``size: auto`` with ``maxsize``. By default no
swap file is created.

**Internal name:** ``cc_mounts``

**Module frequency:** per instance

**Supported distros:** all

**Config keys**::

    mounts:
        - [ /dev/ephemeral0, /mnt, auto, "defaults,noexec" ]
        - [ sdc, /opt/data ]
        - [ xvdh, /opt/data, "auto", "defaults,nofail", "0", "0" ]
    mount_default_fields: [None, None, "auto", "defaults,nofail", "0", "2"]
    swap:
        filename: <file>
        size: <"auto"/size in bytes>
        maxsize: <size in bytes>
�N)�
whitespace)�subp�
type_utils�utilz&^([x]{0,1}[shv]d[a-z][0-9]*|sr[0-9]+)$z^.+:.*z[%s]+z
/etc/fstabzcomment=cloudconfigcCs:|d
krdSx(dD] }|j|�r|jd�dkrdSqWd	S)
N�ami�root�swapT�	ephemeral�ebs�:�F)rrr)r	r
���)�
startswith�find)�nameZenumname�r�/usr/lib/python3.6/cc_mounts.py�is_meta_device_nameUs
rcCstj|�rdSdS)NTF)�NETWORK_NAME_RE�match)rrrr�is_network_deviceas
rcCsHt|�d|fd|fg}x(|D] }d||f}tjj|�r |Sq WdS)Nzp%sz-part%sz%s%s)�str�os�path�exists)�device_path�partition_numberZpotential_suffixes�suffixZpotential_partition_devicerrr�_get_nth_partition_for_devicehs
rcCsXtjj|�jd�d}tjjd|�}|dk	rLtjj|tjj|�jd�d�}tjj|�S)N�/rz/sys/block/r
r
)rr�realpath�split�joinr)r�partition_pathZdevice_nameZsys_pathrrr�_is_block_deviceusr$c	Cs
|jd|�|}|dkr&d}|jd�t|�r2|Stj|�\}}|}|rj|j||�}||krj|jd||�t|�r�||�}|s�dS|jd�s�d|f}|jd||�ntj|�r�d|f}d}|dkr�t	|d	�}nt	||�}|dkr�dSt
||��r|dk	�r|S|SdS)
Nz+Attempting to determine the real name of %sr	�
ephemeral0z2Adjusted mount option from ephemeral to ephemeral0zMapped device alias %s to %srz/dev/%szMapped metadata name %s to %sr)�debugrrZexpand_dotted_devname�getrr�DEVICE_NAME_RErrr$)	Z	startnameZtransformer�log�aliasesZdevnamerrZorigr#rrr�sanitize_devnamesD





r+cs�|dkrtj�d}d�d�}d||d�}|dkrB|dkrB|}nd|r�tj|�}|j|j}||d<|dkr�tt|d�|�}q�||d	kr�t|d	�}n|dkr�|}||d
<d�dd
�fd��fdd
�fd�dd
�fd��fdd
�fd�dd
�fg}d}xN|D]F\}	}
||	k�r
t|
|�|�}||dk�rL|d�k�rLd}PP�q
W|dk	�rb|}||d<d}i}x<|j�D]0\}
}t	|t��r�d||||
<n|||
<�q|Wt
jd|d|d|d|d|d
�|S)N�total���Zna)�avail�max_in�memr0�g�������?�maxrcSs|dS)Nr-r)�xrrr�<lambda>�sz$suggested_swapsize.<locals>.<lambda>csd�S)Nr-r)r5)�GBrrr6�scSs|S)Nr)r5rrrr6�s�csd�S)Nr3r)r5)r7rrr6�s�@cSs|dS)Nr-r)r5rrrr6�sr�size�z%s MBzCsuggest %s swap for %s memory with '%s' disk given max=%s [max=%s]'r2r1i@i)r�read_meminfor�statvfs�f_frsize�f_bfree�min�int�items�
isinstance�LOGr&)�memsize�maxsize�fsysZsugg_max�infor=r0Zformulasr:�top�funcZMBZpinfo�k�vr)r7r�suggested_swapsize�s`



rM)�fnamer:�returncs�d���fdd�}tjj|�}tj|�tj|�d��dkrJtj�dksR�dkr`|||d	�n>y|||d
�Wn,tjk
r�t	j
d�|||d	�YnXtjj|�r�tj|d�ytjd
|g�Wn"tjk
r�tj
|��YnXdS)zSize is in MiB.z6Failed to create swapfile '%s' of size %sMB via %s: %scs�tjd|�|�|dkr*ddd||g}n|dkrHddd|dd	|g}ytj|d
d�WnBtjk
r�}z$tj�||||�tj|��WYdd}~XnXdS)Nz3Creating swapfile in '%s' on fstype '%s' using '%s'�	fallocatez-lz%sM�ddzif=/dev/zerozof=%szbs=1Mzcount=%sT)Zcapture)rDr&r�ProcessExecutionErrorrHr�del_file)rNr:�method�cmd�e)�errmsg�fstyperr�create_swaps&

z$create_swapfile.<locals>.create_swaprZxfsr3�ZbtrfsrQrPz4fallocate swap creation failed, will attempt with ddi�ZmkswapN)r3rZ)rr�dirnamer�
ensure_dirZget_mount_infoZkernel_versionrrRrDrHr�chmodrS)rNr:rY�swap_dirr)rWrXr�create_swapfile�s(


r_cCs�tjj|�}t|�j�dkrdytj�d}Wntk
rJtj	d�dSXtj
|�t|||d�}tt|d��}|s�tj	d�dStj
tj	d	t||gd
�|S)z�
    fname: full path string of filename to setup
    size: the size to create. set to "auto" for recommended
    maxsize: the maximum size
    �autor,z)Not creating swap: failed to read meminfoN)rGrFrEr-r;z'Not creating swap: suggested size was 0zSetting up swap file)�msgrJ�argsi)rrr[r�lowerrr<�IOErrorrDr&r\rMrAZlog_timer_)rNr:rFr^rEZmibsizerrr�setup_swapfile4s(


recCsZt|t�stjd�dS|jdd�}|jdd�}|jdd�}|oB|sRtjd�dStjj|�r�tjjd	�sztjd
|�|SyFx4t	j
d	�j�D]"}|j|d�r�tjd|�|Sq�Wtjd
|�Wn t
k
r�tjd|�|SXyBt|t�o�|dk�rt	j|�}t|t��rt	j|�}t|||d�St
k
�rT}ztjd|�WYdd}~XnXdS)zahandle the swap config, calling setup_swap if necessary.
    return None or (filename, size)
    z%input for swap config was not a dict.N�filenamez	/swap.imgr:rrFzno need to setup swapz/proc/swapsz:swap file %s exists, but no /proc/swaps exists, being safe� zswap file %s already in usez+swap file %s exists, but not in /proc/swapsz.swap file %s exists. Error reading /proc/swapsr`)rNr:rFzfailed to setup swap: %s)rC�dictrD�warningr'r&rrrr�	load_file�
splitlinesr�	ExceptionrZhuman2bytesre)ZswapcfgrNr:rF�linerVrrr�handle_swapcfgVsD




rnc%
sdd}|jj�}|rd}ddd|ddg}|jd|�}ddd|d	ddgd
dd
dddgg}g}	d
|krj|d
}	tjd|	�g}
i}g}tjjt�r�xdt	j
t�j�D]R}
t|
kr�|j
|
�q�ytj|
�}Wntk
r�YnX|
||d<|
j
|
�q�W|jdi�}�xtt|	��D�]}t|	|t��sF|jd|dtj|	|���qt|	|d�}t||j||d�}||k�r�|jd||f�|dk�r�|jd|��qn ||k�r�|jd|||��q||	|d<xJtt|	|��D]6}|	||dk�r��q�nt|	||�|	||<�q�W�qWx�tt|	��D]�}x^tt|��D]N}t|	|�|k�rh|	|j
||�n"|	||dk�r>|||	||<�q>W|	|ddk�r,x8t|�D],}|	|d|	|dk�r�d|	|d<�q�W�q,Wx�|D]�}|d}t||j||d�}||k�r"|jd||f�|dk�r>|jd|��q�n ||k�r^|jd|||��q�||d<d}x&|	D]}|d|dk�rpd}P�qpW|�r�|jd|��q�|	j
|��q�Wg}x8|	D]0}|ddk�r�|jd|d�n
|j
|��q�Wt|jd
i��}|�r"|j
|dd
dddg�t|�dk�r>|jd�dSg}d}d}g}xb|D]Z}
d|
d	tf|
d	<|
dd
k�r~d}|
djd ��r�|j
|
d�|j
d!j|
���qTWd"d#�t	j�j �D�}xX|D]P}yt	j!|�Wn$tk
�rt	j"|d$|�YnX|�r�||k�r�d}�q�Wd%d#�|D��d&d#�|D���fd'd#��D��fd(d#��D�} |
j#|�d)d*j|
�}!t	j$t|!�g}"|�r�|"j
d+d,g�t| �dk�r�|jd-�n|jd.| �d}|�r�|"j
d/d,g�|�r�|"j
d0d1g�d2}#xj|"D]b}$d3d4j|$�}#yt%j%|$�|j|#d5�Wn2t%j&k
�rX|j|#d6�t	j"||#d6�YnX�q�WdS)7Nzdefaults,nobootwaitz=defaults,nofail,x-systemd.requires=cloud-init.service,_netdevr`�0�2Zmount_default_fieldsr%z/mnt�rZnone�sw�mountszmounts configuration is %sr�device_aliasesz,Mount option %s not a list, got a %s insteadr)r*zchanged %s => %sz#Ignoring nonexistent named mount %sz&Device %s already defined in fstab: %szchanged default device %s => %sz+Ignoring nonexistent default named mount %sFTz-Not including %s, already previously includedz$Skipping nonexistent device named %sz No modifications to fstab neededz%s,%sr-r�	cSs g|]\}}d|kr|d�qS)Z
mountpointr)�.0rKrLrrr�
<listcomp>(szhandle.<locals>.<listcomp>z Failed to make '%s' config-mountcSsg|]}tjd|��qS)rg)�WS�sub)rv�nrrrrw5scSsg|]}tjd|��qS)rg)rxry)rvrzrrrrw6scsg|]}|�krd|�qS)z- r)rvZdrop)�saddsrrrw8scsg|]}|�krd|�qS)z+ r)rv�add)�sdropsrrrw9sz%s
�
Zswaponz-azNo changes to /etc/fstab made.zChanges to fstab: %sZmountZ	systemctlz
daemon-reloadz#Activating swap and mounts with: %szActivate mounts: %s:rgZPASSZFAIL)'Zdistro�uses_systemdr'rDr&rrr�
FSTAB_PATHrrjrk�MNT_COMMENT�appendrxr!rl�range�lenrC�listrirZobj_namerr+Zdevice_name_to_devicerHrnrr"rsrBr\Zlogexc�extendZ
write_filerrR)%�_nameZcfgZcloudr)Z_argsZdef_mnt_optsrZdefvalsZdefmntsZcfgmntZfstab_linesZ
fstab_devsZ
fstab_removedrmZtoksrt�i�startZ	sanitized�jZdefmntZ
cfgmnt_hasZcfgmZactlistr5ZswapretZcc_linesZneedswapZneed_mount_all�dirsZmount_points�dZsops�contentsZ
activate_cmdsZfmtrUr)r{r}r�handle�s"





$













r�)N)N)NNN)NN) �__doc__Zloggingr�re�stringrZ	cloudinitrrrZDEVICE_NAME_FILTER�compiler(ZNETWORK_NAME_FILTERrrxr�r�Z	getLogger�__name__rDrrrr$r+rMrr_rernr�rrrr�<module>?s.





1
L8
"0

Youez - 2016 - github.com/yon3zu
LinuXploit