>fddlZddlmZmZmZddlmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZddlmZdd lmZGd d ej.ZGd d eZGddeZy)N)TupleTypeUnion)apimessagessystem) APT_KEYS_DIRDEB822_REPO_FILE_CONTENT KEYRINGS_DIR)ESM_APT_ROOTDIR)repo) UAEntitlement)CanDisableFailure)set_filename_extensionceZdZejj Zedee e dffdZ de jdeffd ZddZddZxZS) ESMBaseEntitlementreturn.cddlm}m}||fS)Nr)ROSEntitlementROSUpdatesEntitlement)uaclient.entitlements.rosrr)selfrrs ;/usr/lib/python3/dist-packages/uaclient/entitlements/esm.pydependent_servicesz%ESMBaseEntitlement.dependent_servicess &~66progressczddlm}t| |}|r"||j|j |SNr)update_motd_messages)uaclient.timer.update_messagingrsuper_perform_enablecfgdisable_local_esm_repo)rrrenable_performed __class__s rr"z"ESMBaseEntitlement._perform_enables7H 728<   *  ' ' )rc tjj}|jj dsJ|jt dd}t tjjt|jzd}t tjjt|jzd}tjj|stjj|rydj|}dj||}tj|tj||t |j"d y) Nzesm-sourceslistz$https://esm.ubuntu.com/{name}/ubuntu)namez0{series}-{name}-security {series}-{name}-updates)seriesr*)urlsuites keyrings_dir keyring_filedeb_src)rget_release_infor+r* startswithlenrospathnormpathr repo_fileexistsformat write_filer r repo_key_file)rr+esm_namesources_repo_filenamelist_repo_filenameesm_urlr.s rsetup_local_esm_repoz'ESMBaseEntitlement.setup_local_esm_repo"s.((*11yy##F+++99S[]+ 6 GG  $..0   !  4 GG  $..0     77>>/ 0BGGNN 5  8??X?NCJJK   ! $ + +)!//   rcxtjjttz|j z}t j|tjjt|jz}t jt|dt jt|dy)Nr(r)) r5r6r7r r r<rensure_file_absentr8r)rr0 repo_filenames rr$z)ESMBaseEntitlement.disable_local_esm_repoKsww'' l *T-?-? ?  !!,/(( dnn ,  !! "=) <  !! "=& 9 r)rN)__name__ __module__ __qualname__rurls ESM_HOME_PAGE help_doc_urlpropertyrrrrrProgressWrapperboolr"rAr$ __classcell__r&s@rrr s^==..L 7E$}*=s*B$C77 (;(;  ' R rrceZdZdZdZej ZejZ ejZ dZ de jdeeedeffffd ZxZS)ESMAppsEntitlement UbuntuESMAppszesm-appszubuntu-pro-esm-apps.gpgrrNcddlm}t| |\}}|r6||jt j r|j||fSr)r rr!disabler#ris_current_series_ltsrArrrdisable_performedfailr&s rrTzESMAppsEntitlement.disableesO I"''/(";4   *++-))+ $&&r)rErFrGoriginr*rESM_APPS_TITLEtitleESM_APPS_DESCRIPTION descriptionESM_APPS_HELP_TEXT help_textr<rrLrrMrrrTrNrOs@rrQrQ]sh F D  # #E//K++I-M '++ ' tU4!2233 4 ' 'rrQceZdZdZdZej ZejZ ejZ dZ de jdeeedeffffd ZxZS)ESMInfraEntitlementz esm-infra UbuntuESMzubuntu-pro-esm-infra.gpgrrNcddlm}t| |\}}|r6||jt j r|j||fSr)r rr!rTr#ris_current_series_active_esmrArVs rrTzESMInfraEntitlement.disablezsO I"''/(";4   *224))+ $&&r)rErFrGr*rYrESM_INFRA_TITLEr[ESM_INFRA_DESCRIPTIONr]ESM_INFRA_HELP_TEXTr_r<rrLrrMrrrTrNrOs@rrararsh D F  $ $E00K,,I.M '++ ' tU4!2233 4 ' 'rra)r5typingrrruaclientrrr uaclient.aptr r r uaclient.defaultsr uaclient.entitlementsr uaclient.entitlements.baser(uaclient.entitlements.entitlement_statusr uaclient.utilrRepoEntitlementrrQrarrrrsX %%**MM-&4F0M --M `'+'*','r