Merge pull request #231 from rackerlabs/conf_show_ipam_strategy
Added config to show ipam_strategy
This commit is contained in:
@@ -35,6 +35,9 @@ quark_view_opts = [
|
|||||||
default=True,
|
default=True,
|
||||||
help=_('Controls whether or not to calculate and display'
|
help=_('Controls whether or not to calculate and display'
|
||||||
'allocation pools or not')),
|
'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',
|
cfg.BoolOpt('show_subnet_ip_policy_id',
|
||||||
default=True,
|
default=True,
|
||||||
help=_('Controls whether or not to show ip_policy_id for'
|
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"),
|
"name": network.get("name"),
|
||||||
"tenant_id": network.get("tenant_id"),
|
"tenant_id": network.get("tenant_id"),
|
||||||
"admin_state_up": None,
|
"admin_state_up": None,
|
||||||
"ipam_strategy": network.get("ipam_strategy"),
|
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"shared": shared_net}
|
"shared": shared_net}
|
||||||
|
if CONF.QUARK.show_ipam_strategy:
|
||||||
|
res['ipam_strategy'] = network.get("ipam_strategy")
|
||||||
|
|
||||||
if not shared_net:
|
if not shared_net:
|
||||||
if fields and "all_subnets" in fields:
|
if fields and "all_subnets" in fields:
|
||||||
res["subnets"] = [_make_subnet_dict(s)
|
res["subnets"] = [_make_subnet_dict(s)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import mock
|
|||||||
import netaddr
|
import netaddr
|
||||||
from neutron.common import exceptions
|
from neutron.common import exceptions
|
||||||
from neutron.common import rpc
|
from neutron.common import rpc
|
||||||
|
from oslo.config import cfg
|
||||||
|
|
||||||
from quark.db import api as db_api
|
from quark.db import api as db_api
|
||||||
import quark.ipam
|
import quark.ipam
|
||||||
@@ -36,6 +37,29 @@ class QuarkNetworkFunctionalTest(BaseFunctionalTest):
|
|||||||
rpc.init(mock.MagicMock())
|
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):
|
class QuarkDeleteNetworKDeallocatedIPs(QuarkNetworkFunctionalTest):
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def _stubs(self, network, subnet, dealloc=True):
|
def _stubs(self, network, subnet, dealloc=True):
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
|
|||||||
with self._stubs(net=net) as net_create:
|
with self._stubs(net=net) as net_create:
|
||||||
net = self.plugin.create_network(self.context, dict(network=net))
|
net = self.plugin.create_network(self.context, dict(network=net))
|
||||||
self.assertTrue(net_create.called)
|
self.assertTrue(net_create.called)
|
||||||
self.assertEqual(len(net.keys()), 8)
|
self.assertEqual(len(net.keys()), 7)
|
||||||
self.assertIsNotNone(net["id"])
|
self.assertIsNotNone(net["id"])
|
||||||
self.assertEqual(net["name"], "public")
|
self.assertEqual(net["name"], "public")
|
||||||
self.assertIsNone(net["admin_state_up"])
|
self.assertIsNone(net["admin_state_up"])
|
||||||
@@ -332,7 +332,6 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
|
|||||||
self.assertEqual(net["subnets"], [])
|
self.assertEqual(net["subnets"], [])
|
||||||
self.assertEqual(net["shared"], False)
|
self.assertEqual(net["shared"], False)
|
||||||
self.assertEqual(net["tenant_id"], 0)
|
self.assertEqual(net["tenant_id"], 0)
|
||||||
self.assertEqual(net["ipam_strategy"], None)
|
|
||||||
|
|
||||||
def test_create_network_with_subnets(self):
|
def test_create_network_with_subnets(self):
|
||||||
subnet = dict(id=2, cidr="172.168.0.0/24", tenant_id=0)
|
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.update(dict(subnets=[dict(subnet=subnet)]))
|
||||||
net = self.plugin.create_network(self.context, dict(network=net))
|
net = self.plugin.create_network(self.context, dict(network=net))
|
||||||
self.assertTrue(net_create.called)
|
self.assertTrue(net_create.called)
|
||||||
self.assertEqual(len(net.keys()), 8)
|
self.assertEqual(len(net.keys()), 7)
|
||||||
self.assertIsNotNone(net["id"])
|
self.assertIsNotNone(net["id"])
|
||||||
self.assertEqual(net["name"], "public")
|
self.assertEqual(net["name"], "public")
|
||||||
self.assertIsNone(net["admin_state_up"])
|
self.assertIsNone(net["admin_state_up"])
|
||||||
@@ -350,7 +349,6 @@ class TestQuarkCreateNetwork(test_quark_plugin.TestQuarkPlugin):
|
|||||||
self.assertEqual(net["subnets"], [2])
|
self.assertEqual(net["subnets"], [2])
|
||||||
self.assertEqual(net["shared"], False)
|
self.assertEqual(net["shared"], False)
|
||||||
self.assertEqual(net["tenant_id"], 0)
|
self.assertEqual(net["tenant_id"], 0)
|
||||||
self.assertEqual(net["ipam_strategy"], None)
|
|
||||||
|
|
||||||
def test_create_network_with_id(self):
|
def test_create_network_with_id(self):
|
||||||
net = dict(id="abcdef", name="public", admin_state_up=True,
|
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,
|
net = dict(id="abcdef", name="public", admin_state_up=True,
|
||||||
tenant_id=0, ipam_strategy="BOTH")
|
tenant_id=0, ipam_strategy="BOTH")
|
||||||
admin_context = self.context.elevated()
|
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):
|
with self._stubs(net=net):
|
||||||
res = self.plugin.create_network(admin_context, dict(network=net))
|
res = self.plugin.create_network(admin_context, dict(network=net))
|
||||||
self.assertEqual(res["ipam_strategy"], net["ipam_strategy"])
|
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):
|
def test_create_network_with_bad_ipam_strategy_raises(self):
|
||||||
net = dict(id="abcdef", name="public", admin_state_up=True,
|
net = dict(id="abcdef", name="public", admin_state_up=True,
|
||||||
|
|||||||
Reference in New Issue
Block a user