HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/distros/__pycache__/freebsd.cpython-312.pyc
�

�f�����ddlZddlZddlZddlmZddlZddlmZmZddl	m
Z
ddlmZeje�ZGd�dej j"j$�Zy)�N)�StringIO)�subp�util)�FreeBSDNetworking)�PER_INSTANCEc
�
�eZdZdZeZdZdZdZdZ	gd�Z
ddgZdd	gZdd
gZ
ddgZdZd
ZdZdZed(d��Zedd�dededefd��Zd�Zd�Zd�Zd)d�Zd�Zd(d�Zd�Zd�Zeded ed!ed"ed#ed$e fd%��Z!ed&ed$dfd'��Z"y)*�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�pkg�install�remove�update�upgradeTz	/usr/homez/var/dbzdhclient.leases.\w+Nc��tjjd�}|�tj	d�ytj
dd|gd|��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
        �RC_PIDNz0Unable to reload rc(8): no RC_PID in Environment�killz-SIGALRMT��capture�rcs)�os�environ�get�LOG�warningr)�clsr�rc_pids   �;/usr/lib/python3/dist-packages/cloudinit/distros/freebsd.py�reload_initzDistro.reload_init,sE��������)���>��K�K�J�K���y�y�&�*�f�5�t��M�M�)r�action�service�
extra_argsc
��|j}|dg|dg|dg|dg|dg|dg|dg|dg|dg|dg|d	g|d
gd�}|||zt|�z}tj|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)r&r'r(r)r*r+r,r-�reloadz
try-reloadr.r/Tr)�init_cmd�listr)rr"r#rr$r1�cmds�cmds        r�manage_servicezDistro.manage_service:s����<�<���f�%��w�'���)���+���+� �*�-���+���+��	�*�"�I�.���)�!�;�/�

����f��%��Z�(8�8���y�y��d��4�4r!c��ddd|d|gS)Nr
�usermod�-n�-G�)�self�member_name�
group_names   r�_get_add_member_to_group_cmdz#Distro._get_add_member_to_group_cmdVs���i��{�D�*�E�Er!c���tj|�rtjd|�yddd|g}ddd|g}dddd	d
ddd
�}dddd�}|j	�D]q\}}||vr8|r6t|ttf�r |j||t
|�g��B||vs�G|s�J|j||�|j||��sd|vsd|vr#|jd�|jd�nz|jdj|j|���|jd�|jdj|j|���|jd�tjd|�	tj||��|jdd�}	|	�|j!||	d��yy#t$rtjtd|��wxYw)Nz!User %s already exists, skipping.Fr
�useraddr8z-d�-cz-gr9z-sz-Ez-u)�homedir�gecos�
primary_group�groups�shell�inactive�uidz--no-user-groupz--systemz
--no-log-init)�
no_user_group�system�no_log_init�no_create_homerJz-d/nonexistentz-d{home_dir}/{name})�home_dir�namez-mzAdding user %s)�	logstringzFailed to create user %s�passwdT)�hashed)r�is_userr�info�items�
isinstance�str�int�extend�append�formatrMr�	Exception�logexcr�
set_passwd)
r;rN�kwargs�pw_useradd_cmd�log_pw_useradd_cmd�pw_useradd_opts�pw_useradd_flags�key�val�
passwd_vals
          r�add_userzDistro.add_userYs���<�<����H�H�8�$�?���	�4��6��"�I�t�T�:����!�����
��/� �*�
������	A�H�C���o�%�#�*�S�3��*�2M��%�%��s�';�S��X�&F�G��(�(�S��%�%�&6�s�&;�<�"�)�)�*:�3�*?�@�
	A��v�%��V�);��!�!�"2�3��%�%�&6�7��!�!�%�,�,�d�m�m�$�,�O�
�
�!�!�$�'��%�%�%�,�,�d�m�m�$�,�O�
�
�%�%�d�+�	���!�4�(�	��I�I�n�0B�C��Z�Z��$�/�
��!��O�O�D�*�T�O�:�"��
�	��K�K��7��>��	�s�	G
�
&G0c��	tjdd|ddg�y#t$rtjtd|��wxYw)Nr
r7�-pz01-Jan-1970z"Failed to set pw expiration for %s�rr[rr\r)r;�users  r�
expire_passwdzDistro.expire_passwd�sA��	��I�I�t�Y��d�M�B�C���	��K�K��A�4�H��	��	��&Ac��|rd}nd}	tjdd||dg|d|z��y#t$rtjtd|��wxYw)	Nz-Hz-hr
r7�0zchpasswd for %s)�datarOzFailed to set password for %sri)r;rjrPrQ�hash_opts     rr]zDistro.set_passwd�s^����H��H�	��I�I��y�$��#�6��+�d�2�
��
�	��K�K��<�d�C��	�s	� *�&Ac��	tjdd|ddg�y#t$rtjtd|��wxYw)Nr
r7z-w�noz)Failed to lock password login for user %sri)r;rNs  r�lock_passwdzDistro.lock_passwd�sA��	��I�I�t�Y��d�D�9�:���	��K�K��H�$�O��	�rlc�8�t�}tj|j�j	�D]<}|jt
jdd|z|��|jd��>tj|j|j�tj|j|j��	tjd|�tjd|jg�y#tj$r~tj td|�	tj|j|j�Yy#t"$r)tj td|j�YYywxYwwxYw)Nz	^default:zdefault:lang=%s:�
zRunning cap_mkdb for %s�cap_mkdbzFailed to apply locale %szFailed to restore %s backup)rr�load_text_file�
login_conf_fn�
splitlines�write�re�sub�copy�login_conf_fn_bak�
write_file�getvaluer�debugr�ProcessExecutionErrorr\�IOError)r;�locale�out_fn�newconf�lines     r�apply_localezDistro.apply_locale�s6���*���'�'��(:�(:�;�F�F�H�	 �D��M�M����|�%8�6�%A�4�H�
�
�M�M�$��		 �	
�	�	�$�$�$�d�&<�&<�=�	
����*�*�G�,<�,<�,>�?�	��I�I�/��8��I�I�z�4�#5�#5�6�7���)�)�	��K�K��8�&�A�
��	�	�$�0�0�$�2D�2D�E���
�����6��8J�8J��
��	�s*�7D�.F�7*E#�#.F�F�F�Fc�
�ddiS)zJReturn environment vars used in FreeBSD package_command
        operations�ASSUME_ALWAYS_YES�YESr:�r;s r�_get_pkg_cmd_environzDistro._get_pkg_cmd_environ�s��$�U�+�+r!c�`�|jjd|jdgt��y)Nzupdate-sourcesr)�freq)�_runner�run�package_commandrr�s r�update_package_sourceszDistro.update_package_sources�s-��������� � �
�J��		�	
r!�path�
lease_file�pid_file�	interface�config_file�returnc�*�|d|d|g|rd||gzS|gzS)Nz-lrhrAr:)r�r�r�r�r�s     r�build_dhclient_cmdzDistro.build_dhclient_cmd�s7���d�J��h�7�.9�T�;�	�*�
�	
�@I�{�
�	
r!�devicec�4�tjdd|g�y)N�
camcontrol�eject)r)r�s r�eject_mediazDistro.eject_media�s���	�	�<��&�1�2r!)N)F)#�__name__�
__module__�__qualname__�__doc__r�networking_cls�usr_lib_execrxr~�
ci_sudoers_fn�group_add_cmd_prefix�pkg_cmd_install_prefix�pkg_cmd_remove_prefix�pkg_cmd_update_prefix�pkg_cmd_upgrade_prefix�prefer_fqdnrM�dhclient_lease_directory�dhclient_lease_file_regex�classmethodr rVr5r>rfrkr]rsr�r�r��staticmethodr2r�r�r:r!rr	r	sH���'�N�#�L�%�M�.��B�M�1��#�Y�/��"�H�-��"�H�-��#�Y�/���K��H� )�� 6���N��N��>B�5��5�#&�5�58�5��5�6F�8;�t�� ��8,�

��	
��	
��	
��	
��		
�
�	
�
�
	
��	
��3�C�3�D�3��3r!r	)�loggingrr{�ior�cloudinit.distros.bsd�	cloudinitrr�cloudinit.distros.networkingr�cloudinit.settingsr�	getLoggerr�r�distros�bsd�BSDr	r:r!r�<module>r�sQ���	�	��� �:�+��g����!��T3�Y�
�
�
"�
"�
&�
&�T3r!