mirror of
https://github.com/certbot/certbot.git
synced 2026-08-03 03:41:53 +02:00
Add get_config_var
This commit is contained in:
@@ -241,20 +241,8 @@ class Installer(plugins_common.Plugin):
|
|||||||
:raises .PluginError: Unable to find Postfix version.
|
:raises .PluginError: Unable to find Postfix version.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Parse Postfix version number (feature support, syntax changes etc.)
|
mail_version = self.get_config_var("mail_version", default=True)
|
||||||
try:
|
return tuple(int(i) for i in mail_version.split('.'))
|
||||||
stdout = util.check_output(
|
|
||||||
[self.conf('config-utility'), '-d', 'mail_version'])
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
logger.debug(
|
|
||||||
'Encountered an error when trying to determine Postfix version.',
|
|
||||||
exc_info=True)
|
|
||||||
raise errors.PluginError('Unable to determine Postfix version.')
|
|
||||||
|
|
||||||
# grabs version component of string like "mail_version = 2.11.3"
|
|
||||||
mail_version = stdout.split()[2]
|
|
||||||
postfix_version = tuple([int(i) for i in mail_version.split('.')])
|
|
||||||
return postfix_version
|
|
||||||
|
|
||||||
def more_info(self):
|
def more_info(self):
|
||||||
"""Human-readable string to help the user.
|
"""Human-readable string to help the user.
|
||||||
@@ -406,6 +394,59 @@ class Installer(plugins_common.Plugin):
|
|||||||
if rc != 0:
|
if rc != 0:
|
||||||
raise errors.MisconfigurationError('cannot restart postfix')
|
raise errors.MisconfigurationError('cannot restart postfix')
|
||||||
|
|
||||||
|
def get_config_var(self, name, default=False):
|
||||||
|
"""Return the value of the specified Postfix config parameter.
|
||||||
|
|
||||||
|
:param str name: name of the Postfix config parameter to return
|
||||||
|
:param bool default: whether or not to return the default value
|
||||||
|
instead of the actual value
|
||||||
|
|
||||||
|
:returns: value of the specified configuration parameter
|
||||||
|
:rtype: str
|
||||||
|
|
||||||
|
"""
|
||||||
|
cmd = self._build_cmd_for_config_var(name, default)
|
||||||
|
|
||||||
|
try:
|
||||||
|
output = util.check_output(cmd)
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
logger.debug("Encountered an error when running 'postconf'",
|
||||||
|
exc_info=True)
|
||||||
|
raise errors.PluginError(
|
||||||
|
"Unable to determine the value "
|
||||||
|
"of Postfix parameter {0}".format(name))
|
||||||
|
|
||||||
|
expected_prefix = name + " ="
|
||||||
|
if not output.startswith(expected_prefix):
|
||||||
|
raise errors.PluginError(
|
||||||
|
"Unexpected output from '{0}'".format(''.join(cmd)))
|
||||||
|
|
||||||
|
return output[len(expected_prefix):].strip()
|
||||||
|
|
||||||
|
def _build_cmd_for_config_var(self, name, default):
|
||||||
|
"""Return a command to run to get a Postfix config parameter.
|
||||||
|
|
||||||
|
:param str name: name of the Postfix config parameter to return
|
||||||
|
:param bool default: whether or not to return the default value
|
||||||
|
instead of the actual value
|
||||||
|
|
||||||
|
:returns: command to run
|
||||||
|
:rtype: list
|
||||||
|
|
||||||
|
"""
|
||||||
|
cmd = [self.conf("config-utility")]
|
||||||
|
|
||||||
|
if self.conf("config-dir") is not None:
|
||||||
|
cmd.extend(("-c", self.conf("config-dir"),))
|
||||||
|
|
||||||
|
if default:
|
||||||
|
cmd.append("-d")
|
||||||
|
|
||||||
|
cmd.append(name)
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
|
||||||
|
|
||||||
# def update_CAfile(self):
|
# def update_CAfile(self):
|
||||||
# os.system("cat /usr/share/ca-certificates/mozilla/*.crt > " + self.ca_file)
|
# os.system("cat /usr/share/ca-certificates/mozilla/*.crt > " + self.ca_file)
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in New Issue
Block a user