From de7b7463dc5e4d91f36f077f9e3ec09e48e7c378 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Tue, 14 Feb 2012 19:46:19 +0000 Subject: [PATCH] Setting access ip values on server create. Change-Id: Id67c5e9d7bb00227e88ecbc2ffb0e772fcd69066 --- nova/flags.py | 7 +++++-- nova/tests/test_compute.py | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/nova/flags.py b/nova/flags.py index e97d08f5..42169eaf 100644 --- a/nova/flags.py +++ b/nova/flags.py @@ -454,7 +454,10 @@ global_opts = [ help='The volume API class to use'), cfg.StrOpt('security_group_handler', default='nova.network.quantum.sg.NullSecurityGroupHandler', - help='security group handler class') - ] + help='security group handler class'), + cfg.StrOpt('default_access_ip_network_name', + default=None, + help='Name of network to use to set access ips for instances'), +] FLAGS.register_opts(global_opts) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 48f16d7b..582846c9 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -192,7 +192,7 @@ class BaseTestCase(test.TestCase): class ComputeTestCase(BaseTestCase): def setUp(self): - def fake_get_nw_info(cls, ctxt, instance): + def fake_get_nw_info(cls, ctxt, instance, *args, **kwargs): self.assertTrue(ctxt.is_admin) return fake_network.fake_get_instance_nw_info(self.stubs, 1, 1, spectacular=True) @@ -200,6 +200,8 @@ class ComputeTestCase(BaseTestCase): super(ComputeTestCase, self).setUp() self.stubs.Set(nova.network.API, 'get_instance_nw_info', fake_get_nw_info) + self.stubs.Set(nova.network.API, 'allocate_for_instance', + fake_get_nw_info) def test_wrap_instance_fault(self): inst_uuid = "fake_uuid" @@ -271,6 +273,35 @@ class ComputeTestCase(BaseTestCase): finally: db.instance_destroy(self.context, instance['id']) + def test_default_access_ip(self): + self.flags(default_access_ip_network_name='test1', stub_network=False) + instance = self._create_fake_instance() + + try: + self.compute.run_instance(self.context, instance['uuid'], + is_first_time=True) + instances = db.instance_get_all(context.get_admin_context()) + instance = instances[0] + + self.assertEqual(instance.access_ip_v4, '192.168.1.100') + self.assertEqual(instance.access_ip_v6, '2001:db8:0:1::1') + finally: + db.instance_destroy(self.context, instance['id']) + + def test_no_default_access_ip(self): + instance = self._create_fake_instance() + + try: + self.compute.run_instance(self.context, instance['uuid'], + is_first_time=True) + instances = db.instance_get_all(context.get_admin_context()) + instance = instances[0] + + self.assertFalse(instance.access_ip_v4) + self.assertFalse(instance.access_ip_v6) + finally: + db.instance_destroy(self.context, instance['id']) + def _assert_state(self, state_dict): """assert the instance is in the state defined by state_dict""" instances = db.instance_get_all(context.get_admin_context())