fix(pep8): Fix various pep8 violations and version-lock pep8
Fixed all complaints from running "make pep8". Also version locked pep8 in test-requirements.txt to ensure that pep8 requirements don't change without an explicit commit.
This commit is contained in:
@@ -43,7 +43,7 @@ def handle(name, cfg, cloud, log, args):
|
|||||||
|
|
||||||
valid = ("enable-user", "enable-system", "enable",
|
valid = ("enable-user", "enable-system", "enable",
|
||||||
"disable-user", "disable-system", "disable")
|
"disable-user", "disable-system", "disable")
|
||||||
if not value in valid:
|
if value not in valid:
|
||||||
log.warn("Unknown value %s for byobu_by_default", value)
|
log.warn("Unknown value %s for byobu_by_default", value)
|
||||||
|
|
||||||
mod_user = value.endswith("-user")
|
mod_user = value.endswith("-user")
|
||||||
|
|||||||
@@ -87,7 +87,8 @@ def handle(name, cfg, cloud, log, _args):
|
|||||||
|
|
||||||
# If chef is not installed, we install chef based on 'install_type'
|
# If chef is not installed, we install chef based on 'install_type'
|
||||||
if (not os.path.isfile('/usr/bin/chef-client') or
|
if (not os.path.isfile('/usr/bin/chef-client') or
|
||||||
util.get_cfg_option_bool(chef_cfg, 'force_install', default=False)):
|
util.get_cfg_option_bool(chef_cfg,
|
||||||
|
'force_install', default=False)):
|
||||||
|
|
||||||
install_type = util.get_cfg_option_str(chef_cfg, 'install_type',
|
install_type = util.get_cfg_option_str(chef_cfg, 'install_type',
|
||||||
'packages')
|
'packages')
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ def handle(_name, cfg, _cloud, log, _args):
|
|||||||
"grub-pc/install_devices_empty", None)
|
"grub-pc/install_devices_empty", None)
|
||||||
|
|
||||||
if ((os.path.exists("/dev/sda1") and not os.path.exists("/dev/sda")) or
|
if ((os.path.exists("/dev/sda1") and not os.path.exists("/dev/sda")) or
|
||||||
(os.path.exists("/dev/xvda1") and not os.path.exists("/dev/xvda"))):
|
(os.path.exists("/dev/xvda1")
|
||||||
|
and not os.path.exists("/dev/xvda"))):
|
||||||
if idevs is None:
|
if idevs is None:
|
||||||
idevs = ""
|
idevs = ""
|
||||||
if idevs_empty is None:
|
if idevs_empty is None:
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ def handle(name, cfg, cloud, log, args):
|
|||||||
if len(args) != 0:
|
if len(args) != 0:
|
||||||
ph_cfg = util.read_conf(args[0])
|
ph_cfg = util.read_conf(args[0])
|
||||||
else:
|
else:
|
||||||
if not 'phone_home' in cfg:
|
if 'phone_home' not in cfg:
|
||||||
log.debug(("Skipping module named %s, "
|
log.debug(("Skipping module named %s, "
|
||||||
"no 'phone_home' configuration found"), name)
|
"no 'phone_home' configuration found"), name)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -18,22 +18,22 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
##
|
#
|
||||||
## The purpose of this script is to allow cloud-init to consume
|
# The purpose of this script is to allow cloud-init to consume
|
||||||
## rightscale style userdata. rightscale user data is key-value pairs
|
# rightscale style userdata. rightscale user data is key-value pairs
|
||||||
## in a url-query-string like format.
|
# in a url-query-string like format.
|
||||||
##
|
#
|
||||||
## for cloud-init support, there will be a key named
|
# for cloud-init support, there will be a key named
|
||||||
## 'CLOUD_INIT_REMOTE_HOOK'.
|
# 'CLOUD_INIT_REMOTE_HOOK'.
|
||||||
##
|
#
|
||||||
## This cloud-config module will
|
# This cloud-config module will
|
||||||
## - read the blob of data from raw user data, and parse it as key/value
|
# - read the blob of data from raw user data, and parse it as key/value
|
||||||
## - for each key that is found, download the content to
|
# - for each key that is found, download the content to
|
||||||
## the local instance/scripts directory and set them executable.
|
# the local instance/scripts directory and set them executable.
|
||||||
## - the files in that directory will be run by the user-scripts module
|
# - the files in that directory will be run by the user-scripts module
|
||||||
## Therefore, this must run before that.
|
# Therefore, this must run before that.
|
||||||
##
|
#
|
||||||
##
|
#
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ def handle(name, _cfg, cloud, log, _args):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
mdict = parse_qs(ud)
|
mdict = parse_qs(ud)
|
||||||
if not mdict or not MY_HOOKNAME in mdict:
|
if mdict or MY_HOOKNAME not in mdict:
|
||||||
log.debug(("Skipping module %s, "
|
log.debug(("Skipping module %s, "
|
||||||
"did not find %s in parsed"
|
"did not find %s in parsed"
|
||||||
" raw userdata"), name, MY_HOOKNAME)
|
" raw userdata"), name, MY_HOOKNAME)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def handle(name, cfg, cloud, log, _args):
|
|||||||
# *.* @@syslogd.example.com
|
# *.* @@syslogd.example.com
|
||||||
|
|
||||||
# process 'rsyslog'
|
# process 'rsyslog'
|
||||||
if not 'rsyslog' in cfg:
|
if 'rsyslog' not in cfg:
|
||||||
log.debug(("Skipping module named %s,"
|
log.debug(("Skipping module named %s,"
|
||||||
" no 'rsyslog' key in configuration"), name)
|
" no 'rsyslog' key in configuration"), name)
|
||||||
return
|
return
|
||||||
@@ -46,7 +46,7 @@ def handle(name, cfg, cloud, log, _args):
|
|||||||
files = []
|
files = []
|
||||||
for i, ent in enumerate(cfg['rsyslog']):
|
for i, ent in enumerate(cfg['rsyslog']):
|
||||||
if isinstance(ent, dict):
|
if isinstance(ent, dict):
|
||||||
if not "content" in ent:
|
if "content" not in ent:
|
||||||
log.warn("No 'content' entry in config entry %s", i + 1)
|
log.warn("No 'content' entry in config entry %s", i + 1)
|
||||||
continue
|
continue
|
||||||
content = ent['content']
|
content = ent['content']
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ def handle(_name, cfg, cloud, log, _args):
|
|||||||
util.write_file(tgt_fn, val, tgt_perms)
|
util.write_file(tgt_fn, val, tgt_perms)
|
||||||
|
|
||||||
for (priv, pub) in PRIV_2_PUB.iteritems():
|
for (priv, pub) in PRIV_2_PUB.iteritems():
|
||||||
if pub in cfg['ssh_keys'] or not priv in cfg['ssh_keys']:
|
if pub in cfg['ssh_keys'] or priv not in cfg['ssh_keys']:
|
||||||
continue
|
continue
|
||||||
pair = (KEY_2_FILE[priv][0], KEY_2_FILE[pub][0])
|
pair = (KEY_2_FILE[priv][0], KEY_2_FILE[pub][0])
|
||||||
cmd = ['sh', '-xc', KEY_GEN_TPL % pair]
|
cmd = ['sh', '-xc', KEY_GEN_TPL % pair]
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ def _format_repo_value(val):
|
|||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
## TODO(harlowja): move to distro?
|
# TODO(harlowja): move to distro?
|
||||||
# See man yum.conf
|
# See man yum.conf
|
||||||
def _format_repository_config(repo_id, repo_config):
|
def _format_repository_config(repo_id, repo_config):
|
||||||
to_be = configobj.ConfigObj()
|
to_be = configobj.ConfigObj()
|
||||||
@@ -89,7 +89,7 @@ def handle(name, cfg, _cloud, log, _args):
|
|||||||
repo_config = n_repo_config
|
repo_config = n_repo_config
|
||||||
missing_required = 0
|
missing_required = 0
|
||||||
for req_field in ['baseurl']:
|
for req_field in ['baseurl']:
|
||||||
if not req_field in repo_config:
|
if req_field not in repo_config:
|
||||||
log.warn(("Repository %s does not contain a %s"
|
log.warn(("Repository %s does not contain a %s"
|
||||||
" configuration 'required' entry"),
|
" configuration 'required' entry"),
|
||||||
repo_id, req_field)
|
repo_id, req_field)
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ class Distro(object):
|
|||||||
def expand_osfamily(family_list):
|
def expand_osfamily(family_list):
|
||||||
distros = []
|
distros = []
|
||||||
for family in family_list:
|
for family in family_list:
|
||||||
if not family in OSFAMILIES:
|
if family not in OSFAMILIES:
|
||||||
raise ValueError("No distibutions found for osfamily %s"
|
raise ValueError("No distibutions found for osfamily %s"
|
||||||
% (family))
|
% (family))
|
||||||
distros.extend(OSFAMILIES[family])
|
distros.extend(OSFAMILIES[family])
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ class DataSourceOVF(sources.DataSource):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def get_public_ssh_keys(self):
|
def get_public_ssh_keys(self):
|
||||||
if not 'public-keys' in self.metadata:
|
if 'public-keys' not in self.metadata:
|
||||||
return []
|
return []
|
||||||
pks = self.metadata['public-keys']
|
pks = self.metadata['public-keys']
|
||||||
if isinstance(pks, (list)):
|
if isinstance(pks, (list)):
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import serial
|
|||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
SMARTOS_ATTRIB_MAP = {
|
SMARTOS_ATTRIB_MAP = {
|
||||||
#Cloud-init Key : (SmartOS Key, Strip line endings)
|
# Cloud-init Key : (SmartOS Key, Strip line endings)
|
||||||
'local-hostname': ('hostname', True),
|
'local-hostname': ('hostname', True),
|
||||||
'public-keys': ('root_authorized_keys', True),
|
'public-keys': ('root_authorized_keys', True),
|
||||||
'user-script': ('user-script', False),
|
'user-script': ('user-script', False),
|
||||||
@@ -96,21 +96,21 @@ BUILTIN_CLOUD_CONFIG = {
|
|||||||
'device': 'ephemeral0'}],
|
'device': 'ephemeral0'}],
|
||||||
}
|
}
|
||||||
|
|
||||||
## builtin vendor-data is a boothook that writes a script into
|
# builtin vendor-data is a boothook that writes a script into
|
||||||
## /var/lib/cloud/scripts/per-boot. *That* script then handles
|
# /var/lib/cloud/scripts/per-boot. *That* script then handles
|
||||||
## executing the 'operator-script' and 'user-script' files
|
# executing the 'operator-script' and 'user-script' files
|
||||||
## that cloud-init writes into /var/lib/cloud/instance/data/
|
# that cloud-init writes into /var/lib/cloud/instance/data/
|
||||||
## if they exist.
|
# if they exist.
|
||||||
##
|
#
|
||||||
## This is all very indirect, but its done like this so that at
|
# This is all very indirect, but its done like this so that at
|
||||||
## some point in the future, perhaps cloud-init wouldn't do it at
|
# some point in the future, perhaps cloud-init wouldn't do it at
|
||||||
## all, but rather the vendor actually provide vendor-data that accomplished
|
# all, but rather the vendor actually provide vendor-data that accomplished
|
||||||
## their desires. (That is the point of vendor-data).
|
# their desires. (That is the point of vendor-data).
|
||||||
##
|
#
|
||||||
## cloud-init does cheat a bit, and write the operator-script and user-script
|
# cloud-init does cheat a bit, and write the operator-script and user-script
|
||||||
## itself. It could have the vendor-script do that, but it seems better
|
# itself. It could have the vendor-script do that, but it seems better
|
||||||
## to not require the image to contain a tool (mdata-get) to read those
|
# to not require the image to contain a tool (mdata-get) to read those
|
||||||
## keys when we have a perfectly good one inside cloud-init.
|
# keys when we have a perfectly good one inside cloud-init.
|
||||||
BUILTIN_VENDOR_DATA = """\
|
BUILTIN_VENDOR_DATA = """\
|
||||||
#cloud-boothook
|
#cloud-boothook
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ class DataSource(object):
|
|||||||
defhost = "localhost"
|
defhost = "localhost"
|
||||||
domain = defdomain
|
domain = defdomain
|
||||||
|
|
||||||
if not self.metadata or not 'local-hostname' in self.metadata:
|
if self.metadata or 'local-hostname' not in self.metadata:
|
||||||
# this is somewhat questionable really.
|
# this is somewhat questionable really.
|
||||||
# the cloud datasource was asked for a hostname
|
# the cloud datasource was asked for a hostname
|
||||||
# and didn't have one. raising error might be more appropriate
|
# and didn't have one. raising error might be more appropriate
|
||||||
|
|||||||
@@ -642,7 +642,7 @@ class Modules(object):
|
|||||||
# Try the modules frequency, otherwise fallback to a known one
|
# Try the modules frequency, otherwise fallback to a known one
|
||||||
if not freq:
|
if not freq:
|
||||||
freq = mod.frequency
|
freq = mod.frequency
|
||||||
if not freq in FREQUENCIES:
|
if freq not in FREQUENCIES:
|
||||||
freq = PER_INSTANCE
|
freq = PER_INSTANCE
|
||||||
LOG.debug("Running module %s (%s) with frequency %s",
|
LOG.debug("Running module %s (%s) with frequency %s",
|
||||||
name, mod, freq)
|
name, mod, freq)
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ def get_cfg_option_list(yobj, key, default=None):
|
|||||||
@return: The configuration option as a list of strings or default if key
|
@return: The configuration option as a list of strings or default if key
|
||||||
is not found.
|
is not found.
|
||||||
"""
|
"""
|
||||||
if not key in yobj:
|
if key not in yobj:
|
||||||
return default
|
return default
|
||||||
if yobj[key] is None:
|
if yobj[key] is None:
|
||||||
return []
|
return []
|
||||||
@@ -1148,7 +1148,7 @@ def chownbyname(fname, user=None, group=None):
|
|||||||
# this returns the specific 'mode' entry, cleanly formatted, with value
|
# this returns the specific 'mode' entry, cleanly formatted, with value
|
||||||
def get_output_cfg(cfg, mode):
|
def get_output_cfg(cfg, mode):
|
||||||
ret = [None, None]
|
ret = [None, None]
|
||||||
if not cfg or not 'output' in cfg:
|
if cfg or 'output' not in cfg:
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
outcfg = cfg['output']
|
outcfg = cfg['output']
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
httpretty>=0.7.1
|
httpretty>=0.7.1
|
||||||
mocker
|
mocker
|
||||||
nose
|
nose
|
||||||
pep8
|
pep8==1.5.7
|
||||||
pyflakes
|
pyflakes
|
||||||
pylint
|
pylint
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ class TestAzureDataSource(MockerTestCase):
|
|||||||
self.assertEqual(dsrc.userdata_raw, mydata)
|
self.assertEqual(dsrc.userdata_raw, mydata)
|
||||||
|
|
||||||
def test_no_datasource_expected(self):
|
def test_no_datasource_expected(self):
|
||||||
#no source should be found if no seed_dir and no devs
|
# no source should be found if no seed_dir and no devs
|
||||||
data = {}
|
data = {}
|
||||||
dsrc = self._get_ds({})
|
dsrc = self._get_ds({})
|
||||||
ret = dsrc.get_data()
|
ret = dsrc.get_data()
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class TestNoCloudDataSource(MockerTestCase):
|
|||||||
self.assertTrue(ret)
|
self.assertTrue(ret)
|
||||||
|
|
||||||
def test_fs_label(self):
|
def test_fs_label(self):
|
||||||
#find_devs_with should not be called ff fs_label is None
|
# find_devs_with should not be called ff fs_label is None
|
||||||
ds = DataSourceNoCloud.DataSourceNoCloud
|
ds = DataSourceNoCloud.DataSourceNoCloud
|
||||||
|
|
||||||
class PsuedoException(Exception):
|
class PsuedoException(Exception):
|
||||||
@@ -74,7 +74,7 @@ class TestNoCloudDataSource(MockerTestCase):
|
|||||||
self.assertFalse(ret)
|
self.assertFalse(ret)
|
||||||
|
|
||||||
def test_no_datasource_expected(self):
|
def test_no_datasource_expected(self):
|
||||||
#no source should be found if no cmdline, config, and fs_label=None
|
# no source should be found if no cmdline, config, and fs_label=None
|
||||||
sys_cfg = {'datasource': {'NoCloud': {'fs_label': None}}}
|
sys_cfg = {'datasource': {'NoCloud': {'fs_label': None}}}
|
||||||
|
|
||||||
ds = DataSourceNoCloud.DataSourceNoCloud
|
ds = DataSourceNoCloud.DataSourceNoCloud
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
|
|||||||
'security': 'http://security-mirror2-intel'})
|
'security': 'http://security-mirror2-intel'})
|
||||||
|
|
||||||
|
|
||||||
#def _get_package_mirror_info(mirror_info, availability_zone=None,
|
# def _get_package_mirror_info(mirror_info, availability_zone=None,
|
||||||
# mirror_filter=util.search_for_mirror):
|
# mirror_filter=util.search_for_mirror):
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class TestDisabled(MockerTestCase):
|
|||||||
self.handle = cc_growpart.handle
|
self.handle = cc_growpart.handle
|
||||||
|
|
||||||
def test_mode_off(self):
|
def test_mode_off(self):
|
||||||
#Test that nothing is done if mode is off.
|
# Test that nothing is done if mode is off.
|
||||||
|
|
||||||
# this really only verifies that resizer_factory isn't called
|
# this really only verifies that resizer_factory isn't called
|
||||||
config = {'growpart': {'mode': 'off'}}
|
config = {'growpart': {'mode': 'off'}}
|
||||||
@@ -109,7 +109,7 @@ class TestConfig(MockerTestCase):
|
|||||||
self.assertTrue(isinstance(ret, cc_growpart.ResizeGrowPart))
|
self.assertTrue(isinstance(ret, cc_growpart.ResizeGrowPart))
|
||||||
|
|
||||||
def test_handle_with_no_growpart_entry(self):
|
def test_handle_with_no_growpart_entry(self):
|
||||||
#if no 'growpart' entry in config, then mode=auto should be used
|
# if no 'growpart' entry in config, then mode=auto should be used
|
||||||
|
|
||||||
myresizer = object()
|
myresizer = object()
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ class TestResize(MockerTestCase):
|
|||||||
self.mocker.order()
|
self.mocker.order()
|
||||||
|
|
||||||
def test_simple_devices(self):
|
def test_simple_devices(self):
|
||||||
#test simple device list
|
# test simple device list
|
||||||
# this patches out devent2dev, os.stat, and device_part_info
|
# this patches out devent2dev, os.stat, and device_part_info
|
||||||
# so in the end, doesn't test a lot
|
# so in the end, doesn't test a lot
|
||||||
devs = ["/dev/XXda1", "/dev/YYda2"]
|
devs = ["/dev/XXda1", "/dev/YYda2"]
|
||||||
@@ -187,7 +187,7 @@ class TestResize(MockerTestCase):
|
|||||||
find("/dev/YYda2", resized)[1])
|
find("/dev/YYda2", resized)[1])
|
||||||
self.assertEqual(cc_growpart.RESIZE.SKIPPED,
|
self.assertEqual(cc_growpart.RESIZE.SKIPPED,
|
||||||
find(enoent[0], resized)[1])
|
find(enoent[0], resized)[1])
|
||||||
#self.assertEqual(resize_calls,
|
# self.assertEqual(resize_calls,
|
||||||
# [("/dev/XXda", "1", "/dev/XXda1"),
|
# [("/dev/XXda", "1", "/dev/XXda1"),
|
||||||
# ("/dev/YYda", "2", "/dev/YYda2")])
|
# ("/dev/YYda", "2", "/dev/YYda2")])
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ def check_lps_ret(psc_return, mode=None):
|
|||||||
cmd = psc_return[0]
|
cmd = psc_return[0]
|
||||||
timeout = psc_return[1]
|
timeout = psc_return[1]
|
||||||
|
|
||||||
if not 'shutdown' in psc_return[0][0]:
|
if 'shutdown' not in psc_return[0][0]:
|
||||||
errs.append("string 'shutdown' not in cmd")
|
errs.append("string 'shutdown' not in cmd")
|
||||||
|
|
||||||
if mode is not None:
|
if mode is not None:
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class TestConfig(helpers.FilesystemMockingTestCase):
|
|||||||
'epel-testing': {
|
'epel-testing': {
|
||||||
'name': 'Extra Packages for Enterprise Linux 5 - Testing',
|
'name': 'Extra Packages for Enterprise Linux 5 - Testing',
|
||||||
# Missing this should cause the repo not to be written
|
# Missing this should cause the repo not to be written
|
||||||
#'baseurl': 'http://blah.org/pub/epel/testing/5/$basearch',
|
# 'baseurl': 'http://blah.org/pub/epel/testing/5/$basearch',
|
||||||
'enabled': False,
|
'enabled': False,
|
||||||
'gpgcheck': True,
|
'gpgcheck': True,
|
||||||
'gpgkey': 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL',
|
'gpgkey': 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL',
|
||||||
|
|||||||
Reference in New Issue
Block a user