File manager - Edit - /usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/freebsd.cpython-310.pyc
Back
o �Ad� � @ s| d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZm Z d dl mZ d dlm Z e�e�ZG dd� dejjj�ZdS ) � N)�StringIO)�log)�subp�util)�FreeBSDNetworking)�PER_INSTANCEc @ s� e Zd ZdZeZdZdZdZdZ g d�Z ddgZdd gZdd gZ ddgZdZd Zdedefdd�Zdd� Zdd� Zdd� Zd$dd�Zdd� Zd%dd�Zd d!� Zd"d#� ZdS )&�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/home�action�servicec C s^ | j }|dg|dg|dg|dg|dg|dg|dg|dgd�}t|�t|| � }tj|dd �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�disable�restart�status)r r r r r �reloadz try-reloadr T)�capture)�init_cmd�listr )�selfr r r �cmds�cmd� r �;/usr/lib/python3/dist-packages/cloudinit/distros/freebsd.py�manage_service( s � zDistro.manage_servicec C s ddd|d|gS )Nr �usermod�-n�-Gr )r �member_name� group_namer r r! �_get_add_member_to_group_cmd= s z#Distro._get_add_member_to_group_cmdc K s� t �|�r t�d|� dS ddd|g}ddd|g}dddd d ddd �}dddd�}|�� D ]1\}}||v rJ|rJt|ttf�rJ|�|| t|�g� q-||v r^|r^|� || � |� || � q-d|v sgd|v rr|� d� |� d� n |� dj | j|d�� |� d� |� dj | j|d�� |� d� t�d|� z tj||d� W n t y� t �td|� � w |�dd �} | d ur�| j|| dd� d S d S )Nz!User %s already exists, skipping.Fr �useraddr$ z-dz-cz-gr% z-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_homer2 z-d/nonexistentz-d{home_dir}/{name})�home_dir�namez-mzAdding user %s)� logstringzFailed to create user %s�passwdT)�hashed)r �is_user�LOG�info�items� isinstance�str�int�extend�append�formatr5 r � Exception�logexc�get� set_passwd) r r6 �kwargs�pw_useradd_cmd�log_pw_useradd_cmd�pw_useradd_opts�pw_useradd_flags�key�val� passwd_valr r r! �add_user@ s\ � �� � � ��zDistro.add_userc C �: z t � dd|ddg� W d S ty t�td|� � w )Nr r# z-pz01-Jan-1970z"Failed to set pw expiration for %s�r rD r rE r; )r �userr r r! � expire_passwdz � �zDistro.expire_passwdFc C sR |rd}nd}zt j dd||dg|d| d� W d S ty( t�td|� � w ) Nz-H�-hr r# �0zchpasswd for %s)�datar7 zFailed to set password for %srR )r rS r8 r9 �hash_optr r r! rG � s ��zDistro.set_passwdc C rQ )Nr r# rV �-zFailed to lock user %srR )r r6 r r r! �lock_passwd� rU zDistro.lock_passwdNc C s� t � }t�| j��� D ]}|�t�dd| |�� |�d� qt�| j| j � t� | j|�� � zt� d|� t�d| jg� W d S tjyp t�td|� zt�| j | j� W Y d S tyo t�td| j� Y Y d S w w )Nz ^default:zdefault:lang=%s:� zRunning cap_mkdb for %s�cap_mkdbzFailed to apply locale %szFailed to restore %s backup)r r � load_file� login_conf_fn� splitlines�write�re�sub�copy�login_conf_fn_bak� write_file�getvaluer; �debugr �ProcessExecutionErrorrE �IOError)r �locale�out_fn�newconf�liner r r! �apply_locale� s* ����zDistro.apply_localec C s t j�� }d|d<