%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/2582/lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/2582/lib/python3/dist-packages/cloudinit/distros/__pycache__/freebsd.cpython-38.pyc

U

Ӈg"�@s|ddlZddlZddlZddlmZddlZddlmZmZddl	m
Z
ddlmZm
Z
e�e�ZGdd�dejjj�ZdS)�N)�StringIO)�subp�util)�FreeBSDNetworking)�
PER_ALWAYS�PER_INSTANCEc@seZdZdZeZdZdZdZdZ	dddgZ
d	d
gZd	dgZd	dgZ
d	d
gZdZdZdZdZdddgZed7dd��Zedd�eeed�dd��Zdd�Zed�dd �Zd!d"�Zd8d$d%�Zd&d'�Zd(d)�Zd9d*d+�Zd,d-�Z d#d.�d/d0�Z!e"eeeeee#d1�d2d3��Z$e"edd4�d5d6��Z%dS):�DistrozY
    Distro subclass for FreeBSD.

    (N.B. DragonFlyBSD inherits from this class.)
    z/usr/local/libz/etc/login.confz/etc/login.conf.origz,/usr/local/etc/sudoers.d/90-cloud-init-users�pw�group�add�pkgZinstall�remove�updateZupgradeTz	/usr/homez/var/dbzdhclient.leases.\w+z
^{username}::z^{username}:\*:z^{username}:\*LOCKED\*:NcCs8tj�d�}|dkr"t�d�dStjdd|gd|d�S)z�
        Tell rc to reload its configuration
        Note that this only works while we're still in the process of booting.
        May raise ProcessExecutionError
        ZRC_PIDNz0Unable to reload rc(8): no RC_PID in Environment�killz-SIGALRMT�Zcapture�rcs)�os�environ�get�LOGZwarningr)�clsrZrc_pid�r�;/usr/lib/python3/dist-packages/cloudinit/distros/freebsd.py�reload_init7s

zDistro.reload_init)r)�action�service�
extra_argsc
Gsx|j}|dg|dg|dg|dg|dg|dg|dg|dg|dg|dg|d	g|d
gd�}|||t|�}tj|d|d
�S)a
        Perform the requested action on a service. This handles FreeBSD's
        'service' case. The FreeBSD 'service' is closer in features to
        'systemctl' than SysV init's 'service', so we override it.
        May raise ProcessExecutionError
        �stop�start�enable�enabled�disable�onestart�onestop�restart�status�	onestatus)rrrr r!r"r#r$�reloadz
try-reloadr%r&Tr)�init_cmd�listr)rrrrrr(Zcmds�cmdrrr�manage_serviceEs 
�zDistro.manage_servicecCsddd|d|gS)Nr	�usermod�-n�-Gr)�self�member_nameZ
group_namerrr�_get_add_member_to_group_cmdasz#Distro._get_add_member_to_group_cmd)�returncKs�t�|�rt�d|�dSddd|g}ddd|g}dddd	d
ddd
�}dddd�}|��D]b\}}||kr�|r�t|ttf�r�|�||t|�g�qZ||krZ|rZ|�	||�|�	||�qZd|ks�d|kr�|�	d�|�	d�nH|�
d|j�d|���}	|�	d|	�|�	d�|�	d|	�|�	d�t�d|�ztj||d�Wn&t
k
�rpt�td|��YnX|�
dd�}
|
dk	�r�|j||
dd�dS)z~
        Add a user to the system using standard tools

        Returns False if user already exists, otherwise True.
        z!User %s already exists, skipping.Fr	Zuseraddr-z-d�-cz-gr.z-sz-Ez-u)�homedirZgecosZ
primary_group�groups�shellZinactiveZuidz--no-user-groupz--systemz
--no-log-init)Z
no_user_group�systemZno_log_initZno_create_homer7z-d/nonexistentr4�/z-mzAdding user %s)�	logstringzFailed to create user %s�passwdNT)�hashed)rZis_userr�info�items�
isinstance�str�int�extend�appendr�home_dirr�	Exception�logexc�
set_passwd)r/�name�kwargsZpw_useradd_cmdZlog_pw_useradd_cmdZpw_useradd_optsZpw_useradd_flags�key�valr4Z
passwd_valrrr�add_userdsR
�
�



zDistro.add_usercCsBzt�dd|ddg�Wn$tk
r<t�td|��YnXdS)Nr	r,�-pz01-Jan-1970z"Failed to set pw expiration for %s�rrDrrEr)r/�userrrr�
expire_passwd�s
zDistro.expire_passwdFcCsZ|r
d}nd}z"tjdd||dg|d|d�Wn$tk
rTt�td|��YnXdS)	Nz-Hz-hr	r,�0zchpasswd for %s)�datar9zFailed to set password for %srM)r/rNr:r;Zhash_optrrrrF�s�
zDistro.set_passwdcCsBzt�dd|ddg�Wn$tk
r<t�td|��YnXdS)Nr	r,z-wZnoz)Failed to lock password login for user %srM�r/rGrrr�lock_passwd�s
zDistro.lock_passwdcCst�d|�dS)NzRDragonfly BSD/FreeBSD password lock is not reversible, ignoring unlock for user %s)r�debugrRrrr�
unlock_passwd�s�zDistro.unlock_passwdcCs�t�}t�|j���D]&}|�t�dd||��|�d�qt�|j|j	�t�
|j|���z t�
d|�t�d|jg�Wn^tjk
r�t�td|�zt�|j	|j�Wn$tk
r�t�td|j�YnXYnXdS)Nz	^default:zdefault:lang=%s:�
zRunning cap_mkdb for %sZcap_mkdbzFailed to apply locale %szFailed to restore %s backup)rrZload_text_file�
login_conf_fn�
splitlines�write�re�sub�copy�login_conf_fn_bakZ
write_file�getvaluerrTrZProcessExecutionErrorrE�IOError)r/ZlocaleZout_fnZnewconf�linerrr�apply_locale�s*��zDistro.apply_localecCsddiS)zJReturn environment vars used in FreeBSD package_command
        operationsZASSUME_ALWAYS_YESZYESr)r/rrr�_get_pkg_cmd_environ�szDistro._get_pkg_cmd_environ)�forcecCs$|jjd|jdg|rtntd�dS)Nzupdate-sourcesr)Zfreq)Z_runner�runZpackage_commandrr)r/rcrrr�update_package_sources�s
�zDistro.update_package_sources)�path�
lease_file�pid_file�	interface�config_filer2cCs"|d|d|g|rd||gn|gS)Nz-lrLr3r)rfrgrhrirjrrr�build_dhclient_cmd�s�zDistro.build_dhclient_cmd)�devicer2cCst�dd|g�dS)NZ
camcontrolZeject)r)rlrrr�eject_media�szDistro.eject_media)N)F)N)&�__name__�
__module__�__qualname__�__doc__rZnetworking_clsZusr_lib_execrWr]Z
ci_sudoers_fnZgroup_add_cmd_prefixZpkg_cmd_install_prefixZpkg_cmd_remove_prefixZpkg_cmd_update_prefixZpkg_cmd_upgrade_prefixZprefer_fqdnrCZdhclient_lease_directoryZdhclient_lease_file_regexZ#shadow_empty_locked_passwd_patterns�classmethodrr?r+r1�boolrKrOrFrSrUrarbre�staticmethodr)rkrmrrrrrs^
�
��>

�r)ZloggingrrZ�iorZcloudinit.distros.bsdZ	cloudinitrrZcloudinit.distros.networkingrZcloudinit.settingsrrZ	getLoggerrnrZdistrosZbsdZBSDrrrrr�<module>s


Zerion Mini Shell 1.0