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 :  /usr/lib/python3/dist-packages/landscape/lib/apt/package/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


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

Current File : /usr/lib/python3/dist-packages/landscape/lib/apt/package/__pycache__/store.cpython-310.pyc
o

���c^B�@s�dZddlZzddlZWneyddlmZYnwddlmZmZddl	m
Z
ddlmZGdd�de
�ZGd	d
�d
e
�ZGdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zdd�Zdd�ZdS)zEProvide access to the persistent data used by L{PackageTaskHandler}s.�N)�dbapi2)�	iteritems�long)�bpickle)�with_cursorc@�eZdZdZdS)�UnknownHashIDRequestz$Raised for unknown hash id requests.N��__name__�
__module__�__qualname__�__doc__�rr�A/usr/lib/python3/dist-packages/landscape/lib/apt/package/store.pyr�rc@r)�InvalidHashIdDbzARaised when trying to add an invalid hash=>id lookaside database.Nr	rrrrrrrc@sleZdZdZdZdd�Zdd�Zedd��Zed	d
��Z	edd��Z
ed
d��Zedd��Zedd��Z
dS)�HashIdStoreaC{HashIdStore} stores package hash=>id mappings in a file.

    The file is a SQLite database that contains a single table called "hash".
    The table schema is defined in L{ensure_hash_id_schema}.

    @param filename: The file where the mappings are persisted to.
    NcCs
||_dS�N)�	_filename��self�filenamerrr�__init__!s
zHashIdStore.__init__cCst|j�dSr)�ensure_hash_id_schema�_db�rrrr�_ensure_schema$szHashIdStore._ensure_schemacCs,t|�D]\}}|�d|t�|�f�qdS)zbSet the ids of a set of hashes.

        @param hash_ids: a C{dict} of hash=>id mappings.
        zREPLACE INTO hash VALUES (?, ?)N)r�execute�sqlite3�Binary)r�cursor�hash_ids�hash�idrrr�set_hash_ids's
��zHashIdStore.set_hash_idscCs,|�dt�|�f�|��}|r|dSdS)z�Return the id associated to C{hash}, or C{None} if not available.

        @param hash: a C{bytes} representing a hash.
        � SELECT id FROM hash WHERE hash=?rN)rrr�fetchone)rr r"�valuerrr�get_hash_id1s
�zHashIdStore.get_hash_idcC�|�d�dd�|��D�S)z=Return a C{dict} holding all the available hash=>id mappings.zSELECT hash, id FROM hashcSsi|]}t|d�|d�qS�r���bytes��.0�rowrrr�
<dictcomp>Bsz,HashIdStore.get_hash_ids.<locals>.<dictcomp>�r�fetchall�rr rrr�get_hash_ids>�
zHashIdStore.get_hash_idscCs<t|ttf�s	J�|�d|f�|��}|rt|d�SdS)zAReturn the hash associated to C{id}, or C{None} if not available.z SELECT hash FROM hash WHERE id=?rN)�
isinstance�intrrr&r-)rr r#r'rrr�get_id_hashDszHashIdStore.get_id_hashcC�|�d�dS)zDelete all hash=>id mappings.zDELETE FROM hashN�rr4rrr�clear_hash_idsN�zHashIdStore.clear_hash_idscCs.z	|�dd�WdStjyt|j��w)z�Check database integrity.

        @raise: L{InvalidHashIdDb} if the filenme passed to the constructor is
            not a SQLite database or does not have a table called "hash" with
            a compatible schema.
        r%)�N)rr�
DatabaseErrorrrr4rrr�check_sanitySs

�zHashIdStore.check_sanity)r
rrr
rrrrr$r(r5r9r<r@rrrrrs"
	


	
rcs�eZdZdZ�fdd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
dd��Ze
dd��Ze
dd��Z
e
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
d d!��Ze
d"d#��Ze
d$d%��Ze
d&d'��Ze
d(d)��Ze
d*d+��Ze
d,d-��Ze
d.d/��Ze
d0d1��Ze
d2d3��Ze
d4d5��Ze
d6d7��Ze
d8d9��Z e
d:d;��Z!e
d<d=��Z"e
d>d?��Z#e
d@dA��Z$e
dBdC��Z%e
dDdE��Z&e
dFdG��Z'e
dHdI��Z(e
dMdKdL��Z)�Z*S)N�PackageStorea�Persist data about system packages and L{PackageTaskHandler}'s tasks.

    This class extends L{HashIdStore} by adding tables to the SQLite database
    backend for storing information about the status of the system packages and
    about the tasks to be performed by L{PackageTaskHandler}s.

    The additional tables and schemas are defined in L{ensure_package_schema}.

    @param filename: The file where data is persisted to.
    cstt|��|�g|_dSr)�superrAr�_hash_id_storesr��	__class__rrrms
zPackageStore.__init__c�tt|���t|j�dSr)rBrAr�ensure_package_schemarrrDrrrq�zPackageStore._ensure_schemac
CsBt|�}z|��Wnty}z|�d}~ww|j�|�dS)a 
        Attach an additional "lookaside" hash=>id database.

        This method can be called more than once to attach several
        hash=>id databases, which will be queried *before* the main
        database, in the same the order they were added.

        If C{filename} is not a SQLite database or does not have a
        table called "hash" with a compatible schema, L{InvalidHashIdDb}
        is raised.

        @param filename: a secondary SQLite databases to look for pre-canned
                         hash=>id mappings.
        N)rr@rrC�append)rr�
hash_id_store�errr�add_hash_id_dbus��zPackageStore.add_hash_id_dbcCst|j�dkS)z?Return C{True} if one or more lookaside databases are attached.r)�lenrCrrrr�has_hash_id_db��zPackageStore.has_hash_id_dbcCs<t|t�sJ�|jD]
}|�|�}|r|Sq
t�||�S)a	Return the id associated to C{hash}, or C{None} if not available.

        This method composes the L{HashIdStore.get_hash_id} methods of all
        the attached lookaside databases, falling back to the main one, as
        described in L{add_hash_id_db}.
        )r7r-rCr(r)rr"�storer#rrrr(�s

�zPackageStore.get_hash_idcCs2|jD]}|�|�}|dur|Sqt�||�S)a'Return the hash associated to C{id}, or C{None} if not available.

        This method composes the L{HashIdStore.get_id_hash} methods of all
        the attached lookaside databases, falling back to the main one in
        case the hash associated to C{id} is not found in any of them.
        N)rCr9r)rr#rPr"rrrr9�s

�zPackageStore.get_id_hashcC�|D]	}|�d|f�qdS)Nz!REPLACE INTO available VALUES (?)r;�rr �idsr#rrr�
add_available���zPackageStore.add_availablecC�&d�dd�|D��}|�d|�dS)N�,cs��|]	}tt|��VqdSr��strr8�r/r#rrr�	<genexpr>���z0PackageStore.remove_available.<locals>.<genexpr>z&DELETE FROM available WHERE id IN (%s)��joinr�rr rS�id_listrrr�remove_available��zPackageStore.remove_availablecC�|�d�dS)NzDELETE FROM availabler;r4rrr�clear_available�rOzPackageStore.clear_availablecCr))NzSELECT id FROM availablecS�g|]}|d�qS�rrr.rrr�
<listcomp>��z.PackageStore.get_available.<locals>.<listcomp>r2r4rrr�
get_available��
zPackageStore.get_availablecCrQ)Nz)REPLACE INTO available_upgrade VALUES (?)r;rRrrr�add_available_upgrades�rUz#PackageStore.add_available_upgradescCrV)NrWcsrXrrYr[rrrr\�r]z9PackageStore.remove_available_upgrades.<locals>.<genexpr>z.DELETE FROM available_upgrade WHERE id IN (%s)r^r`rrr�remove_available_upgrades�s
�z&PackageStore.remove_available_upgradescCrd)NzDELETE FROM available_upgrader;r4rrr�clear_available_upgrades�rOz%PackageStore.clear_available_upgradescCr))Nz SELECT id FROM available_upgradecSrfrgrr.rrrrh�riz7PackageStore.get_available_upgrades.<locals>.<listcomp>r2r4rrr�get_available_upgrades�rkz#PackageStore.get_available_upgradescCrQ)Nz%REPLACE INTO autoremovable VALUES (?)r;rRrrr�add_autoremovable�rUzPackageStore.add_autoremovablecCrV)NrWcsrXrrYr[rrrr\�r]z4PackageStore.remove_autoremovable.<locals>.<genexpr>z*DELETE FROM autoremovable WHERE id IN (%s)r^r`rrr�remove_autoremovable�rcz!PackageStore.remove_autoremovablecCrd)NzDELETE FROM autoremovabler;r4rrr�clear_autoremovable�rOz PackageStore.clear_autoremovablecCr))NzSELECT id FROM autoremovablecSrfrgrr.rrrrh�riz2PackageStore.get_autoremovable.<locals>.<listcomp>r2r4rrr�get_autoremovable�rkzPackageStore.get_autoremovablecCrQ)Nz REPLACE INTO security VALUES (?)r;rRrrr�add_security�rUzPackageStore.add_securitycCrV)NrWcsrXrrYr[rrrr\�r]z/PackageStore.remove_security.<locals>.<genexpr>z%DELETE FROM security WHERE id IN (%s)r^r`rrr�remove_security�rczPackageStore.remove_securitycCrd)NzDELETE FROM securityr;r4rrr�clear_security�rOzPackageStore.clear_securitycCr))NzSELECT id FROM securitycSrfrgrr.rrrrh�riz-PackageStore.get_security.<locals>.<listcomp>r2r4rrr�get_security�rkzPackageStore.get_securitycCrQ)Nz!REPLACE INTO installed VALUES (?)r;rRrrr�
add_installed�rUzPackageStore.add_installedcCrV)NrWcsrXrrYr[rrrr\r]z0PackageStore.remove_installed.<locals>.<genexpr>z&DELETE FROM installed WHERE id IN (%s)r^r`rrr�remove_installedrczPackageStore.remove_installedcCrd)NzDELETE FROM installedr;r4rrr�clear_installedrOzPackageStore.clear_installedcCr))NzSELECT id FROM installedcSrfrgrr.rrrrhriz.PackageStore.get_installed.<locals>.<listcomp>r2r4rrr�
get_installedrkzPackageStore.get_installedcCr))z+Get the package ids of all locked packages.zSELECT id FROM lockedcSrfrgrr.rrrrhriz+PackageStore.get_locked.<locals>.<listcomp>r2r4rrr�
get_lockedr6zPackageStore.get_lockedcCs|D]	}|�d|f�qdS)z9Add the given package ids to the list of locked packages.zREPLACE INTO locked VALUES (?)Nr;rRrrr�
add_lockeds�zPackageStore.add_lockedcCrV)NrWcsrXrrYr[rrrr\r]z-PackageStore.remove_locked.<locals>.<genexpr>z#DELETE FROM locked WHERE id IN (%s)r^r`rrr�
remove_lockedrczPackageStore.remove_lockedcCr:)z/Remove all the package ids in the locked table.zDELETE FROM lockedNr;r4rrr�clear_locked"r=zPackageStore.clear_lockedcCs6t|�}|�dt�t�|��t��f�t|j|j	�S)Nz<INSERT INTO hash_id_request (hashes, timestamp) VALUES (?,?))
�listrrrr�dumps�time�
HashIDRequestr�	lastrowid)rr �hashesrrr�add_hash_id_request's
�z PackageStore.add_hash_id_requestcCs*|�d|f�|��st|��t|j|�S)Nz(SELECT 1 FROM hash_id_request WHERE id=?)rr&rr�r)rr �
request_idrrr�get_hash_id_request/s�z PackageStore.get_hash_id_requestcs |�d��fdd�|��D�S)NzSELECT id FROM hash_id_requestcsg|]
}t�j|d��qSrg)r�rr.rrrrh:sz6PackageStore.iter_hash_id_requests.<locals>.<listcomp>r2r4rrr�iter_hash_id_requests7s
z"PackageStore.iter_hash_id_requestscCrd)NzDELETE FROM hash_id_requestr;r4rrr�clear_hash_id_requests<rOz#PackageStore.clear_hash_id_requestscCs4t�|�}|�d|t��t�|�f�t|j|j�S)Nz8INSERT INTO task (queue, timestamp, data) VALUES (?,?,?))	rr�rr�rr�PackageTaskrr�)rr �queue�datarrr�add_task@s
�zPackageStore.add_taskcCs.|�d|f�|��}|rt|j|d�SdS)Nz4SELECT id FROM task WHERE queue=? ORDER BY timestampr)rr&r�r)rr r�r0rrr�
get_next_taskHs�zPackageStore.get_next_taskrcCs"|�dd�dd�|D���dS)Nz%DELETE FROM task WHERE id NOT IN (%s)rWcSsg|]}t|j��qSr)rZr#)r/�taskrrrrhTsz,PackageStore.clear_tasks.<locals>.<listcomp>)rr_)rr �except_tasksrrr�clear_tasksQs
�zPackageStore.clear_tasks)r)+r
rrr
rrrLrNr(r9rrTrbrerjrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r��
__classcell__rrrDrrAas�





























rAcsPeZdZdZ�fdd�Zedd��Zedd��Zedd	��Zed
d��Z	�Z
S)�FakePackageStorezT
    A L{PackageStore} with an additional message table to store sent messages.
    crFr)rBr�r�ensure_fake_package_schemarrrDrrr\rHzFakePackageStore._ensure_schemacCs|�dt�t�|��f�dS)Nz%INSERT INTO message (data) VALUES (?))rrrrr�)rr �messagerrr�save_message`s�zFakePackageStore.save_messagecCsdd�|�d���D�S)NcSrfrgrr.rrrrhgriz4FakePackageStore.get_message_ids.<locals>.<listcomp>zSELECT id FROM messager2r4rrr�get_message_idses�z FakePackageStore.get_message_idscCs|�ddd�|D��dS)Nz#INSERT INTO message (id) VALUES (?)cSsg|]}|f�qSrr)r/�
message_idrrrrhnsz5FakePackageStore.save_message_ids.<locals>.<listcomp>)�executemany)rr �message_idsrrr�save_message_idsjs�z!FakePackageStore.save_message_idscCs:d�dgt|��}|�d|t|����}dd�|D�S)Nz, �?z9SELECT id, data FROM message WHERE id IN (%s) ORDER BY idcSs g|]}|dt|d�f�qSr*r,r.rrrrhvs z8FakePackageStore.get_messages_by_ids.<locals>.<listcomp>)r_rMr�tupler3)rr r��params�resultrrr�get_messages_by_idsps���z$FakePackageStore.get_messages_by_ids)r
rrr
rrr�r�r�r�r�rrrDrr�Ws


r�c@steZdZdd�Zeedd���Zedd��Zedd��Zeee�Z	ed	d
��Z
edd��Zee
e�Zed
d��Z
dS)r�cCs||_||_dSr)rr#)r�dbr#rrrr{s
zHashIDRequest.__init__cCs&|�d|jf�t�t|��d��S)Nz-SELECT hashes FROM hash_id_request WHERE id=?r)rr#r�loadsr-r&r4rrrr�s�zHashIDRequest.hashescC�|�d|jf�|��dS)Nz0SELECT timestamp FROM hash_id_request WHERE id=?r�rr#r&r4rrr�_get_timestamp���zHashIDRequest._get_timestampcC�|�d||jf�dS)Nz1UPDATE hash_id_request SET timestamp=? WHERE id=?�rr#�rr r'rrr�_set_timestamp���zHashIDRequest._set_timestampcCr�)Nz1SELECT message_id FROM hash_id_request WHERE id=?rr�r4rrr�_get_message_id�r�zHashIDRequest._get_message_idcCr�)Nz2UPDATE hash_id_request SET message_id=? WHERE id=?r�r�rrr�_set_message_id�r�zHashIDRequest._set_message_idcC�|�d|jf�dS)Nz&DELETE FROM hash_id_request WHERE id=?r�r4rrr�remove��zHashIDRequest.removeN)r
rrr�propertyrr�r�r��	timestampr�r�r�r�rrrrr�ys"





r�c@s eZdZdd�Zedd��ZdS)r�cCsn||_||_|��}z|�d|f�|��}W|��n|��w|d|_|d|_t�	t
|d��|_dS)Nz2SELECT queue, timestamp, data FROM task WHERE id=?rr+�)rr#r rr&�closer�r�rr�r-r�)rr�r#r r0rrrr�s�


zPackageTask.__init__cCr�)NzDELETE FROM task WHERE id=?r�r4rrrr��r�zPackageTask.removeN)r
rrrrr�rrrrr��sr�c	CsX|��}z|�d�Wntjtjfy!|��|��YdSw|��|��dS)zeCreate all tables needed by a L{HashIdStore}.

    @param db: A connection to a SQLite database.
    z<CREATE TABLE hash (id INTEGER PRIMARY KEY, hash BLOB UNIQUE)N�r rr�OperationalErrorr?r��rollback�commit�r�r rrrr�s�rcCs�|��}z*|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�WntjyA|��|��Yd	Sw|��|��d	S)
zfCreate all tables needed by a L{PackageStore}.

    @param db: A connection to a SQLite database.
    z.CREATE TABLE security (id INTEGER PRIMARY KEY)z3CREATE TABLE autoremovable (id INTEGER PRIMARY KEY)z,CREATE TABLE locked (id INTEGER PRIMARY KEY)z/CREATE TABLE available (id INTEGER PRIMARY KEY)z7CREATE TABLE available_upgrade (id INTEGER PRIMARY KEY)z/CREATE TABLE installed (id INTEGER PRIMARY KEY)zkCREATE TABLE hash_id_request (id INTEGER PRIMARY KEY, timestamp TIMESTAMP, message_id INTEGER, hashes BLOB)zVCREATE TABLE task (id INTEGER PRIMARY KEY, queue TEXT, timestamp TIMESTAMP, data BLOB)N)r rrr�r�r�r�r�rrrrG�s 	






�rGc	CsX|��}z|�d�Wntjtjfy!|��|��YdSw|��|��dS)Nz8CREATE TABLE message (id INTEGER PRIMARY KEY, data BLOB)r�r�rrrr��s�r�)r
r�r�ImportError�	pysqlite2r�twisted.python.compatrr�
landscape.libr�landscape.lib.storer�	Exceptionrr�objectrrAr�r�r�rrGr�rrrr�<module>s*�Jw",%

Anon7 - 2022
AnonSec Team