From 307f62bae05343e1ab3ca3d233397d15458bd27b Mon Sep 17 00:00:00 2001 From: ZhaoBo Date: Tue, 11 Dec 2018 11:02:29 +0800 Subject: [PATCH] Add enable_tls option into Pool CLI This patch add a new option into Pool to enable or disable backend re-encryption. Change-Id: I5b4acc1d2025bd8d24e1efd753b6f96cc40fdf99 Story: 2003858 Task: 26680 Depends-On: https://review.openstack.org/#/c/624264/ --- octaviaclient/osc/v2/constants.py | 3 +- octaviaclient/osc/v2/pool.py | 32 ++++++++++++++++++-- octaviaclient/osc/v2/utils.py | 3 ++ octaviaclient/tests/unit/osc/v2/constants.py | 3 +- octaviaclient/tests/unit/osc/v2/test_pool.py | 7 +++-- 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/octaviaclient/osc/v2/constants.py b/octaviaclient/osc/v2/constants.py index 134458f..5de57ab 100644 --- a/octaviaclient/osc/v2/constants.py +++ b/octaviaclient/osc/v2/constants.py @@ -103,7 +103,8 @@ POOL_ROWS = ( 'updated_at', 'tls_container_ref', 'ca_tls_container_ref', - 'crl_container_ref') + 'crl_container_ref', + 'tls_enabled') POOL_COLUMNS = ( 'id', diff --git a/octaviaclient/osc/v2/pool.py b/octaviaclient/osc/v2/pool.py index 145f5c8..04a6105 100644 --- a/octaviaclient/osc/v2/pool.py +++ b/octaviaclient/osc/v2/pool.py @@ -108,6 +108,19 @@ class CreatePool(command.ShowOne): "containting the CA revocation list file for ``tls_enabled`` " "pools to validate the backend member servers certificates." ) + tls_enable = parser.add_mutually_exclusive_group() + tls_enable.add_argument( + '--enable-tls', + action='store_true', + default=None, + help="Enable backend member re-encryption." + ) + tls_enable.add_argument( + '--disable-tls', + action='store_true', + default=None, + help="Disable backend member re-encryption." + ) return parser @@ -124,7 +137,8 @@ class CreatePool(command.ShowOne): 'session_persistence': v2_utils.format_hash} return (rows, (utils.get_dict_properties( - data['pool'], rows, formatters=formatters))) + data['pool'], rows, formatters=formatters, + mixed_case_fields=['enable-tls']))) class DeletePool(command.Command): @@ -204,7 +218,8 @@ class ShowPool(command.ShowOne): 'session_persistence': v2_utils.format_hash} return (rows, (utils.get_dict_properties( - data, rows, formatters=formatters))) + data, rows, formatters=formatters, + mixed_case_fields=['enable-tls']))) class SetPool(command.Command): @@ -276,6 +291,19 @@ class SetPool(command.Command): "listeners to valid the backend servers certificates in ssl " "traffic." ) + tls_enable = parser.add_mutually_exclusive_group() + tls_enable.add_argument( + '--enable-tls', + action='store_true', + default=None, + help="Enable backend associated members re-encryption." + ) + tls_enable.add_argument( + '--disable-tls', + action='store_true', + default=None, + help="disable backend associated members re-encryption." + ) return parser diff --git a/octaviaclient/osc/v2/utils.py b/octaviaclient/osc/v2/utils.py index 210298e..456183b 100644 --- a/octaviaclient/osc/v2/utils.py +++ b/octaviaclient/osc/v2/utils.py @@ -259,6 +259,9 @@ def get_pool_attrs(client_manager, parsed_args): _format_str_if_need_treat_unset), 'crl_container_ref': ('crl_container_ref', _format_str_if_need_treat_unset), + + 'enable_tls': ('tls_enabled', lambda x: True), + 'disable_tls': ('tls_enabled', lambda x: False), } _attrs = vars(parsed_args) diff --git a/octaviaclient/tests/unit/osc/v2/constants.py b/octaviaclient/tests/unit/osc/v2/constants.py index 45b99ba..360b20e 100644 --- a/octaviaclient/tests/unit/osc/v2/constants.py +++ b/octaviaclient/tests/unit/osc/v2/constants.py @@ -149,7 +149,8 @@ POOL_ATTRS = { "provisioning_status": "ACTIVE", "tls_container_ref": uuidutils.generate_uuid(), "ca_tls_container_ref": uuidutils.generate_uuid(), - "crl_container_ref": uuidutils.generate_uuid() + "crl_container_ref": uuidutils.generate_uuid(), + "tls_enabled": True } QUOTA_ATTRS = { diff --git a/octaviaclient/tests/unit/osc/v2/test_pool.py b/octaviaclient/tests/unit/osc/v2/test_pool.py index 9f60ae6..41ace7e 100644 --- a/octaviaclient/tests/unit/osc/v2/test_pool.py +++ b/octaviaclient/tests/unit/osc/v2/test_pool.py @@ -105,6 +105,7 @@ class TestPoolCreate(TestPool): '--name', self._po.name, '--protocol', 'HTTP', '--lb-algorithm', 'ROUND_ROBIN', + '--enable-tls', '--tls-container-ref', self._po.tls_container_ref, '--ca-tls-container-ref', self._po.ca_tls_container_ref, '--crl-container-ref', self._po.crl_container_ref] @@ -114,6 +115,7 @@ class TestPoolCreate(TestPool): ('name', self._po.name), ('protocol', 'HTTP'), ('lb_algorithm', 'ROUND_ROBIN'), + ('enable_tls', self._po.tls_enabled), ('tls_container_ref', self._po.tls_container_ref), ('ca_tls_container_ref', self._po.ca_tls_container_ref), ('crl_container_ref', self._po.crl_container_ref) @@ -158,7 +160,7 @@ class TestPoolSet(TestPool): 'test-crl-container-id') arglist = [self._po.id, '--name', 'new_name', '--tls-container-ref', new_tls_id, '--ca-tls-container-ref', new_ca_id, - '--crl-container-ref', new_crl_id] + '--crl-container-ref', new_crl_id, '--enable-tls'] verifylist = [ ('pool', self._po.id), ('name', 'new_name') @@ -169,4 +171,5 @@ class TestPoolSet(TestPool): self._po.id, json={'pool': {'name': 'new_name', 'tls_container_ref': new_tls_id, 'ca_tls_container_ref': new_ca_id, - 'crl_container_ref': new_crl_id}}) + 'crl_container_ref': new_crl_id, + 'tls_enabled': True}})