summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-03-18 02:14:36 -0400
committerDan Prince <dan.prince@rackspace.com>2011-03-18 02:14:36 -0400
commit1abcdbea89e69013c193d2eb0b4b7a0bc2e2fa58 (patch)
tree6656e0ba194ab5de87d1dfdc9435e46af883c23c /nova/compute
parent79f2f90feec74b97d55af058c9bec4177bc47a54 (diff)
Implement metadata resource for Openstack API v1.1. Includes:
-GET /servers/id/meta -POST /servers/id/meta -GET /servers/id/meta/key -PUT /servers/id/meta/key -DELETE /servers/id/meta/key
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 32577af82..e70817212 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -612,3 +612,18 @@ class API(base.Base):
instance = self.get(context, instance_id)
self.network_api.associate_floating_ip(context, address,
instance['fixed_ip'])
+
+ def get_instance_metadata(self, context, instance_id):
+ """Get all metadata associated with an instance."""
+ rv = self.db.get_instance_metadata(context, instance_id)
+ return dict(rv.iteritems())
+
+ def delete_instance_metadata(self, context, instance_id, key):
+ """Delete the given metadata item"""
+ self.db.delete_instance_metadata(context, instance_id, key)
+
+ def update_or_create_instance_metadata(self, context, instance_id,
+ metadata):
+ """Updates or creates instance metadata"""
+ self.db.update_or_create_instance_metadata(context, instance_id,
+ metadata)