Hcf$ ddlZddlZddlZddlmZmZddlmZmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZddlmZmZddlmZej4ej6eZdej<d ed eed eed ed ef dZ ejBejDejFejHejJddZ&dej<fdZ'y)N)DictList) apiconfigcontract entitlements event_logger exceptionsmessagesstatusutil)ServiceWithDependencies _dependencies)_enabled_services)cli_util constants)CanDisableFailurecfgserviceall_dependenciesenabled_service_names called_name service_titlecg}|D]\}|j|k(s|j|vr!|jD]-}|j|k(s|j|j/^|D]f} tj|| } t j j|| } tj| rQtj|| y)N)service_being_disableddependent_service)msg) name depends_onappendr get_titler DEPENDENT_SERVICEformatr prompt_for_confirmationr DependentServiceStopsDisable) rrrrrrdependent_servicess requirementrdependent_service_titleuser_msgs 6/usr/lib/python3/dist-packages/uaclient/cli/disable.pyprompt_for_dependency_handlingr,s 2 66W .C C << 2K7*"))!&&1 220 "."8"8 "# --44#055 ++999'4"9  z pro disablec g}g}g}g}tjddd}|jdk(}tj|} |j r#|j rtjddt|dg} tj| |\} } t|jD cgc]} | j}} t|j }d }| D]}tj"|| }|||j |j }|j$}||}|j s& t'||j||||j( |rt7j8}n't7j8tj:}|j=|_ |jA|\}}tCjB||sd}|jE||tG|tHr|jJ| |jJj0|jEd|j|jJj0|jJjdnN|jE||jM}|r+d |d<| t2jNjd| rd}ddjWtjX|d zdz}djWt[j\|ddd}tj^ddjW| |}| |j0|jEdd |j0|jR|jTdtajb|}|je|rl|jg|jg|rdnd|d <||d!<||d"<||d#<||d$<titkjl|tnjpd %|rd&Sd'Scc} w#tj*$rd}t,j/|| |j0| t2j4j|j(d}Yd }~d }~wwxYw#tj*$r}d}|jE|| |j0| t2jPj|j(|jEd|j|j0|jR|jTdYd }~nd }~wwxYw)(zbPerform the disable action on a list of entitlements. @return: 0 on success, 1 otherwise successF)_schema_versionresult needs_rebootjson--purge --assume-yes)option1option2rT)rr) assume_yespurgeN)rr)titler)typermessage message_coder2zdisable operation) operation)r<rr=r>additional_infozTry , )r allow_beta. P)widthbreak_long_wordsbreak_on_hyphensdisable)r?invalid_service service_msgsystemfailurer1processed_servicesfailed_serviceserrorswarnings)cls sort_keysr)9r JSON_SCHEMA_VERSIONr#r&create_interactive_only_print_functionr9r8r InvalidOptionCombinationgetattrrget_valid_entitlement_namesrenabled_servicesrrservicesentitlement_factoryenabled_variantr,r:UbuntuProErrorLOG exceptionrr ENABLE_FAILEDrProgressWrapperCLIEnableDisableProgresscalculate_total_disable_steps total_stepsrIr r isinstancerr=_check_for_rebootENABLE_REBOOT_REQUIRED_TMPLDISABLE_FAILED_TMPLmsg_coder@joinvalid_servicestextwrapwrapInvalidServiceOpErrorrUAContractClientupdate_activity_tokensortprintr3dumpsr DatetimeAwareJSONEncoder)argsrkwargsrNrOrPrQ json_response json_outputinteractive_only_printnamesentitlements_foundentitlements_not_foundr'rrretent_nameent_clsentvarianteprogress disable_retreasonent_reboot_required valid_namesrKerrcontract_clients r+action_disabler;sO FH(;;M ++'K &LL zzdoo11~   D)R (E 00<*#.??%S)22 C&O22sJcdooTZZH%%  C .HH$) ("%)) " **,H**8+L+L+NOH"@@B- "%++h"7 K MMc "&&x0%*-+~~1.v~~/A/AB (1+.88+1>>+=+=060C0C #))(3&)&;&;&=#&48M.1* <<CC&9DwOb ii 33MN O   ii MM!&!&   .. II&<=#  sww'  77 # ##6   //4O))+!/2) h.@ *++: '("( h$, j! JJ11  1W4,,  a &quu-&**11 1B X(( C  " "8 , "155 ) ",,33#))3D  MM%"xx uu$%JJ'('8'8    s9-P2%P"+DR"R5ARRU/BU  Uc T|jdtj}|jtt j jt jd}tj|_ ||_ d|_ tj|j_tj |j"_|j%dddtj&jd j)t+j,|   |j%d dtj.jd|j%ddddgdtj0jd|j%ddtj2|S)z5Build or extend an arg parser for disable subcommand.rI)help)actionzdisable [])rcommandrstore+rAr;)options)rnargsrr5 store_true)r)rrz--formatclir3)default)rchoicesrrr4) add_parserr CLI_ROOT_DISABLE set_defaultsrr USAGE_TMPLr#NAMECLI_DISABLE_DESC descriptionusageprogCLI_ARGS _positionalsr: CLI_FLAGS _optionals add_argumentCLI_DISABLE_SERVICErkrrlCLI_ASSUME_YESCLI_FORMAT_DESC CLI_PURGE) subparsersrparserrs r+rrs~  " "983L3L " MF ~.  ' ' ^^%D ( E"22FFLFK ( 1 1F&00F   ( ( / / ,"="=#"FG 0      $ $ + +I + >    % % , ,U , ;      Mr-)(r3loggingrmtypingrruaclientrrrrr r r r r +uaclient.api.u.pro.services.dependencies.v1rr-uaclient.api.u.pro.status.enabled_services.v1r uaclient.clirr(uaclient.entitlements.entitlement_statusr getLoggerreplace_top_level_logger_name__name__r_UAConfigstrr,verify_json_format_args assert_rootassert_attached&_raise_enable_disable_unattached_errorassert_lock_filerrr-r+rs    L,Fg:::8DE  23 9     > !! (IIJ=)n*K"nb''r-