mirror of
https://github.com/certbot/certbot.git
synced 2026-01-26 07:41:33 +03:00
Part of #5775. Tree: ``` certbot-apache/certbot_apache ├── __init__.py ├── _internal │ ├── apache_util.py │ ├── augeas_lens │ │ ├── httpd.aug │ │ └── README │ ├── centos-options-ssl-apache.conf │ ├── configurator.py │ ├── constants.py │ ├── display_ops.py │ ├── entrypoint.py │ ├── http_01.py │ ├── __init__.py │ ├── obj.py │ ├── options-ssl-apache.conf │ ├── override_arch.py │ ├── override_centos.py │ ├── override_darwin.py │ ├── override_debian.py │ ├── override_fedora.py │ ├── override_gentoo.py │ ├── override_suse.py │ └── parser.py └── tests ├── ... ``` * Create _internal folder for certbot_apache * Move apache_util.py to _internal * Move display_ops.py to _internal * Move override_centos.py to _internal * Move override_gentoo.py to _internal * Move override_darwin.py to _internal * Move override_suse.py to _internal * Move override_debian.py to _internal * Move override_fedora.py to _internal * Move override_arch.py to _internal * Move parser.py to _internal * Move obj.py to _internal * Move http_01.py to _internal * Move entrypoint.py to _internal * Move constants.py to _internal * Move configurator.py to _internal * Move augeas_lens to _internal * Move options-ssl-apache.conf files to _internal * move augeas_lens in MANIFEST * Clean up some stray references to certbot_apache that could use _internal * Correct imports and lint
70 lines
2.8 KiB
Python
70 lines
2.8 KiB
Python
""" Entry point for Apache Plugin """
|
|
# Pylint does not like disutils.version when running inside a venv.
|
|
# See: https://github.com/PyCQA/pylint/issues/73
|
|
from distutils.version import LooseVersion # pylint: disable=no-name-in-module,import-error
|
|
|
|
from certbot import util
|
|
|
|
from certbot_apache._internal import configurator
|
|
from certbot_apache._internal import override_arch
|
|
from certbot_apache._internal import override_fedora
|
|
from certbot_apache._internal import override_darwin
|
|
from certbot_apache._internal import override_debian
|
|
from certbot_apache._internal import override_centos
|
|
from certbot_apache._internal import override_gentoo
|
|
from certbot_apache._internal import override_suse
|
|
|
|
OVERRIDE_CLASSES = {
|
|
"arch": override_arch.ArchConfigurator,
|
|
"cloudlinux": override_centos.CentOSConfigurator,
|
|
"darwin": override_darwin.DarwinConfigurator,
|
|
"debian": override_debian.DebianConfigurator,
|
|
"ubuntu": override_debian.DebianConfigurator,
|
|
"centos": override_centos.CentOSConfigurator,
|
|
"centos linux": override_centos.CentOSConfigurator,
|
|
"fedora_old": override_centos.CentOSConfigurator,
|
|
"fedora": override_fedora.FedoraConfigurator,
|
|
"linuxmint": override_debian.DebianConfigurator,
|
|
"ol": override_centos.CentOSConfigurator,
|
|
"oracle": override_centos.CentOSConfigurator,
|
|
"redhatenterpriseserver": override_centos.CentOSConfigurator,
|
|
"red hat enterprise linux server": override_centos.CentOSConfigurator,
|
|
"rhel": override_centos.CentOSConfigurator,
|
|
"amazon": override_centos.CentOSConfigurator,
|
|
"gentoo": override_gentoo.GentooConfigurator,
|
|
"gentoo base system": override_gentoo.GentooConfigurator,
|
|
"opensuse": override_suse.OpenSUSEConfigurator,
|
|
"suse": override_suse.OpenSUSEConfigurator,
|
|
"sles": override_suse.OpenSUSEConfigurator,
|
|
"scientific": override_centos.CentOSConfigurator,
|
|
"scientific linux": override_centos.CentOSConfigurator,
|
|
}
|
|
|
|
|
|
def get_configurator():
|
|
""" Get correct configurator class based on the OS fingerprint """
|
|
os_name, os_version = util.get_os_info()
|
|
os_name = os_name.lower()
|
|
override_class = None
|
|
|
|
# Special case for older Fedora versions
|
|
if os_name == 'fedora' and LooseVersion(os_version) < LooseVersion('29'):
|
|
os_name = 'fedora_old'
|
|
|
|
try:
|
|
override_class = OVERRIDE_CLASSES[os_name]
|
|
except KeyError:
|
|
# OS not found in the list
|
|
os_like = util.get_systemd_os_like()
|
|
if os_like:
|
|
for os_name in os_like:
|
|
if os_name in OVERRIDE_CLASSES.keys():
|
|
override_class = OVERRIDE_CLASSES[os_name]
|
|
if not override_class:
|
|
# No override class found, return the generic configurator
|
|
override_class = configurator.ApacheConfigurator
|
|
return override_class
|
|
|
|
|
|
ENTRYPOINT = get_configurator()
|