summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/SSHbase.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-29 14:09:40 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-08-29 14:09:40 -0400
commit616bcab0374a4ac7f79e4a5101003ebfb820364e (patch)
tree8e46b6f326d6054215d12dbafc9b55a693fe1ffb /src/lib/Bcfg2/Server/Plugins/SSHbase.py
parent6d2304bb814a31f7e489ef6c6caca2d3a748ed0e (diff)
downloadbcfg2-616bcab0374a4ac7f79e4a5101003ebfb820364e.tar.gz
bcfg2-616bcab0374a4ac7f79e4a5101003ebfb820364e.tar.bz2
bcfg2-616bcab0374a4ac7f79e4a5101003ebfb820364e.zip
SSHbase: Fix instantiation of KeyData
Fixed KeyData __init__ method for globally-accessible encoding setting in Bcfg2.Options.setup. This also cleans up the logging in SSHbase.
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/SSHbase.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/SSHbase.py28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/SSHbase.py b/src/lib/Bcfg2/Server/Plugins/SSHbase.py
index 374711ca5..f3f711b77 100644
--- a/src/lib/Bcfg2/Server/Plugins/SSHbase.py
+++ b/src/lib/Bcfg2/Server/Plugins/SSHbase.py
@@ -5,7 +5,6 @@ import os
import sys
import socket
import shutil
-import logging
import tempfile
import Bcfg2.Options
import Bcfg2.Server.Plugin
@@ -14,16 +13,10 @@ from Bcfg2.Utils import Executor
from Bcfg2.Server.Plugin import PluginExecutionError
from Bcfg2.Compat import any, u_str, b64encode # pylint: disable=W0622
-LOGGER = logging.getLogger(__name__)
-
class KeyData(Bcfg2.Server.Plugin.SpecificData):
""" class to handle key data for HostKeyEntrySet """
- def __init__(self, name, specific, encoding):
- Bcfg2.Server.Plugin.SpecificData.__init__(self, name, specific)
- self.encoding = encoding
-
def __lt__(self, other):
return self.name < other.name
@@ -40,19 +33,20 @@ class KeyData(Bcfg2.Server.Plugin.SpecificData):
entry.text = b64encode(self.data)
else:
try:
- entry.text = u_str(self.data, self.encoding)
+ entry.text = u_str(self.data, Bcfg2.Options.setup.encoding)
except UnicodeDecodeError:
msg = "Failed to decode %s: %s" % (entry.get('name'),
sys.exc_info()[1])
- LOGGER.error(msg)
- LOGGER.error("Please verify you are using the proper encoding")
+ self.logger.error(msg)
+ self.logger.error("Please verify you are using the proper "
+ "encoding")
raise Bcfg2.Server.Plugin.PluginExecutionError(msg)
except ValueError:
msg = "Error in specification for %s: %s" % (entry.get('name'),
sys.exc_info()[1])
- LOGGER.error(msg)
- LOGGER.error("You need to specify base64 encoding for %s" %
- entry.get('name'))
+ self.logger.error(msg)
+ self.logger.error("You need to specify base64 encoding for %s"
+ % entry.get('name'))
raise Bcfg2.Server.Plugin.PluginExecutionError(msg)
if entry.text in ['', None]:
entry.set('empty', 'true')
@@ -61,16 +55,12 @@ class KeyData(Bcfg2.Server.Plugin.SpecificData):
class HostKeyEntrySet(Bcfg2.Server.Plugin.EntrySet):
""" EntrySet to handle all kinds of host keys """
def __init__(self, basename, path):
- if basename.startswith("ssh_host_key"):
- self.encoding = "base64"
- else:
- self.encoding = None
Bcfg2.Server.Plugin.EntrySet.__init__(self, basename, path, KeyData)
self.metadata = {'owner': 'root',
'group': 'root',
'type': 'file'}
- if self.encoding is not None:
- self.metadata['encoding'] = self.encoding
+ if basename.startswith("ssh_host_key"):
+ self.metadata['encoding'] = "base64"
if basename.endswith('.pub'):
self.metadata['mode'] = '0644'
else: