Browse Source

Add alpn_protocols to the pool data model

This change completes the ALPN support started in Victoria and initially
limited to listeners. Now with pools supported as well, this feature
work is completed in octavia-lib.

Change-Id: I01268f7afac8f6356616f3926d6fe9c1ec31b2b5
changes/94/752094/3 2.3.0
Carlos Goncalves 1 year ago
committed by Michael Johnson
parent
commit
0bc8c6a0b8
  1. 4
      octavia_lib/api/drivers/data_models.py
  2. 11
      octavia_lib/tests/unit/api/drivers/test_data_models.py
  3. 7
      releasenotes/notes/add-pool-alpn-protocols-a791538ab214e780.yaml

4
octavia_lib/api/drivers/data_models.py

@ -177,7 +177,8 @@ class Pool(BaseDataModel):
tls_container_data=Unset, ca_tls_container_ref=Unset,
ca_tls_container_data=Unset, crl_container_ref=Unset,
crl_container_data=Unset, tls_enabled=Unset,
project_id=Unset, tls_versions=Unset, tls_ciphers=Unset):
project_id=Unset, tls_versions=Unset, tls_ciphers=Unset,
alpn_protocols=Unset):
self.admin_state_up = admin_state_up
self.description = description
@ -200,6 +201,7 @@ class Pool(BaseDataModel):
self.project_id = project_id
self.tls_versions = tls_versions
self.tls_ciphers = tls_ciphers
self.alpn_protocols = alpn_protocols
class Member(BaseDataModel):

11
octavia_lib/tests/unit/api/drivers/test_data_models.py

@ -183,7 +183,10 @@ class TestProviderDataModels(base.TestCase):
constants.TLS_VERSION_1_1,
constants.TLS_VERSION_1_2,
constants.TLS_VERSION_1_3],
tls_ciphers=None)
tls_ciphers=None,
alpn_protocols=[constants.ALPN_PROTOCOL_HTTP_1_0,
constants.ALPN_PROTOCOL_HTTP_1_1,
constants.ALPN_PROTOCOL_HTTP_2])
self.ref_l7rule_dict = {'admin_state_up': True,
'compare_type': 'STARTS_WITH',
@ -332,7 +335,10 @@ class TestProviderDataModels(base.TestCase):
constants.TLS_VERSION_1_1,
constants.TLS_VERSION_1_2,
constants.TLS_VERSION_1_3],
'tls_ciphers': None}
'tls_ciphers': None,
'alpn_protocols': [constants.ALPN_PROTOCOL_HTTP_1_0,
constants.ALPN_PROTOCOL_HTTP_1_1,
constants.ALPN_PROTOCOL_HTTP_2]}
def test_equality(self):
second_ref_lb = deepcopy(self.ref_lb)
@ -378,6 +384,7 @@ class TestProviderDataModels(base.TestCase):
ref_pool_dict['healthmonitor'] = None
ref_pool_dict.pop('members', None)
ref_pool_dict.pop('tls_versions', None)
ref_pool_dict.pop('alpn_protocols', None)
ref_l7policy_dict = deepcopy(self.ref_l7policy_dict)
ref_l7policy_dict.pop('rules', None)

7
releasenotes/notes/add-pool-alpn-protocols-a791538ab214e780.yaml

@ -0,0 +1,7 @@
---
features:
- |
Added parameter ``alpn_protocols`` to pools. This parameter contains
the list of protocols supported by pools, in descending order of
preference. The supported protocols are ``http/1.0``, ``http/1.1``
and ``h2``.
Loading…
Cancel
Save