o Hcf] @sddlmZddlmZmZmZmZmZmZm Z ddl m Z ddl m Z ddlmZmZddlmZddlmZddlmZdd lmZmZmZmZmZdd lmZdd lm Z Gd d d eeZ!de!fddZ"dede!fddZ#dede!fddZ$e dde#ddZ%dS))List)daemon entitlements exceptionslockmessagestimerutil)ProgressWrapper) APIEndpoint)AdditionalInfoErrorWarningObject)_reboot_required) _is_attached)UAConfig) BoolDataValue DataObjectFieldStringDataValue data_list) state_files)update_motd_messagesc@s:eZdZedeeedegZdee de fddZ dS) DetachResultdisabledreboot_requiredcCs||_||_dSNrr)selfrrr>/usr/lib/python3/dist-packages/uaclient/api/u/pro/detach/v1.py__init__%s zDetachResult.__init__N) __name__ __module__ __qualname__rrrrfieldsrstrboolr rrrrrs  rreturncCs ttSr)_detachrrrrrdetach*s r)cfgc Csrtstjztjddt|}WdW|S1swYW|Sty8}zt|d}~ww)Nzpro.api.u.pro.detach.v1) lock_holder) r we_are_currently_rootrNonRootUserErrorr RetryLock_detach_in_lock Exceptionclear_lock_file_if_present)r*reterrrr(.s   r(c Cs.t|js tgddSg}g}t|D]Y}z tj||d}Wn tjy)Yqw||dd}|jdd\}}|rm| t \}} |sh| rR| j rR| j j } | j j } n tjj|d} d} |t| | d |id q||qt|jt|ttt|} tt|| jd kd} || _| S) NFr)r*nameT)r* assume_yes)ignore_dependent_services)titleservice)r7codemetayes) r is_attachedrrentitlements_disable_orderentitlement_factoryrEntitlementNotFoundError can_disabledisabler messagemsgr4rDISABLE_FAILED_TMPLformatappendr rdelete_state_filesmachine_token_filedeleterrstartrstoprsortedrwarnings)r*rrNent_nameent_clsentrA_r2reasonrDr:reboot_required_resultresultrrrr/=sX      r/v1DetachN)versionr4fn options_cls)&typingruaclientrrrrrrr uaclient.apir uaclient.api.apir uaclient.api.data_typesr r 5uaclient.api.u.pro.security.status.reboot_required.v1r(uaclient.api.u.pro.status.is_attached.v1ruaclient.configruaclient.data_typesrrrrruaclient.filesruaclient.timer.update_messagingrrr)r(r/endpointrrrrs* $       9