Add flake8 and yamllint tox environments and fix tox errors 31/63331/5
authorStamatis Katsaounis <mokats@intracom-telecom.com>
Tue, 9 Oct 2018 12:16:25 +0000 (15:16 +0300)
committerStamatis Katsaounis <mokats@intracom-telecom.com>
Mon, 15 Oct 2018 09:13:29 +0000 (12:13 +0300)
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 <mokats@intracom-telecom.com>
13 files changed:
docs/_static/favicon.ico [new file with mode: 0644]
docs/_static/logo.png [new file with mode: 0644]
docs/index.rst
docs/release/release-notes/index.rst
odl-pipeline/lib/odl_reinstaller/odl_reinstaller.py
odl-pipeline/lib/test_environment/test_environment.py
odl-pipeline/lib/tripleo_introspector/tripleo_introspector.py
odl-pipeline/lib/utils/processutils.py
sdnvpn/lib/openstack_utils.py
sdnvpn/test/functest/config.yaml
sdnvpn/test/functest/testcase_10.py
test-requirements.txt [new file with mode: 0644]
tox.ini

diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico
new file mode 100644 (file)
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 (file)
index 0000000..1519503
Binary files /dev/null and b/docs/_static/logo.png differ
index d07beb2..d58d5d5 100644 (file)
@@ -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
index 2b6664a..c7e07ee 100644 (file)
@@ -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
index 9a8973f..3d29724 100644 (file)
@@ -281,5 +281,6 @@ class ODLReinstallerException(Exception):
 def main():
     ODLReInstaller().start()
 
+
 if __name__ == '__main__':
     main()
index 65d40bb..a56c36f 100755 (executable)
@@ -157,5 +157,6 @@ def main():
     main = TestEnvironment()
     main.start()
 
+
 if __name__ == '__main__':
     main()
index aa6ebbb..9258e83 100755 (executable)
@@ -122,5 +122,6 @@ class TripleOInspectorException(Exception):
 def main():
     TripleOIntrospector().start()
 
+
 if __name__ == '__main__':
     main()
index 98162c8..901e74b 100755 (executable)
@@ -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']
 
index fc36c5b..f0b9ba7 100644 (file)
@@ -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))
 
index 31dce67..4042455 100644 (file)
@@ -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'
index dbfbfd4..3ba93a9 100644 (file)
@@ -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 (file)
index 0000000..646bbae
--- /dev/null
@@ -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 (file)
--- 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