diff options
| author | Robert Collins <robertc@robertcollins.net> | 2013-01-15 13:00:10 +1300 |
|---|---|---|
| committer | Robert Collins <robertc@robertcollins.net> | 2013-01-15 13:00:35 +1300 |
| commit | b6b9ca1136de4b1dbb01b059d8e954dbaf0508cb (patch) | |
| tree | d1af162543dd4b960755ddc1f05a8c426e51111a /nova/compute | |
| parent | ce0a7700595c57db132c2c07704c29e88a078dda (diff) | |
Define a hypervisor driver method for getting MAC addresses.
This lets hypervisors export the MAC addresses an instance needs to have (or
return the default of None if the hypervisor is not constrained by MAC
addresses). being provisioned.
Change-Id: I319a8deb2d09fbf8cecb7071256cf931924ef0e9
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/manager.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 4fa88084b..a4f17ee3d 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -678,9 +678,9 @@ class ComputeManager(manager.SchedulerDependentManager): try: limits = filter_properties.get('limits', {}) with rt.instance_claim(context, instance, limits): - + macs = self.driver.macs_for_instance(instance) network_info = self._allocate_network(context, instance, - requested_networks) + requested_networks, macs) block_device_info = self._prep_block_device(context, instance, bdms) instance = self._spawn(context, instance, image_meta, @@ -911,7 +911,7 @@ class ComputeManager(manager.SchedulerDependentManager): expected_task_state=(task_states.SCHEDULING, None)) - def _allocate_network(self, context, instance, requested_networks): + def _allocate_network(self, context, instance, requested_networks, macs): """Allocate networks for an instance and return the network info.""" instance = self._instance_update(context, instance['uuid'], vm_state=vm_states.BUILDING, @@ -922,7 +922,8 @@ class ComputeManager(manager.SchedulerDependentManager): # allocate and get network info network_info = self.network_api.allocate_for_instance( context, instance, vpn=is_vpn, - requested_networks=requested_networks) + requested_networks=requested_networks, + macs=macs) except Exception: LOG.exception(_('Instance failed network setup'), instance=instance) |
