>fddlZddlmZmZddlmZmZmZmZm Z ddl m Z dZ dZ e e fZdZdZd Zd Zd Zd Zd ZedzZej.e j0eZGdde Zy)N)AnyDict) exceptionshttpsecret_managersystemutil)AutoAttachCloudInstancez169.254.169.254z[fd00:ec2::254]zhttp://{}/latest/api/tokenz0http://{}/latest/dynamic/instance-identity/pkcs7z/sys/hypervisor/uuidz /sys/class/dmi/id/product_serialz/sys/class/dmi/id/product_uuid21600zX-aws-ec2-metadata-tokenz -ttl-secondsceZdZdZdZdZeeje jgdde e e ffdZdZeje jgdd Zede fd Zedefd Zdefd Zd edefdZy)UAAutoAttachAWSInstanceNc|j}tjtj |j |d}|j dk(r |jStj|j |j)N)headerstimeoutcodebody) _request_imds_v2_token_headersrreadurlIMDS_URLformat _ip_addressrrrCloudMetadataError)selfrresponses 5/usr/lib/python3/dist-packages/uaclient/clouds/aws.py_get_imds_url_responsez.UAAutoAttachAWSInstance._get_imds_url_responsesl557<< OOD,, -w  ==C == //]] )g?rr) retry_sleepsreturnch|j}tjj|d|iS)Npkcs7)rrsecrets add_secret)rimds_url_responses r identity_docz$UAAutoAttachAWSInstance.identity_doc+s4!779))*;<*++r c ,tD]} |j|}||_n|j)tjdjtS#t$r,}tj d|t |ddYd}~d}~wwxYw)N) ip_addressz*Could not reach AWS IMDS at http://%s: %s reasonz, ) addresses) IMDS_IP_ADDRESS_get_imds_v2_token_headersr ExceptionLOGwarninggetattrrAWSNoValidIMDSjoin)raddressres rrz6UAAutoAttachAWSInstance._request_imds_v2_token_headers2s& G 99W9M$+      #++))O4   AAx, sA B'"BB)rc|jdk(ry|jrt|jiStjtj |dt tid}|jdk(rL|j|_tjj|jt|jiS|jdk(rd|_ytj|j|j)NIMDSv1PUTr)methodrrrir) _api_tokenAWS_TOKEN_PUT_HEADERrrIMDS_V2_TOKEN_URLrAWS_TOKEN_REQ_HEADERAWS_TOKEN_TTL_SECONDSrrrr%r&rr)rr*rs rr/z2UAAutoAttachAWSInstance._get_imds_v2_token_headersEs ??h & __($//: :<<  $ $Z 0)+@A   ==C &mmDO  " " - -doo >($//: : ==C &DO++X]]  r cy)Nawsrs r cloud_typez"UAAutoAttachAWSInstance.cloud_type^r c. tjt}d|ddk(ry tjtj }tjt j }d|ddcxk(r|ddk(ryyy#t$rYnwxYw)z$This machine is a viable AWSInstanceec2rTF)r load_fileSYS_HYPERVISOR_PRODUCT_UUIDFileNotFoundErrorDMI_PRODUCT_UUIDlowerDMI_PRODUCT_SERIAL)rhypervisor_uuiddmi_uuid dmi_serials r is_viablez!UAAutoAttachAWSInstance.is_viablebs $../JKO!,,-##$45;;=%%&89??A HQqM 4Z!_ 4 5!   s!B BBcy) UnsupportedFrErFs rshould_poll_for_pro_licensez3UAAutoAttachAWSInstance.should_poll_for_pro_licensetrHr wait_for_changec*tj)N)rInPlaceUpgradeNotSupportedError)rrYs ris_pro_license_presentz.UAAutoAttachAWSInstance.is_pro_license_presentxs88::r )__name__ __module__ __qualname__r>rrpropertyr retryrrrstrrr(rr/rGboolrUrXr\rEr rr r sJK TZZ --KH,d38n,I, &TZZ --IF G 0C4"T;;$;r r )loggingtypingrruaclientrrrrr uaclient.cloudsr IMDS_IPV4_ADDRESSIMDS_IPV6_ADDRESSr.r@rrMrQrOrBr?rA getLoggerreplace_top_level_logger_namer]r1r rEr rrlsCC3%%$&780 =4731+n<g:::8DE`;5`;r