From a0f15a84d7f6bc1d21fa14c0a1cdbbc5ce683ae6 Mon Sep 17 00:00:00 2001 From: Armando Migliaccio Date: Tue, 29 Nov 2016 11:24:08 -0800 Subject: [PATCH] Disable VPNaaS functional tests in the neutronclient gate This addresses failures for neutronclient's functional job of advanced services. VPNaaS is no longer maintained and thus it makes sense to stop gating against it. Hook and tests are kept for local development and in case things will resurrect back to life. This patch also makes extension functional tests conditional to the presence of the extension under test. Closes-bug: #1645819 Change-Id: I17ab8accaa943b9ac04893b5e131be0afe0f5429 --- .../functional/adv-svcs/test_readonly_neutron_fwaas.py | 7 ++++++- .../tests/functional/adv-svcs/test_readonly_neutron_vpn.py | 4 ++++ neutronclient/tests/functional/base.py | 7 +++++++ neutronclient/tests/functional/hooks/gate_hook.sh | 1 - 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_fwaas.py b/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_fwaas.py index a3e2573f4..9cec62571 100644 --- a/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_fwaas.py +++ b/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_fwaas.py @@ -13,10 +13,15 @@ from neutronclient.tests.functional import base -class SimpleReadOnlyNeutronClientTest(base.ClientTestBase): +class SimpleReadOnlyNeutronFwv1ClientTest(base.ClientTestBase): """Tests for FWaaS v1 based client commands that are read only""" + def setUp(self): + super(SimpleReadOnlyNeutronFwv1ClientTest, self).setUp() + if not self.is_extension_enabled('fwaas'): + self.skipTest('FWaaS is not enabled') + def test_neutron_firewall_list(self): firewall_list = self.parser.listing(self.neutron ('firewall-list')) diff --git a/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_vpn.py b/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_vpn.py index 291e59ad7..6e3b6cdcb 100644 --- a/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_vpn.py +++ b/neutronclient/tests/functional/adv-svcs/test_readonly_neutron_vpn.py @@ -25,6 +25,10 @@ class SimpleReadOnlyNeutronVpnClientTest(base.ClientTestBase): * with and without optional parameters * initially just check return codes, and later test command outputs """ + def setUp(self): + super(SimpleReadOnlyNeutronVpnClientTest, self).setUp() + if not self.is_extension_enabled('vpnaas'): + self.skipTest('VPNaaS is not enabled') def test_neutron_vpn_ikepolicy_list(self): ikepolicy = self.parser.listing(self.neutron('vpn-ikepolicy-list')) diff --git a/neutronclient/tests/functional/base.py b/neutronclient/tests/functional/base.py index b0c672f89..8233b1fde 100644 --- a/neutronclient/tests/functional/base.py +++ b/neutronclient/tests/functional/base.py @@ -72,3 +72,10 @@ class ClientTestBase(base.ClientTestBase): self._non_admin_clients = self._get_clients_from_os_cloud_config( cloud='devstack') return self._non_admin_clients.neutron(*args, **kwargs) + + def is_extension_enabled(self, extension_alias): + extensions = self.parser.listing(self.neutron('ext-list')) + for extension in extensions: + if extension_alias in extension['alias']: + return True + return False diff --git a/neutronclient/tests/functional/hooks/gate_hook.sh b/neutronclient/tests/functional/hooks/gate_hook.sh index e0dd841dd..e34a6c802 100755 --- a/neutronclient/tests/functional/hooks/gate_hook.sh +++ b/neutronclient/tests/functional/hooks/gate_hook.sh @@ -22,7 +22,6 @@ ${config} if [ "$VENV" == "functional-adv-svcs" ] then load_rc_hook fwaas - load_rc_hook vpnaas fi $BASE/new/devstack-gate/devstack-vm-gate.sh