diff options
Diffstat (limited to 'puppethost.py')
-rw-r--r--[-rwxr-xr-x] | puppethost.py | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/puppethost.py b/puppethost.py index ddd1d4a..a54b9cb 100755..100644 --- a/puppethost.py +++ b/puppethost.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python - # Copyright (C) 2008 Todd Zullinger <tmz@pobox.com> # # This program is free software: you can redistribute it and/or modify @@ -19,14 +17,12 @@ import os import sys -import glob import time import shutil import socket import OpenSSL import tarfile import commands -import optparse import tempfile defaults = { @@ -259,88 +255,3 @@ class PuppetHost(object): else: self._version = time.strftime(format) return self._version - -def _main(): - usage = '%prog [options] hostname [hostname ...]' - parser = optparse.OptionParser(usage=usage) - parser.defaults = defaults - parser.add_option('-a', '--all', dest='allcerts', action='store_true', - help='Create packages for all signed certificates') - parser.add_option('-d', '--domain', dest='domain', - help='Domain append to non fqdn hostnames [%default]') - parser.add_option('-f', '--force', dest='force', action='store_true', - help='Overwrite existing certs, tarballs, and packages') - parser.add_option('--force-cert', dest='force_cert', action='store_true', - help='Overwrite existing certs') - parser.add_option('--force-tarball', dest='force_tarball', - action='store_true', help='Overwrite existing tarballs') - parser.add_option('--force-package', dest='force_package', - action='store_true', help='Overwrite existing packages') - parser.add_option('-r', '--rpmdir', dest='rpmdir', metavar='dir', - help='Directory where packages are stored [%default]') - parser.add_option('--release', dest='release', metavar='num', - help='Package release number [%default]') - parser.add_option('-s', '--ssldir', dest='ssldir', metavar='dir', - help='Directory where ssl certs are stored [%default]') - # FIXME improve the help string - parser.add_option('-S', '--dest-ssldir', dest='destssldir', metavar='dir', - help='Directory where ssl certs are packaged') - parser.add_option('-t', '--template', dest='template', metavar='file', - help='RPM spec file template [%default]') - parser.add_option('-v', '--verbose', dest='verbose', action='count', - help='Be verbose (may be used more than once)') - opts, args = parser.parse_args() - - if opts.force: - opts.force_cert = True - opts.force_tarball = True - opts.force_package = True - - if opts.allcerts: - args = [] - for cert in glob.glob('%s/ca/signed/*.pem' % opts.ssldir): - basename = os.path.basename(cert) - # we need the private key as well as the cert - if os.path.exists('%s/private_keys/%s' % (opts.ssldir, basename)): - args.append(os.path.splitext(basename)[0]) - args.sort() - - if not args: - raise SystemExit(parser.print_usage()) - - opts.rpmdir = os.path.expanduser(os.path.abspath(opts.rpmdir)) - opts.ssldir = os.path.expanduser(os.path.abspath(opts.ssldir)) - for d in [opts.rpmdir, opts.ssldir]: - if not os.path.isdir(d): - raise SystemExit('%s does not exist (or is not a directory)' % d) - - if not opts.destssldir: - opts.destssldir = opts.ssldir - else: - opts.destssldir = os.path.expanduser(os.path.abspath(opts.destssldir)) - - opts.template = os.path.expanduser(opts.template % opts.__dict__) - if not os.path.isfile(opts.template): - raise SystemExit('Template file (%s) does not exist' % opts.template) - - for hostname in args: - if opts.verbose: - print '\nCreating a host package for %s' % hostname - - host = PuppetHost(hostname, opts.__dict__) - - if not os.path.exists(host.files['cert']) or opts.force_cert: - try: host.gencert() - except PuppetHostError, error: - print error - continue - - try: host.package() - except Exception, error: - print error - continue - -if __name__ == '__main__': - try: _main() - except KeyboardInterrupt: - raise SystemExit(1) |