Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F3772811
D743.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
D743.diff
View Options
Index: __init__.py
===================================================================
--- /dev/null
+++ __init__.py
@@ -0,0 +1 @@
+""" Deploying certificates to jails plugin """
Index: certCopyPlugin.py
===================================================================
--- /dev/null
+++ certCopyPlugin.py
@@ -0,0 +1,84 @@
+"""
+Deploy a Let's encrypt certificate to an additional path
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Project: Nasqueron
+Created: 2016-12-03
+License: Trivial work, not eligible to copyright
+Depedencies: Certbot
+--------------------------------------------------------------
+"""
+
+from certbot import interfaces
+from certbot.plugins import common
+
+""" Common imports """
+import os
+import shutil
+import subprocess
+
+
+logger = logging.getLogger(__name__)
+
+
+@zope.interface.implementer(self, interfaces.IInstaller)
+@zope.interface.provider(self, interfaces.IPluginFactory)
+class Installer(common.Plugin):
+
+ description = "Copy the certificate to a given path, without keeping permissions"
+
+ def __init__(self, path):
+ pass
+
+ def get_certdir_path(self):
+ """Full absolute path to SSL configuration file."""
+ return self.config.config_dir
+
+ @classmethod
+ def add_parser_arguments(cls, add):
+ add("server_root", default=constants.CLI_DEFAULTS["server_root"], help="Path to the service")
+
+ def prepare(self):
+ if not self.conf("server_root"):
+ raise MisconfigurationError
+ pass
+
+ def more_info(self):
+ return "Copy the certificate to the target destination, useful for lxc containers or FreeBSD jails"
+
+ def get_all_names(self):
+ pass
+
+ def deploy_cert(self, domain, cert_path, key_path, chain_path, fullchain_path):
+ try:
+ copyfile(fullchain_path,self.conf("server_root"))
+ copyfile(key_path,self.conf("server_root"))
+ except (shutil.Error, IOError) as e:
+ logger.info("Cannot deploy certificate: %s", str(e))
+ raise PluginError
+ pass
+
+ logger.info("%s certificate successfully deployed to %s", domain, self.conf("server_root"))
+
+ def enhance(self, domain, enhancement, options=None):
+ pass
+
+ def supported_enhancements(self):
+ pass
+
+ def save(self, title=None, temporary=False):
+ pass
+
+ def rollback_checkpoints(self, rollback=1):
+ pass
+
+ def recovery_routine(self):
+ pass
+
+ def view_config_changes(self):
+ pass
+
+ def config_test(self):
+ pass
+
+ def restart(self):
+ pass
Index: services/mumbleCertCopyPlugin.py
===================================================================
--- /dev/null
+++ services/mumbleCertCopyPlugin.py
@@ -0,0 +1,42 @@
+"""
+Deploy a Let's encrypt certificate to Mumble's jail
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Project: Nasqueron
+Created: 2016-12-03
+License: Trivial work, not eligible to copyright
+--------------------------------------------------------------
+"""
+
+from certbot import interfaces
+from certbot.plugins import common
+
+from ... import certCopyPlugin
+
+""" Common imports """
+import subprocess
+
+
+logger = logging.getLogger(__name__)
+
+
+@zope.interface.implementer(self, interfaces.IInstaller)
+@zope.interface.provider(self, interfaces.IPluginFactory)
+class Installer(cert-copy-plugin.Installer):
+
+ description = "Copy the certificate to the Mumble jail"
+
+ def __init__(self, path):
+ pass
+
+ def more_info(self):
+ return description
+
+ def restart(self):
+ try:
+ subprocess.call(['service', 'mumble-server', 'restart' ])
+ except OSError as e:
+ logger.info("Restart failed: %s ", str(e))
+ raise PluginError instead
+
+
+ logger.info("Service deployed")
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Nov 25, 05:00 (21 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2261885
Default Alt Text
D743.diff (3 KB)
Attached To
Mode
D743: Plugin to deploy certificates to an additional path
Attached
Detach File
Event Timeline
Log In to Comment