3 Ú¯a‹ã@sðdZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd l mZejeƒZejeje jdd œd d „Zejejejdd œdd„Zejejejddœdd„Zejejejddœdd„Zejejejddœdd„ZdS)zUpdaters run at renewaléN)Ú configuration)Úerrors)Ú interfaces)Ústorage)Údisco)Ú selection)Ú enhancements)ÚconfigÚlineageÚpluginsÚreturncCst|jrtjdƒdSytj||ƒ}Wn.tjk rR}ztjd|ƒdSd}~XnX|rpt|||ƒt |||ƒdS)asRun 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_selZget_unprepared_installerrÚErrorÚerrorÚ _run_updatersÚ_run_enhancement_updaters)r r r Ú installerÚe©rú/usr/lib/python3.6/updater.pyÚrun_generic_updaterss   r)r r rr cCsB|jrtjdƒdS|j r2t|tjƒr2|j|ƒt|||ƒdS)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 rrÚdisable_renew_updatesÚ isinstancerZ RenewDeployerZ renew_deployÚ_run_enhancement_deployers)r r rrrrÚrun_renewal_deployer,s   r)r rr r cCs |jst|tjƒr|j|ƒdS)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)rrrZGenericUpdaterZgeneric_updates)r rr rrrrGs rcCsF|jr dSx6tjD],}t||dƒr|drt||dƒ|ƒqWdS)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ÚclassZupdater_function)rrÚ_INDEXrÚgetattr)r rr ÚenhrrrrZs  rcCsF|jr dSx6tjD],}t||dƒr|drt||dƒ|ƒqWdS)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 NrZdeployer_function)rrrrr )r rr r!rrrrqs  r)Ú__doc__ZloggingZcertbotrrrZcertbot._internalrZcertbot._internal.pluginsrZ plugin_discorrZcertbot.pluginsrZ getLoggerÚ__name__rZNamespaceConfigZ RenewableCertZPluginsRegistryrZ InstallerrrrrrrrrÚs&