Browse Source

Enable pylint 1.4.5

This patch enables pylint 1.4.5 checking in netwoking-ovn.
Script tools/coding-checks.sh is copied from neutron and adapted for
networking-ovn.
.pylintrc is also copied from neutron, message options that do not
need to be suppressed have been removed and some of remaining options
will be removed by code adjustment in separate patches.

Change-Id: I9e1612583debb555199b416675eea6685801f04c
tags/3.0.0.0rc1
Dong Jun 2 years ago
parent
commit
91294cad88
10 changed files with 178 additions and 8 deletions
  1. +101
    -0
      .pylintrc
  2. +1
    -0
      networking_ovn/common/utils.py
  3. +2
    -0
      networking_ovn/journal/exceptions.py
  4. +0
    -2
      networking_ovn/journal/journal.py
  5. +3
    -3
      networking_ovn/ml2/trunk_driver.py
  6. +2
    -2
      networking_ovn/ovn_db_sync.py
  7. +1
    -1
      networking_ovn/ovsdb/commands.py
  8. +1
    -0
      test-requirements.txt
  9. +66
    -0
      tools/coding-checks.sh
  10. +1
    -0
      tox.ini

+ 101
- 0
.pylintrc View File

@@ -0,0 +1,101 @@
# The format of this file isn't really documented; just use --generate-rcfile
[MASTER]
# Add <file or directory> to the black list. It should be a base name, not a
# path. You may set this option multiple times.
ignore=.git,tests

[MESSAGES CONTROL]
# TODO: This list is copied from neutron, the options which do not need to be
# suppressed have been already removed, some of the remaining options will be
# removed by code adjustment.
disable=
# "F" Fatal errors that prevent further processing
import-error,
# "I" Informational noise
# "E" Error for important programming issues (likely bugs)
no-member,
# "W" Warnings for stylistic problems or minor programming issues
abstract-method,
arguments-differ,
attribute-defined-outside-init,
broad-except,
dangerous-default-value,
fixme,
global-statement,
no-init,
protected-access,
redefined-builtin,
redefined-outer-name,
signature-differs,
unused-argument,
unused-import,
unused-variable,
useless-super-delegation,
# "C" Coding convention violations
bad-continuation,
invalid-name,
len-as-condition,
misplaced-comparison-constant,
missing-docstring,
superfluous-parens,
ungrouped-imports,
wrong-import-order,
# "R" Refactor recommendations
duplicate-code,
no-else-return,
no-self-use,
too-few-public-methods,
too-many-ancestors,
too-many-arguments,
too-many-branches,
too-many-instance-attributes,
too-many-lines,
too-many-locals,
too-many-public-methods,
too-many-return-statements,
too-many-statements

[BASIC]
# Variable names can be 1 to 31 characters long, with lowercase and underscores
variable-rgx=[a-z_][a-z0-9_]{0,30}$

# Argument names can be 2 to 31 characters long, with lowercase and underscores
argument-rgx=[a-z_][a-z0-9_]{1,30}$

# Method names should be at least 3 characters long
# and be lowercased with underscores
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$

# Module names matching
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Don't require docstrings on tests.
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$

[FORMAT]
# Maximum number of characters on a single line.
max-line-length=79

[VARIABLES]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=

[CLASSES]
# List of interface methods to ignore, separated by a comma.
ignore-iface-methods=

[IMPORTS]
# Deprecated modules which should not be used, separated by a comma
deprecated-modules=
# should use oslo_serialization.jsonutils
json

[TYPECHECK]
# List of module names for which member attributes should not be checked
ignored-modules=six.moves,_MovedItems

[REPORTS]
# Tells whether to display a full report or only the messages
reports=no


+ 1
- 0
networking_ovn/common/utils.py View File

@@ -21,6 +21,7 @@ from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
from neutron_lib.utils import net as n_utils

from networking_ovn._i18n import _
from networking_ovn.common import constants




+ 2
- 0
networking_ovn/journal/exceptions.py View File

@@ -15,6 +15,8 @@

from neutron_lib import exceptions as n_exc

from networking_ovn._i18n import _


class JournalAlreadyStarted(n_exc.NeutronException):
message = _('Journal thread already started')


+ 0
- 2
networking_ovn/journal/journal.py View File

@@ -67,7 +67,6 @@ class JournalThread(object):

def start(self):
"""Start the journal sync thread."""
global WAKE_UP_EVENTS
if self._sync_thread is not None:
raise exceptions.JournalAlreadyStarted()

@@ -79,7 +78,6 @@ class JournalThread(object):

def stop(self):
"""Stop the journal sync thread."""
global WAKE_UP_EVENTS
LOG.debug('Stopping the journal sync thread')
self._stop_event.set()
if self.uuid in WAKE_UP_EVENTS:


+ 3
- 3
networking_ovn/ml2/trunk_driver.py View File

@@ -94,13 +94,13 @@ class OVNTrunkDriver(trunk_base.DriverBase):
super(OVNTrunkDriver, self).register(
resource, event, trigger, **kwargs)
self._handler = OVNTrunkHandler(self.plugin_driver)
for event in (events.AFTER_CREATE, events.AFTER_DELETE):
for trunk_event in (events.AFTER_CREATE, events.AFTER_DELETE):
registry.subscribe(self._handler.trunk_event,
trunk_consts.TRUNK,
event)
trunk_event)
registry.subscribe(self._handler.subport_event,
trunk_consts.SUBPORTS,
event)
trunk_event)

@classmethod
def create(cls, plugin_driver):


+ 2
- 2
networking_ovn/ovn_db_sync.py View File

@@ -658,8 +658,8 @@ class OvnNbSynchronizer(OvnDbSynchronizer):
# created in DHCP_Options earlier, that port dhcp
# options will be deleted in the following
# ovn_port_dhcp_options handling.
set_lsp[lsp_dhcp_key[ip_v]] = (
dhcp_opts and [dhcp_opts['uuid']] or [])
set_lsp[lsp_dhcp_key[ip_v]] = [
dhcp_opts['uuid']] if dhcp_opts else []
else:
# If port has extra port dhcp
# options, a command will returned by


+ 1
- 1
networking_ovn/ovsdb/commands.py View File

@@ -936,7 +936,7 @@ class DeleteNatIpFromLRPortPeerOptionsCommand(command.BaseCommand):
'name', self.lport)

except idlutils.RowNotFound:
msg = _("Logical Switch Port %s does not exist") % self.port
msg = _("Logical Switch Port %s does not exist") % self.lport
raise RuntimeError(msg)

lport.verify('options')


+ 1
- 0
test-requirements.txt View File

@@ -11,6 +11,7 @@ oslosphinx>=4.7.0 # Apache-2.0
doc8 # Apache-2.0
oslotest>=1.10.0 # Apache-2.0
os-testr>=0.8.0 # Apache-2.0
pylint==1.4.5 # GPLv2
testrepository>=0.0.18 # Apache-2.0/BSD
testresources>=0.2.4 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD


+ 66
- 0
tools/coding-checks.sh View File

@@ -0,0 +1,66 @@
#!/bin/sh
# This script is copied from neutron and adapted for networking-ovn.
set -eu

usage () {
echo "Usage: $0 [OPTION]..."
echo "Run networking_ovn's coding check(s)"
echo ""
echo " -Y, --pylint [<basecommit>] Run pylint check on the entire networking_ovn module or just files changed in basecommit (e.g. HEAD~1)"
echo " -h, --help Print this usage message"
echo
exit 0
}

join_args() {
if [ -z "$scriptargs" ]; then
scriptargs="$opt"
else
scriptargs="$scriptargs $opt"
fi
}

process_options () {
i=1
while [ $i -le $# ]; do
eval opt=\$$i
case $opt in
-h|--help) usage;;
-Y|--pylint) pylint=1;;
*) join_args;;
esac
i=$((i+1))
done
}

run_pylint () {
local target="${scriptargs:-all}"

if [ "$target" = "all" ]; then
files="networking_ovn"
else
case "$target" in
*HEAD~[0-9]*) files=$(git diff --diff-filter=AM --name-only $target -- "*.py");;
*) echo "$target is an unrecognized basecommit"; exit 1;;
esac
fi

echo "Running pylint..."
echo "You can speed this up by running it on 'HEAD~[0-9]' (e.g. HEAD~1, this change only)..."
if [ -n "${files}" ]; then
pylint --rcfile=.pylintrc --output-format=colorized ${files}
else
echo "No python changes in this commit, pylint check not required."
exit 0
fi
}

scriptargs=
pylint=1

process_options $@

if [ $pylint -eq 1 ]; then
run_pylint
exit 0
fi

+ 1
- 0
tox.ini View File

@@ -18,6 +18,7 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY

[testenv:pep8]
commands = flake8
{toxinidir}/tools/coding-checks.sh --pylint '{posargs}'
doc8 doc/source devstack releasenotes/source vagrant rally-jobs
neutron-db-manage --subproject=networking-ovn check_migration



Loading…
Cancel
Save