관리-도구
편집 파일: snap.cpython-39.pyc
a '�Dg � @ sV d dl Z d dlmZmZ d dlmZmZ d dlmZm Z e � e�ZG dd� de�Z dS )� N)�Iterable�List)�subp�util)�PackageManager�UninstalledPackagesc @ sH e Zd ZdZed�dd�Zdd�dd�Zeed �d d�Z e dd � �ZdS )�Snap�snap)�returnc C s t t�d��S )Nr )�boolr �which)�self� r �M/usr/lib/python3.9/site-packages/cloudinit/distros/package_management/snap.py� available s zSnap.availableF)�forcec C s d S )Nr )r r r r r �update_package_sources s zSnap.update_package_sources)�pkglistr c C sl t �dt|��}g }|D ]N}zt�ddg|�dd� � W q tjyd |�|� t�d|� Y q0 q|S )Nz%s=%sr �install�=� zFailed to 'snap install %s'!) r Zexpand_package_list�listr �split�ProcessExecutionError�append�LOG�info)r r Zfailed�pkgr r r �install_packages s zSnap.install_packagesc C s� g d�} d }z(t � | �}t�|j��di ��d�}W n4 t jyh } zt�d| |� W Y d }~n d }~0 0 |dkr�t�d|� nt � ddg� d S )N)r �get�systemz-dZrefreshZholdz9Continuing to snap refresh. Unable to run command: %s: %sZforeverz9Skipping snap refresh because refresh.hold is set to '%s'r )r r Z load_json�stdoutr r r r )ZcommandZ snap_hold�result�er r r �upgrade_packages$ s$ ���zSnap.upgrade_packagesN)�__name__� __module__�__qualname__�namer r r r r r �staticmethodr$ r r r r r s r )Zlogging�typingr r Z cloudinitr r Z4cloudinit.distros.package_management.package_managerr r Z getLoggerr% r r r r r r �<module> s