|
Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /usr/src/cloud-init/cloudinit/__pycache__/ |
Upload File : |
3
$%we�4 � @ s� d Z ddlZddlZddlZddlZddlmZ eje�Z ej
dddg�Zdd� ZG d d
� d
e
�Zddd�Zddd�Zddd�Zdd� Zddd�ZdS )z9Common utility functions for interacting with subprocess.� N)�ENOEXEC�
SubpResult�stdout�stderrc C s� g }g }g }x�|D ]�}t |t�rT|d dkr:|dd� }q�|d | kr�|jd| � n4t |t�rx|jd| �s�|j|� n|jt|�� q|j|� qW |r�tjd| | dj|�� |r�t dj
| dj|�d���|S ) a� Ensure user-provided commands start with base_command; warn otherwise.
Each command is either a list or string. Perform the following:
- If the command is a list, pop the first element if it is None
- If the command is a list, insert base_command as the first element if
not present.
- When the command is a string not starting with 'base-command', warn.
Allow flexibility to provide non-base-command environment/config setup if
needed.
@commands: List of commands. Each command element is a list or string.
@return: List of 'fixed up' commands.
@raise: TypeError on invalid config item type.
r N� z%s z Non-%s commands in %s config:
%s�
zHInvalid {name} config. These commands are not a string or list:
{errors})�name�errors)�
isinstance�list�insert�str�
startswith�append�LOG�warning�join� TypeError�format)Zbase_command�commands�warningsr Zfixed_commands�command� r �%/usr/src/cloud-init/cloudinit/subp.py�prepend_base_command s4
r c @ s0 e Zd ZdZdZddd�Zdd� Zdd d
�ZdS )
�ProcessExecutionErrorzr%(description)s
Command: %(cmd)s
Exit code: %(exit_code)s
Reason: %(reason)s
Stdout: %(stdout)s
Stderr: %(stderr)s�-Nc C s |s| j | _n|| _|s6| r.|tkr.d| _q<d| _n|| _t|t�sP| j | _n|| _|st|d krl| j | _q�|| _n| j|�| _|s�|d kr�| j | _ q�|| _ n| j|�| _ |r�|| _
n| j | _
|| _| j| j
| j�| j
| j�| j
| j�| j
| j �| j
| j�| j
| j
�d� }tj| |� d S )Nz(Exec format error. Missing #! in script?z'Unexpected error while running command.)�description�cmd� exit_coder r �reason)�
empty_attrr r r r
�intr r �_indent_textr r �errno�MESSAGE_TMPL�_ensure_string�IOError�__init__) �selfr r r r r r r$ �messager r r r( N sB
zProcessExecutionError.__init__c C s t |t�r|j� S |S )z1
if data is bytes object, decode
)r
�bytes�decode)r) �textr r r r&