HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //proc/1233/root/usr/lib/python3/dist-packages/uaclient/clouds/__pycache__/identity.cpython-310.pyc
o

nHJe��@s�ddlZddlmZddlmZddlmZmZmZm	Z	ddl
mZmZm
Z
mZmZddlmZe�e�e��Zddd	d
dd�Ze
jje
jje
jjd
�ZGdd�de�Zdeefdd�Zedd�ed�deeeeeffdd���Zdej fdd�Z!dS)�N)�Enum)�	lru_cache)�Dict�Optional�Tuple�Type)�clouds�
exceptions�messages�system�util)�apply_config_settings_override�AWSz	AWS ChinazAWS Gov�Azure�GCP��awsz	aws-chinazaws-gov�azure�gce)rrrc@seZdZdZdZdS)�NoCloudTypeReasonr�N)�__name__�
__module__�__qualname__�NO_CLOUD_DETECTED�CLOUD_ID_ERROR�rr�:/usr/lib/python3/dist-packages/uaclient/clouds/identity.pyrsr�returncCs@zt�gd��\}}|��WStjyYnwt�d�dS)z%Query cloud instance-id from cmdline.)z
cloud-init�query�instance_idz'Unable to determine current instance-idN)r�subp�stripr	�ProcessExecutionError�LOG�warning)�out�_errrrr�get_instance_ids
�
r()�maxsize�
cloud_typec
Cstt�d�r5zt�dg�\}}|��dfWStjy4}zt�dt|��dt	j
fWYd}~Sd}~wwdt	jfS)Nzcloud-idzerror running cloud-id: %s)r�whichr!r"r	r#r$�debug�strrrr)r&r'�excrrr�get_cloud_type+s
��
r/cCsvddlm}m}m}|j|j|j|j|jd�}t�\}}|s"t�	��|�
|�}|s/tj|d��|�}|js9t�
��|S)a
    :raises CloudFactoryError: if no cloud instance object can be constructed
    :raises CloudFactoryNoCloudError: if no cloud instance object can be
        constructed because we are not on a cloud
    :raises CloudFactoryUnsupportedCloudError: if no cloud instance object can
        be constructed because we don't have a class for the cloud we're on
    :raises CloudFactoryNonViableCloudError: if no cloud instance object can be
        constructed because we explicitly do not support the cloud we're on
    r)rr�gcpr)r*)�uaclient.cloudsrrr0�UAAutoAttachAWSInstance�UAAutoAttachAzureInstance�UAAutoAttachGCPInstancer/r	�CloudFactoryNoCloudError�get�NonAutoAttachImageError�	is_viable�CloudFactoryNonViableCloudError)rrr0�cloud_instance_mapr*�_�cls�instancerrr�cloud_instance_factory:s"
�

r>)"�logging�enumr�	functoolsr�typingrrrr�uaclientrr	r
rr�uaclient.configr
�	getLogger�replace_top_level_logger_namerr$�CLOUD_TYPE_TO_TITLE�urls�PRO_ON_AWS_HOME_PAGE�PRO_ON_AZURE_HOME_PAGE�PRO_ON_GCP_HOME_PAGE�PRO_CLOUD_URLSrr-r(r/�AutoAttachCloudInstancer>rrrr�<module>s.�	�"