Merge "Add check to address_pair that items in list are dict"

This commit is contained in:
Jenkins 2016-11-25 08:04:29 +00:00 committed by Gerrit Code Review
commit b8347e16d1
2 changed files with 18 additions and 1 deletions

View File

@ -56,6 +56,9 @@ def _validate_allowed_address_pairs(address_pairs, valid_values=None):
quota=cfg.CONF.max_allowed_address_pair)
for address_pair in address_pairs:
msg = validators.validate_dict(address_pair)
if msg:
return msg
# mac_address is optional, if not set we use the mac on the port
if 'mac_address' in address_pair:
msg = validators.validate_mac_address(address_pair['mac_address'])

View File

@ -100,7 +100,8 @@ class TestAllowedAddressPairs(AllowedAddressPairDBTestCase):
def test_create_port_allowed_address_pairs_bad_format(self):
with self.network() as net:
bad_values = [False, True, 1.1, 1]
bad_values = [False, True, 1.1, 1, ['ip_address'],
['mac_address']]
for value in bad_values:
self._create_port(
self.fmt, net['network']['id'],
@ -249,6 +250,19 @@ class TestAllowedAddressPairs(AllowedAddressPairDBTestCase):
if ret_code == 201:
self._delete('ports', port['port']['id'])
def test_update_port_allowed_address_pairs_bad_format(self):
with self.network() as net:
res = self._create_port(self.fmt, net['network']['id'])
port = self.deserialize(self.fmt, res)
bad_values = [False, True, 1.1, 1, ['ip_address'],
['mac_address']]
for value in bad_values:
update_port = {'port': {addr_pair.ADDRESS_PAIRS: value}}
req = self.new_update_request('ports', update_port,
port['port']['id'])
res = req.get_response(self.api)
self.assertEqual(400, res.status_int)
def test_update_add_address_pairs(self):
with self.network() as net:
res = self._create_port(self.fmt, net['network']['id'])