Make nova-network use conductor for security groups refresh

This makes nova-network use the existing conductor interface for
triggering security groups member refreshes.

Related to blueprint nova-network-objects

Change-Id: Ieca163d67cd005534acb225df83457d755295af9
Related-bug: 1290568
This commit is contained in:
Dan Smith 2014-03-12 06:28:36 -07:00
parent 4d24d23fa0
commit b1838c258d
3 changed files with 12 additions and 5 deletions

View File

@ -52,6 +52,7 @@ import netaddr
from oslo.config import cfg
from oslo import messaging
from nova import conductor
from nova import context
from nova import exception
from nova import ipv6
@ -61,7 +62,6 @@ from nova.network import driver
from nova.network import floating_ips
from nova.network import model as network_model
from nova.network import rpcapi as network_rpcapi
from nova.network.security_group import openstack_driver
from nova.objects import base as obj_base
from nova.objects import dns_domain as dns_domain_obj
from nova.objects import fixed_ip as fixed_ip_obj
@ -295,8 +295,7 @@ class NetworkManager(manager.Manager):
CONF.floating_ip_dns_manager)
self.network_api = network_api.API()
self.network_rpcapi = network_rpcapi.NetworkAPI()
self.security_group_api = (
openstack_driver.get_openstack_security_group_driver())
self.conductor_api = conductor.API()
self.servicegroup_api = servicegroup.API()
@ -401,8 +400,8 @@ class NetworkManager(manager.Manager):
groups = instance.security_groups
group_ids = [group.id for group in groups]
self.security_group_api.trigger_members_refresh(admin_context,
group_ids)
self.conductor_api.security_groups_trigger_members_refresh(
admin_context, group_ids)
def get_floating_ips_by_fixed_address(self, context, fixed_address):
# NOTE(jkoelker) This is just a stub function. Managers supporting

View File

@ -169,6 +169,7 @@ class FlatNetworkTestCase(test.TestCase):
super(FlatNetworkTestCase, self).setUp()
self.tempdir = self.useFixture(fixtures.TempDir()).path
self.flags(log_dir=self.tempdir)
self.flags(use_local=True, group='conductor')
self.network = network_manager.FlatManager(host=HOST)
self.network.instance_dns_domain = ''
self.network.db = db
@ -641,6 +642,7 @@ class VlanNetworkTestCase(test.TestCase):
def setUp(self):
super(VlanNetworkTestCase, self).setUp()
self.useFixture(test.SampleNetworks())
self.flags(use_local=True, group='conductor')
self.network = network_manager.VlanManager(host=HOST)
self.network.db = db
self.context = context.RequestContext('testuser', 'testproject',
@ -1539,6 +1541,7 @@ class CommonNetworkTestCase(test.TestCase):
super(CommonNetworkTestCase, self).setUp()
self.context = context.RequestContext('fake', 'fake')
self.flags(ipv6_backend='rfc2462')
self.flags(use_local=True, group='conductor')
ipv6.reset_backend()
def test_validate_instance_zone_for_dns_domain(self):
@ -2143,6 +2146,7 @@ class RPCAllocateTestCase(test.TestCase):
"""Tests nova.network.manager.RPCAllocateFixedIP."""
def setUp(self):
super(RPCAllocateTestCase, self).setUp()
self.flags(use_local=True, group='conductor')
self.rpc_fixed = TestRPCFixedManager()
self.context = context.RequestContext('fake', 'fake')
@ -2261,6 +2265,7 @@ class FloatingIPTestCase(test.TestCase):
super(FloatingIPTestCase, self).setUp()
self.tempdir = self.useFixture(fixtures.TempDir()).path
self.flags(log_dir=self.tempdir)
self.flags(use_local=True, group='conductor')
self.network = TestFloatingIPManager()
self.network.db = db
self.project_id = 'testproject'
@ -2751,6 +2756,7 @@ class InstanceDNSTestCase(test.TestCase):
super(InstanceDNSTestCase, self).setUp()
self.tempdir = self.useFixture(fixtures.TempDir()).path
self.flags(log_dir=self.tempdir)
self.flags(use_local=True, group='conductor')
self.network = TestFloatingIPManager()
self.network.db = db
self.project_id = 'testproject'

View File

@ -33,6 +33,7 @@ from nova.compute import power_state
from nova.compute import task_states
from nova.compute import utils as compute_utils
from nova.compute import vm_states
from nova.conductor import api as conductor_api
from nova import context
from nova import crypto
from nova import db
@ -988,6 +989,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
xenapi_fake.reset_table('network')
# Instance id = 2 will use vlan network (see db/fakes.py)
ctxt = self.context.elevated()
self.network.conductor_api = conductor_api.LocalAPI()
instance = self._create_instance(2, False)
networks = self.network.db.network_get_all(ctxt)
with mock.patch('nova.objects.network.Network._from_db_object'):