Ë
    M/Åe‹  ã                   ó,  — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ dd	lmZ  ej                  e«      Zd
ej$                  dej&                  de
j(                  ddfd„Zd
ej$                  dej&                  dej,                  ddfd„Zdej&                  dej,                  d
ej$                  ddfd„Zdej&                  dej,                  d
ej$                  ddfd„Zdej&                  dej,                  d
ej$                  ddfd„Zy)zUpdaters run at renewalé    N)Úconfiguration)Úerrors)Ú
interfaces)Ústorage)Údisco)Ú	selection)ÚenhancementsÚconfigÚlineageÚpluginsÚreturnc                 ó  — | j                   rt        j                  d«       y	 t        j                  | |«      }|rt        ||| «       t        ||| «       yy# t
        j                  $ r }t        j                  d|«       Y d}~yd}~ww xY w)as  Run updaters that the plugin supports

    :param config: Configuration object
    :type config: certbot.configuration.NamespaceConfig

    :param lineage: Certificate lineage object
    :type lineage: storage.RenewableCert

    :param plugins: List of plugins
    :type plugins: certbot._internal.plugins.disco.PluginsRegistry

    :returns: `None`
    :rtype: None
    z"Skipping updaters in dry-run mode.Nz4Could not choose appropriate plugin for updaters: %s)
Údry_runÚloggerÚdebugÚplug_selÚget_unprepared_installerr   ÚErrorÚerrorÚ_run_updatersÚ_run_enhancement_updaters)r
   r   r   Ú	installerÚes        ú;/usr/lib/python3/dist-packages/certbot/_internal/updater.pyÚrun_generic_updatersr      s|   € ð  ‡~‚~Ü�‰Ð9Ô:ØðÜ×5Ñ5°f¸gÓFˆ	ñ Ü�g˜y¨&Ô1Ü! '¨9°fÕ=ð øô �<‰<ò Ü�‰ÐKÈQÔOÜûðús   ¤A ÁBÁ+BÂBr   c                 óÐ   — | j                   rt        j                  d«       y| j                  s+t	        |t
        j                  «      r|j                  |«       t        ||| «       y)a—  Helper function to run deployer interface method if supported by the used
    installer plugin.

    :param config: Configuration object
    :type config: certbot.configuration.NamespaceConfig

    :param lineage: Certificate lineage object
    :type lineage: storage.RenewableCert

    :param installer: Installer object
    :type installer: interfaces.Installer

    :returns: `None`
    :rtype: None
    z*Skipping renewal deployer in dry-run mode.N)	r   r   r   Údisable_renew_updatesÚ
isinstancer   ÚRenewDeployerÚrenew_deployÚ_run_enhancement_deployers)r
   r   r   s      r   Úrun_renewal_deployerr"   ,   sQ   € ð" ‡~‚~Ü�‰ÐAÔBØà×'Ò'¬J°yÜ7A×7OÑ7Oô-Qà×Ñ˜wÔ'Ü˜w¨	°6Õ:ó    c                 óv   — |j                   s-t        |t        j                  «      r|j	                  | «       yyy)a:  Helper function to run the updater interface methods if supported by the
    used installer plugin.

    :param lineage: Certificate lineage object
    :type lineage: storage.RenewableCert

    :param installer: Installer object
    :type installer: interfaces.Installer

    :returns: `None`
    :rtype: None
    N)r   r   r   ÚGenericUpdaterÚgeneric_updates)r   r   r
   s      r   r   r   G   s5   € ð ×'Ò'Ü�i¤×!:Ñ!:Ô;Ø×%Ñ% gÕ.ð <ð (r#   c                 óž   — |j                   ryt        j                  D ]-  }t        ||d   «      sŒ|d   sŒ t	        ||d   «      | «       Œ/ y)aÊ  Iterates through known enhancement interfaces. If the installer implements
    an enhancement interface and the enhance interface has an updater method, the
    updater method gets run.

    :param lineage: Certificate lineage object
    :type lineage: storage.RenewableCert

    :param installer: Installer object
    :type installer: interfaces.Installer

    :param config: Configuration object
    :type config: certbot.configuration.NamespaceConfig
    NÚclassÚupdater_function©r   r	   Ú_INDEXr   Úgetattr©r   r   r
   Úenhs       r   r   r   Z   sT   € ð  ×#Ò#ØÜ×"Ñ"ò AˆÜ�i  W¡Õ.°3Ð7IÓ3JØ7ŒG�I˜sÐ#5Ñ6Ó7¸Õ@ñAr#   c                 óž   — |j                   ryt        j                  D ]-  }t        ||d   «      sŒ|d   sŒ t	        ||d   «      | «       Œ/ y)aÌ  Iterates through known enhancement interfaces. If the installer implements
    an enhancement interface and the enhance interface has an deployer method, the
    deployer method gets run.

    :param lineage: Certificate lineage object
    :type lineage: storage.RenewableCert

    :param installer: Installer object
    :type installer: interfaces.Installer

    :param config: Configuration object
    :type config: certbot.configuration.NamespaceConfig
    Nr(   Údeployer_functionr*   r-   s       r   r!   r!   q   sT   € ð  ×#Ò#ØÜ×"Ñ"ò BˆÜ�i  W¡Õ.°3Ð7JÓ3KØ8ŒG�I˜sÐ#6Ñ7Ó8¸ÕAñBr#   )Ú__doc__ÚloggingÚcertbotr   r   r   Úcertbot._internalr   Úcertbot._internal.pluginsr   Úplugin_discor   r   Úcertbot.pluginsr	   Ú	getLoggerÚ__name__r   ÚNamespaceConfigÚRenewableCertÚPluginsRegistryr   Ú	Installerr"   r   r   r!   © r#   r   ú<module>r?      sE  ðÙ Û å !Ý Ý Ý %Ý ;Ý ;Ý (à	ˆ×	Ñ	˜8Ó	$€ð> ×!>Ñ!>ð >È×I^ÑI^ð >Ø".×">Ñ">ð>ØCGó>ð:; ×!>Ñ!>ð ;È×I^ÑI^ð ;Ø$.×$8Ñ$8ð;Ø=Aó;ð6/˜7×0Ñ0ð /¸Z×=QÑ=Qð /Ø'×7Ñ7ð/Ø<@ó/ð&A w×'<Ñ'<ð AÈ×I]ÑI]ð AØ&3×&CÑ&CðAØHLóAð.B¨×(=Ñ(=ð BÈ*×J^ÑJ^ð BØ'4×'DÑ'DðBØIMôBr#   