File: //var/opt/nydus/ops/primordial/service/__pycache__/base_daemon.cpython-39.pyc
a
�,�h� � @ sH d dl Z d dlmZmZmZ d dlmZmZ e �e �Z
G dd� d�ZdS )� N)�PIPE�call�CalledProcessError)�Any�Dictc @ sp e Zd ZdZeedd�dd�Zdeeeed�dd �Zed
�dd�Z ed
�d
d�Z
ed
�dd�Zed
�dd�ZdS )�
BaseDaemonz!A base implementation of a daemonN)�name�command_fmt�returnc C s || _ || _d S )N)r r )�selfr r � r �O/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/primordial/service/base_daemon.py�__init__
s zBaseDaemon.__init__T)�action�check_return_code�pipesr
c C sz t �d|| j� ddd�}|r.|�ttd�� | jj| j|d�}t|�� fi |��}t �|� |rv|dkrvt ||d��|S ) a Run an action for the daemon.
:param action: The action to be run
:param check_return_code: Whether to error on non-zero return codes
:param pipes:
:raises CalledProcessError: If `check_return_code` is True, and a non-zero return code occurs
z%sing %sT�
)�universal_newlines�timeout)�stdout�stderr)r r r )�
returncode�cmd)
�LOGGER�infor �updater r �formatr �splitr )r r r r �kwargsr �resultr r r
�_run s
zBaseDaemon._run)r
c C s | j ddd�S )zCheck the status of the daemon.�statusF)r �r �r r r r
r! % s zBaseDaemon.statusc C s | j ddd�S )zStart the daemon.�startF�r r"