diff options
| author | Robert Collins <robertc@robertcollins.net> | 2013-01-15 13:44:21 +1300 |
|---|---|---|
| committer | Robert Collins <robertc@robertcollins.net> | 2013-01-15 14:20:59 +1300 |
| commit | f2baacd4e634b815fe011ced0d6e46f6c06b7fdd (patch) | |
| tree | 0ca38bd4316c94a1216f9c3f5caa7e7ea381201b | |
| parent | b6b9ca1136de4b1dbb01b059d8e954dbaf0508cb (diff) | |
| download | nova-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.py | 15 |
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 |
