o Hcf+ @s>ddlZddlmZmZddlmZmZmZmZm Z ddl m Z m Z m Z ddlmZddlmZddlmZddlmZdd lmZdd lmZmZmZmZmZee e Z!Gd d d eZ"Gd ddeeZ#dedee$fddZ% dde"dee de#fddZ& dde"dedee de#fddZ'edde'e"ddZ(dS)N)ListOptional) entitlementslockmessagesstatusutil)AbstractProgressProgressWrapper exceptions) APIEndpoint)AdditionalInfo)_enabled_services) _is_attached)UAConfig) BoolDataValue DataObjectFieldStringDataValue data_listc@s:eZdZedeededgZdddedefddZ dS)DisableOptionsservicepurgeF)rcCs||_||_dSN)rr)selfrrrH/usr/lib/python3/dist-packages/uaclient/api/u/pro/services/disable/v1.py__init__s zDisableOptions.__init__N) __name__ __module__ __qualname__rrrfieldsstrboolrrrrrrs  rc@s.eZdZedeegZdeefddZ dS) DisableResultdisabledcCs ||_dSrr%)rr%rrrr&s zDisableResult.__init__N) rrr rrrr!rr"rrrrrr$!s r$cfgreturncCsddt|jDS)NcSsg|]}|jqSr)name).0srrr +sz+_enabled_services_names..)renabled_servicesr'rrr_enabled_services_names*sr/optionsprogress_objectcCst|t|dS)N)r1)_disabler)r0r1rrrdisable.sr3c Csbt|}ts tt|jstt|}t j ||j d}|j |vr+t gdS||d|j |j d}|j}|dur>|}||_d}d} ztjdd||\}} Wdn1s`wYWntyx} zt| d} ~ ww|s| dur| jdur| j} ntj} tj|j | dt|} tj|d |t ttt|t| dS) N)r'r)r&T) assume_yes called_namerFzu.pro.services.disable.v1) lock_holder)rreasonr.) r rwe_are_currently_rootr NonRootUserErrorr is_attachedUnattachedErrorr/rentitlement_factoryrr$renabled_variantcalculate_total_disable_steps total_stepsr RetryLockr3 Exceptionclear_lock_file_if_presentmessagerGENERIC_UNKNOWN_ISSUEEntitlementNotDisabledErrorrfinishsortedlistset difference) r0r'r1progressenabled_services_beforeent_cls entitlementvariantsuccess fail_reasoner7enabled_services_afterrrrr24sl    r2v1DisableServiceT)versionr)fn options_clssupports_progressr))loggingtypingrruaclientrrrrr uaclient.apir r r uaclient.api.apir uaclient.api.data_typesr -uaclient.api.u.pro.status.enabled_services.v1r(uaclient.api.u.pro.status.is_attached.v1ruaclient.configruaclient.data_typesrrrrr getLoggerreplace_top_level_logger_namerLOGrr$r"r/r3r2endpointrrrrsN          J