Merge "Add pylint tox environment and disable all existing warnings"
This commit is contained in:
commit
de2fd7537a
125
.pylintrc
125
.pylintrc
@ -2,17 +2,98 @@
|
|||||||
[MASTER]
|
[MASTER]
|
||||||
# Add <file or directory> to the black list. It should be a base name, not a
|
# Add <file or directory> to the black list. It should be a base name, not a
|
||||||
# path. You may set this option multiple times.
|
# path. You may set this option multiple times.
|
||||||
ignore=test
|
#
|
||||||
|
# Note the 'openstack' below is intended to match only
|
||||||
|
# neutron.openstack.common. If we ever have another 'openstack'
|
||||||
|
# dirname, then we'll need to expand the ignore features in pylint :/
|
||||||
|
ignore=.git,tests,openstack
|
||||||
|
|
||||||
[Messages Control]
|
[MESSAGES CONTROL]
|
||||||
# NOTE(justinsb): We might want to have a 2nd strict pylintrc in future
|
# NOTE(gus): This is a long list. A number of these are important and
|
||||||
# C0111: Don't require docstrings on every method
|
# should be re-enabled once the offending code is fixed (or marked
|
||||||
# W0511: TODOs in code comments are fine.
|
# with a local disable)
|
||||||
# W0142: *args and **kwargs are fine.
|
disable=
|
||||||
# W0622: Redefining id is fine.
|
# "F" Fatal errors that prevent further processing
|
||||||
disable=C0111,W0511,W0142,W0622
|
import-error,
|
||||||
|
# "I" Informational noise
|
||||||
|
locally-disabled,
|
||||||
|
# "E" Error for important programming issues (likely bugs)
|
||||||
|
access-member-before-definition,
|
||||||
|
assignment-from-no-return,
|
||||||
|
bad-except-order,
|
||||||
|
bad-super-call,
|
||||||
|
maybe-no-member,
|
||||||
|
no-member,
|
||||||
|
no-method-argument,
|
||||||
|
no-name-in-module,
|
||||||
|
no-self-argument,
|
||||||
|
not-callable,
|
||||||
|
no-value-for-parameter,
|
||||||
|
super-on-old-class,
|
||||||
|
too-few-format-args,
|
||||||
|
# "W" Warnings for stylistic problems or minor programming issues
|
||||||
|
abstract-method,
|
||||||
|
anomalous-backslash-in-string,
|
||||||
|
anomalous-unicode-escape-in-string,
|
||||||
|
arguments-differ,
|
||||||
|
attribute-defined-outside-init,
|
||||||
|
bad-builtin,
|
||||||
|
bad-indentation,
|
||||||
|
broad-except,
|
||||||
|
dangerous-default-value,
|
||||||
|
deprecated-lambda,
|
||||||
|
duplicate-key,
|
||||||
|
expression-not-assigned,
|
||||||
|
fixme,
|
||||||
|
global-statement,
|
||||||
|
global-variable-not-assigned,
|
||||||
|
logging-not-lazy,
|
||||||
|
lost-exception,
|
||||||
|
no-init,
|
||||||
|
non-parent-init-called,
|
||||||
|
pointless-string-statement,
|
||||||
|
protected-access,
|
||||||
|
redefined-builtin,
|
||||||
|
redefined-outer-name,
|
||||||
|
redefine-in-handler,
|
||||||
|
reimported,
|
||||||
|
signature-differs,
|
||||||
|
star-args,
|
||||||
|
super-init-not-called,
|
||||||
|
undefined-loop-variable,
|
||||||
|
unnecessary-lambda,
|
||||||
|
unnecessary-pass,
|
||||||
|
unpacking-non-sequence,
|
||||||
|
unreachable,
|
||||||
|
unused-argument,
|
||||||
|
unused-import,
|
||||||
|
unused-variable,
|
||||||
|
useless-else-on-loop,
|
||||||
|
# "C" Coding convention violations
|
||||||
|
bad-continuation,
|
||||||
|
invalid-name,
|
||||||
|
missing-docstring,
|
||||||
|
old-style-class,
|
||||||
|
superfluous-parens,
|
||||||
|
# "R" Refactor recommendations
|
||||||
|
abstract-class-little-used,
|
||||||
|
abstract-class-not-used,
|
||||||
|
cyclic-import,
|
||||||
|
duplicate-code,
|
||||||
|
interface-not-implemented,
|
||||||
|
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]
|
[BASIC]
|
||||||
# Variable names can be 1 to 31 characters long, with lowercase and underscores
|
# Variable names can be 1 to 31 characters long, with lowercase and underscores
|
||||||
variable-rgx=[a-z_][a-z0-9_]{0,30}$
|
variable-rgx=[a-z_][a-z0-9_]{0,30}$
|
||||||
|
|
||||||
@ -21,7 +102,7 @@ argument-rgx=[a-z_][a-z0-9_]{1,30}$
|
|||||||
|
|
||||||
# Method names should be at least 3 characters long
|
# Method names should be at least 3 characters long
|
||||||
# and be lowecased with underscores
|
# and be lowecased with underscores
|
||||||
method-rgx=([a-z_][a-z0-9_]{2,50}|setUp|tearDown)$
|
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$
|
||||||
|
|
||||||
# Module names matching neutron-* are ok (files in bin/)
|
# Module names matching neutron-* are ok (files in bin/)
|
||||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$
|
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$
|
||||||
@ -29,14 +110,26 @@ module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|(neutron-[a-z0-9_-]+))$
|
|||||||
# Don't require docstrings on tests.
|
# Don't require docstrings on tests.
|
||||||
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
|
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
|
||||||
|
|
||||||
[Design]
|
[FORMAT]
|
||||||
max-public-methods=100
|
# Maximum number of characters on a single line.
|
||||||
min-public-methods=0
|
max-line-length=79
|
||||||
max-args=6
|
|
||||||
|
|
||||||
[Variables]
|
|
||||||
|
|
||||||
|
[VARIABLES]
|
||||||
# List of additional names supposed to be defined in builtins. Remember that
|
# List of additional names supposed to be defined in builtins. Remember that
|
||||||
# you should avoid to define new builtins when possible.
|
# you should avoid to define new builtins when possible.
|
||||||
# _ is used by our localization
|
# _ is used by our localization
|
||||||
additional-builtins=_
|
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 openstack.common.jsonutils
|
||||||
|
json
|
||||||
|
|
||||||
|
[REPORTS]
|
||||||
|
# Tells whether to display a full report or only the messages
|
||||||
|
reports=no
|
||||||
|
@ -187,30 +187,30 @@ class DeviceHandlingMixin(object):
|
|||||||
return cls._mgmt_sec_grp_id
|
return cls._mgmt_sec_grp_id
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_hosting_device_driver(self):
|
def get_hosting_device_driver(cls):
|
||||||
"""Returns device driver."""
|
"""Returns device driver."""
|
||||||
if self._hosting_device_driver:
|
if cls._hosting_device_driver:
|
||||||
return self._hosting_device_driver
|
return cls._hosting_device_driver
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self._hosting_device_driver = importutils.import_object(
|
cls._hosting_device_driver = importutils.import_object(
|
||||||
cfg.CONF.hosting_devices.csr1kv_device_driver)
|
cfg.CONF.hosting_devices.csr1kv_device_driver)
|
||||||
except (ImportError, TypeError, n_exc.NeutronException):
|
except (ImportError, TypeError, n_exc.NeutronException):
|
||||||
LOG.exception(_('Error loading hosting device driver'))
|
LOG.exception(_('Error loading hosting device driver'))
|
||||||
return self._hosting_device_driver
|
return cls._hosting_device_driver
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_hosting_device_plugging_driver(self):
|
def get_hosting_device_plugging_driver(cls):
|
||||||
"""Returns plugging driver."""
|
"""Returns plugging driver."""
|
||||||
if self._plugging_driver:
|
if cls._plugging_driver:
|
||||||
return self._plugging_driver
|
return cls._plugging_driver
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self._plugging_driver = importutils.import_object(
|
cls._plugging_driver = importutils.import_object(
|
||||||
cfg.CONF.hosting_devices.csr1kv_plugging_driver)
|
cfg.CONF.hosting_devices.csr1kv_plugging_driver)
|
||||||
except (ImportError, TypeError, n_exc.NeutronException):
|
except (ImportError, TypeError, n_exc.NeutronException):
|
||||||
LOG.exception(_('Error loading plugging driver'))
|
LOG.exception(_('Error loading plugging driver'))
|
||||||
return self._plugging_driver
|
return cls._plugging_driver
|
||||||
|
|
||||||
def get_hosting_devices_qry(self, context, hosting_device_ids,
|
def get_hosting_devices_qry(self, context, hosting_device_ids,
|
||||||
load_agent=True):
|
load_agent=True):
|
||||||
|
@ -94,7 +94,7 @@ class QosController(common.NeutronController, wsgi.Controller):
|
|||||||
result = [builder.build(qos, is_detail)['qos'] for qos in qoss]
|
result = [builder.build(qos, is_detail)['qos'] for qos in qoss]
|
||||||
return dict(qoss=result)
|
return dict(qoss=result)
|
||||||
|
|
||||||
# pylint: disable-msg=E1101
|
# pylint: disable=no-member
|
||||||
def show(self, request, tenant_id, id):
|
def show(self, request, tenant_id, id):
|
||||||
"""Returns qos details for the given qos id."""
|
"""Returns qos details for the given qos id."""
|
||||||
try:
|
try:
|
||||||
|
@ -33,6 +33,8 @@ VIRTUAL_ROUTER_MAC = '00:11:22:33:44:55'
|
|||||||
IPV4_BITS = 32
|
IPV4_BITS = 32
|
||||||
IPV6_BITS = 128
|
IPV6_BITS = 128
|
||||||
|
|
||||||
|
# This string-format-at-a-distance confuses pylint :(
|
||||||
|
# pylint: disable=too-many-format-args
|
||||||
router_in_vrf = {
|
router_in_vrf = {
|
||||||
'router': {'create': ['vrf definition {0}',
|
'router': {'create': ['vrf definition {0}',
|
||||||
'rd {1}',
|
'rd {1}',
|
||||||
|
@ -32,8 +32,7 @@ from neutron.openstack.common import excutils
|
|||||||
from neutron.openstack.common import log as logging
|
from neutron.openstack.common import log as logging
|
||||||
from neutron.plugins.common import constants
|
from neutron.plugins.common import constants
|
||||||
from neutron.plugins.ml2.driver_context import NetworkContext # noqa
|
from neutron.plugins.ml2.driver_context import NetworkContext # noqa
|
||||||
from neutron.plugins.ml2.drivers.arista.arista_l3_driver import AristaL3Driver # noqa
|
from neutron.plugins.ml2.drivers.arista import arista_l3_driver
|
||||||
from neutron.plugins.ml2.drivers.arista.arista_l3_driver import NeutronNets # noqa
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -54,8 +53,8 @@ class AristaL3ServicePlugin(db_base_plugin_v2.NeutronDbPluginV2,
|
|||||||
|
|
||||||
def __init__(self, driver=None):
|
def __init__(self, driver=None):
|
||||||
|
|
||||||
self.driver = driver or AristaL3Driver()
|
self.driver = driver or arista_l3_driver.AristaL3Driver()
|
||||||
self.ndb = NeutronNets()
|
self.ndb = arista_l3_driver.NeutronNets()
|
||||||
self.setup_rpc()
|
self.setup_rpc()
|
||||||
self.sync_timeout = cfg.CONF.l3_arista.l3_sync_interval
|
self.sync_timeout = cfg.CONF.l3_arista.l3_sync_interval
|
||||||
self.sync_lock = threading.Lock()
|
self.sync_lock = threading.Lock()
|
||||||
|
7
tox.ini
7
tox.ini
@ -83,6 +83,13 @@ show-source = true
|
|||||||
builtins = _
|
builtins = _
|
||||||
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios
|
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios
|
||||||
|
|
||||||
|
[testenv:pylint]
|
||||||
|
deps =
|
||||||
|
{[testenv]deps}
|
||||||
|
pylint
|
||||||
|
commands =
|
||||||
|
pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron}
|
||||||
|
|
||||||
[hacking]
|
[hacking]
|
||||||
import_exceptions = neutron.openstack.common.gettextutils
|
import_exceptions = neutron.openstack.common.gettextutils
|
||||||
local-check-factory = neutron.hacking.checks.factory
|
local-check-factory = neutron.hacking.checks.factory
|
||||||
|
Loading…
Reference in New Issue
Block a user