Merge "Better message on allowed address pairs error"
This commit is contained in:
commit
e7274957e4
|
@ -49,9 +49,13 @@ class AllowedAddressPairExhausted(nexception.BadRequest):
|
||||||
|
|
||||||
def _validate_allowed_address_pairs(address_pairs, valid_values=None):
|
def _validate_allowed_address_pairs(address_pairs, valid_values=None):
|
||||||
unique_check = {}
|
unique_check = {}
|
||||||
if len(address_pairs) > cfg.CONF.max_allowed_address_pair:
|
try:
|
||||||
raise AllowedAddressPairExhausted(
|
if len(address_pairs) > cfg.CONF.max_allowed_address_pair:
|
||||||
quota=cfg.CONF.max_allowed_address_pair)
|
raise AllowedAddressPairExhausted(
|
||||||
|
quota=cfg.CONF.max_allowed_address_pair)
|
||||||
|
except TypeError:
|
||||||
|
raise webob.exc.HTTPBadRequest(
|
||||||
|
_("Allowed address pairs must be a list."))
|
||||||
|
|
||||||
for address_pair in address_pairs:
|
for address_pair in address_pairs:
|
||||||
# mac_address is optional, if not set we use the mac on the port
|
# mac_address is optional, if not set we use the mac on the port
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
from oslo_config import cfg
|
||||||
|
from webob import exc as web_exc
|
||||||
|
|
||||||
from neutron.api.v2 import attributes as attr
|
from neutron.api.v2 import attributes as attr
|
||||||
from neutron.db import allowedaddresspairs_db as addr_pair_db
|
from neutron.db import allowedaddresspairs_db as addr_pair_db
|
||||||
|
@ -23,7 +25,6 @@ from neutron.extensions import portsecurity as psec
|
||||||
from neutron.extensions import securitygroup as secgroup
|
from neutron.extensions import securitygroup as secgroup
|
||||||
from neutron import manager
|
from neutron import manager
|
||||||
from neutron.tests.unit.db import test_db_base_plugin_v2
|
from neutron.tests.unit.db import test_db_base_plugin_v2
|
||||||
from oslo_config import cfg
|
|
||||||
|
|
||||||
|
|
||||||
DB_PLUGIN_KLASS = ('neutron.tests.unit.db.test_allowedaddresspairs_db.'
|
DB_PLUGIN_KLASS = ('neutron.tests.unit.db.test_allowedaddresspairs_db.'
|
||||||
|
@ -97,6 +98,16 @@ class AllowedAddressPairDBTestCase(AllowedAddressPairTestCase):
|
||||||
|
|
||||||
class TestAllowedAddressPairs(AllowedAddressPairDBTestCase):
|
class TestAllowedAddressPairs(AllowedAddressPairDBTestCase):
|
||||||
|
|
||||||
|
def test_create_port_allowed_address_pairs_bad_format(self):
|
||||||
|
with self.network() as net:
|
||||||
|
bad_values = [False, True, None, 1.1, 1]
|
||||||
|
for value in bad_values:
|
||||||
|
self._create_port(
|
||||||
|
self.fmt, net['network']['id'],
|
||||||
|
expected_res_status=web_exc.HTTPBadRequest.code,
|
||||||
|
arg_list=(addr_pair.ADDRESS_PAIRS,),
|
||||||
|
allowed_address_pairs=value)
|
||||||
|
|
||||||
def test_create_port_allowed_address_pairs(self):
|
def test_create_port_allowed_address_pairs(self):
|
||||||
with self.network() as net:
|
with self.network() as net:
|
||||||
address_pairs = [{'mac_address': '00:00:00:00:00:01',
|
address_pairs = [{'mac_address': '00:00:00:00:00:01',
|
||||||
|
|
Loading…
Reference in New Issue