summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Admin/__init__.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-03 15:27:34 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-03 15:27:34 -0400
commit9eb3db849ba11ac49ced872a585f001bad3d8384 (patch)
tree212acba6b612e541f84325c28b48586f68c94f27 /src/lib/Bcfg2/Server/Admin/__init__.py
parent1ea86e8f1d59b1c770ee8ae901d221adbbe9c1df (diff)
downloadbcfg2-9eb3db849ba11ac49ced872a585f001bad3d8384.tar.gz
bcfg2-9eb3db849ba11ac49ced872a585f001bad3d8384.tar.bz2
bcfg2-9eb3db849ba11ac49ced872a585f001bad3d8384.zip
prompt for locations of bcfg2 keypair in Init, using sane OS defaults
Diffstat (limited to 'src/lib/Bcfg2/Server/Admin/__init__.py')
-rw-r--r--src/lib/Bcfg2/Server/Admin/__init__.py40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/lib/Bcfg2/Server/Admin/__init__.py b/src/lib/Bcfg2/Server/Admin/__init__.py
index 3f993df9b..6a6e54cb2 100644
--- a/src/lib/Bcfg2/Server/Admin/__init__.py
+++ b/src/lib/Bcfg2/Server/Admin/__init__.py
@@ -1,3 +1,5 @@
+""" Base classes for admin modes """
+
__all__ = [
'Backup',
'Bundle',
@@ -23,16 +25,13 @@ import sys
import Bcfg2.Server.Core
import Bcfg2.Options
-# Compatibility import
from Bcfg2.Compat import ConfigParser
-class ModeOperationError(Exception):
- pass
-
-
class Mode(object):
- """Help message has not yet been added for mode."""
+ """ Base object for admin modes. Docstrings are used as help
+ messages, so if you are seeing this, a help message has not yet
+ been added for this mode. """
__shorthelp__ = 'Shorthelp not defined yet'
__longhelp__ = 'Longhelp not defined yet'
__usage__ = None
@@ -47,6 +46,7 @@ class Mode(object):
setup.hm = self.__usage__
def getCFP(self):
+ """ get a config parser for the Bcfg2 config file """
if not self.__cfp:
self.__cfp = ConfigParser.ConfigParser()
self.__cfp.read(self.configfile)
@@ -55,20 +55,23 @@ class Mode(object):
cfp = property(getCFP)
def __call__(self, args):
- pass
+ raise NotImplementedError
def errExit(self, emsg):
+ """ exit with an error """
print(emsg)
raise SystemExit(1)
def load_stats(self, client):
+ """ Load static statistics from the repository """
stats = lxml.etree.parse("%s/etc/statistics.xml" % self.setup['repo'])
hostent = stats.xpath('//Node[@name="%s"]' % client)
if not hostent:
self.errExit("Could not find stats for client %s" % (client))
return hostent[0]
- def print_table(self, rows, justify='left', hdr=True, vdelim=" ", padding=1):
+ def print_table(self, rows, justify='left', hdr=True, vdelim=" ",
+ padding=1):
"""Pretty print a table
rows - list of rows ([[row 1], [row 2], ..., [row n]])
@@ -83,26 +86,28 @@ class Mode(object):
'center': str.center,
'right': str.rjust}[justify.lower()]
- """
- Calculate column widths (longest item in each column
- plus padding on both sides)
-
- """
+ # Calculate column widths (longest item in each column
+ # plus padding on both sides)
cols = list(zip(*rows))
- colWidths = [max([len(str(item)) + 2 * padding for \
+ col_widths = [max([len(str(item)) + 2 * padding for \
item in col]) for col in cols]
- borderline = vdelim.join([w * hdelim for w in colWidths])
+ borderline = vdelim.join([w * hdelim for w in col_widths])
# Print out the table
print(borderline)
for row in rows:
print(vdelim.join([justify(str(item), width) for \
- (item, width) in zip(row, colWidths)]))
+ (item, width) in zip(row, col_widths)]))
if hdr:
print(borderline)
hdr = False
+# pylint wants MetadataCore and StructureMode to be concrete classes
+# and implement __call__, but they aren't and they don't, so we
+# disable that warning
+# pylint: disable=W0223
+
class MetadataCore(Mode):
"""Base class for admin-modes that handle metadata."""
__plugin_whitelist__ = None
@@ -128,5 +133,6 @@ class MetadataCore(Mode):
self.metadata = self.bcore.metadata
-class StructureMode(MetadataCore):
+class StructureMode(MetadataCore): # pylint: disable=W0223
+ """ Base class for admin modes that handle structure plugins """
pass