summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Zullinger <tmz@pobox.com>2014-04-02 17:28:19 -0400
committerTodd Zullinger <tmz@pobox.com>2014-04-02 17:32:26 -0400
commit5d87ad1ed09946b5602c0a8f9ad50d9f1b5c199c (patch)
tree061c60492404d24ad908a6c705cf975f7ef8caa6
parent4b9e6b6ed3cdde1941494cf4d2f3c73eb771322a (diff)
downloadpuppet-host-package-5d87ad1ed09946b5602c0a8f9ad50d9f1b5c199c.tar.gz
puppet-host-package-5d87ad1ed09946b5602c0a8f9ad50d9f1b5c199c.tar.xz
puppet-host-package-5d87ad1ed09946b5602c0a8f9ad50d9f1b5c199c.zip
Miscellaneous cleanups noted by pylint
* Add missing docstrings, end all doctrings with a period * Avoid overriding builtins (format, type) * Don't use [] as method defaults
-rw-r--r--puppethost.py42
1 files changed, 25 insertions, 17 deletions
diff --git a/puppethost.py b/puppethost.py
index 4b9ae37..3d4537b 100644
--- a/puppethost.py
+++ b/puppethost.py
@@ -65,24 +65,25 @@ for config in configs:
try:
defaults[opt] = int(str(defaults[opt]).lower() in truths)
except:
- raise
defaults[opt] = 0
package_types = ['deb', 'rpm']
-def sign(packages, key='', verbose=defaults['verbose']):
- for type in package_types:
- pkgs = [p for t,p in packages if t == type]
+def sign(packages, key=''):
+ """Sign packages."""
+ for ptype in package_types:
+ pkgs = [p for t, p in packages if t == ptype]
if not pkgs:
continue
try:
- sign_func = getattr(sys.modules[__name__], '_' + type + 'sign')
+ sign_func = getattr(sys.modules[__name__], '_' + ptype + 'sign')
except AttributeError:
raise NotImplementedError(
- 'Signing of %s packages is not implemented' % type)
+ 'Signing of %s packages is not implemented' % ptype)
sign_func(pkgs, key)
def _rpmsign(rpms, key='', tries=3):
+ """Run rpm --addsign."""
cmd = 'rpm --addsign'
if key:
cmd = cmd + ' --define "_gpg_name %s"' % key
@@ -102,11 +103,13 @@ def _rpmsign(rpms, key='', tries=3):
return True
class PuppetHostError(StandardError):
+ """Exception raised on errors."""
pass
class PuppetHost(object):
+ """PuppetHost class."""
def __init__(self, hostname = '', opts = defaults):
- """Puppet host class"""
+ """Initialize PuppetHost objects."""
if not hostname:
raise PuppetHostError('A hostname must be provided')
@@ -118,13 +121,14 @@ class PuppetHost(object):
self.opts = opts
self.datefmt = '%Y%m%d'
+ self.missing = []
self.packages = []
self.tarball = ''
self.tmpdir = tempfile.mkdtemp('', self.opts['pkgprefix'])
self._version = ''
def gencert(self):
- """Generate a puppet certificate"""
+ """Generate a puppet certificate."""
cert = self.files['cert']
ssldir = self.opts['ssldir']
if os.path.exists(cert) and not self.opts['force_cert']:
@@ -146,7 +150,7 @@ class PuppetHost(object):
self._version = time.strftime(self.datefmt)
def package(self, packages = ['rpm']):
- """Create packages in requested formats"""
+ """Create packages in requested format."""
for package in packages:
if package not in package_types or not hasattr(self, package):
raise PuppetHostError('Bogus package type: %s' % package)
@@ -156,10 +160,11 @@ class PuppetHost(object):
continue
def deb(self):
- """Create a .deb package"""
+ """Create a .deb package."""
raise NotImplementedError('FIXME if you need debian packages.')
def tar(self):
+ """Create a gzip'ed .tar file."""
self._check_files()
name = '%s%s-%s' % (self.opts['pkgprefix'], self.hostname, self.version)
@@ -184,7 +189,7 @@ class PuppetHost(object):
print 'done'
def rpm(self):
- """Create a .rpm package"""
+ """Create a .rpm package."""
rpmdir = self.opts['rpmdir']
if not self.tarball or not os.path.exists(self.tarball):
@@ -233,7 +238,7 @@ class PuppetHost(object):
self.packages.append(('rpm', rpm))
def _check_files(self):
- """Check for the files we care about"""
+ """Check for the files we care about."""
self.missing = [f for f in self.files.values()
if not os.path.exists(f)]
if self.missing:
@@ -242,7 +247,9 @@ class PuppetHost(object):
error += '\t%s' % f
raise PuppetHostError(error)
- def cleanup(self, dirs=[]):
+ def cleanup(self, dirs=None):
+ """Remove cruft."""
+ dirs = dirs is not None and dirs or []
dirs.append(self.tmpdir)
for d in dirs:
if os.path.isdir(d):
@@ -250,6 +257,7 @@ class PuppetHost(object):
@property
def files(self):
+ """Expanded file list."""
hostname = self.hostname
ssldir = self.opts['ssldir']
cert = '%s/certs/%s.pem' % (ssldir, hostname)
@@ -265,7 +273,7 @@ class PuppetHost(object):
@property
def version(self):
- """Get the date from a certificate"""
+ """Get the date from a certificate."""
if self._version:
return self._version
@@ -279,14 +287,14 @@ class PuppetHost(object):
self._version = x509.get_notBefore()[:8]
except:
# pyOpenSSL < 0.7 lacks load_certificate()... do it the hard way
- format = self.datefmt
+ datefmt = self.datefmt
cmd = 'openssl x509 -in %s -text -noout' % cert
status, output = commands.getstatusoutput(cmd)
if status == 0:
date = [l.split(':', 1)[1].lstrip() for l in output.split('\n')
if 'Not Before:' in l][0]
fmt = '%b %d %H:%M:%S %Y %Z'
- self._version = time.strftime(format, time.strptime(date, fmt))
+ self._version = time.strftime(datefmt, time.strptime(date, fmt))
else:
- self._version = time.strftime(format)
+ self._version = time.strftime(datefmt)
return self._version