Use flake8-import-order plugin and clean up exceptions

1. In reviews we usually check import grouping but it is boring.
By using flake8-import-order plugin, we can avoid this.
It enforces loose checking so it sounds good to use it.
This flake8 plugin is already used in tempest.

Note that flake8-import-order version is pinned to avoid unexpected
breakage of pep8 job.

Setup for unit tests of hacking rules is tweaked to disable
flake8-import-order checks. This extension assumes an actual file
exists and causes hacking rule unit tests.

2. This patch is also intend to clean up exceptions to avoid
confusing for other developers and the maintenance-ability as well.

Change-Id: I032892f08e073feb5b822d27d092f041b17d57e1
This commit is contained in:
Cao Xuan Hoang
2017-07-06 08:53:06 +07:00
parent 9ac61004ac
commit d8ba5b7a81
14 changed files with 33 additions and 36 deletions

View File

@@ -14,6 +14,7 @@
# under the License.
import gettext
import six

View File

@@ -12,8 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from alembic import context
from logging import config as logging_config
from alembic import context
from neutron_lib.db import model_base
from oslo_config import cfg
from oslo_db.sqlalchemy import session

View File

@@ -12,9 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
import netaddr
import socket
import netaddr
from neutron.db import l3_db
from neutron.db import models_v2
from neutron_lib.api import validators

View File

@@ -13,7 +13,6 @@
# under the License.
import collections
import requests
from neutron.common import rpc as n_rpc
from neutron.plugins.common import utils as plugin_utils
@@ -25,6 +24,7 @@ from oslo_config import cfg
from oslo_log import log as logging
import oslo_messaging
from oslo_service import loopingcall
import requests
from neutron_vpnaas._i18n import _
from neutron_vpnaas.services.vpn.common import topics

View File

@@ -18,7 +18,6 @@ import filecmp
import os
import re
import shutil
import six
import socket
import eventlet
@@ -39,6 +38,7 @@ from oslo_log import helpers as log_helpers
from oslo_log import log as logging
import oslo_messaging
from oslo_service import loopingcall
import six
from neutron_vpnaas._i18n import _
from neutron_vpnaas.extensions import vpnaas

View File

@@ -13,11 +13,10 @@
import collections
import copy
import functools
import os
import mock
import netaddr
import os
import testtools
from neutron.agent.common import ovs_lib
from neutron.agent.l3 import namespaces as n_namespaces
from neutron.agent.l3 import router_info
@@ -38,6 +37,7 @@ from neutron_lib.utils import net as n_utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import uuidutils
import testtools
from neutron_vpnaas.services.vpn import agent as vpn_agent
from neutron_vpnaas.services.vpn.agent import vpn_agent_opts

View File

@@ -13,9 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
import os
import mock
from neutron.agent.l3 import legacy_router
from neutron.conf.agent.l3 import config as l3_config
from neutron.tests.functional import base

View File

@@ -13,9 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
import socket
import mock
from neutron.db import l3_db
from neutron.db import servicetype_db as st_db
from neutron_lib import context as n_ctx

View File

@@ -14,6 +14,7 @@
# under the License.
import copy
import mock
from neutron.tests.unit.api.v2 import test_base as test_api_v2
from neutron_lib.plugins import constants as nconstants

View File

@@ -15,10 +15,10 @@
import copy
import difflib
import io
import mock
import os
import socket
import mock
from neutron.agent.l3 import dvr_edge_router
from neutron.agent.l3 import dvr_snat_ns
from neutron.agent.l3 import legacy_router

View File

@@ -13,7 +13,6 @@
# under the License.
import concurrent.futures
import exceptions
import re
import threading
import time
@@ -330,7 +329,7 @@ class VpnBase(rally_base.OpenStackScenario):
return resource
time.sleep(check_interval)
if time.time() - start_time > wait_timeout:
raise exceptions.Exception(
raise Exception(
"Timeout waiting for resource {} to change to {} status".
format(resource[resource_tag]['name'], final_status))

View File

@@ -12,13 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
import exceptions
import os
import paramiko
import socket
import stat
import time
import paramiko
from rally.common import logging
from rally.plugins.openstack.wrappers import network as network_wrapper
from rally.task import utils as task_utils
@@ -48,25 +47,21 @@ def execute_cmd_over_ssh(host, cmd, private_key):
client.connect(host["ip"], username=host["username"], pkey=k)
except paramiko.BadHostKeyException as e:
raise exceptions.Exception(
"BADHOSTKEY EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
raise Exception(
"BADHOSTKEY EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
except paramiko.AuthenticationException as e:
raise exceptions.Exception(
"AUTHENTICATION EXCEPTION WHEN CONNECTING TO %s",
host["ip"], e)
raise Exception(
"AUTHENTICATION EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
except paramiko.SSHException as e:
raise exceptions.Exception(
"SSH EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
raise Exception("SSH EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
except socket.error as e:
raise exceptions.Exception(
"SOCKET ERROR WHEN CONNECTING TO %s", host["ip"], e)
raise Exception("SOCKET ERROR WHEN CONNECTING TO %s", host["ip"], e)
LOG.debug("CONNECTED TO HOST <%s>", host["ip"])
try:
stdin, stdout, stderr = client.exec_command(cmd)
return stdout.read().splitlines()
except paramiko.SSHException as e:
raise exceptions.Exception(
"SSHEXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
raise Exception("SSHEXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
finally:
client.close()
@@ -237,7 +232,7 @@ def write_key_to_compute_node(keypair, local_path, remote_path, host,
try:
transport = paramiko.Transport(host['ip'], host['port'])
except paramiko.SSHException as e:
raise exceptions.Exception(
raise Exception(
"PARAMIKO TRANSPORT FAILED. CHECK IF THE HOST IP %s AND PORT %s "
"ARE CORRECT %s", host['ip'], host['port'], e)
try:
@@ -245,24 +240,22 @@ def write_key_to_compute_node(keypair, local_path, remote_path, host,
username=host['username'], pkey=k)
except paramiko.BadHostKeyException as e:
transport.close()
raise exceptions.Exception(
"BADHOSTKEY EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
raise Exception(
"BADHOSTKEY EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
except paramiko.AuthenticationException as e:
transport.close()
raise exceptions.Exception(
"AUTHENTICATION EXCEPTION WHEN CONNECTING TO %s",
host["ip"], e)
raise Exception("AUTHENTICATION EXCEPTION WHEN CONNECTING TO %s",
host["ip"], e)
except paramiko.SSHException as e:
transport.close()
raise exceptions.Exception(
"SSH EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
raise Exception("SSH EXCEPTION WHEN CONNECTING TO %s", host["ip"], e)
LOG.debug("CONNECTED TO HOST <%s>", host["ip"])
try:
sftp_client = paramiko.SFTPClient.from_transport(transport)
sftp_client.put(local_path, remote_path)
except IOError as e:
raise exceptions.Exception("FILE PATH DOESN'T EXIST", e)
raise Exception("FILE PATH DOESN'T EXIST", e)
finally:
transport.close()
@@ -391,8 +384,8 @@ def wait_for_namespace_creation(namespace_tag, router_id, hosts, private_key,
return namespace_tag, host
time.sleep(1)
if time.time() - start_time > timeout:
raise exceptions.Exception("TIMEOUT WHILE WAITING FOR"
" NAMESPACES TO BE CREATED")
raise Exception("TIMEOUT WHILE WAITING FOR"
" NAMESPACES TO BE CREATED")
def ping(host, cmd, private_key):

View File

@@ -6,6 +6,7 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
astroid<1.4.0 # LGPLv2.1 # breaks pylint 1.4.4
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
flake8-import-order==0.12 # LGPLv3
mock>=2.0 # BSD
pylint==1.4.5 # GPLv2
python-subunit>=0.0.18 # Apache-2.0/BSD

View File

@@ -90,6 +90,7 @@ commands = sphinx-build -W -b html doc/source doc/build
ignore = E125,E126,E128,E129,E265,H404,H405,N530,N531
show-source = true
exclude = .venv,.git,.tox,dist,doc,.tmp,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios
import-order-style = pep8
[hacking]
import_exceptions = neutron_vpnaas._i18n