Validate member address for batch update members
We added the configuration option for reserved IP addresses that cannot be used for load balancer member addresses, but the validation for batch update members is missing. This patch should also be backported to stable branches. Change-Id: Ibd3145cfd8b92a494f7cceff10414d6e153136e9 Story: 2003413
This commit is contained in:
parent
c7395e0488
commit
e943b39822
|
@ -337,6 +337,7 @@ class MembersController(MemberController):
|
|||
updated_members = []
|
||||
for m in members:
|
||||
if (m.address, m.protocol_port) not in old_member_uniques:
|
||||
validate.ip_not_reserved(m.address)
|
||||
new_members.append(m)
|
||||
else:
|
||||
m.id = old_member_uniques[(m.address, m.protocol_port)]
|
||||
|
|
|
@ -581,6 +581,19 @@ class TestMember(base.BaseAPITest):
|
|||
err_msg = 'Subnet ' + subnet_id + ' not found.'
|
||||
self.assertEqual(response.get('faultstring'), err_msg)
|
||||
|
||||
def test_create_batch_members_with_invalid_address(self):
|
||||
# 169.254.169.254 is the default invalid member address
|
||||
member5 = {'address': '169.254.169.254',
|
||||
'protocol_port': 80}
|
||||
|
||||
req_dict = [member5]
|
||||
body = {self.root_tag_list: req_dict}
|
||||
path = self.MEMBERS_PATH.format(pool_id=self.pool_id)
|
||||
|
||||
response = self.put(path, body, status=400).json
|
||||
err_msg = ("169.254.169.254 is not a valid option for member address")
|
||||
self.assertEqual(err_msg, response.get('faultstring'))
|
||||
|
||||
@mock.patch('octavia.api.drivers.driver_factory.get_driver')
|
||||
@mock.patch('octavia.api.drivers.utils.call_provider')
|
||||
def test_update_batch_members(self, mock_provider, mock_get_driver):
|
||||
|
|
Loading…
Reference in New Issue