diff options
author | Vishvananda Ishaya <vishvananda@gmail.com> | 2011-09-23 09:22:32 -0700 |
---|---|---|
committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2011-10-11 14:25:04 -0700 |
commit | eb03d47fecd3bfc24243da29ee01679b334a08fe (patch) | |
tree | 23243973d2656fecadab6811e0dca6ceb246a7ae /nova/volume/api.py | |
parent | e164f3f703026db30937dbbddc63818cef8bd939 (diff) | |
download | nova-eb03d47fecd3bfc24243da29ee01679b334a08fe.tar.gz nova-eb03d47fecd3bfc24243da29ee01679b334a08fe.tar.xz nova-eb03d47fecd3bfc24243da29ee01679b334a08fe.zip |
Remove AoE, Clean up volume code
* Removes Ata Over Ethernet
* Adds drivers to libvirt for volumes
* Adds initialize_connection and terminate_connection to volume api
* Passes connection info back through volume api
Change-Id: I1b1626f40bebe8466ab410fb174683293c7c474f
Diffstat (limited to 'nova/volume/api.py')
-rw-r--r-- | nova/volume/api.py | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/nova/volume/api.py b/nova/volume/api.py index d9c082514..34103a1f3 100644 --- a/nova/volume/api.py +++ b/nova/volume/api.py @@ -23,7 +23,6 @@ Handles all requests relating to volumes. from eventlet import greenthread -from nova import db from nova import exception from nova import flags from nova import log as logging @@ -180,12 +179,49 @@ class API(base.Base): if volume['status'] == "available": raise exception.ApiError(_("Volume is already detached")) - def remove_from_compute(self, context, volume_id, host): + def remove_from_compute(self, context, instance_id, volume_id, host): """Remove volume from specified compute host.""" rpc.call(context, self.db.queue_get_for(context, FLAGS.compute_topic, host), - {"method": "remove_volume", - "args": {'volume_id': volume_id}}) + {"method": "remove_volume_connection", + "args": {'instance_id': instance_id, + 'volume_id': volume_id}}) + + def attach(self, context, volume_id, instance_id, mountpoint): + volume = self.get(context, volume_id) + host = volume['host'] + queue = self.db.queue_get_for(context, FLAGS.volume_topic, host) + return rpc.call(context, queue, + {"method": "attach_volume", + "args": {"volume_id": volume_id, + "instance_id": instance_id, + "mountpoint": mountpoint}}) + + def detach(self, context, volume_id): + volume = self.get(context, volume_id) + host = volume['host'] + queue = self.db.queue_get_for(context, FLAGS.volume_topic, host) + return rpc.call(context, queue, + {"method": "detach_volume", + "args": {"volume_id": volume_id}}) + + def initialize_connection(self, context, volume_id, address): + volume = self.get(context, volume_id) + host = volume['host'] + queue = self.db.queue_get_for(context, FLAGS.volume_topic, host) + return rpc.call(context, queue, + {"method": "initialize_connection", + "args": {"volume_id": volume_id, + "address": address}}) + + def terminate_connection(self, context, volume_id, address): + volume = self.get(context, volume_id) + host = volume['host'] + queue = self.db.queue_get_for(context, FLAGS.volume_topic, host) + return rpc.call(context, queue, + {"method": "terminate_connection", + "args": {"volume_id": volume_id, + "address": address}}) def _create_snapshot(self, context, volume_id, name, description, force=False): |