o Hcf. @sddlmZmZmZmZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZmZddlmZeZGdddeZd S) )AnyDictOptionalTuple)apicontract event_loggermessagessystem)CanEnableFailureCanEnableFailureReason)RepoEntitlement)AnboxCloudDataanbox_cloud_credentials_file)MessagingOperationsDictcseZdZdZejZejZej j Z ej Z dZdZdZdZdZedefddZdeeeefffd d Zd ejdeffd d Zd ejffdd Zdee e!fdee defddZ"Z#S)AnboxEntitlementz anbox-cloudzubuntu-pro-anbox-cloud.gpgz{}TAnboxreturncCs|js dtjgiSiS)N post_enable) access_onlyr ANBOX_RUN_INIT_CMD)selfr=/usr/lib/python3/dist-packages/uaclient/entitlements/anbox.py messagings zAnboxEntitlement.messagingcs>t\}}|s ||fStr|jsdttjtj fSdS)NF)TN) super can_enabler is_containerrr r ONLY_ACCESS_ONLY_SUPPORTEDr !ANBOX_FAIL_TO_ENABLE_ON_CONTAINER)rretreason __class__rrr%szAnboxEntitlement.can_enableprogresscst|}|s |S|jdidi}|jjd}t|j}||d}t |dididd|dd|dd|d dd }t |d S) N entitlement directives machineTokenz anbox-imagesurl resourceTokenaptURLaptKey)anbox_images_urlanbox_images_resource_tokenanbox_cloud_apt_urlanbox_cloud_apt_tokenT) r_perform_enableentitlement_cfggetcfg machine_tokenrUAContractClientget_resource_machine_accessrrwrite)rr$r r&r5clientanbox_images_machine_accessanbox_cloud_datar"rrr16s.       z AnboxEntitlement._perform_enablecst|tdS)NT)r_perform_disablerdelete)rr$r"rrr<Ts z!AnboxEntitlement._perform_disable obligationsr*cCsdS)NFr)rr>r*rrr_should_enable_by_default]sz*AnboxEntitlement._should_enable_by_default)$__name__ __module__ __qualname__namer ANBOX_TITLEtitleANBOX_DESCRIPTION descriptionurlsANBOX_HOME_PAGE help_doc_urlANBOX_HELP_TEXT help_text repo_key_file repo_url_tmplaffordance_check_seriessupports_access_onlyoriginpropertyrrrboolrr rrProgressWrapperr1r<rstrrr? __classcell__rrr"rrs. rN)typingrrrruaclientrrrr r (uaclient.entitlements.entitlement_statusr r uaclient.entitlements.repor uaclient.files.state_filesrruaclient.typesrget_event_loggereventrrrrrs