Not forcing listener CRUD testing with allowed_cidrs
With current code the listener CRUD tests are using allowed_cidrs
always as default. In order to increase coverage test are now splitted
by two using or not allowed_cidrs on the listener.
Note there are some specific test *_allowed_cidr* that will
still test the proper NotImplemented behaviour of the API for any
provider.
Change-Id: If10c8c0289e10c83cf2d25b581a65875dac9d6d1
Signed-off-by: Fernando Royo <froyo@redhat.com>
diff --git a/octavia_tempest_plugin/tests/api/v2/test_listener.py b/octavia_tempest_plugin/tests/api/v2/test_listener.py
index 46735a5..249c1ff 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_listener.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_listener.py
@@ -245,14 +245,26 @@
def test_http_listener_create(self):
self._test_listener_create(const.HTTP, 8000)
+ @decorators.idempotent_id('4aaf06a4-a9e0-440d-9ff8-d4be13ddea96')
+ def test_http_listener_create_no_allowed_cidrs(self):
+ self._test_listener_create(const.HTTP, 8100, use_allowed_cidrs=False)
+
@decorators.idempotent_id('2cc89237-fc6b-434d-b38e-b3309823e71f')
def test_https_listener_create(self):
self._test_listener_create(const.HTTPS, 8001)
+ @decorators.idempotent_id('6085be5d-c49c-4275-87a9-2e256dc2ac9b')
+ def test_https_listener_create_no_allowed_cidrs(self):
+ self._test_listener_create(const.HTTPS, 8101, use_allowed_cidrs=False)
+
@decorators.idempotent_id('45580065-5653-436b-aaff-dc465fa0a542')
def test_tcp_listener_create(self):
self._test_listener_create(const.TCP, 8002)
+ @decorators.idempotent_id('f20ab493-d92f-4c86-a053-0d788efaec11')
+ def test_tcp_listener_create_no_allowed_cidrs(self):
+ self._test_listener_create(const.TCP, 8102, use_allowed_cidrs=False)
+
@decorators.idempotent_id('1a6ba0d0-f309-4088-a686-dda0e9ab7e43')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -264,6 +276,18 @@
'on Octavia API version 2.25 or newer.')
self._test_listener_create(const.PROMETHEUS, 8090)
+ @decorators.idempotent_id('bfa264ec-c7dc-487a-9437-cb19d7aec7a3')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
+ 'PROMETHEUS listener tests are disabled in the tempest configuration.')
+ def test_prometheus_listener_create_no_allowed_cidrs(self):
+ if not self.mem_listener_client.is_version_supported(
+ self.api_version, '2.25'):
+ raise self.skipException('PROMETHEUS listeners are only available '
+ 'on Octavia API version 2.25 or newer.')
+ self._test_listener_create(const.PROMETHEUS, 8190,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('df9861c5-4a2a-4122-8d8f-5556156e343e')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
@@ -276,15 +300,37 @@
' require the either the barbican service,or running in noop.')
self._test_listener_create(const.TERMINATED_HTTPS, 8095)
+ @decorators.idempotent_id('3f91e0f6-e223-48ad-8c6a-b5a608cc8bb3')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
+ '[loadbalancer-feature-enabled] "terminated_tls_enabled" is '
+ 'False in the tempest configuration. TLS tests will be skipped.')
+ def test_terminated_https_listener_create_no_allowed_cidrs(self):
+ if not self.should_apply_terminated_https():
+ raise self.skipException(
+ f'Listener API tests with {const.TERMINATED_HTTPS} protocol'
+ ' require the either the barbican service,or running in noop.')
+ self._test_listener_create(const.TERMINATED_HTTPS, 8195,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('7b53f336-47bc-45ae-bbd7-4342ef0673fc')
def test_udp_listener_create(self):
self._test_listener_create(const.UDP, 8003)
+ @decorators.idempotent_id('214a837a-7173-46d9-a83b-a6e80f9295da')
+ def test_udp_listener_create_no_allowed_cidrs(self):
+ self._test_listener_create(const.UDP, 8103, use_allowed_cidrs=False)
+
@decorators.idempotent_id('d6d36c32-27ff-4977-9d21-fd71a14e3b20')
def test_sctp_listener_create(self):
self._test_listener_create(const.SCTP, 8004)
- def _test_listener_create(self, protocol, protocol_port):
+ @decorators.idempotent_id('bc38ac9b-7241-4047-b5aa-815f11359cf2')
+ def test_sctp_listener_create_no_allowed_cidrs(self):
+ self._test_listener_create(const.SCTP, 8104, use_allowed_cidrs=False)
+
+ def _test_listener_create(self, protocol, protocol_port,
+ use_allowed_cidrs=True):
"""Tests listener create and basic show APIs.
* Tests that users without the loadbalancer member role cannot
@@ -345,7 +391,7 @@
})
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
# Test that CIDR IP version matches VIP IP version
bad_cidrs = ['192.0.1.0/24', '2001:db8:a0b:12f0::/64']
listener_kwargs.update({const.ALLOWED_CIDRS: bad_cidrs})
@@ -448,7 +494,7 @@
listener[const.TAGS])
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
self.assertEqual(self.allowed_cidrs, listener[const.ALLOWED_CIDRS])
@decorators.idempotent_id('cceac303-4db5-4d5a-9f6e-ff33780a5f29')
@@ -679,10 +725,18 @@
def test_http_listener_list(self):
self._test_listener_list(const.HTTP, 8020)
+ @decorators.idempotent_id('3a753098-2b7c-43f9-b3f2-2be5576ec594')
+ def test_http_listener_list_no_allowed_cidrs(self):
+ self._test_listener_list(const.HTTP, 8120, use_allowed_cidrs=False)
+
@decorators.idempotent_id('61b7c643-f5fa-4471-8f9e-2e0ccdaf5ac7')
def test_https_listener_list(self):
self._test_listener_list(const.HTTPS, 8030)
+ @decorators.idempotent_id('e6c05d39-b76a-4245-83c2-0fc889e1e955')
+ def test_https_listener_list_no_allowed_cidrs(self):
+ self._test_listener_list(const.HTTPS, 8130, use_allowed_cidrs=False)
+
@decorators.idempotent_id('5473e071-8277-4ac5-9277-01ecaf46e274')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -694,18 +748,42 @@
'on Octavia API version 2.25 or newer.')
self._test_listener_list(const.PROMETHEUS, 8091)
+ @decorators.idempotent_id('71dd1ab0-b203-468e-9333-690847b848ee')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
+ 'PROMETHEUS listener tests are disabled in the tempest configuration.')
+ def test_prometheus_listener_list_no_allowed_cidrs(self):
+ if not self.mem_listener_client.is_version_supported(
+ self.api_version, '2.25'):
+ raise self.skipException('PROMETHEUS listeners are only available '
+ 'on Octavia API version 2.25 or newer.')
+ self._test_listener_list(const.PROMETHEUS, 8191,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('1cd476e2-7788-415e-bcaf-c377acfc9794')
def test_tcp_listener_list(self):
self._test_listener_list(const.TCP, 8030)
+ @decorators.idempotent_id('bdfe190e-6cee-46ae-a7cf-4acf617339df')
+ def test_tcp_listener_list_no_allowed_cidrs(self):
+ self._test_listener_list(const.TCP, 8130, use_allowed_cidrs=False)
+
@decorators.idempotent_id('c08fb77e-b317-4d6f-b430-91f5b27ebac6')
def test_udp_listener_list(self):
self._test_listener_list(const.UDP, 8040)
+ @decorators.idempotent_id('d2fbaf87-8441-4d66-a1c7-f9e2b246a419')
+ def test_udp_listener_list_no_allowed_cidrs(self):
+ self._test_listener_list(const.UDP, 8140, use_allowed_cidrs=False)
+
@decorators.idempotent_id('0abc3998-aacd-4edd-88f5-c5c35557646f')
def test_sctp_listener_list(self):
self._test_listener_list(const.SCTP, 8041)
+ @decorators.idempotent_id('b8a52d1a-97c9-4356-abe6-2ac9e90eed0c')
+ def test_sctp_listener_list_no_allowed_cidrs(self):
+ self._test_listener_list(const.SCTP, 8141, use_allowed_cidrs=False)
+
@decorators.idempotent_id('aed69f58-fe69-401d-bf07-37b0d6d8437f')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
@@ -718,7 +796,21 @@
' require the either the barbican service,or running in noop.')
self._test_listener_list(const.TERMINATED_HTTPS, 8042)
- def _test_listener_list(self, protocol, protocol_port_base):
+ @decorators.idempotent_id('0f0b5021-245e-42bd-84d5-c089c2028cf5')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
+ '[loadbalancer-feature-enabled] "terminated_tls_enabled" is '
+ 'False in the tempest configuration. TLS tests will be skipped.')
+ def test_terminated_https_listener_list_no_allowed_cidrs(self):
+ if not self.should_apply_terminated_https():
+ raise self.skipException(
+ f'Listener API tests with {const.TERMINATED_HTTPS} protocol'
+ ' require the either the barbican service,or running in noop.')
+ self._test_listener_list(const.TERMINATED_HTTPS, 8142,
+ use_allowed_cidrs=False)
+
+ def _test_listener_list(self, protocol, protocol_port_base,
+ use_allowed_cidrs=True):
"""Tests listener list API and field filtering.
* Create a clean loadbalancer.
@@ -1010,7 +1102,7 @@
show_listener_response_fields.append('timeout_member_data')
show_listener_response_fields.append('timeout_tcp_inspect')
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
show_listener_response_fields.append('allowed_cidrs')
if self.mem_listener_client.is_version_supported(
self.api_version, '2.27'):
@@ -1098,10 +1190,18 @@
def test_http_listener_show(self):
self._test_listener_show(const.HTTP, 8050)
+ @decorators.idempotent_id('f852a76d-f41c-48e4-9c73-6f99d49af581')
+ def test_http_listener_show_no_allowed_cidrs(self):
+ self._test_listener_show(const.HTTP, 8150, use_allowed_cidrs=False)
+
@decorators.idempotent_id('aa838646-435f-4a20-8442-519a7a138e7e')
def test_https_listener_show(self):
self._test_listener_show(const.HTTPS, 8051)
+ @decorators.idempotent_id('00ff83ca-e286-4080-b9ec-850979e676bb')
+ def test_https_listener_show_no_allowed_cidrs(self):
+ self._test_listener_show(const.HTTPS, 8151, use_allowed_cidrs=False)
+
@decorators.idempotent_id('b851b754-4333-4115-9063-a9fce44c2e46')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -1113,18 +1213,42 @@
'on Octavia API version 2.25 or newer.')
self._test_listener_show(const.PROMETHEUS, 8092)
+ @decorators.idempotent_id('6fd0c3ae-d091-4c45-aa72-447581ec7939')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
+ 'PROMETHEUS listener tests are disabled in the tempest configuration.')
+ def test_prometheus_listener_show_no_allowed_cidrs(self):
+ if not self.mem_listener_client.is_version_supported(
+ self.api_version, '2.25'):
+ raise self.skipException('PROMETHEUS listeners are only available '
+ 'on Octavia API version 2.25 or newer.')
+ self._test_listener_show(const.PROMETHEUS, 8192,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('1fcbbee2-b697-4890-b6bf-d308ac1c94cd')
def test_tcp_listener_show(self):
self._test_listener_show(const.TCP, 8052)
+ @decorators.idempotent_id('916d36b8-9211-4a4f-aa84-3ed38477afd3')
+ def test_tcp_listener_show_no_allowed_cidrs(self):
+ self._test_listener_show(const.TCP, 8152, use_allowed_cidrs=False)
+
@decorators.idempotent_id('1dea3a6b-c95b-4e91-b591-1aa9cbcd0d1d')
def test_udp_listener_show(self):
self._test_listener_show(const.UDP, 8053)
+ @decorators.idempotent_id('38201807-28d0-4e29-9796-58db3280484f')
+ def test_udp_listener_show_no_allowed_cidrs(self):
+ self._test_listener_show(const.UDP, 8153, use_allowed_cidrs=False)
+
@decorators.idempotent_id('10992529-1d0a-47a3-855c-3dbcd868db4e')
def test_sctp_listener_show(self):
self._test_listener_show(const.SCTP, 8054)
+ @decorators.idempotent_id('6755f564-c8b1-40a1-8514-4893feb6e54d')
+ def test_sctp_listener_show_no_allowed_cidrs(self):
+ self._test_listener_show(const.SCTP, 8154, use_allowed_cidrs=False)
+
@decorators.idempotent_id('2c2e7146-0efc-44b6-8401-f1c69c2422fe')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
@@ -1137,7 +1261,21 @@
' require the either the barbican service,or running in noop.')
self._test_listener_show(const.TERMINATED_HTTPS, 8055)
- def _test_listener_show(self, protocol, protocol_port):
+ @decorators.idempotent_id('9d7bd568-cc8b-49fe-bfed-f612944bd489')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
+ '[loadbalancer-feature-enabled] "terminated_tls_enabled" is '
+ 'False in the tempest configuration. TLS tests will be skipped.')
+ def test_terminated_https_listener_show_no_allowed_cidrs(self):
+ if not self.should_apply_terminated_https():
+ raise self.skipException(
+ f'Listener API tests with {const.TERMINATED_HTTPS} protocol'
+ ' require the either the barbican service,or running in noop.')
+ self._test_listener_show(const.TERMINATED_HTTPS, 8155,
+ use_allowed_cidrs=False)
+
+ def _test_listener_show(self, protocol, protocol_port,
+ use_allowed_cidrs=True):
"""Tests listener show API.
* Create a fully populated listener.
@@ -1199,7 +1337,7 @@
})
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
listener_kwargs.update({const.ALLOWED_CIDRS: self.allowed_cidrs})
listener = self.mem_listener_client.create_listener(**listener_kwargs)
@@ -1274,7 +1412,7 @@
self.assertEqual(const.ONLINE, listener[const.OPERATING_STATUS])
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
self.assertEqual(self.allowed_cidrs, listener[const.ALLOWED_CIDRS])
if hsts_supported:
@@ -1299,10 +1437,18 @@
def test_http_listener_update(self):
self._test_listener_update(const.HTTP, 8060)
+ @decorators.idempotent_id('8ee610b6-af92-4a59-8332-370b4d529250')
+ def test_http_listener_update_no_allowed_cidrs(self):
+ self._test_listener_update(const.HTTP, 8160, use_allowed_cidrs=False)
+
@decorators.idempotent_id('9679b061-2b2c-469f-abd9-26ed140ef001')
def test_https_listener_update(self):
self._test_listener_update(const.HTTPS, 8061)
+ @decorators.idempotent_id('cae9f1e2-c395-427a-a150-26ef864d6e83')
+ def test_https_listener_update_no_allowed_cidrs(self):
+ self._test_listener_update(const.HTTPS, 8161, use_allowed_cidrs=False)
+
@decorators.idempotent_id('cbba6bf8-9184-4da5-95e9-5efe1f89ddf0')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -1314,18 +1460,42 @@
'on Octavia API version 2.25 or newer.')
self._test_listener_update(const.PROMETHEUS, 8093)
+ @decorators.idempotent_id('cbc8ffa9-750f-4050-938a-555594f76916')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
+ 'PROMETHEUS listener tests are disabled in the tempest configuration.')
+ def test_prometheus_listener_update_no_allowed_cidrs(self):
+ if not self.mem_listener_client.is_version_supported(
+ self.api_version, '2.25'):
+ raise self.skipException('PROMETHEUS listeners are only available '
+ 'on Octavia API version 2.25 or newer.')
+ self._test_listener_update(const.PROMETHEUS, 8193,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('8d933121-db03-4ccc-8b77-4e879064a9ba')
def test_tcp_listener_update(self):
self._test_listener_update(const.TCP, 8062)
+ @decorators.idempotent_id('64b20147-59f0-4ce5-9390-d03767ae12c4')
+ def test_tcp_listener_update_no_allowed_cidrs(self):
+ self._test_listener_update(const.TCP, 8162, use_allowed_cidrs=False)
+
@decorators.idempotent_id('fd02dbfd-39ce-41c2-b181-54fc7ad91707')
def test_udp_listener_update(self):
self._test_listener_update(const.UDP, 8063)
+ @decorators.idempotent_id('1cf09eeb-c983-4dd6-b5d3-d36fb61830b2')
+ def test_udp_listener_update_no_allowed_cidrs(self):
+ self._test_listener_update(const.UDP, 8163, use_allowed_cidrs=False)
+
@decorators.idempotent_id('c590b485-4e08-4e49-b384-2282b3f6f1b9')
def test_sctp_listener_update(self):
self._test_listener_update(const.SCTP, 8064)
+ @decorators.idempotent_id('818d840a-c1e9-426b-92b9-c5131df2ba4f')
+ def test_sctp_listener_update_no_allowed_cidrs(self):
+ self._test_listener_update(const.SCTP, 8164, use_allowed_cidrs=False)
+
@decorators.idempotent_id('2ae08e10-fbf8-46d8-a073-15f90454d718')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
@@ -1338,7 +1508,21 @@
' require the either the barbican service,or running in noop.')
self._test_listener_update(const.TERMINATED_HTTPS, 8065)
- def _test_listener_update(self, protocol, protocol_port):
+ @decorators.idempotent_id('32e88736-6ba1-4d14-83ef-ebdb3e3950e4')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
+ '[loadbalancer-feature-enabled] "terminated_tls_enabled" is '
+ 'False in the tempest configuration. TLS tests will be skipped.')
+ def test_terminated_https_listener_update_no_allowed_cidrs(self):
+ if not self.should_apply_terminated_https():
+ raise self.skipException(
+ f'Listener API tests with {const.TERMINATED_HTTPS} protocol'
+ ' require the either the barbican service,or running in noop.')
+ self._test_listener_update(const.TERMINATED_HTTPS, 8165,
+ use_allowed_cidrs=False)
+
+ def _test_listener_update(self, protocol, protocol_port,
+ use_allowed_cidrs=True):
"""Tests listener update and show APIs.
* Create a fully populated listener.
@@ -1398,7 +1582,7 @@
})
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
listener_kwargs.update({const.ALLOWED_CIDRS: self.allowed_cidrs})
listener = self.mem_listener_client.create_listener(**listener_kwargs)
@@ -1459,7 +1643,7 @@
listener[const.TAGS])
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
self.assertEqual(self.allowed_cidrs, listener[const.ALLOWED_CIDRS])
# Test that a user without the loadbalancer role cannot
@@ -1514,7 +1698,7 @@
})
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
# Test that CIDR IP version matches VIP IP version
bad_cidrs = ['192.0.2.0/24', '2001:db8::/6']
listener_update_kwargs.update({const.ALLOWED_CIDRS: bad_cidrs})
@@ -1592,7 +1776,7 @@
listener[const.TAGS])
if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ self.api_version, '2.12') and use_allowed_cidrs:
expected_cidrs = ['192.0.2.0/24']
if CONF.load_balancer.test_with_ipv6:
expected_cidrs = ['2001:db8::/64']
@@ -1716,22 +1900,47 @@
def test_http_listener_show_stats(self):
self._test_listener_show_stats(const.HTTP, 8080)
+ @decorators.idempotent_id('2a97a5f3-f05c-447c-80a7-326efcf31ab2')
+ def test_http_listener_show_stats_no_allowed_cidrs(self):
+ self._test_listener_show_stats(const.HTTP, 8180,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('f8a43c27-f0a0-496d-a287-1958f337ac04')
def test_https_listener_show_stats(self):
self._test_listener_show_stats(const.HTTPS, 8081)
+ @decorators.idempotent_id('9766962d-6819-4cb7-944a-899fef3fa241')
+ def test_https_listener_show_stats_no_allowed_cidrs(self):
+ self._test_listener_show_stats(const.HTTPS, 8181,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('8a999856-f448-498c-b891-21af449b5208')
def test_tcp_listener_show_stats(self):
self._test_listener_show_stats(const.TCP, 8082)
+ @decorators.idempotent_id('6afaea72-f4ed-4f15-a1c3-57ed16f12068')
+ def test_tcp_listener_show_stats_no_allowed_cidrs(self):
+ self._test_listener_show_stats(const.TCP, 8182,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('a4c1f199-923b-41e4-a134-c91e590e20c4')
def test_udp_listener_show_stats(self):
self._test_listener_show_stats(const.UDP, 8083)
+ @decorators.idempotent_id('45a120c4-9bd1-4032-ae5e-9b6458598b3d')
+ def test_udp_listener_show_stats_no_allowed_cidrs(self):
+ self._test_listener_show_stats(const.UDP, 8183,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('7f6d3906-529c-4b99-8376-b836059df220')
def test_sctp_listener_show_stats(self):
self._test_listener_show_stats(const.SCTP, 8084)
+ @decorators.idempotent_id('460f2308-9411-4ab2-9b9e-23fe87c9dec3')
+ def test_sctp_listener_show_stats_no_allowed_cidrs(self):
+ self._test_listener_show_stats(const.SCTP, 8184,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('c39c996f-9633-4d81-a5f1-e94643f0c650')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
@@ -1744,7 +1953,21 @@
' require the either the barbican service,or running in noop.')
self._test_listener_show_stats(const.TERMINATED_HTTPS, 8085)
- def _test_listener_show_stats(self, protocol, protocol_port):
+ @decorators.idempotent_id('a402f84c-a29e-4e24-8ef6-f7eb8b0ffc46')
+ @testtools.skipUnless(
+ CONF.loadbalancer_feature_enabled.terminated_tls_enabled,
+ '[loadbalancer-feature-enabled] "terminated_tls_enabled" is '
+ 'False in the tempest configuration. TLS tests will be skipped.')
+ def test_terminated_https_listener_show_stats_no_allowed_cidrs(self):
+ if not self.should_apply_terminated_https():
+ raise self.skipException(
+ f'Listener API tests with {const.TERMINATED_HTTPS} protocol'
+ ' require the either the barbican service,or running in noop.')
+ self._test_listener_show_stats(const.TERMINATED_HTTPS, 8085,
+ use_allowed_cidrs=False)
+
+ def _test_listener_show_stats(self, protocol, protocol_port,
+ use_allowed_cidrs=True):
"""Tests listener show statistics API.
* Create a listener.
@@ -1776,6 +1999,10 @@
self.SNI2_secret_ref],
})
+ if self.mem_listener_client.is_version_supported(
+ self.api_version, '2.12') and use_allowed_cidrs:
+ listener_kwargs.update({const.ALLOWED_CIDRS: self.allowed_cidrs})
+
listener = self.mem_listener_client.create_listener(**listener_kwargs)
self.addCleanup(
self.mem_listener_client.cleanup_listener,
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_listener.py b/octavia_tempest_plugin/tests/scenario/v2/test_listener.py
index be997aa..74514f2 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_listener.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_listener.py
@@ -118,54 +118,117 @@
const.LB_ALGORITHM_LEAST_CONNECTIONS)
self._test_listener_CRUD(const.HTTP, pool1, pool2)
+ @decorators.idempotent_id('d6d729ba-b03f-496c-8e0f-53704cd4994d')
+ def test_http_least_connections_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.HTTP,
+ const.LB_ALGORITHM_LEAST_CONNECTIONS)
+ self._test_listener_CRUD(const.HTTP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('0681b2ac-8301-4e6c-bf29-b35244864af3')
def test_tcp_least_connections_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.TCP,
const.LB_ALGORITHM_LEAST_CONNECTIONS)
self._test_listener_CRUD(const.TCP, pool1, pool2)
+ @decorators.idempotent_id('10c5ecc8-533d-403c-9eb1-e3ca83586781')
+ def test_tcp_least_connections_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.TCP,
+ const.LB_ALGORITHM_LEAST_CONNECTIONS)
+ self._test_listener_CRUD(const.TCP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('27a2ba7d-6147-46e4-886a-47c1ba63bf89')
def test_udp_least_connections_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.UDP,
const.LB_ALGORITHM_LEAST_CONNECTIONS)
self._test_listener_CRUD(const.UDP, pool1, pool2)
+ @decorators.idempotent_id('76776488-b38d-418e-9804-e0be4a443b51')
+ def test_udp_least_connections_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.UDP,
+ const.LB_ALGORITHM_LEAST_CONNECTIONS)
+ self._test_listener_CRUD(const.UDP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('4a874014-b7d1-49a4-ac9a-2400b3434700')
def test_http_round_robin_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.HTTP,
const.LB_ALGORITHM_ROUND_ROBIN)
self._test_listener_CRUD(const.HTTP, pool1, pool2)
+ @decorators.idempotent_id('a2d8e2ca-5104-41b0-b011-819782e01054')
+ def test_http_round_robin_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.HTTP,
+ const.LB_ALGORITHM_ROUND_ROBIN)
+ self._test_listener_CRUD(const.HTTP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('2b888812-d916-44f0-b620-8d83dbb45975')
def test_tcp_round_robin_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.TCP,
const.LB_ALGORITHM_ROUND_ROBIN)
self._test_listener_CRUD(const.TCP, pool1, pool2)
+ @decorators.idempotent_id('1b2bfce6-29f9-4af6-87f2-329654c03c3d')
+ def test_tcp_round_robin_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.TCP,
+ const.LB_ALGORITHM_ROUND_ROBIN)
+ self._test_listener_CRUD(const.TCP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('dd913f74-c6a6-4998-9bed-095babb9cb47')
def test_udp_round_robin_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.UDP,
const.LB_ALGORITHM_ROUND_ROBIN)
self._test_listener_CRUD(const.UDP, pool1, pool2)
+ @decorators.idempotent_id('4a938409-eb79-4a9b-b003-44115153163d')
+ def test_udp_round_robin_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.UDP,
+ const.LB_ALGORITHM_ROUND_ROBIN)
+ self._test_listener_CRUD(const.UDP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('b2ae8604-7a4f-477c-9658-fac27734671a')
def test_http_source_ip_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.HTTP,
const.LB_ALGORITHM_SOURCE_IP)
self._test_listener_CRUD(const.HTTP, pool1, pool2)
+ @decorators.idempotent_id('baa747b1-0b3c-4f56-a1d1-b5550ec69c6e')
+ def test_http_source_ip_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.HTTP,
+ const.LB_ALGORITHM_SOURCE_IP)
+ self._test_listener_CRUD(const.HTTP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('0ad3fdee-e8c2-4c44-9690-b8a838fbc7a5')
def test_tcp_source_ip_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.TCP,
const.LB_ALGORITHM_SOURCE_IP)
self._test_listener_CRUD(const.TCP, pool1, pool2)
+ @decorators.idempotent_id('3778e729-8c5b-4634-876a-8bacba0976c2')
+ def test_tcp_source_ip_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.TCP,
+ const.LB_ALGORITHM_SOURCE_IP)
+ self._test_listener_CRUD(const.TCP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('7830aba8-12ca-40d9-9d9b-a63f7a43b287')
def test_udp_source_ip_listener_CRUD(self):
pool1, pool2 = self._create_pools(const.UDP,
const.LB_ALGORITHM_SOURCE_IP)
self._test_listener_CRUD(const.UDP, pool1, pool2)
+ @decorators.idempotent_id('8d98b27b-f775-4f1b-8b74-88ec2e60e39f')
+ def test_udp_source_ip_listener_CRUD_no_allowed_cidrs(self):
+ pool1, pool2 = self._create_pools(const.UDP,
+ const.LB_ALGORITHM_SOURCE_IP)
+ self._test_listener_CRUD(const.UDP, pool1, pool2,
+ use_allowed_cidrs=False)
+
@decorators.idempotent_id('807a421e-5e99-4556-b0eb-512d39b25eac')
def test_http_source_ip_port_listener_CRUD(self):
try:
@@ -180,6 +243,21 @@
message = e.resp_body.get('faultstring', message)
raise testtools.TestCase.skipException(message)
+ @decorators.idempotent_id('1d522a51-4fa0-4b8e-9f72-292e0f145bf1')
+ def test_http_source_ip_port_listener_CRUD_no_allowed_cidrs(self):
+ try:
+ pool1, pool2 = self._create_pools(
+ const.HTTP, const.LB_ALGORITHM_SOURCE_IP_PORT)
+ self._test_listener_CRUD(const.HTTP, pool1, pool2,
+ use_allowed_cidrs=False)
+ except exceptions.NotImplemented as e:
+ message = ("The configured provider driver '{driver}' "
+ "does not support a feature required for this "
+ "test.".format(driver=CONF.load_balancer.provider))
+ if hasattr(e, 'resp_body'):
+ message = e.resp_body.get('faultstring', message)
+ raise testtools.TestCase.skipException(message)
+
@decorators.idempotent_id('6211f8ad-622d-404d-b199-8c2eb55ab340')
def test_tcp_source_ip_port_listener_CRUD(self):
try:
@@ -194,6 +272,21 @@
message = e.resp_body.get('faultstring', message)
raise testtools.TestCase.skipException(message)
+ @decorators.idempotent_id('a66d32f9-2186-437e-a145-139f5a1b0786')
+ def test_tcp_source_ip_port_listener_CRUD_no_allowed_cidrs(self):
+ try:
+ pool1, pool2 = self._create_pools(
+ const.TCP, const.LB_ALGORITHM_SOURCE_IP_PORT)
+ self._test_listener_CRUD(const.TCP, pool1, pool2,
+ use_allowed_cidrs=False)
+ except exceptions.NotImplemented as e:
+ message = ("The configured provider driver '{driver}' "
+ "does not support a feature required for this "
+ "test.".format(driver=CONF.load_balancer.provider))
+ if hasattr(e, 'resp_body'):
+ message = e.resp_body.get('faultstring', message)
+ raise testtools.TestCase.skipException(message)
+
@decorators.idempotent_id('3f9a2de9-5012-437d-a907-a25e1f68ccfb')
def test_udp_source_ip_port_listener_CRUD(self):
try:
@@ -208,7 +301,23 @@
message = e.resp_body.get('faultstring', message)
raise testtools.TestCase.skipException(message)
- def _test_listener_CRUD(self, protocol, pool1_id, pool2_id):
+ @decorators.idempotent_id('dff6d829-9122-47cb-9ce5-f2def7fcf902')
+ def test_udp_source_ip_port_listener_CRUD_no_allowed_cidrs(self):
+ try:
+ pool1, pool2 = self._create_pools(
+ const.UDP, const.LB_ALGORITHM_SOURCE_IP_PORT)
+ self._test_listener_CRUD(const.UDP, pool1, pool2,
+ use_allowed_cidrs=False)
+ except exceptions.NotImplemented as e:
+ message = ("The configured provider driver '{driver}' "
+ "does not support a feature required for this "
+ "test.".format(driver=CONF.load_balancer.provider))
+ if hasattr(e, 'resp_body'):
+ message = e.resp_body.get('faultstring', message)
+ raise testtools.TestCase.skipException(message)
+
+ def _test_listener_CRUD(self, protocol, pool1_id, pool2_id,
+ use_allowed_cidrs=True):
"""Tests listener create, read, update, delete
* Create a fully populated listener.
@@ -249,8 +358,9 @@
const.TIMEOUT_MEMBER_DATA: 1000,
const.TIMEOUT_TCP_INSPECT: 50,
})
- if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ if (use_allowed_cidrs and
+ self.mem_listener_client.is_version_supported(
+ self.api_version, '2.12')):
listener_kwargs.update({const.ALLOWED_CIDRS: self.allowed_cidrs})
listener = self.mem_listener_client.create_listener(**listener_kwargs)
@@ -295,8 +405,9 @@
self.assertEqual(1000, listener[const.TIMEOUT_MEMBER_CONNECT])
self.assertEqual(1000, listener[const.TIMEOUT_MEMBER_DATA])
self.assertEqual(50, listener[const.TIMEOUT_TCP_INSPECT])
- if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ if (use_allowed_cidrs and
+ self.mem_listener_client.is_version_supported(
+ self.api_version, '2.12')):
self.assertEqual(self.allowed_cidrs, listener[const.ALLOWED_CIDRS])
# Listener update
@@ -328,9 +439,9 @@
const.TIMEOUT_MEMBER_DATA: 2000,
const.TIMEOUT_TCP_INSPECT: 100,
})
-
- if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ if (use_allowed_cidrs and
+ self.mem_listener_client.is_version_supported(
+ self.api_version, '2.12')):
new_cidrs = ['192.0.2.0/24']
if CONF.load_balancer.test_with_ipv6:
new_cidrs = ['2001:db8::/64']
@@ -382,8 +493,9 @@
self.assertEqual(2000, listener[const.TIMEOUT_MEMBER_CONNECT])
self.assertEqual(2000, listener[const.TIMEOUT_MEMBER_DATA])
self.assertEqual(100, listener[const.TIMEOUT_TCP_INSPECT])
- if self.mem_listener_client.is_version_supported(
- self.api_version, '2.12'):
+ if (use_allowed_cidrs and
+ self.mem_listener_client.is_version_supported(
+ self.api_version, '2.12')):
expected_cidrs = ['192.0.2.0/24']
if CONF.load_balancer.test_with_ipv6:
expected_cidrs = ['2001:db8::/64']