/usr/lib/python3/dist-packages/uaclient/__pycache__
NameSizeModeActions
actions.cpython-310.pyc113810644editdlrm
apt.cpython-310.pyc283670644editdlrm
apt_news.cpython-310.pyc73460644editdlrm
config.cpython-310.pyc137600644editdlrm
contract.cpython-310.pyc248990644editdlrm
contract_data_types.cpython-310.pyc80680644editdlrm
data_types.cpython-310.pyc147880644editdlrm
defaults.cpython-310.pyc29130644editdlrm
event_logger.cpython-310.pyc78400644editdlrm
exceptions.cpython-310.pyc250390644editdlrm
gpg.cpython-310.pyc10250644editdlrm
livepatch.cpython-310.pyc106950644editdlrm
lock.cpython-310.pyc46350644editdlrm
log.cpython-310.pyc46330644editdlrm
secret_manager.cpython-310.pyc12560644editdlrm
security_status.cpython-310.pyc165980644editdlrm
snap.cpython-310.pyc64710644editdlrm
status.cpython-310.pyc183610644editdlrm
system.cpython-310.pyc227620644editdlrm
types.cpython-310.pyc4720644editdlrm
update_contract_info.cpython-310.pyc13320644editdlrm
upgrade_lts_contract.cpython-310.pyc29920644editdlrm
util.cpython-310.pyc135250644editdlrm
version.cpython-310.pyc24990644editdlrm
yaml.cpython-310.pyc11780644editdlrm
__init__.cpython-310.pyc1440644editdlrm
Edit: /usr/lib/python3/dist-packages/uaclient/__pycache__/status.cpython-310.pyc (18361B)
o Kir@s:ddlZddlZddlZddlZddlmZddlmZmZddlm Z ddl m Z m Z m Z mZmZddlmZmZmZmZmZmZmZddlmZddlmZmZdd lmZmZdd l m!Z!m"Z"dd l#m$Z$dd l%m&Z&m'Z'm(Z(m)Z)dd l*m+Z+m,Z,m-Z-m.Z.ddl/m0Z0ddl1m2Z2e3Z4e5e6e7Z8dZ9dZ:dZ;e)jej?e2j@e)jAj=e2jBejCe2j@e)jDj=e2jEejFe2j@e)jGj=e2jEejHe2j@e)jIj=e2jJejKe2j@e&jLj=e2j>ejMe2j@e&jNj=e2jEejOe2j@e9e2j>ejPe2j@e:e2j>ejQe2j@e;e2j>ejRe2j@i ZSdZTdZUdjVejWejXejYejZdZ[dZ\dZ]iddddde^dddd d!dd"dd#dd$gd%e(jAj=d&ej_d'id(gd)d*d*d*ge)jDj=d+d,d*d*d*gd-d.d Z`d/d0Zad1e ebe ffd2d3Zcd4ed1e ebe ffd5d6Zdd4ed1e ebe ffd7d8Zed1e ebe ffd9d:ZfdUd4ed;egd1e ebe ffde e ebe fd?ebd1e ebe ffd@dAZi dUdBebd;egd1ee ebe fejffdCdDZkdEebd1ebfdFdGZldHe e ebd1ebfdIdJZm dVdKe eebebfdLeebd1e ebfdMdNZnd"eed1ebfdOdPZodUd=e ebe fd;egd1ebfdQdRZpdSdTZqdS)WN) OrderedDict)datetimetimezone)Enum)AnyDictListOptionalTuple) event_logger exceptions livepatchlockmessagesutilversion) _is_attached)UA_CONFIGURABLE_KEYSUAConfig)get_available_resourcesget_contract_information)ATTACH_FAIL_DATE_FORMATPRINT_WRAP_WIDTH)entitlement_factory)ContractStatusUserFacingAvailabilityUserFacingConfigStatusUserFacingStatus) machine_tokennotices state_filesuser_config_file)Notice)TxtColor essentialstandardadvancedz({name: <17}{available: <11}{description}zJ{name: <17}{available: <11}{entitled: <11}{auto_enabled: <16}{description}z4{name: <17}{entitled: <10}{status: <13}{description}nameentitledstatus descriptionz4{name: <17}{entitled: <19}{status: <22}{description}z={marker} {name: <15}{entitled: <19}{status: <22}{description}_doczUContent provided in json response is currently considered Experimental and may change_schema_versionz0.1r machine_idattachedF effectiveexpiresoriginservicesexecution_statusexecution_detailsfeaturesrcontractidr( created_atproductstech_support_levelaccountr(r:r;external_account_ids simulatedcCsdd|DS)NcSs4g|]}|jjs |jjn|jj|jj|jjdqS))r( reason_codereason) entitlement is_variantr( variant_name named_msgmsg.0servicerL1/usr/lib/python3/dist-packages/uaclient/status.py s  z,_get_blocked_by_services..)blocking_incompatible_services)entrLrLrM_get_blocked_by_servicess rQreturnc sd}d}|}|}|jvrdnd}i}|tjkr tj} n=|jvr.tj} |j}n/|\} } | tj krA| j| j d}n| rF| j }| tjkrMd}|j r]fdd|j D}t |} |j|j|j| j|||| |d } |jsx|| d<| S) Nr8noyes)codemessagecs$i|]\}}|t|dqS))cfg)_attached_service_status)rJrF variant_clsrWinapplicable_resourcesrLrM sz,_attached_service_status..) r(r+r)r*status_detailsdescription_override available blocked_bywarningvariants)status_description_overridecontract_statusr(r UNENTITLEDr UNAVAILABLE INAPPLICABLEuser_facing_statusWARNINGrHrbitemsrQpresentation_namer+valuerE) rPr[rWrar]r^rdr_rb ent_statusdetailsr`service_statusrLrZrMrXsL         rXrWc Csttjttjt|jrttjt t }t |}|j d}|d}t jj}||dd|dtp=g|d|d|dd |d g|d |jd|jd|jdd |jd gd d|drt|j|d<|dr|d|d<|j d}|st|}ddt|dddD}|D]$}z t||dd d} Wn tjyYqw|dt| ||q|djddd|did} | r| did} | r| |d d!<|S)"z8Return configuration of attached status as a dictionary.machineTokenInfo contractInfo machineIdTr2r:r( createdAtr8r<r9externalAccountIDsr?)r.r/r2rr7r> effectiveTor1 effectiveFromr0availableResourcescSs&i|]}|ds|d|dqS)r_r(r+getrJresourcerLrLrMr\s z$_attached_status..cS |ddSNr(r8rxxrLrLrM z"_attached_status..keyrWr(r3cSr|r}rxr~rLrLrMrrsupportrD affordances supportLevelr7r=)rremover"AUTO_ATTACH_RETRY_FULL_NOTICEAUTO_ATTACH_RETRY_TOTAL_FAILUREris_attached_and_contract_validCONTRACT_EXPIREDcopydeepcopyDEFAULT_STATUSrget_machine_token_filerrgrlupdaterylistr>contract_expiry_datetimersortedrr EntitlementNotFoundErrorappendrXsort entitlements) rWresponsemachine_token_filerprqr= resourcesr[r{rPrrrLrLrM_attached_statussp                  rc Cstt}t|}|D]X}|drtjj}ntjj}z t ||ddd}Wnt j y;t d|ddYq w|jdkrNttjjkrN|}nd}|d |d |d|j||d q |d jd d d|S)z#Return unattached status as a dict.r_r(r8rz@Ignoring availability of unknown service %s from contract serverzwithout a 'name' keyr Nr3 presentedAs)r(r+r^r_cSr|r}rxr~rLrLrMrGrz$_unattached_status..r)rrrrryr AVAILABLErlrfrr rLOGdebugr(r on_supported_kernelLivepatchSupport UNSUPPORTEDrcrr+r)rWrrr{r_rPdescr_overriderLrLrM_unattached_statuss<      rc Cst}|jj}tj}t\}}tpg}|dkr&|j j}tj j ||d}nt j jr7|jj}d}tjj |d}||||j|j|jd}tjj} tD]} t|| ri| | durit|| } t| tre| j} | | | <qK| |dd<|S) aGReturn a dict with execution_status, execution_details and notices. Values for execution_status will be one of UserFacingConfigStatus enum: inactive, active, reboot-required execution_details will provide more details about that state. notices is a list of tuples with label and description items. r)pid lock_holderzconfiguration changes) operation)r4r5r config_pathconfigr6Nr ua_config)rINACTIVErlrNO_ACTIVE_OPERATIONSrcheck_lock_inforrACTIVE LOCK_HELDformatr reboot_cmd_marker_file is_presentREBOOTREQUIREDENABLE_REBOOT_REQUIRED_TMPLcfg_pathrWr6r! user_config public_configto_dictrhasattrgetattr isinstancer) rW userStatus status_val status_desclock_pidr notices_listrretrrvalrLrLrM_get_config_statusLsB       rshow_allcCsdt|jr t|}nt|}|t|trtj ||s0dd| dgD}||d<|S)aReturn status as a dict, using a cache for non-root users When unattached, get available resources from the contract service to report detailed availability of different resources for this machine. Write the status-cache when called by root. cS g|] }|dddkr|qSr_rTrxrIrLrLrMrN zstatus..r3) r is_attachedrrrrrwe_are_currently_rootr status_cache_filewritery)rWrravailable_servicesrLrLrMr*{s   r*rentitlement_namecCs`|D]'}|d|kr)|drdnd|didrdnd|didSqddidS) z0Extract information from the entitlements array.typer)rTrS obligationsenableByDefaultr)r) auto_enabledrrx)rrrDrLrLrM_get_entitlement_informations    rtokenc Csd}tt}zt||}Wntjy+}zt|dr%|jdkr%t|d}~ww| di}| di}| | dd| d d| d d| d gd | d d| d| d d| d gdddt t j} | dr| d|d<|d} | | } | dkrtjj|dd| td} tj| j| jdttjd| jdd}| dr| d|d<|d} | | } | dkrtjj|dd| td} tj| j| jdttjd| jdd}t|}ddt|dddD}| dg}|D]B}| d d}zt||d }Wn tjy'Yq wt ||}|d!!| d"|j|j"|d#|d$|j|vrGd%nd&d'q |d!j#d(ddt |d)}|d#rr|d* d+}|rr||dd,<| t$||sd-d| d!gD}||d!<||fS).zGet a status dictionary based on a token. Returns a tuple with the status dictionary and an integer value - 0 for success, 1 for failure rrUiNrq accountInfor:r8r(rsr<)r:r(r;r<rtr?T)r7r>rArur1r7) contract_iddate) error_msg error_code rvr0cSsg|] }|ds|dqS)r_r(rLrzrLrLrMrNs z#simulate_status..cSs|dS)Nr(rLr~rLrLrMrsz!simulate_status..rresourceEntitlementsrr3rr)rrTrS)r(r+r)rr_cSr|r}rxr~rLrLrMrrrrrr=cSrrrxrIrLrLrMrNr)%rrrrr ContractAPIErrorrrUAttachInvalidTokenErrorryrrnowrutc total_secondsrE_ATTACH_FORBIDDEN_EXPIREDrstrftimereventerrorrHr(infoSTATUS_TOKEN_NOT_VALIDE_ATTACH_FORBIDDEN_NOT_YETrrrrrrr+rr)rWrrrrcontract_informatione contract_info account_inforexpiration_datetimedeltarVeffective_datetimerr[rr{rrPentitlement_informationrrrrLrLrMsimulate_statuss                       rstringcCstjr t||S|S)z=Return colorized string if using a tty, else original string.)sysstdoutisattySTATUS_HUMANIZE_COLORIZEry)rrLrLrMfor_human_colorized%s  rcommandscCstd}|D]}|r |d7}|d|7}qdtj|tddd}d|vr*d }d }nd }d }d jtj|||tjdS)Nr8z &&  z \ z )widthsubsequent_indentrz{ z }z{ z }z%{color}{prefix}{content}{suffix}{end})colorprefixcontentsuffixend)jointextwrapwraprrr# DISABLEGREYENDC)rrcmdwrapped_contentrrrLrLrMcolorize_commands.s, r  column_dataheadercsjg}|r ||tdd|D}|dkr)d||fdd|D|S|dd|D|S)zReturn a list of content lines to print to console for a section Content lines will be center-aligned based on max value length of first column. cSsg|]}t|dqS)r)lenrJpairrLrLrMrNUsz.get_section_column_content..rz{{:>{}}}: {{}}csg|]}j|qSrL)rr templaterLrMrNXscSsg|]}|dqS)rrLr rLrLrMrN[s)rmaxrextend)r r rtemplate_lengthrLrrMget_section_column_contentJs  rcCs8|durtjSz|}Wn tyYnw|dS)Nz%c %Z)rSTATUS_CONTRACT_EXPIRES_UNKNOWN astimezone Exceptionr)r1rLrLrMformat_expires_s   rc Cs4|ds|dr<|ddstjStjtjtjtjtjtj dg}|dgD] }| tjd)i|q)d |S|ddsGtjg}n@t jtjtjtj dg}|dgD]-}|d}|rd|n|d d }|d d krttj ntj}| t j|d d ||dqY|d}|r| tj|||dr| dtjt|diD] \}} | d|| q|s|d tjg|d tjjgttjjkr|d tjgd |Sg} d} |ddstjg}ntg}|dgD]} | dd } | d}|r|n| d d }| d d t| t| dd |d}| dd}|durD|dd}|durD| || d}|rZ|sZd} d|d |d <| tjd)i||r|rt|D]4\}\}}|t |dkrdnd}| t!j||d t|dd t|dd |d d dqqq| r| d | tj"|dst | dkr| d | tj|d}|r||t | dkr|| |dr | dtjt|diD]\}} | d|| q| d |s%| r| tj#n| tj| tj$jdd g}|d!id d"}|rF| tj%|f|d#id d"}|r[| tj&|f|d$dd%kr| tj't(|d&f|d#id'd"}| tj)t|f|r| d |t*|d(d |S)*z&Format status dict for tabular output.r/rAr3N)r(r_r)rr+r)r(r_r+r^r+r8r_rTr(rr6z{}: {}Fr)r*r'rarVrbTz{}*ru├u└)markerr(r)r*r+rzpro enable )commandr>unknownr7r2freer1r=)r rL)+ryrSTATUS_NO_SERVICES_AVAILABLESTATUS_SIMULATED_TMPLrSTATUS_SERVICESTATUS_AVAILABLESTATUS_ENTITLEDSTATUS_AUTO_ENABLEDSTATUS_DESCRIPTIONrrSTATUS_UNATTACHED_TMPLSTANDALONE_YES STANDALONE_NOSTATUS_NOTICESrSTATUS_FEATURESrrjSTATUS_ALL_HINT E_UNATTACHEDrHr rrr)LIVEPATCH_KERNEL_NOT_SUPPORTED_UNATTACHED STATUS_HEADERr STATUS_TMPL enumerater VARIANT_STATUS_TMPLSTATUS_SERVICE_HAS_VARIANTSSTATUS_ALL_HINT_WITH_VARIANTS"STATUS_FOOTER_ENABLE_SERVICES_WITHSTATUS_FOOTER_ACCOUNTSTATUS_FOOTER_SUBSCRIPTIONSTATUS_FOOTER_VALID_UNTILrSTATUS_FOOTER_SUPPORT_LEVELr)r*rrrKrr+r_rrrlservice_warnings has_variantsror)fmt_argsrawarning_messagerbidx_variantrpairs account_name contract_namer=rLrLrMformat_tabularis4                                               rAc Cst|}d}t}||d<|D](}|d|ks|d|kr7z t||dd}Wn tjy2Yqw|}nq|durBtj|dt|jr\t |i|}|d}|d|d<||d<n|dret j j } nt j j } | |d<|j|d <|S) zReturn help information from an uaclient service as a dict :param name: Name of the service for which to return help data. :raises: UbuntuProError when no help is available. Nr(rr)r(r*r)r_help)rrryrr r NoHelpContentrrrXrrrlrf help_info) rWr(r help_resource response_dictr{help_entro status_msgr_rLrLrMrB%s6       rB)F)N)rrloggingrr collectionsrrrenumrtypingrrrr r uaclientr r r rrrr(uaclient.api.u.pro.status.is_attached.v1ruaclient.configrruaclient.contractrruaclient.defaultsrruaclient.entitlementsr(uaclient.entitlements.entitlement_statusrrrruaclient.filesrrr r!uaclient.files.noticesr"uaclient.messagesr#get_event_loggerr getLoggerreplace_top_level_logger_name__name__r ESSENTIALSTANDARDADVANCEDrrlOKGREENSTATUS_STATUS_ENABLEDrrFAILSTATUS_STATUS_DISABLEDrgrSTATUS_STATUS_INAPPLICABLErfSTATUS_STATUS_UNAVAILABLEri WARNINGYELLOWSTATUS_STATUS_WARNINGENTITLEDSTATUS_ENTITLED_ENTITLEDreSTATUS_ENTITLED_UNENTITLEDSTATUS_SUPPORT_ESSENTIALSTATUS_SUPPORT_STANDARDSTATUS_SUPPORT_ADVANCEDrr$rrrr! STATUS_STATUSr#r,r-r/ get_versionrrrQstrrXrrrboolr*rintrrr rrrArBrLrLrLrMs:  $    (         ;G. /   x    =