From 235cb921e06fbc979276aca8d753084033678df2 Mon Sep 17 00:00:00 2001 From: Stamatis Katsaounis Date: Tue, 9 Oct 2018 15:16:25 +0300 Subject: Add flake8 and yamllint tox environments and fix tox errors JIRA: SDNVPN-231 This patch adds flake8 and yamllint tox environments. Furthermore, it fixes tox errors and applies general tox improvements. Change-Id: Id180695ef034562efb236932e6f783b0e91157c2 Signed-off-by: Stamatis Katsaounis --- docs/_static/favicon.ico | Bin 0 -> 15086 bytes docs/_static/logo.png | Bin 0 -> 2829 bytes docs/index.rst | 1 + docs/release/release-notes/index.rst | 4 +- .../lib/odl_reinstaller/odl_reinstaller.py | 1 + .../lib/test_environment/test_environment.py | 1 + .../tripleo_introspector/tripleo_introspector.py | 1 + odl-pipeline/lib/utils/processutils.py | 1 + sdnvpn/lib/openstack_utils.py | 14 +++---- sdnvpn/test/functest/config.yaml | 19 +++++---- sdnvpn/test/functest/testcase_10.py | 2 +- test-requirements.txt | 5 +++ tox.ini | 46 ++++++++++++++++++--- 13 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 docs/_static/favicon.ico create mode 100644 docs/_static/logo.png create mode 100644 test-requirements.txt diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico new file mode 100644 index 0000000..bbe55ab Binary files /dev/null and b/docs/_static/favicon.ico differ diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000..1519503 Binary files /dev/null and b/docs/_static/logo.png differ diff --git a/docs/index.rst b/docs/index.rst index d07beb2..d58d5d5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,6 +17,7 @@ OPNFV SDNVPN release/configguide/index release/userguide/index release/installation/index + release/scenarios/os-odl-bgpvpn/index development/requirements/index development/overview/index development/design/index diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 2b6664a..c7e07ee 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -4,9 +4,9 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) Nikolas Hermanns, (nikolas.hermanns@ericsson.com) and others -================== +===================== SDN VPN release notes -================== +===================== .. toctree:: :maxdepth: 3 diff --git a/odl-pipeline/lib/odl_reinstaller/odl_reinstaller.py b/odl-pipeline/lib/odl_reinstaller/odl_reinstaller.py index 9a8973f..3d29724 100644 --- a/odl-pipeline/lib/odl_reinstaller/odl_reinstaller.py +++ b/odl-pipeline/lib/odl_reinstaller/odl_reinstaller.py @@ -281,5 +281,6 @@ class ODLReinstallerException(Exception): def main(): ODLReInstaller().start() + if __name__ == '__main__': main() diff --git a/odl-pipeline/lib/test_environment/test_environment.py b/odl-pipeline/lib/test_environment/test_environment.py index 65d40bb..a56c36f 100755 --- a/odl-pipeline/lib/test_environment/test_environment.py +++ b/odl-pipeline/lib/test_environment/test_environment.py @@ -157,5 +157,6 @@ def main(): main = TestEnvironment() main.start() + if __name__ == '__main__': main() diff --git a/odl-pipeline/lib/tripleo_introspector/tripleo_introspector.py b/odl-pipeline/lib/tripleo_introspector/tripleo_introspector.py index aa6ebbb..9258e83 100755 --- a/odl-pipeline/lib/tripleo_introspector/tripleo_introspector.py +++ b/odl-pipeline/lib/tripleo_introspector/tripleo_introspector.py @@ -122,5 +122,6 @@ class TripleOInspectorException(Exception): def main(): TripleOIntrospector().start() + if __name__ == '__main__': main() diff --git a/odl-pipeline/lib/utils/processutils.py b/odl-pipeline/lib/utils/processutils.py index 98162c8..901e74b 100755 --- a/odl-pipeline/lib/utils/processutils.py +++ b/odl-pipeline/lib/utils/processutils.py @@ -29,6 +29,7 @@ def _subprocess_setup(): # non-Python subprocesses expect. signal.signal(signal.SIGPIPE, signal.SIG_DFL) + # NOTE(flaper87): The following globals are used by `mask_password` _SANITIZE_KEYS = ['adminPass', 'admin_pass', 'password', 'admin_password'] diff --git a/sdnvpn/lib/openstack_utils.py b/sdnvpn/lib/openstack_utils.py index fc36c5b..f0b9ba7 100644 --- a/sdnvpn/lib/openstack_utils.py +++ b/sdnvpn/lib/openstack_utils.py @@ -440,7 +440,7 @@ def create_instance(flavor_name, conn = get_os_connection() try: flavor = conn.compute.find_flavor(flavor_name, ignore_missing=False) - except: + except Exception: flavors = [flavor.name for flavor in conn.compute.flavors()] logger.error("Error: Flavor '%s' not found. Available flavors are: " "\n%s" % (flavor_name, flavors)) @@ -963,7 +963,7 @@ def create_secgroup_rule(conn, sg_id, direction, protocol, try: conn.network.create_security_group_rule(**secgroup_rule_attrs) return True - except: + except Exception: logger.exception("Impossible to create_security_group_rule," "security group rule probably already exists") return False @@ -1198,7 +1198,7 @@ def delete_volume(cloud, volume_id, forced=False): for attachment in volume.attachments: server = cloud.get_server(attachment.server_id) cloud.detach_volume(server, volume) - except: + except Exception: logger.error(sys.exc_info()[0]) cloud.delete_volume(volume_id, force=True) else: @@ -1325,9 +1325,9 @@ def get_or_create_tenant_for_vnf(keystone_client, tenant_name, return True else: return False - except: + except Exception: raise Exception("Impossible to create a Tenant for the VNF {}".format( - tenant_name)) + tenant_name)) def create_user(keystone_client, user_name, user_password, @@ -1385,10 +1385,10 @@ def get_or_create_user_for_vnf(keystone_client, vnf_ref): role_id = get_role_id(keystone_client, 'admin') tenant_id = get_tenant_id(keystone_client, vnf_ref) add_role_user(keystone_client, user_id, role_id, tenant_id) - except: + except Exception: logger.warn("Cannot associate user to role admin on tenant") return created - except: + except Exception: raise Exception("Impossible to create a user for the VNF {}".format( vnf_ref)) diff --git a/sdnvpn/test/functest/config.yaml b/sdnvpn/test/functest/config.yaml index 31dce67..4042455 100644 --- a/sdnvpn/test/functest/config.yaml +++ b/sdnvpn/test/functest/config.yaml @@ -1,5 +1,6 @@ +--- defaults: - flavor: m1.tiny # adapt to your environment + flavor: m1.tiny # adapt to your environment testcases: sdnvpn.test.functest.testcase_1: @@ -91,7 +92,8 @@ testcases: sdnvpn.test.functest.testcase_4: enabled: true order: 4 - description: VPN provides connectivity between subnets using router association + description: "VPN provides connectivity between subnets using router \ + association" instance_1_name: sdnvpn-4-1 instance_2_name: sdnvpn-4-2 instance_3_name: sdnvpn-4-3 @@ -155,12 +157,14 @@ testcases: sdnvpn.test.functest.testcase_9: enabled: true order: 9 - description: Verify that all OpenStack nodes OVS br-int have fail_mode set to secure. + description: "Verify that all OpenStack nodes OVS br-int have fail_mode \ + set to secure." sdnvpn.test.functest.testcase_10: enabled: true order: 10 - description: Test if interupts occure during ping, when removing and adding instances + description: "Test if interupts occure during ping, when removing and \ + adding instances" instance_1_name: sdnvpn-10-1 instance_2_name: sdnvpn-10-2 instance_3_name: sdnvpn-10-3 @@ -176,7 +180,8 @@ testcases: sdnvpn.test.functest.testcase_11: enabled: true order: 11 - description: Check relevant OVS groups are removed upon deletion of OpenStack topology + description: "Check relevant OVS groups are removed upon deletion of \ + OpenStack topology" instance_1_name: sdnvpn-11-1 instance_2_name: sdnvpn-11-2 image_name: sdnvpn-image @@ -227,5 +232,5 @@ testcases: targets1: '88:88' targets2: '88:88' route_distinguishers: - - '12:12' - - '13:13' + - '12:12' + - '13:13' diff --git a/sdnvpn/test/functest/testcase_10.py b/sdnvpn/test/functest/testcase_10.py index dbfbfd4..3ba93a9 100644 --- a/sdnvpn/test/functest/testcase_10.py +++ b/sdnvpn/test/functest/testcase_10.py @@ -55,7 +55,7 @@ def monitor(conn, in_data, out_data, vm): logger.info("Ping from instance {}: {}". format(vm.name, console_line)) lines_offset = len(vm_console_out_lines) - except: + except Exception: # Atomic write to std out with std_out_lock: logger.error("Failure in monitor_thread of instance {}". diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..646bbae --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,5 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. +flake8 # MIT +yamllint diff --git a/tox.ini b/tox.ini index 69aa189..7880718 100644 --- a/tox.ini +++ b/tox.ini @@ -2,16 +2,52 @@ minversion = 1.6 envlist = docs, - docs-linkcheck + docs-linkcheck, + pep8, + yamllint skipsdist = true +[testenv] +usedevelop = False +setenv= + HOME = {envtmpdir} + PYTHONPATH = {toxinidir} +deps = + -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=master + -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=master + -r{toxinidir}/test-requirements.txt + -r{toxinidir}/requirements.txt +install_command = pip install {opts} {packages} + [testenv:docs] -deps = -rdocs/requirements.txt +basepython = python2.7 +deps = -r{toxinidir}/docs/requirements.txt commands = - sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html + sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html echo "Generated docs available in {toxinidir}/docs/_build/html" whitelist_externals = echo [testenv:docs-linkcheck] -deps = -rdocs/requirements.txt -commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck +basepython = python2.7 +deps = -r{toxinidir}/docs/requirements.txt +commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck + +[testenv:yamllint] +basepython = python2.7 +files = + {toxinidir}/docs + {toxinidir}/sdnvpn/test/functest/ +commands = + yamllint -s {[testenv:yamllint]files} + +[testenv:pep8] +basepython = python2.7 +commands = flake8 {toxinidir} + +[flake8] +# E123, E125 skipped as they are invalid PEP-8. + +show-source = True +ignore = E123,E125 +builtins = _ +exclude = build,dist,doc,legacy,.eggs,.git,.tox,.venv,testapi_venv,venv -- cgit 1.2.3-korg