Massive pylint + pep8 fixups!
This commit is contained in:
parent
8ed740ce0f
commit
ea70a98476
@ -75,6 +75,7 @@ def welcome(action):
|
||||
sys.stderr.flush()
|
||||
LOG.info(welcome_msg)
|
||||
|
||||
|
||||
def extract_fns(args):
|
||||
# Files are already opened so lets just pass that along
|
||||
# since it would of broke if it couldn't have
|
||||
@ -394,10 +395,10 @@ def main():
|
||||
' pass to this module'))
|
||||
parser_single.set_defaults(action=('single', main_single))
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Setup basic logging to start (until reinitialized)
|
||||
# iff in debug mode...
|
||||
if args.debug:
|
||||
logging.setupBasicLogging()
|
||||
|
||||
@ -407,4 +408,3 @@ def main():
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
|
||||
|
@ -38,6 +38,7 @@ LOG = logging.getLogger(__name__)
|
||||
# as providing a backwards compatible object that can be maintained
|
||||
# while the stages/other objects can be worked on independently...
|
||||
|
||||
|
||||
class Cloud(object):
|
||||
def __init__(self, datasource, paths, cfg, distro, runners):
|
||||
self.datasource = datasource
|
||||
|
@ -24,7 +24,7 @@ import os
|
||||
from cloudinit import templater
|
||||
from cloudinit import util
|
||||
|
||||
ruby_version_default = "1.8"
|
||||
RUBY_VERSION_DEFAULT = "1.8"
|
||||
|
||||
|
||||
def handle(name, cfg, cloud, log, _args):
|
||||
@ -92,7 +92,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
# this will install and run the chef-client from gems
|
||||
chef_version = util.get_cfg_option_str(chef_cfg, 'version', None)
|
||||
ruby_version = util.get_cfg_option_str(chef_cfg, 'ruby_version',
|
||||
ruby_version_default)
|
||||
RUBY_VERSION_DEFAULT)
|
||||
install_chef_from_gems(cloud.distro, ruby_version, chef_version)
|
||||
# and finally, run chef-client
|
||||
log.debug('Running chef-client')
|
||||
|
@ -24,13 +24,13 @@ from cloudinit.settings import PER_ALWAYS
|
||||
|
||||
frequency = PER_ALWAYS
|
||||
|
||||
reject_cmd = ['route', 'add', '-host', '169.254.169.254', 'reject']
|
||||
REJECT_CMD = ['route', 'add', '-host', '169.254.169.254', 'reject']
|
||||
|
||||
|
||||
def handle(name, cfg, _cloud, log, _args):
|
||||
disabled = util.get_cfg_option_bool(cfg, "disable_ec2_metadata", False)
|
||||
if disabled:
|
||||
util.subp(reject_cmd)
|
||||
util.subp(REJECT_CMD)
|
||||
else:
|
||||
log.debug(("Skipping transform named %s,"
|
||||
" disabling the ec2 route not enabled"), name)
|
||||
|
@ -28,7 +28,7 @@ from cloudinit.settings import PER_ALWAYS
|
||||
|
||||
frequency = PER_ALWAYS
|
||||
|
||||
final_message_def = ("Cloud-init v. {{version}} finished at {{timestamp}}."
|
||||
FINAL_MESSAGE_DEF = ("Cloud-init v. {{version}} finished at {{timestamp}}."
|
||||
" Up {{uptime}} seconds.")
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ def handle(_name, cfg, cloud, log, args):
|
||||
msg_in = util.load_file(template_fn)
|
||||
|
||||
if not msg_in:
|
||||
msg_in = final_message_def
|
||||
msg_in = FINAL_MESSAGE_DEF
|
||||
|
||||
uptime = util.uptime()
|
||||
ts = util.time_rfc2822()
|
||||
|
@ -26,13 +26,13 @@ from cloudinit import util
|
||||
frequency = PER_INSTANCE
|
||||
|
||||
# This is a tool that cloud init provides
|
||||
helper_tool = '/usr/lib/cloud-init/write-ssh-key-fingerprints'
|
||||
HELPER_TOOL = '/usr/lib/cloud-init/write-ssh-key-fingerprints'
|
||||
|
||||
|
||||
def handle(name, cfg, cloud, log, _args):
|
||||
if not os.path.exists(helper_tool):
|
||||
if not os.path.exists(HELPER_TOOL):
|
||||
log.warn(("Unable to activate transform %s,"
|
||||
" helper tool not found at %s"), name, helper_tool)
|
||||
" helper tool not found at %s"), name, HELPER_TOOL)
|
||||
return
|
||||
|
||||
fp_blacklist = util.get_cfg_option_list(cfg,
|
||||
@ -42,7 +42,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
["ssh-dss"])
|
||||
|
||||
try:
|
||||
cmd = [helper_tool]
|
||||
cmd = [HELPER_TOOL]
|
||||
cmd.append(','.join(fp_blacklist))
|
||||
cmd.append(','.join(key_blacklist))
|
||||
(stdout, _stderr) = util.subp(cmd)
|
||||
|
@ -24,10 +24,10 @@ import re
|
||||
|
||||
from cloudinit import util
|
||||
|
||||
# shortname matches 'sda', 'sda1', 'xvda', 'hda', 'sdb', xvdb, vda, vdd1
|
||||
shortname_filter = r"^[x]{0,1}[shv]d[a-z][0-9]*$"
|
||||
shortname = re.compile(shortname_filter)
|
||||
ws = re.compile("[%s]+" % (whitespace))
|
||||
# Shortname matches 'sda', 'sda1', 'xvda', 'hda', 'sdb', xvdb, vda, vdd1
|
||||
SHORTNAME_FILTER = r"^[x]{0,1}[shv]d[a-z][0-9]*$"
|
||||
SHORTNAME = re.compile(SHORTNAME_FILTER)
|
||||
WS = re.compile("[%s]+" % (whitespace))
|
||||
|
||||
|
||||
def is_mdname(name):
|
||||
@ -55,7 +55,6 @@ def handle(_name, cfg, cloud, log, _args):
|
||||
if "mounts" in cfg:
|
||||
cfgmnt = cfg["mounts"]
|
||||
|
||||
|
||||
for i in range(len(cfgmnt)):
|
||||
# skip something that wasn't a list
|
||||
if not isinstance(cfgmnt[i], list):
|
||||
@ -85,7 +84,7 @@ def handle(_name, cfg, cloud, log, _args):
|
||||
cfgmnt[i][0] = renamed
|
||||
log.debug("Mapped metadata name %s to %s", startname, renamed)
|
||||
else:
|
||||
if shortname.match(startname):
|
||||
if SHORTNAME.match(startname):
|
||||
renamed = "/dev/%s" % startname
|
||||
log.debug("Mapped shortname name %s to %s", startname, renamed)
|
||||
cfgmnt[i][0] = renamed
|
||||
@ -171,7 +170,7 @@ def handle(_name, cfg, cloud, log, _args):
|
||||
fstab = util.load_file(cloud.paths.join(True, "/etc/fstab"))
|
||||
for line in fstab.splitlines():
|
||||
try:
|
||||
toks = ws.split(line)
|
||||
toks = WS.split(line)
|
||||
if toks[3].find(comment) != -1:
|
||||
continue
|
||||
except:
|
||||
|
@ -26,8 +26,13 @@ from cloudinit.settings import PER_INSTANCE
|
||||
|
||||
frequency = PER_INSTANCE
|
||||
|
||||
post_list_all = ['pub_key_dsa', 'pub_key_rsa', 'pub_key_ecdsa',
|
||||
'instance_id', 'hostname']
|
||||
POST_LIST_ALL = [
|
||||
'pub_key_dsa',
|
||||
'pub_key_rsa',
|
||||
'pub_key_ecdsa',
|
||||
'instance_id',
|
||||
'hostname'
|
||||
]
|
||||
|
||||
|
||||
# phone_home:
|
||||
@ -63,7 +68,7 @@ def handle(name, cfg, cloud, log, args):
|
||||
" is not an integer, using %s instead"), tries)
|
||||
|
||||
if post_list == "all":
|
||||
post_list = post_list_all
|
||||
post_list = POST_LIST_ALL
|
||||
|
||||
all_keys = {}
|
||||
all_keys['instance_id'] = cloud.get_instance_id()
|
||||
|
@ -27,7 +27,7 @@ from cloudinit.settings import PER_ALWAYS
|
||||
|
||||
frequency = PER_ALWAYS
|
||||
|
||||
resize_fs_prefixes_cmds = [
|
||||
RESIZE_FS_PREFIXES_CMDS = [
|
||||
('ext', 'resize2fs'),
|
||||
('xfs', 'xfs_growfs'),
|
||||
]
|
||||
@ -98,7 +98,7 @@ def handle(name, cfg, cloud, log, args):
|
||||
|
||||
resizer = None
|
||||
fstype_lc = fs_type.lower()
|
||||
for (pfix, root_cmd) in resize_fs_prefixes_cmds:
|
||||
for (pfix, root_cmd) in RESIZE_FS_PREFIXES_CMDS:
|
||||
if fstype_lc.startswith(pfix):
|
||||
resizer = root_cmd
|
||||
break
|
||||
|
@ -26,16 +26,16 @@ from cloudinit.settings import PER_ALWAYS
|
||||
|
||||
frequency = PER_ALWAYS
|
||||
|
||||
script_subdir = 'per-boot'
|
||||
SCRIPT_SUBDIR = 'per-boot'
|
||||
|
||||
|
||||
def handle(name, _cfg, cloud, log, _args):
|
||||
# Comes from the following:
|
||||
# https://forums.aws.amazon.com/thread.jspa?threadID=96918
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', script_subdir)
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', SCRIPT_SUBDIR)
|
||||
try:
|
||||
util.runparts(runparts_path)
|
||||
except:
|
||||
log.warn("Failed to run transform %s (%s in %s)",
|
||||
name, script_subdir, runparts_path)
|
||||
name, SCRIPT_SUBDIR, runparts_path)
|
||||
raise
|
||||
|
@ -26,16 +26,16 @@ from cloudinit.settings import PER_INSTANCE
|
||||
|
||||
frequency = PER_INSTANCE
|
||||
|
||||
script_subdir = 'per-instance'
|
||||
SCRIPT_SUBDIR = 'per-instance'
|
||||
|
||||
|
||||
def handle(name, _cfg, cloud, log, _args):
|
||||
# Comes from the following:
|
||||
# https://forums.aws.amazon.com/thread.jspa?threadID=96918
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', script_subdir)
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', SCRIPT_SUBDIR)
|
||||
try:
|
||||
util.runparts(runparts_path)
|
||||
except:
|
||||
log.warn("Failed to run transform %s (%s in %s)",
|
||||
name, script_subdir, runparts_path)
|
||||
name, SCRIPT_SUBDIR, runparts_path)
|
||||
raise
|
||||
|
@ -26,16 +26,16 @@ from cloudinit.settings import PER_ONCE
|
||||
|
||||
frequency = PER_ONCE
|
||||
|
||||
script_subdir = 'per-once'
|
||||
SCRIPT_SUBDIR = 'per-once'
|
||||
|
||||
|
||||
def handle(name, _cfg, cloud, log, _args):
|
||||
# Comes from the following:
|
||||
# https://forums.aws.amazon.com/thread.jspa?threadID=96918
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', script_subdir)
|
||||
runparts_path = os.path.join(cloud.get_cpath(), 'scripts', SCRIPT_SUBDIR)
|
||||
try:
|
||||
util.runparts(runparts_path)
|
||||
except:
|
||||
log.warn("Failed to run transform %s (%s in %s)",
|
||||
name, script_subdir, runparts_path)
|
||||
name, SCRIPT_SUBDIR, runparts_path)
|
||||
raise
|
||||
|
@ -26,17 +26,17 @@ from cloudinit.settings import PER_INSTANCE
|
||||
|
||||
frequency = PER_INSTANCE
|
||||
|
||||
script_subdir = 'scripts'
|
||||
SCRIPT_SUBDIR = 'scripts'
|
||||
|
||||
|
||||
def handle(name, _cfg, cloud, log, _args):
|
||||
# This is written to by the user data handlers
|
||||
# Ie, any custom shell scripts that come down
|
||||
# go here...
|
||||
runparts_path = os.path.join(cloud.get_ipath_cur(), script_subdir)
|
||||
runparts_path = os.path.join(cloud.get_ipath_cur(), SCRIPT_SUBDIR)
|
||||
try:
|
||||
util.runparts(runparts_path)
|
||||
except:
|
||||
log.warn("Failed to run transform %s (%s in %s)",
|
||||
name, script_subdir, runparts_path)
|
||||
name, SCRIPT_SUBDIR, runparts_path)
|
||||
raise
|
||||
|
@ -25,7 +25,7 @@ from cloudinit import util
|
||||
from string import letters, digits # pylint: disable=W0402
|
||||
|
||||
# We are removing certain 'painful' letters/numbers
|
||||
pw_set = (letters.translate(None, 'loLOI') +
|
||||
PW_SET = (letters.translate(None, 'loLOI') +
|
||||
digits.translate(None, '01'))
|
||||
|
||||
|
||||
@ -148,4 +148,4 @@ def handle(_name, cfg, cloud, log, args):
|
||||
|
||||
|
||||
def rand_user_password(pwlen=9):
|
||||
return util.rand_str(pwlen, select_from=pw_set)
|
||||
return util.rand_str(pwlen, select_from=PW_SET)
|
||||
|
@ -24,11 +24,11 @@ import glob
|
||||
from cloudinit import util
|
||||
from cloudinit import ssh_util
|
||||
|
||||
DISABLE_ROOT_OPTS = ( "no-port-forwarding,no-agent-forwarding,"
|
||||
DISABLE_ROOT_OPTS = ("no-port-forwarding,no-agent-forwarding,"
|
||||
"no-X11-forwarding,command=\"echo \'Please login as the user \\\"$USER\\\" "
|
||||
"rather than the user \\\"root\\\".\';echo;sleep 10\"")
|
||||
|
||||
key2file = {
|
||||
KEY_2_FILE = {
|
||||
"rsa_private": ("/etc/ssh/ssh_host_rsa_key", 0600),
|
||||
"rsa_public": ("/etc/ssh/ssh_host_rsa_key.pub", 0644),
|
||||
"dsa_private": ("/etc/ssh/ssh_host_dsa_key", 0600),
|
||||
@ -37,15 +37,17 @@ key2file = {
|
||||
"ecdsa_public": ("/etc/ssh/ssh_host_ecdsa_key.pub", 0644),
|
||||
}
|
||||
|
||||
priv2pub = {
|
||||
PRIV_2_PUB = {
|
||||
'rsa_private': 'rsa_public',
|
||||
'dsa_private': 'dsa_public',
|
||||
'ecdsa_private': 'ecdsa_public',
|
||||
}
|
||||
|
||||
key_gen_tpl = 'o=$(ssh-keygen -yf "%s") && echo "$o" root@localhost > "%s"'
|
||||
KEY_GEN_TPL = 'o=$(ssh-keygen -yf "%s") && echo "$o" root@localhost > "%s"'
|
||||
|
||||
generate_keys = ['rsa', 'dsa', 'ecdsa']
|
||||
GENERATE_KEY_NAMES = ['rsa', 'dsa', 'ecdsa']
|
||||
|
||||
KEY_FILE_TPL = '/etc/ssh/ssh_host_%s_key'
|
||||
|
||||
|
||||
def handle(_name, cfg, cloud, log, _args):
|
||||
@ -62,17 +64,17 @@ def handle(_name, cfg, cloud, log, _args):
|
||||
if "ssh_keys" in cfg:
|
||||
# if there are keys in cloud-config, use them
|
||||
for (key, val) in cfg["ssh_keys"].iteritems():
|
||||
if key in key2file:
|
||||
tgt_fn = key2file[key][0]
|
||||
tgt_perms = key2file[key][1]
|
||||
if key in KEY_2_FILE:
|
||||
tgt_fn = KEY_2_FILE[key][0]
|
||||
tgt_perms = KEY_2_FILE[key][1]
|
||||
util.write_file(cloud.paths.join(False, tgt_fn),
|
||||
val, tgt_perms)
|
||||
|
||||
for (priv, pub) in priv2pub.iteritems():
|
||||
for (priv, pub) in PRIV_2_PUB.iteritems():
|
||||
if pub in cfg['ssh_keys'] or not priv in cfg['ssh_keys']:
|
||||
continue
|
||||
pair = (key2file[priv][0], key2file[pub][0])
|
||||
cmd = ['sh', '-xc', key_gen_tpl % pair]
|
||||
pair = (KEY_2_FILE[priv][0], KEY_2_FILE[pub][0])
|
||||
cmd = ['sh', '-xc', KEY_GEN_TPL % pair]
|
||||
try:
|
||||
# TODO: Is this guard needed?
|
||||
with util.SeLinuxGuard("/etc/ssh", recursive=True):
|
||||
@ -84,11 +86,10 @@ def handle(_name, cfg, cloud, log, _args):
|
||||
else:
|
||||
# if not, generate them
|
||||
genkeys = util.get_cfg_option_list(cfg,
|
||||
'ssh_genkeytypes',
|
||||
generate_keys)
|
||||
'ssh_genkeytypes',
|
||||
GENERATE_KEY_NAMES)
|
||||
for keytype in genkeys:
|
||||
keyfile = '/etc/ssh/ssh_host_%s_key' % (keytype)
|
||||
keyfile = cloud.paths.join(False, keyfile)
|
||||
keyfile = cloud.paths.join(False, KEY_FILE_TPL % (keytype))
|
||||
util.ensure_dir(os.path.dirname(keyfile))
|
||||
if not os.path.exists(keyfile):
|
||||
cmd = ['ssh-keygen', '-t', keytype, '-N', '', '-f', keyfile]
|
||||
|
@ -157,4 +157,3 @@ def fetch(distro_name, mods=(__name__, )):
|
||||
% (distro_name))
|
||||
distro_cls = getattr(mod, 'Distro')
|
||||
return distro_cls
|
||||
|
||||
|
@ -226,5 +226,3 @@ def type_from_starts_with(payload, default=None):
|
||||
if payload_lc.startswith(text):
|
||||
return INCLUSION_TYPES_MAP[text]
|
||||
return default
|
||||
|
||||
|
||||
|
@ -20,7 +20,6 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import logging
|
||||
import logging.handlers
|
||||
import logging.config
|
||||
@ -53,7 +52,6 @@ def setupBasicLogging():
|
||||
root.setLevel(DEBUG)
|
||||
|
||||
|
||||
|
||||
def setupLogging(cfg=None):
|
||||
# See if the config provides any logging conf...
|
||||
if not cfg:
|
||||
|
@ -251,6 +251,7 @@ datasources = [
|
||||
(DataSourceMAAS, (sources.DEP_FILESYSTEM, sources.DEP_NETWORK)),
|
||||
]
|
||||
|
||||
|
||||
# Return a list of data sources that match this set of dependencies
|
||||
def get_datasource_list(depends):
|
||||
return sources.list_from_depends(depends, datasources)
|
||||
|
@ -211,7 +211,6 @@ def update_authorized_keys(fname, keys):
|
||||
|
||||
|
||||
def setup_user_keys(keys, user, key_prefix, paths):
|
||||
|
||||
# Make sure the users .ssh dir is setup accordingly
|
||||
pwent = pwd.getpwnam(user)
|
||||
ssh_dir = os.path.join(pwent.pw_dir, '.ssh')
|
||||
|
@ -89,8 +89,8 @@ def readurl(url, data=None, timeout=None,
|
||||
|
||||
excepts = []
|
||||
LOG.info(("Attempting to open '%s' with %s attempts"
|
||||
" (%s retries, timeout=%s) to be performed"),
|
||||
url, attempts, retries, timeout)
|
||||
" (%s retries, timeout=%s) to be performed"),
|
||||
url, attempts, retries, timeout)
|
||||
open_args = {}
|
||||
if timeout is not None:
|
||||
open_args['timeout'] = int(timeout)
|
||||
|
@ -234,7 +234,3 @@ def convert_string(raw_data, headers=None):
|
||||
msg = MIMEBase(maintype, subtype, *headers)
|
||||
msg.set_payload(data)
|
||||
return msg
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ import pwd
|
||||
import random
|
||||
import shutil
|
||||
import socket
|
||||
import string # pylint: disable=W0402
|
||||
import string # pylint: disable=W0402
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
@ -153,6 +153,7 @@ def SilentTemporaryFile(**kwargs):
|
||||
# file to unlink has been unlinked elsewhere..
|
||||
LOG.debug("Created temporary file %s", fh.name)
|
||||
fh.unlink = del_file
|
||||
|
||||
# Add a new method that will unlink
|
||||
# right 'now' but still lets the exit
|
||||
# method attempt to remove it (which will
|
||||
@ -160,6 +161,7 @@ def SilentTemporaryFile(**kwargs):
|
||||
# about files that are not there)
|
||||
def unlink_now():
|
||||
fh.unlink(fh.name)
|
||||
|
||||
setattr(fh, 'unlink_now', unlink_now)
|
||||
return fh
|
||||
|
||||
@ -214,7 +216,6 @@ def rand_str(strlen=32, select_from=None):
|
||||
return "".join([random.choice(select_from) for _x in range(0, strlen)])
|
||||
|
||||
|
||||
|
||||
def read_conf(fname):
|
||||
try:
|
||||
return load_yaml(load_file(fname), default={})
|
||||
@ -727,7 +728,7 @@ def get_fqdn_from_hosts(hostname, filename="/etc/hosts"):
|
||||
For each host a single line should be present with
|
||||
the following information:
|
||||
|
||||
IP_address canonical_hostname [aliases...]
|
||||
IP_address canonical_hostname [aliases...]
|
||||
|
||||
Fields of the entry are separated by any number of blanks and/or tab
|
||||
characters. Text from a "#" character until the end of the line is a
|
||||
|
Loading…
x
Reference in New Issue
Block a user