summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2015-01-27 05:46:13 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2015-01-27 05:46:13 +0100
commit78cac1d0a6923ebc73ff221f8501885c36c112c1 (patch)
treed6e4416b6a43e872c1e35d0186223c4616a757ed
parent4609569ec9a7b9ea083c5546fa38ef401bba5fa8 (diff)
downloadbcfg2-78cac1d0a6923ebc73ff221f8501885c36c112c1.tar.gz
bcfg2-78cac1d0a6923ebc73ff221f8501885c36c112c1.tar.bz2
bcfg2-78cac1d0a6923ebc73ff221f8501885c36c112c1.zip
Make SSHbase also a Connector plugin.
Make the public host key data avaialabe for the templates.
-rw-r--r--src/lib/Bcfg2/Server/Plugins/SSHbase.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/SSHbase.py b/src/lib/Bcfg2/Server/Plugins/SSHbase.py
index 2deea5f07..0152fcf70 100644
--- a/src/lib/Bcfg2/Server/Plugins/SSHbase.py
+++ b/src/lib/Bcfg2/Server/Plugins/SSHbase.py
@@ -93,6 +93,7 @@ class KnownHostsEntrySet(Bcfg2.Server.Plugin.EntrySet):
class SSHbase(Bcfg2.Server.Plugin.Plugin,
Bcfg2.Server.Plugin.Caching,
+ Bcfg2.Server.Plugin.Connector,
Bcfg2.Server.Plugin.Generator,
Bcfg2.Server.Plugin.PullTarget):
"""
@@ -127,6 +128,7 @@ class SSHbase(Bcfg2.Server.Plugin.Plugin,
def __init__(self, core, datastore):
Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore)
Bcfg2.Server.Plugin.Caching.__init__(self)
+ Bcfg2.Server.Plugin.Connector.__init__(self)
Bcfg2.Server.Plugin.Generator.__init__(self)
Bcfg2.Server.Plugin.PullTarget.__init__(self)
self.ipcache = {}
@@ -444,3 +446,15 @@ class SSHbase(Bcfg2.Server.Plugin.Plugin,
self.logger.error("Failed to pull %s. This file does not "
"currently exist on the client" %
entry.get('name'))
+
+ def get_additional_data(self, metadata):
+ data = dict()
+ for key in self.keypatterns:
+ if key.endswith(".pub"):
+ try:
+ keyfile = "/etc/ssh/" + key
+ entry = self.entries[keyfile].best_matching(metadata)
+ data[key] = entry.data
+ except Bcfg2.Server.Plugin.PluginExecutionError:
+ pass
+ return data