From fea079400fb643ca7b7bd94088bd5a1da925cc8b Mon Sep 17 00:00:00 2001 From: Brad Warren Date: Mon, 19 Sep 2016 14:55:26 -0700 Subject: [PATCH] Provide chain_path for enhance config --- certbot/client.py | 8 ++++++-- certbot/main.py | 4 ++-- certbot/tests/client_test.py | 38 ++++++++++++++++++------------------ 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/certbot/client.py b/certbot/client.py index f92370d30..a4f2248a6 100644 --- a/certbot/client.py +++ b/certbot/client.py @@ -382,7 +382,8 @@ class Client(object): with error_handler.ErrorHandler(self._rollback_and_restart, msg): # sites may have been enabled / final cleanup self.installer.restart() - def enhance_config(self, domains, config): + + def enhance_config(self, domains, config, chain_path): """Enhance the configuration. :param list domains: list of domains to configure @@ -392,6 +393,9 @@ class Client(object): it must have the redirect, hsts and uir attributes. :type namespace: :class:`argparse.Namespace` + :param chain_path: chain file path + :type chain_path: `str` or `None` + :raises .errors.Error: if no installer is specified in the client. @@ -425,7 +429,7 @@ class Client(object): self.apply_enhancement(domains, "ensure-http-header", "Upgrade-Insecure-Requests") if staple: - self.apply_enhancement(domains, "staple-ocsp") + self.apply_enhancement(domains, "staple-ocsp", chain_path) msg = ("We were unable to restart web server") if redirect or hsts or uir or staple: diff --git a/certbot/main.py b/certbot/main.py index 511046df0..6c2455a18 100644 --- a/certbot/main.py +++ b/certbot/main.py @@ -436,7 +436,7 @@ def install(config, plugins): le_client.deploy_certificate( domains, config.key_path, config.cert_path, config.chain_path, config.fullchain_path) - le_client.enhance_config(domains, config) + le_client.enhance_config(domains, config, config.chain_path) def plugins_cmd(config, plugins): # TODO: Use IDisplay rather than print @@ -516,7 +516,7 @@ def run(config, plugins): # pylint: disable=too-many-branches,too-many-locals domains, lineage.privkey, lineage.cert, lineage.chain, lineage.fullchain) - le_client.enhance_config(domains, config) + le_client.enhance_config(domains, config, lineage.chain) if len(lineage.available_versions("cert")) == 1: display_ops.success_installation(domains) diff --git a/certbot/tests/client_test.py b/certbot/tests/client_test.py index e5c6b3af9..dd4211367 100644 --- a/certbot/tests/client_test.py +++ b/certbot/tests/client_test.py @@ -317,15 +317,15 @@ class ClientTest(unittest.TestCase): @mock.patch("certbot.client.enhancements") def test_enhance_config(self, mock_enhancements): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.Error, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.Error, self.client.enhance_config, + ["foo.bar"], config, None) mock_enhancements.ask.return_value = True installer = mock.MagicMock() self.client.installer = installer installer.supported_enhancements.return_value = ["redirect"] - self.client.enhance_config(["foo.bar"], config) + self.client.enhance_config(["foo.bar"], config, None) installer.enhance.assert_called_once_with("foo.bar", "redirect", None) self.assertEqual(installer.save.call_count, 1) installer.restart.assert_called_once_with() @@ -333,8 +333,8 @@ class ClientTest(unittest.TestCase): @mock.patch("certbot.client.enhancements") def test_enhance_config_no_ask(self, mock_enhancements): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.Error, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.Error, self.client.enhance_config, + ["foo.bar"], config, None) mock_enhancements.ask.return_value = True installer = mock.MagicMock() @@ -342,16 +342,16 @@ class ClientTest(unittest.TestCase): installer.supported_enhancements.return_value = ["redirect", "ensure-http-header"] config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.client.enhance_config(["foo.bar"], config) + self.client.enhance_config(["foo.bar"], config, None) installer.enhance.assert_called_with("foo.bar", "redirect", None) config = ConfigHelper(redirect=False, hsts=True, uir=False) - self.client.enhance_config(["foo.bar"], config) + self.client.enhance_config(["foo.bar"], config, None) installer.enhance.assert_called_with("foo.bar", "ensure-http-header", "Strict-Transport-Security") config = ConfigHelper(redirect=False, hsts=False, uir=True) - self.client.enhance_config(["foo.bar"], config) + self.client.enhance_config(["foo.bar"], config, None) installer.enhance.assert_called_with("foo.bar", "ensure-http-header", "Upgrade-Insecure-Requests") @@ -365,14 +365,14 @@ class ClientTest(unittest.TestCase): installer.supported_enhancements.return_value = [] config = ConfigHelper(redirect=None, hsts=True, uir=True) - self.client.enhance_config(["foo.bar"], config) + self.client.enhance_config(["foo.bar"], config, None) installer.enhance.assert_not_called() mock_enhancements.ask.assert_not_called() def test_enhance_config_no_installer(self): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.Error, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.Error, self.client.enhance_config, + ["foo.bar"], config, None) @mock.patch("certbot.client.zope.component.getUtility") @mock.patch("certbot.client.enhancements") @@ -386,8 +386,8 @@ class ClientTest(unittest.TestCase): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.PluginError, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.PluginError, self.client.enhance_config, + ["foo.bar"], config, None) installer.recovery_routine.assert_called_once_with() self.assertEqual(mock_get_utility().add_message.call_count, 1) @@ -403,8 +403,8 @@ class ClientTest(unittest.TestCase): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.PluginError, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.PluginError, self.client.enhance_config, + ["foo.bar"], config, None) installer.recovery_routine.assert_called_once_with() self.assertEqual(mock_get_utility().add_message.call_count, 1) @@ -420,8 +420,8 @@ class ClientTest(unittest.TestCase): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.PluginError, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.PluginError, self.client.enhance_config, + ["foo.bar"], config, None) self.assertEqual(mock_get_utility().add_message.call_count, 1) installer.rollback_checkpoints.assert_called_once_with() @@ -440,8 +440,8 @@ class ClientTest(unittest.TestCase): config = ConfigHelper(redirect=True, hsts=False, uir=False) - self.assertRaises(errors.PluginError, - self.client.enhance_config, ["foo.bar"], config) + self.assertRaises(errors.PluginError, self.client.enhance_config, + ["foo.bar"], config, None) self.assertEqual(mock_get_utility().add_message.call_count, 1) installer.rollback_checkpoints.assert_called_once_with() self.assertEqual(installer.restart.call_count, 1)