summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-10-24 15:18:06 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-10-24 15:18:06 -0400
commit86b10119ca3649411c50ac3700a934efe40a09e5 (patch)
tree3770433c992d689d67eb8ddbfad2a8a0e5152ac1 /nova/compute
parent022afb9b0686f9d7af128f1a19927867cf08a180 (diff)
Server metadata must support server uuids.
Change-Id: I933e8aebce94867e4d23c13d978032b0ae99b896
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 2305c09ab..57e0d9edd 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -1528,13 +1528,21 @@ class API(base.Base):
floating_address=address,
fixed_address=fixed_ip_addrs[0])
+ def _get_native_instance_id(self, context, instance_id):
+ """If an instance id is a UUID, convert it to a native ID."""
+ if utils.is_uuid_like(instance_id):
+ instance_id = self.get(context, instance_id)['id']
+ return instance_id
+
def get_instance_metadata(self, context, instance_id):
"""Get all metadata associated with an instance."""
+ instance_id = self._get_native_instance_id(context, instance_id)
rv = self.db.instance_metadata_get(context, instance_id)
return dict(rv.iteritems())
def delete_instance_metadata(self, context, instance_id, key):
"""Delete the given metadata item from an instance."""
+ instance_id = self._get_native_instance_id(context, instance_id)
self.db.instance_metadata_delete(context, instance_id, key)
def update_instance_metadata(self, context, instance_id,
@@ -1545,6 +1553,8 @@ class API(base.Base):
`metadata` argument will be deleted.
"""
+ instance_id = self._get_native_instance_id(context, instance_id)
+
if delete:
_metadata = metadata
else: