Browse Source

Update to a newer hacking version, fix pep8 errors

We had a very old hacking version, so we should update it to the
same version as other projects are using. The update also required
additional changes to the Python code to fix new errors and
warnings.

Change-Id: Ic511513057581841fe2230b69a2a413ec0981f15
changes/96/754096/1
Javier Pena 1 year ago
parent
commit
3048287985
  1. 2
      packstack/installer/output_messages.py
  2. 1
      packstack/installer/processors.py
  3. 28
      packstack/installer/run_setup.py
  4. 2
      packstack/installer/setup_controller.py
  5. 4
      packstack/modules/ospluginutils.py
  6. 34
      packstack/modules/puppet.py
  7. 2
      packstack/plugins/cinder_250.py
  8. 2
      packstack/plugins/neutron_350.py
  9. 2
      packstack/plugins/prescript_000.py
  10. 2
      packstack/plugins/puppet_950.py
  11. 2
      packstack/plugins/ssl_001.py
  12. 2
      packstack/plugins/swift_600.py
  13. 4
      test-requirements.txt
  14. 2
      tests/installer/test_run_setup.py
  15. 4
      tests/installer/test_validators.py
  16. 2
      tox.ini

2
packstack/installer/output_messages.py

@ -23,7 +23,7 @@ you can relocate %s position in the text as long as the context is kept.
DONT CHANGE any of the params names (in UPPER-CASE)
they are used in the engine-setup.py
'''
''' # noqa: W605
from packstack.installer import basedefs

1
packstack/installer/processors.py

@ -154,6 +154,7 @@ def process_bool(param, param_name, config=None):
elif param.lower() in ('n', 'no', 'false'):
return False
# Define silent processors
for proc_func in (process_bool, process_add_quotes_around_values):
proc_func.silent = True

28
packstack/installer/run_setup.py

@ -73,7 +73,7 @@ def initLogging(debug):
logging.root.handlers = []
logging.root.addHandler(hdlr)
logging.root.setLevel(level)
except:
except Exception:
logging.error(traceback.format_exc())
raise Exception(output_messages.ERR_EXP_FAILED_INIT_LOGGER)
@ -150,7 +150,7 @@ def _getInputFromUser(param):
# add the new line so messages wont be displayed in the same line as the question
print("")
raise
except:
except Exception:
logging.error(traceback.format_exc())
raise Exception(output_messages.ERR_EXP_READ_INPUT_PARAM % (param.CONF_NAME))
@ -256,7 +256,7 @@ def mask(input):
output.remove(org)
output.insert(orgIndex, item)
if isinstance(input, six.string_types):
output = utils.mask_string(input, masked_value_set)
output = utils.mask_string(input, masked_value_set)
return output
@ -531,7 +531,7 @@ def _handleInteractiveParams():
except Exception:
logging.error(traceback.format_exc())
raise
except:
except Exception:
logging.error(traceback.format_exc())
raise Exception(output_messages.ERR_EXP_HANDLE_PARAMS)
@ -570,16 +570,16 @@ def _displaySummary():
for param in group.parameters.itervalues():
if not param.USE_DEFAULT and param.CONF_NAME in controller.CONF:
cmdOption = param.CMD_OPTION
l = 30 - len(cmdOption)
length = 30 - len(cmdOption)
maskParam = param.MASK_INPUT
# Only call mask on a value if the param has MASK_INPUT set to True
if maskParam:
logging.info("%s: %s" % (cmdOption, mask(controller.CONF[param.CONF_NAME])))
print("%s:" % (cmdOption) + " " * l + mask(controller.CONF[param.CONF_NAME]))
print("%s:" % (cmdOption) + " " * length + mask(controller.CONF[param.CONF_NAME]))
else:
# Otherwise, log & display it as it is
logging.info("%s: %s" % (cmdOption, str(controller.CONF[param.CONF_NAME])))
print("%s:" % (cmdOption) + " " * l + str(controller.CONF[param.CONF_NAME]))
print("%s:" % (cmdOption) + " " * length + str(controller.CONF[param.CONF_NAME]))
logging.info("*** User input summary ***")
answer = _askYesNo(output_messages.INFO_USE_PARAMS)
if not answer:
@ -900,9 +900,9 @@ def plugin_compare(x, y):
Used to sort the plugin file list
according to the number at the end of the plugin module
"""
x_match = re.search(".+\_(\d\d\d)", x)
x_match = re.search(r'.+\_(\d\d\d)', x)
x_cmp = x_match.group(1)
y_match = re.search(".+\_(\d\d\d)", y)
y_match = re.search(r'.+\_(\d\d\d)', y)
y_cmp = y_match.group(1)
return int(x_cmp) - int(y_cmp)
@ -918,7 +918,7 @@ def loadPlugins():
fileList = sorted(fileList, key=cmp_to_key(plugin_compare))
for item in fileList:
# Looking for files that end with ###.py, example: a_plugin_100.py
match = re.search("^(.+\_\d\d\d)\.py$", item)
match = re.search(r'^(.+\_\d\d\d)\.py$', item)
if match:
try:
moduleToLoad = match.group(1)
@ -928,7 +928,7 @@ def loadPlugins():
globals()[moduleToLoad] = moduleobj
checkPlugin(moduleobj)
controller.addPlugin(moduleobj)
except:
except Exception:
logging.error("Failed to load plugin from file %s", item)
logging.error(traceback.format_exc())
raise Exception("Failed to load plugin from file %s" % item)
@ -1046,9 +1046,9 @@ def main():
# If using an answer file, setting a default password
# does not really make sense
if getattr(options, 'default_password', None):
msg = ('Please do not set --default-password '
'when specifying an answer file.')
raise FlagValidationError(msg)
msg = ('Please do not set --default-password '
'when specifying an answer file.')
raise FlagValidationError(msg)
confFile = os.path.expanduser(options.answer_file)
if not os.path.exists(confFile):
raise Exception(output_messages.ERR_NO_ANSWER_FILE % confFile)

2
packstack/installer/setup_controller.py

@ -44,7 +44,7 @@ class Controller(object):
instance from a class which inherit Controller.
did not use isinstance because inheritence makes it behave erratically.
"""
if self != type(self.__single): # flake8: noqa
if self != type(self.__single): # noqa: E721
self.__single = object.__new__(self, *args, **kwargs)
return self.__single

4
packstack/modules/ospluginutils.py

@ -66,6 +66,8 @@ class ManifestFiles(object):
fd = os.open(path, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o600)
with os.fdopen(fd, 'w') as fp:
fp.write(data)
manifestfiles = ManifestFiles()
@ -113,7 +115,7 @@ def generate_ssl_cert(config, host, service, ssl_key_file, ssl_cert_file):
subject.C = config['CONFIG_SSL_CERT_SUBJECT_C']
subject.ST = config['CONFIG_SSL_CERT_SUBJECT_ST']
subject.L = config['CONFIG_SSL_CERT_SUBJECT_L']
subject.O = config['CONFIG_SSL_CERT_SUBJECT_O']
subject.O = config['CONFIG_SSL_CERT_SUBJECT_O'] # noqa: E741
subject.OU = config['CONFIG_SSL_CERT_SUBJECT_OU']
cn = "%s/%s" % (service, fqdn)
# if subject.CN is more than 64 chars long, cert creation will fail

34
packstack/modules/puppet.py

@ -22,15 +22,15 @@ from packstack.installer.exceptions import PuppetError
# TODO: Fill logger name when logging system will be refactored
logger = logging.getLogger()
re_color = re.compile('\x1b.*?\d\dm')
re_color = re.compile(r'\x1b.*?\d\dm')
re_error = re.compile(
'err:|Syntax error at|^Duplicate definition:|^Invalid tag|'
'^No matching value for selector param|^Parameter name failed:|Error:|'
'^Invalid parameter|^Duplicate declaration:|^Could not find resource|'
'^Could not parse for|^/usr/bin/puppet:\d+: .+|.+\(LoadError\)|'
'^Could not autoload|'
'^\/usr\/bin\/env\: jruby\: No such file or directory|'
'failed to execute puppet'
r'err:|Syntax error at|^Duplicate definition:|^Invalid tag|'
r'^No matching value for selector param|^Parameter name failed:|Error:|'
r'^Invalid parameter|^Duplicate declaration:|^Could not find resource|'
r'^Could not parse for|^/usr/bin/puppet:\d+: .+|.+\(LoadError\)|'
r'^Could not autoload|'
r'^\/usr\/bin\/env\: jruby\: No such file or directory|'
r'failed to execute puppet'
)
re_ignore = re.compile(
# Puppet preloads a provider using the mysql command before it is installed
@ -45,23 +45,23 @@ re_ignore = re.compile(
# https://tickets.puppetlabs.com/browse/FACT-697
'NetworkManager is not running'
)
re_notice = re.compile(r"notice: .*Notify\[packstack_info\]"
"\/message: defined \'message\' as "
"\'(?P<message>.*)\'")
re_notice = re.compile(r'notice: .*Notify\[packstack_info\]'
r'\/message: defined \'message\' as '
r'\'(?P<message>.*)\'')
surrogates = [
# Value in /etc/sysctl.conf cannot be changed
('Sysctl::Value\[.*\]\/Sysctl\[(?P<arg1>.*)\].*Field \'val\' is required',
(r'Sysctl::Value\[.*\]\/Sysctl\[(?P<arg1>.*)\].*Field \'val\' is required',
'Cannot change value of %(arg1)s in /etc/sysctl.conf'),
# Package is not found in yum repos
('Package\[.*\]\/ensure.*yum.*install (?P<arg1>.*)\'.*Nothing to do',
(r'Package\[.*\]\/ensure.*yum.*install (?P<arg1>.*)\'.*Nothing to do',
'Package %(arg1)s has not been found in enabled Yum repos.'),
('Execution of \'.*yum.*install (?P<arg1>.*)\'.*Nothing to do',
(r'Execution of \'.*yum.*install (?P<arg1>.*)\'.*Nothing to do',
'Package %(arg1)s has not been found in enabled Yum repos.'),
# Packstack does not cooperate with jruby
('jruby', 'Your Puppet installation uses jruby instead of ruby. Package '
'jruby does not cooperate with Packstack well. You will have to '
'fix this manually.'),
(r'jruby', 'Your Puppet installation uses jruby instead of ruby. Package '
'jruby does not cooperate with Packstack well. You will have to '
'fix this manually.'),
]

2
packstack/plugins/cinder_250.py

@ -689,7 +689,7 @@ def check_cinder_vg(config, messages):
if not have_cinders_volume:
raise exceptions.MissingRequirements("The cinder server should "
"contain a volume group")
match = re.match('^(?P<size>\d+)G$',
match = re.match(r'^(?P<size>\d+)G$',
config['CONFIG_CINDER_VOLUMES_SIZE'].strip())
if not match:
msg = 'Invalid Cinder volumes VG size.'

2
packstack/plugins/neutron_350.py

@ -808,7 +808,7 @@ def create_manifests(config, messages):
else:
iface = config['CONFIG_NEUTRON_OVS_TUNNEL_IF']
ifip = ("ipaddress_%s" % iface)
ifip = re.sub('[\.\-\:]', '_', ifip)
ifip = re.sub(r'[\.\-\:]', '_', ifip)
try:
src_host = config['HOST_DETAILS'][n_host][ifip]
except KeyError:

2
packstack/plugins/prescript_000.py

@ -1161,7 +1161,7 @@ def manage_rdo(host, config):
server.append('yum-config-manager --enable %(reponame)s-testing' % locals())
rc, out = server.execute()
match = re.search('enabled\s*=\s*(1|True)', out)
match = re.search(r'enabled\s*=\s*(1|True)', out)
# In CentOS 7 yum-config-manager returns 0 always, but returns current setup
# if succeeds
# In CentOS 8 yum-config-manager returns 1 when failing but doesn't return current

2
packstack/plugins/puppet_950.py

@ -270,7 +270,7 @@ def finalize(config, messages):
for hostname in filtered_hosts(config):
server = utils.ScriptRunner(hostname)
server.append("installed=$(rpm -q kernel --last | head -n1 | "
"sed 's/kernel-\([a-z0-9\.\_\-]*\).*/\\1/g')")
"sed 's/kernel-\([a-z0-9\.\_\-]*\).*/\\1/g')") # noqa: W605
server.append("loaded=$(uname -r | head -n1)")
server.append('[ "$loaded" == "$installed" ]')
try:

2
packstack/plugins/ssl_001.py

@ -251,7 +251,7 @@ def create_self_signed_cert(config, messages):
subject.C = config['CONFIG_SSL_CERT_SUBJECT_C']
subject.ST = config['CONFIG_SSL_CERT_SUBJECT_ST']
subject.L = config['CONFIG_SSL_CERT_SUBJECT_L']
subject.O = config['CONFIG_SSL_CERT_SUBJECT_O']
subject.O = config['CONFIG_SSL_CERT_SUBJECT_O'] # noqa: E741
subject.OU = config['CONFIG_SSL_CERT_SUBJECT_OU']
subject.CN = config['CONFIG_SSL_CERT_SUBJECT_CN']
subject.emailAddress = mail

2
packstack/plugins/swift_600.py

@ -232,7 +232,7 @@ def get_storage_size(config):
ranges = {'G': 1048576, 'M': 1024, 'K': 1}
size = config['CONFIG_SWIFT_STORAGE_SIZE'].strip()
for measure in ['G', 'M', 'K']:
if re.match('\d+' + measure, size, re.IGNORECASE):
if re.match(r'\d+' + measure, size, re.IGNORECASE):
intsize = int(size.rstrip(measure)) * ranges[measure]
return intsize

4
test-requirements.txt

@ -1,7 +1,7 @@
sphinx>=1.6.2,<2.0.0 # BSD
sphinx>=1.6.2 # BSD
openstackdocstheme>=1.17.0 # Apache-2.0
reno>=0.1.1 # Apache2
stestr>=1.0.0 # Apache-2.0
coverage
hacking!=0.13.0,<0.14,>=0.12.0
hacking>=3.1.0,<3.2.0 # Apache-2.0
mock>=2.0 # BSD

2
tests/installer/test_run_setup.py

@ -126,5 +126,5 @@ class CommandLineTestCase(PackstackTestCaseMixin, TestCase):
sys.exit = orig_sys_exit
try:
shutil.rmtree(basedefs.VAR_DIR)
except:
except Exception:
pass

4
tests/installer/test_validators.py

@ -40,9 +40,9 @@ class ValidatorsTestCase(PackstackTestCaseMixin, TestCase):
def test_validate_regexp(self):
"""Test packstack.installer.validators.validate_regexp."""
validate_regexp('Test_123', options=['\w'])
validate_regexp('Test_123', options=[r'\w'])
self.assertRaises(ParamValidationError, validate_regexp,
'!#$%', options=['\w'])
'!#$%', options=[r'\w'])
def test_validate_port(self):
"""Test packstack.installer.validators.validate_port."""

2
tox.ini

@ -41,6 +41,6 @@ commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasen
# E123, E125 skipped as they are invalid PEP-8.
#
# All other checks should be enabled in the future.
ignore = E123,E125,H803,F403,F821,F811,F841,E501,H302,H303,H304,H306,H405,H404,H305,H307,H501,H201,H101
ignore = E123,E125,H803,F403,F405,F821,F811,F841,E501,H302,H303,H304,H306,H405,H404,H305,H307,H501,H201,H101,W503,W504
show-source = True
exclude=.venv,.git,.tox,.eggs

Loading…
Cancel
Save