Fix missing TLS handling in listener create
Change-Id: Ia47d93cd26605eeb7166010fc18c482a91d11127
(cherry picked from commit eefcd6eded
)
This commit is contained in:
parent
a165b15354
commit
28a777cdf5
|
@ -221,8 +221,8 @@ class ShowListener(command.ShowOne):
|
|||
'l7policies': v2_utils.format_list,
|
||||
'insert_headers': v2_utils.format_hash}
|
||||
|
||||
return (rows,
|
||||
(utils.get_dict_properties(data, rows, formatters=formatters)))
|
||||
return rows, utils.get_dict_properties(data, rows,
|
||||
formatters=formatters)
|
||||
|
||||
|
||||
class SetListener(command.Command):
|
||||
|
@ -267,7 +267,7 @@ class SetListener(command.Command):
|
|||
"listeners."
|
||||
)
|
||||
parser.add_argument(
|
||||
'---sni-container-refs',
|
||||
'--sni-container-refs',
|
||||
metavar='<container-ref>',
|
||||
nargs='*',
|
||||
help="A list of URIs to the key manager service secrets "
|
||||
|
|
|
@ -42,8 +42,8 @@ def get_resource_id(resource, resource_name, name):
|
|||
return 'non-uuid'
|
||||
elif resource_name == 'members':
|
||||
names = [re for re in resource(name['pool_id'])['members']
|
||||
if re.get('id') == name['member_id']
|
||||
or re.get('name') == name['member_id']]
|
||||
if re.get('id') == name['member_id'] or
|
||||
re.get('name') == name['member_id']]
|
||||
name = name['member_id']
|
||||
if len(names) > 1:
|
||||
msg = ("{0} {1} found with name or ID of {2}. Please try "
|
||||
|
@ -158,7 +158,9 @@ def get_listener_attrs(client_manager, parsed_args):
|
|||
),
|
||||
'enable': ('admin_state_up', lambda x: True),
|
||||
'disable': ('admin_state_up', lambda x: False),
|
||||
'insert_headers': ('insert_headers', _format_kv)
|
||||
'insert_headers': ('insert_headers', _format_kv),
|
||||
'default_tls_container_ref': ('default_tls_container_ref', str),
|
||||
'sni_container_refs': ('sni_container_refs', list)
|
||||
}
|
||||
|
||||
_attrs = vars(parsed_args)
|
||||
|
|
|
@ -98,6 +98,9 @@ class FakeListener(object):
|
|||
'default_pool_id': None,
|
||||
'connection_limit': 10,
|
||||
'admin_state_up': True,
|
||||
'default_tls_container_ref': str(uuid.uuid4()),
|
||||
'sni_container_refs': [str(uuid.uuid4()),
|
||||
str(uuid.uuid4())]
|
||||
}
|
||||
|
||||
li_info.update(attrs)
|
||||
|
|
|
@ -159,8 +159,8 @@ class TestHealthMonitorShow(TestHealthMonitor):
|
|||
super(TestHealthMonitorShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.health_monitor_list.return_value = self.hm_info
|
||||
self.api_mock.health_monitor_show.return_value = {
|
||||
'healthmonitor': self.hm_info['healthmonitors'][0]}
|
||||
self.api_mock.health_monitor_show.return_value = (
|
||||
self.hm_info['healthmonitors'][0])
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
|
@ -170,8 +170,7 @@ class TestL7PolicyShow(TestL7Policy):
|
|||
super(TestL7PolicyShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.l7policy_list.return_value = [{'id': self._l7po.id}]
|
||||
self.api_mock.l7policy_show.return_value = {
|
||||
'l7policy': self.l7po_info}
|
||||
self.api_mock.l7policy_show.return_value = self.l7po_info
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
|
@ -185,8 +185,7 @@ class TestL7RuleShow(TestL7Policy):
|
|||
self.api_mock = mock.Mock()
|
||||
self.api_mock.l7policy_list.return_value = self.l7po_info
|
||||
self.api_mock.l7rule_list.return_value = self.l7ru_info
|
||||
self.api_mock.l7rule_show.return_value = {
|
||||
'rule': self.l7ru_info['rules'][0]}
|
||||
self.api_mock.l7rule_show.return_value = self.l7ru_info['rules'][0]
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@ class TestListener(li_fakes.TestLoadBalancerv2):
|
|||
'project_id',
|
||||
'protocol',
|
||||
'protocol_port',
|
||||
'admin_state_up')
|
||||
'admin_state_up',
|
||||
)
|
||||
|
||||
datalist = (
|
||||
(
|
||||
|
@ -44,7 +45,7 @@ class TestListener(li_fakes.TestLoadBalancerv2):
|
|||
_li.project_id,
|
||||
_li.protocol,
|
||||
_li.protocol_port,
|
||||
_li.admin_state_up
|
||||
_li.admin_state_up,
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -60,7 +61,9 @@ class TestListener(li_fakes.TestLoadBalancerv2):
|
|||
'connection_limit': _li.connection_limit,
|
||||
'protocol': _li.protocol,
|
||||
'protocol_port': _li.protocol_port,
|
||||
'admin_state_up': _li.admin_state_up
|
||||
'admin_state_up': _li.admin_state_up,
|
||||
'default_tls_container_ref': _li.default_tls_container_ref,
|
||||
'sni_container_refs': _li.sni_container_refs
|
||||
}]
|
||||
}
|
||||
li_info = copy.deepcopy(info)
|
||||
|
@ -164,6 +167,32 @@ class TestListenerCreate(TestListener):
|
|||
self.api_mock.listener_create.assert_called_with(
|
||||
json={'listener': self.li_info['listeners'][0]})
|
||||
|
||||
@mock.patch('octaviaclient.osc.v2.utils.get_listener_attrs')
|
||||
def test_tls_listener_create(self, mock_client):
|
||||
mock_client.return_value = self.li_info['listeners'][0]
|
||||
arglist = ['mock_lb_id',
|
||||
'--name', self._li.name,
|
||||
'--protocol', 'TERMINATED_HTTPS',
|
||||
'--protocol-port', '443',
|
||||
'--sni-container-refs',
|
||||
self._li.sni_container_refs[0],
|
||||
self._li.sni_container_refs[1],
|
||||
'--default-tls-container-ref',
|
||||
self._li.default_tls_container_ref]
|
||||
verifylist = [
|
||||
('loadbalancer', 'mock_lb_id'),
|
||||
('name', self._li.name),
|
||||
('protocol', 'TERMINATED_HTTPS'),
|
||||
('protocol_port', '443'),
|
||||
('sni_container_refs', self._li.sni_container_refs),
|
||||
('default_tls_container_ref', self._li.default_tls_container_ref)
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
self.cmd.take_action(parsed_args)
|
||||
self.api_mock.listener_create.assert_called_with(
|
||||
json={'listener': self.li_info['listeners'][0]})
|
||||
|
||||
|
||||
class TestListenerShow(TestListener):
|
||||
|
||||
|
@ -171,8 +200,7 @@ class TestListenerShow(TestListener):
|
|||
super(TestListenerShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.listener_list.return_value = self.li_info
|
||||
self.api_mock.listener_show.return_value = {
|
||||
'listener': self.li_info['listeners'][0]}
|
||||
self.api_mock.listener_show.return_value = self.li_info['listeners'][0]
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
@ -196,13 +224,26 @@ class TestListenerSet(TestListener):
|
|||
self.cmd = listener.SetListener(self.app, None)
|
||||
|
||||
def test_listener_set(self):
|
||||
arglist = [self._li.id, '--name', 'new_name']
|
||||
arglist = [self._li.id, '--name', 'new_name',
|
||||
'--sni-container-refs',
|
||||
self._li.sni_container_refs[0],
|
||||
self._li.sni_container_refs[1],
|
||||
'--default-tls-container-ref',
|
||||
self._li.default_tls_container_ref]
|
||||
verifylist = [
|
||||
('listener', self._li.id),
|
||||
('name', 'new_name')
|
||||
('name', 'new_name'),
|
||||
('sni_container_refs', self._li.sni_container_refs),
|
||||
('default_tls_container_ref', self._li.default_tls_container_ref)
|
||||
]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
self.cmd.take_action(parsed_args)
|
||||
self.api_mock.listener_set.assert_called_with(
|
||||
self._li.id, json={'listener': {'name': 'new_name'}})
|
||||
self._li.id, json={
|
||||
'listener': {
|
||||
'name': 'new_name',
|
||||
'sni_container_refs': self._li.sni_container_refs,
|
||||
'default_tls_container_ref':
|
||||
self._li.default_tls_container_ref
|
||||
}})
|
||||
|
|
|
@ -166,8 +166,8 @@ class TestLoadBalancerShow(TestLoadBalancer):
|
|||
super(TestLoadBalancerShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.load_balancer_list.return_value = self.lb_info
|
||||
self.api_mock.load_balancer_show.return_value = {
|
||||
'loadbalancer': self.lb_info['loadbalancers'][0]}
|
||||
self.api_mock.load_balancer_show.return_value = (
|
||||
self.lb_info['loadbalancers'][0])
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
|
@ -190,8 +190,7 @@ class TestMemberShow(TestMember):
|
|||
super(TestMemberShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.member_list.return_value = self.mem_info
|
||||
self.api_mock.member_show.return_value = {
|
||||
'member': self.mem_info['members'][0]}
|
||||
self.api_mock.member_show.return_value = self.mem_info['members'][0]
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
|
@ -161,8 +161,7 @@ class TestPoolShow(TestPool):
|
|||
super(TestPoolShow, self).setUp()
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.pool_list.return_value = self.po_info
|
||||
self.api_mock.pool_show.return_value = {
|
||||
'pool': self.po_info['pools'][0]}
|
||||
self.api_mock.pool_show.return_value = self.po_info['pools'][0]
|
||||
lb_client = self.app.client_manager
|
||||
lb_client.load_balancer = self.api_mock
|
||||
|
||||
|
|
Loading…
Reference in New Issue