Merge pull request #231 from rackerlabs/conf_show_ipam_strategy

Added config to show ipam_strategy
This commit is contained in:
Jason Meridth
2014-10-01 21:26:12 -05:00
3 changed files with 36 additions and 5 deletions

View File

@@ -35,6 +35,9 @@ quark_view_opts = [
default=True,
help=_('Controls whether or not to calculate and display'
'allocation pools or not')),
cfg.BoolOpt('show_ipam_strategy',
default=False,
help=_('Controls whether or not to show ipam_strategy')),
cfg.BoolOpt('show_subnet_ip_policy_id',
default=True,
help=_('Controls whether or not to show ip_policy_id for'
@@ -54,9 +57,11 @@ def _make_network_dict(network, fields=None):
"name": network.get("name"),
"tenant_id": network.get("tenant_id"),
"admin_state_up": None,
"ipam_strategy": network.get("ipam_strategy"),
"status": "ACTIVE",
"shared": shared_net}
if CONF.QUARK.show_ipam_strategy:
res['ipam_strategy'] = network.get("ipam_strategy")
if not shared_net:
if fields and "all_subnets" in fields:
res["subnets"] = [_make_subnet_dict(s)

View File

@@ -19,6 +19,7 @@ import mock
import netaddr
from neutron.common import exceptions
from neutron.common import rpc
from oslo.config import cfg
from quark.db import api as db_api
import quark.ipam
@@ -36,6 +37,29 @@ class QuarkNetworkFunctionalTest(BaseFunctionalTest):
rpc.init(mock.MagicMock())
class QuarkGetNetwork(QuarkNetworkFunctionalTest):
def test_show_ipam_strategy(self):
plugin = quark.plugin.Plugin()
network = dict(name="public", tenant_id="fake", network_plugin="BASE")
network = dict(network=network)
original = cfg.CONF.QUARK.show_ipam_strategy
cfg.CONF.set_override('show_ipam_strategy', True, "QUARK")
net = plugin.create_network(self.context, network)
self.assertTrue('ipam_strategy' in net)
net = plugin.get_network(self.context, net['id'])
self.assertTrue('ipam_strategy' in net)
cfg.CONF.set_override('show_ipam_strategy', False, "QUARK")
net = plugin.create_network(self.context, network)
self.assertFalse('ipam_strategy' in net)
net = plugin.get_network(self.context, net['id'])
self.assertFalse('ipam_strategy' in net)
cfg.CONF.set_override('show_ipam_strategy', original, "QUARK")
class QuarkDeleteNetworKDeallocatedIPs(QuarkNetworkFunctionalTest):
@contextlib.contextmanager
def _stubs(self, network, subnet, dealloc=True):

View File

@@ -324,7 +324,7 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
with self._stubs(net=net) as net_create:
net = self.plugin.create_network(self.context, dict(network=net))
self.assertTrue(net_create.called)
self.assertEqual(len(net.keys()), 8)
self.assertEqual(len(net.keys()), 7)
self.assertIsNotNone(net["id"])
self.assertEqual(net["name"], "public")
self.assertIsNone(net["admin_state_up"])
@@ -332,7 +332,6 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
self.assertEqual(net["subnets"], [])
self.assertEqual(net["shared"], False)
self.assertEqual(net["tenant_id"], 0)
self.assertEqual(net["ipam_strategy"], None)
def test_create_network_with_subnets(self):
subnet = dict(id=2, cidr="172.168.0.0/24", tenant_id=0)
@@ -342,7 +341,7 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
net.update(dict(subnets=[dict(subnet=subnet)]))
net = self.plugin.create_network(self.context, dict(network=net))
self.assertTrue(net_create.called)
self.assertEqual(len(net.keys()), 8)
self.assertEqual(len(net.keys()), 7)
self.assertIsNotNone(net["id"])
self.assertEqual(net["name"], "public")
self.assertIsNone(net["admin_state_up"])
@@ -350,7 +349,6 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
self.assertEqual(net["subnets"], [2])
self.assertEqual(net["shared"], False)
self.assertEqual(net["tenant_id"], 0)
self.assertEqual(net["ipam_strategy"], None)
def test_create_network_with_id(self):
net = dict(id="abcdef", name="public", admin_state_up=True,
@@ -381,9 +379,13 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
net = dict(id="abcdef", name="public", admin_state_up=True,
tenant_id=0, ipam_strategy="BOTH")
admin_context = self.context.elevated()
original = cfg.CONF.QUARK.show_ipam_strategy
cfg.CONF.set_override('show_ipam_strategy', True, "QUARK")
with self._stubs(net=net):
res = self.plugin.create_network(admin_context, dict(network=net))
self.assertEqual(res["ipam_strategy"], net["ipam_strategy"])
cfg.CONF.set_override('show_ipam_strategy', original, "QUARK")
def test_create_network_with_bad_ipam_strategy_raises(self):
net = dict(id="abcdef", name="public", admin_state_up=True,