MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: machen (1008)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyo
�
d�bc@sJddlZddlZddlmZddljjjZddlm	Z	m
Z
ddlmZddl
jjZddlmZmZddlmZdZdZd	Zd
ZdZdZd
Zeddddg�Zd
ZdZdZd
Zd�Z dZ!de"fd��YZ#defd��YZ$de"fd��YZ%dS(i����N(t
namedtuple(t	HttpErrortResourceGoneError(tustr(tDataContracttset_properties(tFlexibleVersions169.254.169.254s
2018-02-01s'http://{0}/metadata/{1}?api-version={2}iiiitMetadataResulttsuccesst
service_errortresponsecCs
t|�S(N(t
ImdsClient(twireserver_endpoint((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytget_imds_clientss�	{
    "CANONICAL": {
        "UBUNTUSERVER": {
            "List": [
                "14.04.0-LTS",
                "14.04.1-LTS",
                "14.04.2-LTS",
                "14.04.3-LTS",
                "14.04.4-LTS",
                "14.04.5-LTS",
                "14.04.6-LTS",
                "14.04.7-LTS",
                "14.04.8-LTS",

                "16.04-LTS",
                "16.04.0-LTS",
                "18.04-LTS",
                "20.04-LTS",
                "22.04-LTS"
            ]
        }
    },
    "COREOS": {
        "COREOS": {
            "STABLE": { "Minimum": "494.4.0" }
        }
    },
    "CREDATIV": {
        "DEBIAN": { "Minimum": "7" }
    },
    "OPENLOGIC": {
        "CENTOS": {
            "Minimum": "6.3",
            "List": [
                "7-LVM",
                "7-RAW"
            ]
        },
        "CENTOS-HPC": { "Minimum": "6.3" }
    },
    "REDHAT": {
        "RHEL": {
            "Minimum": "6.7",
            "List": [
                "7-LVM",
                "7-RAW"
            ]
        },
        "RHEL-HANA": { "Minimum": "6.7" },
        "RHEL-SAP": { "Minimum": "6.7" },
        "RHEL-SAP-APPS": { "Minimum": "6.7" },
        "RHEL-SAP-HANA": { "Minimum": "6.7" }
    },
    "SUSE": {
        "SLES": {
            "List": [
                "11-SP4",
                "11-SP5",
                "11-SP6",
                "12-SP1",
                "12-SP2",
                "12-SP3",
                "12-SP4",
                "12-SP5",
                "12-SP6"
            ]
        },
        "SLES-BYOS": {
            "List": [
                "11-SP4",
                 "12",
                "12-SP1",
                "12-SP2",
                "12-SP3",
                "12-SP4",
                "12-SP5",
                "15",
                "15-SP1",
                "15-SP2",
                "15-SP3",
                "15-SP4",
                "15-SP5"
            ]
        },
        "SLES-SAP": {
            "List": [
                "11-SP4",
                "12",
                "12-SP1",
                "12-SP2",
                "12-SP3",
                "12-SP4",
                "12-SP5",
                "15",
                "15-SP1",
                "15-SP2",
                "15-SP3",
                "15-SP4",
                "15-SP5"
            ]
        },
        "SLE-HPC": {
           "List": [
               "15-SP1",
               "15-SP2",
                "15-SP3",
                "15-SP4",
                "15-SP5"
           ]
        }
    }
}tImageInfoMatchercBseZd�Zd�ZRS(cCstj|�|_dS(N(tjsontloadstdoc(tselfR((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt__init__�scs+�fd���|j||||g�S(Ncs�|jd�j�}|dkr%tS||kr5tSd||kra|d||dkratSd||kr�tj||d|d�r�tSd||kr�y&t|d�t||d�kSWq�tk
r�q�Xn�|||�S(NitListtMatchtMinimum(	tpoptuppertNonetFalsetTruetretmatchRt
ValueError(tdocitkeystkey(t_is_match_walk(sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyR"�s(.&
(R(Rt	publishertoffertskutversion((R"sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytis_match�s(t__name__t
__module__RR'(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyR�s	tComputeInfocBsneZee�Zdddddddddddddddddd�Zed��Zed��Z	RS(cCs�||_||_||_||_||_||_||_||_|	|_|
|_	||_
||_|
|_||_
||_||_||_dS(N(tlocationtnameR$tosTypetplacementGroupIdtplatformFaultDomaintplatformUpdateDomainR#tresourceGroupNameR%tsubscriptionIdttagsR&tvmIdtvmSizetvmScaleSetNametzone(RR+R,R$R-R.R/tplacementUpdateDomainR#R1R%R2R3R&R4R5R6R7((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyR�s"																cCs"dj|j|j|j|j�S(Ns{0}:{1}:{2}:{3}(tformatR#R$R%R&(R((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt
image_info�scCs�yF|jdkrtStjj|j|j|j|j�rAtSt	SWn6t
k
r~}tjtj
djt|���tSXdS(sO
        An integer value describing the origin of the image.

          0 -> unknown
          1 -> custom - user created image
          2 -> endorsed - See https://docs.microsoft.com/en-us/azure/virtual-machines/linux/endorsed-distros
          3 -> platform - non-endorsed image that is available in the Azure Marketplace.
        ts>[PERIODIC] Could not determine the image origin from IMDS: {0}N(R#tIMDS_IMAGE_ORIGIN_CUSTOMR*t_ComputeInfo__matcherR'R$R%R&tIMDS_IMAGE_ORIGIN_ENDORSEDtIMDS_IMAGE_ORIGIN_PLATFORMt	Exceptiontloggert
periodic_warntEVERY_FIFTEEN_MINUTESR9RtIMDS_IMAGE_ORIGIN_UNKNOWN(Rte((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytimage_origin�s'N(
R(R)Rt ENDORSED_IMAGE_INFO_MATCHER_JSONR=RRtpropertyR:RF(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyR*�s(RcBsYeZed�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
d��ZRS(cCsn||_itjd6td6|_itjd6td6|_tjd�|_	tjd�|_
||_dS(Ns
User-AgenttMetadatas-.*HTTP Failed. GET http://[^ ]+ -- IOError .*s4.*HTTP Retry. GET http://[^ ]+ -- Status Code 429 .*(t_api_versiontrestutiltHTTP_USER_AGENTRt_headerstHTTP_USER_AGENT_HEALTHt_health_headersRtcompilet_regex_ioerrort_regex_throttledt_wireserver_endpoint(RRR&((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyRs	



cCstj|||j�S(N(tBASE_METADATA_URIR9RJ(Rtendpointt
resource_path((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt_get_metadata_urlscCs+|j||�}tj|d|dt�S(Ntheaderst	use_proxy(RWRKthttp_getR(RRURVRXturl((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt	_http_getscCsIy"|jd|d|d|�}Wn�tk
rEtdj|�fStk
r�}t|�}|jj|�r�tdj|�fS|j	j|�r�t
jt
jdj|��t
dj|�fStdj||�fSX|jd	krtdj|tj|��fStj|�r9tdj|tj|��fSt|j�fS(
s!
        Get metadata from one of the IMDS endpoints.

        :param str endpoint: IMDS endpoint to call
        :param str resource_path: path of IMDS resource
        :param bool headers: headers to send in the request
        :return: Tuple<status:int, response:str>
            status: one of the following response status codes: IMDS_RESPONSE_SUCCESS, IMDS_RESPONSE_ERROR,
                    IMDS_CONNECTION_ERROR, IMDS_INTERNAL_SERVER_ERROR
            response: IMDS response on IMDS_RESPONSE_SUCCESS, failure message otherwise
        RURVRXsCIMDS error in /metadata/{0}: HTTP Failed with Status Code 410: Gones&IMDS error in /metadata/{0}: ThrottledsI[PERIODIC] [IMDS_CONNECTION_ERROR] Unable to connect to IMDS endpoint {0}s:IMDS error in /metadata/{0}: Unable to connect to endpoints IMDS error in /metadata/{0}: {1}i�(R\RtIMDS_INTERNAL_SERVER_ERRORR9RtstrRRRtIMDS_RESPONSE_ERRORRQRARBRCtIMDS_CONNECTION_ERRORtstatusRKtread_response_errortrequest_failedtIMDS_RESPONSE_SUCCESStread(RRURVRXtrespREtmsg((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt_get_metadata_from_endpoints("
		cCs�|r|jn|j}t}|j|||�\}}|tkrl|j}|j|||�\}}n|tkr�ttt	|�S|t
kr�tt	t|�Stt	t	|�S(s,
        Get metadata from IMDS, falling back to Wireserver endpoint if necessary.

        :param str resource_path: path of IMDS resource
        :param bool is_health: True if for health/heartbeat, False otherwise
        :return: instance of MetadataResult
        :rtype: MetadataResult
        (RORMt
IMDS_ENDPOINTRhR`RSRdRRRR](RRVt	is_healthRXRURaRf((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytget_metadata<s		cCsk|jddt�}|js0t|j��ntjt|jdd��}t�}t	d||�|S(st
        Fetch compute information.

        :return: instance of a ComputeInfo
        :rtype: ComputeInfo
        sinstance/computeRjtencodingsutf-8tcompute(
RkRRRR
RRRR*R(Rtresulttdatatcompute_info((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytget_computeSs			cCsR|jddt�}|js/|j|jfSy"tjt|jdd��}Wn)tk
r|}t	dj
t|��fSXy�|j|d�|j|dd�|j|dddd	�|j|dddd
�|j|dddd
d�|j|dddd
ddd�Wn tk
rG}t	t|�fSXtd
fS(s
        Determines whether the metadata instance api returns 200, and the response
        is valid: compute should contain location, name, subscription id, and vm size
        and network should contain mac address and private ip address.
        :return: Tuple<is_healthy:bool, error_response:str>
            is_healthy: False when service returns an error, True on successful
                        response and connection failures.
            error_response: validation failure details to assist with debugging
        tinstanceRjRlsutf-8sJSON parsing failed: {0}tnetworkt	interfaceit
macAddresstipv4t	ipAddresstprivateIpAddressR;(
RkRRR	R
RRRR@RR9tcheck_fieldR(RRnt	json_dataREtv((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pytvalidategs"	" ,cCsf||ks||dkr4tdj|���nt||�dkrbtdj|���ndS(NsMissing field: [{0}]isEmpty field: [{0}](RRR9tlen(tdict_objtfield((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyRy�s(R(R)t
APIVERSIONRRWR\RhRkRqR|tstaticmethodRy(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyRs			$			&(&RRtcollectionsRt%azurelinuxagent.common.utils.restutiltcommontutilsRKt azurelinuxagent.common.exceptionRRtazurelinuxagent.common.futureRtazurelinuxagent.common.loggerRAt#azurelinuxagent.common.datacontractRRt-azurelinuxagent.common.utils.flexible_versionRRiR�RTRDR<R>R?RRdR_R`R]R
RGtobjectRR*R(((sH/usr/lib/python2.7/site-packages/azurelinuxagent/common/protocol/imds.pyt<module>s2	~E