File: //lib/python3/dist-packages/cloudinit/distros/package_management/__pycache__/snap.cpython-310.pyc
o
x[h � @ 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 @ sJ e Zd ZdZdefdd�Zdd�dd�Zd edefd
d�Z e
dd
� �ZdS )�Snap�snap�returnc C s t t�d��S )Nr )�boolr �which)�self� r �K/usr/lib/python3/dist-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�pkglistc C sj t �dt|��}g }|D ]&}zt�ddg|�dd� � W q tjy2 |�|� t�d|� Y qw |S )Nz%s=%sr �install�=� zFailed to 'snap install %s'!) r �expand_package_list�listr �split�ProcessExecutionError�append�LOG�info)r
r �failed�pkgr r r �install_packages s
�zSnap.install_packagesc
C s� g d�} d }zt � | �}t�|j��di ��d�}W n t jy4 } z
t�d| |� W Y d }~nd }~ww |dkrAt�d|� d S t � ddg� d S )N)r �get�systemz-d�refresh�holdz9Continuing to snap refresh. Unable to run command: %s: %s�foreverz9Skipping snap refresh because refresh.hold is set to '%s'r )r r � load_json�stdoutr! r r r )�command� 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 )�logging�typingr r � cloudinitr r �4cloudinit.distros.package_management.package_managerr r � getLoggerr- r r r r r r �<module> s