diff options
| author | Jason Kölker <jason@koelker.net> | 2011-05-23 18:46:04 -0500 |
|---|---|---|
| committer | Jason Kölker <jason@koelker.net> | 2011-05-23 18:46:04 -0500 |
| commit | 72b173279657f16492280923d562d4dcb705d724 (patch) | |
| tree | 0e54405685ff73b6027bbd31052e1c0bc0ca229e | |
| parent | 65091eb4b9718c35fdcb3d3d070dffcc4fb820a3 (diff) | |
blah
| -rw-r--r-- | nova/network/api.py | 2 | ||||
| -rw-r--r-- | nova/network/manager.py | 15 | ||||
| -rw-r--r-- | nova/tests/test_cloud.py | 3 |
3 files changed, 12 insertions, 8 deletions
diff --git a/nova/network/api.py b/nova/network/api.py index 4477aac42..c1df4dba2 100644 --- a/nova/network/api.py +++ b/nova/network/api.py @@ -111,6 +111,8 @@ class API(base.Base): """ args = kwargs args['instance_id'] = instance['id'] + args['instance_type_id'] = instance['instance_type_id'] + args['project_id'] = instance['project_id'] return rpc.call(context, FLAGS.network_topic, {'method': 'allocate_for_instance', 'args': args}) diff --git a/nova/network/manager.py b/nova/network/manager.py index 33365f3f8..642d99a95 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -258,7 +258,7 @@ class NetworkManager(manager.SchedulerDependentManager): # return so worker will only grab 1 (to help scale flatter) return self.set_network_host(context, network['id']) - def _get_networks_for_instance(self, context, instance=None): + def _get_networks_for_instance(self, context, project_id=None): """determine which networks an instance should connect to""" # TODO(tr3buchet) maybe this needs to be updated in the future if # there is a better way to determine which networks @@ -269,7 +269,8 @@ class NetworkManager(manager.SchedulerDependentManager): return [network for network in networks if not network['vlan'] and network['host']] - def allocate_for_instance(self, context, instance_id, **kwargs): + def allocate_for_instance(self, context, instance_id, instance_type_id, + project_id=None, **kwargs): """handles allocating the various network resources for an instance rpc.called by network_api @@ -277,13 +278,14 @@ class NetworkManager(manager.SchedulerDependentManager): LOG.debug(_("network allocations for instance %s"), instance_id, context=context) admin_context = context.elevated() - networks = self._get_networks_for_instance(admin_context, instance) + networks = self._get_networks_for_instance(admin_context, project_id) network_ids = [n['id'] for n in networks] self._allocate_mac_addresses(context, instance_id, network_ids) self._allocate_fixed_ips(admin_context, instance_id, network_ids, **kwargs) - return self._create_nw_info(admin_context, instance) + return self._create_nw_info(admin_context, instance_id, + instance_type_id) def deallocate_for_instance(self, context, instance_id, **kwargs): """handles deallocating various network resources for an instance in @@ -760,11 +762,10 @@ class VlanManager(RPCAllocateFixedIP, FloatingIP, NetworkManager): network['bridge'], network['bridge_interface']) - def _get_networks_for_instance(self, context, instance): + def _get_networks_for_instance(self, context, project_id): """determine which networks an instance should connect to""" # get networks associated with project - networks = self.db.project_get_networks(context, - instance['project_id']) + networks = self.db.project_get_networks(context, project_id) # return only networks which have host set return [network for network in networks if network['host']] diff --git a/nova/tests/test_cloud.py b/nova/tests/test_cloud.py index 3c29a1178..73e157582 100644 --- a/nova/tests/test_cloud.py +++ b/nova/tests/test_cloud.py @@ -126,7 +126,8 @@ class CloudTestCase(test.TestCase): inst = db.instance_create(self.context, {'host': self.compute.host}) networks = db.network_get_all(self.context) print networks - print self.network.allocate_for_instance(self.context, inst) + print self.network.allocate_for_instance(self.context, inst['id'], + inst['instance_type_id']) fixed = self.network.allocate_fixed_ip(self.context, inst, networks[0]) |
