summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2013-01-15 13:44:21 +1300
committerRobert Collins <robertc@robertcollins.net>2013-01-15 14:20:59 +1300
commitf2baacd4e634b815fe011ced0d6e46f6c06b7fdd (patch)
tree0ca38bd4316c94a1216f9c3f5caa7e7ea381201b
parentb6b9ca1136de4b1dbb01b059d8e954dbaf0508cb (diff)
downloadnova-f2baacd4e634b815fe011ced0d6e46f6c06b7fdd.tar.gz
nova-f2baacd4e634b815fe011ced0d6e46f6c06b7fdd.tar.xz
nova-f2baacd4e634b815fe011ced0d6e46f6c06b7fdd.zip
Break out a helper function for working with bare metal nodes.
This makes it easier to get a bare metal internal node id when called from the manager. Change-Id: I1b39a7be5bd21d5b3060f11a74b9eaf79b107210
-rw-r--r--nova/virt/baremetal/driver.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py
index f66864127..62c0dff70 100644
--- a/nova/virt/baremetal/driver.py
+++ b/nova/virt/baremetal/driver.py
@@ -188,13 +188,22 @@ class BareMetalDriver(driver.ComputeDriver):
l.append(inst['name'])
return l
- def spawn(self, context, instance, image_meta, injected_files,
- admin_password, network_info=None, block_device_info=None):
+ def _require_node(self, instance):
+ """Get a node_id out of a manager instance dict.
+ The compute manager is meant to know the node id, so a missing node is
+ a significant issue - it may mean we've been passed someone elses data.
+ """
node_id = instance.get('node')
if not node_id:
raise exception.NovaException(_(
- "Baremetal node id not supplied to driver"))
+ "Baremetal node id not supplied to driver for %r")
+ % instance['uuid'])
+ return node_id
+
+ def spawn(self, context, instance, image_meta, injected_files,
+ admin_password, network_info=None, block_device_info=None):
+ node_id = self._require_node(instance)
# NOTE(deva): this db method will raise an exception if the node is
# already in use. We call it here to ensure no one else