diff --git a/neutron/plugins/bigswitch/servermanager.py b/neutron/plugins/bigswitch/servermanager.py index 5f2714176e..a886849fe5 100644 --- a/neutron/plugins/bigswitch/servermanager.py +++ b/neutron/plugins/bigswitch/servermanager.py @@ -253,8 +253,9 @@ class ServerPool(object): servers = [s if len(s.rsplit(':', 1)) == 2 else "%s:%d" % (s, default_port) for s in servers] - if any((len(spl) != 2)for spl in [sp.rsplit(':', 1) - for sp in servers]): + if any((len(spl) != 2 or not spl[1].isdigit()) + for spl in [sp.rsplit(':', 1) + for sp in servers]): raise cfg.Error(_('Servers must be defined as :. ' 'Configuration was %s') % servers) self.servers = [ diff --git a/neutron/tests/unit/bigswitch/test_servermanager.py b/neutron/tests/unit/bigswitch/test_servermanager.py new file mode 100644 index 0000000000..f313141ec0 --- /dev/null +++ b/neutron/tests/unit/bigswitch/test_servermanager.py @@ -0,0 +1,31 @@ +# Copyright 2014 Big Switch Networks, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# @author: Kevin Benton, kevin.benton@bigswitch.com +# +from oslo.config import cfg + +from neutron.plugins.bigswitch import servermanager +from neutron.tests.unit.bigswitch import test_restproxy_plugin as test_rp + + +class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): + + def test_no_servers(self): + cfg.CONF.set_override('servers', [], 'RESTPROXY') + self.assertRaises(cfg.Error, servermanager.ServerPool) + + def test_malformed_servers(self): + cfg.CONF.set_override('servers', ['a:b:c'], 'RESTPROXY') + self.assertRaises(cfg.Error, servermanager.ServerPool)