%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/ansible/galaxy/collection/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/ansible/galaxy/collection/__pycache__/galaxy_api_proxy.cpython-39.pyc

a

�)g$�@s�dZddlmZmZmZeZddlZej	rRddl
mZddlm
Z
ddlmZmZddl
mZmZddlmZdd	lmZe�ZGd
d�d�ZdS)z8A facade for interfacing with multiple Galaxy instances.�)�absolute_import�division�print_functionN)�CollectionVersionMetadata)�ConcreteArtifactsManager)�	Candidate�Requirement)�	GalaxyAPI�GalaxyError)�to_text)�Displayc@sVeZdZdZddd�Zedd��Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�ZdS)�MultiGalaxyAPIProxyz<A proxy that abstracts talking to multiple Galaxy instances.FcCs||_||_||_dS)z Initialize the target APIs list.N)�_apis�_concrete_art_mgr�_offline)�selfZapisZconcrete_artifacts_managerZoffline�r�N/usr/lib/python3.9/site-packages/ansible/galaxy/collection/galaxy_api_proxy.py�__init__szMultiGalaxyAPIProxy.__init__cCs|jS�N)r�rrrr�is_offline_mode_requested&sz-MultiGalaxyAPIProxy.is_offline_mode_requestedcCs|jrtd��dS)NzAThe calling code is not supposed to be invoked in 'offline' mode.)r�NotImplementedErrorrrrr�*_assert_that_offline_mode_is_not_requested*sz>MultiGalaxyAPIProxy._assert_that_offline_mode_is_not_requestedc
cs�|jr
gSd}d}t|jt�r&|jfn|j}|D]�}z|�|j|j�}Wnltyp}z|}WYd}~q0d}~0t	y�}z.t
�dj|j
|jt|�d��|}WYd}~q0d}~00d}|D]}	||	fVq�q0|s�|dur�|�dS)z�Helper for get_collection_versions.

        Yield api, version pairs for all APIs,
        and reraise the last error if no valid API was found.
        FN�zSkipping Galaxy server {server!s}. Got an unexpected error when getting available versions of collection {fqcn!s}: {err!s}�Zserver�fqcn�errT)r�
isinstance�srcr	r�get_collection_versions�	namespace�namer
�	Exception�display�warning�format�
api_serverrr)
r�requirementZ	found_apiZ
last_error�api_lookup_order�apiZversions�api_err�unknown_err�versionrrr�_get_collection_versions.s6
�
���
z,MultiGalaxyAPIProxy._get_collection_versionscCsL|jr|j�|�|jfhSt|jt�r.|jfn|j}tdd�|�|�D��S)z8Get a set of unique versions for FQCN on Galaxy servers.css|]\}}||fVqdSrr)�.0r*r-rrr�	<genexpr>ks�z>MultiGalaxyAPIProxy.get_collection_versions.<locals>.<genexpr>)	�is_concrete_artifactrZget_direct_collection_versionrrr	r�setr.)rr(r)rrrr Zs ���

�
���z+MultiGalaxyAPIProxy.get_collection_versionscCs�|��t|jt�r|jfn|j}|D]�}z|�|j|j|j�}Wnlt	yj}z|}WYd}~q&d}~0t
y�}z.|}t�dj
|j|jt|�d��WYd}~q&d}~00|j�||j|j|j|j|j�|Sq&|�dS)z2Retrieve collection metadata of a given candidate.Nrr)rrrr	r�get_collection_version_metadatar!r"�verr
r#r$r%r&r'rrrZsave_collection_sourceZdownload_urlZartifact_sha256�tokenZsignatures_urlZ
signatures)r�collection_candidater)r*Zversion_metadatar+�last_errr,rrrr3rsB
�
�����
z3MultiGalaxyAPIProxy.get_collection_version_metadatacCs|jr|j�|�S|�|�jS)z6Retrieve collection dependencies of a given candidate.)r1rZ"get_direct_collection_dependenciesr3Zdependencies)rr6rrr�get_collection_dependencies�s����z/MultiGalaxyAPIProxy.get_collection_dependenciesc
Cs�|��|j}|j}|j}d}t|jt�r2|jfn|j}|D]�}z|�|||�WSt	y|}z|}WYd}~q<d}~0t
y�}	z.|	}t�dj
|j|jt|	�d��WYd}	~	q<d}	~	00q<|r�|�gS)Nrr)rr!r"r4rrr	rZget_collection_signaturesr
r#r$r%r&r'rr)
rr6r!r"r-r7r)r*r+r,rrr�get_signatures�s4
�
���
z"MultiGalaxyAPIProxy.get_signaturesN)F)
�__name__�
__module__�__qualname__�__doc__r�propertyrrr.r r3r8r9rrrrr
s

,2r
)r=Z
__future__rrr�typeZ
__metaclass__�typing�t�
TYPE_CHECKINGZansible.galaxy.apirZ3ansible.galaxy.collection.concrete_artifact_managerrZ0ansible.galaxy.dependency_resolution.dataclassesrrr	r
Zansible.module_utils._textrZansible.utils.displayrr$r
rrrr�<module>s

Zerion Mini Shell 1.0