%PDF- %PDF-
Direktori : /snap/core18/current/usr/lib/python3/dist-packages/cloudinit/__pycache__/ |
Current File : //snap/core18/current/usr/lib/python3/dist-packages/cloudinit/__pycache__/subp.cpython-36.pyc |
3 �Ad�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�LOGZwarning�join� TypeError�format)Zbase_commandZcommands�warningsr Zfixed_commands�command� r �0/usr/lib/python3/dist-packages/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"