summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorMuneyuki Noguchi <noguchimn@nttdata.co.jp>2011-03-31 17:39:00 +0900
committerMuneyuki Noguchi <noguchimn@nttdata.co.jp>2011-03-31 17:39:00 +0900
commitb5f0d2c22ce48d06dc502f7790ed48fdf007d7f6 (patch)
tree6b07be072c5a2706896fbb67346502aab4d10148 /nova
parent451fec4edb8a8dca0311aeb4c050a7b1d5304386 (diff)
Add volume.API.remove_from_compute instead of compute.API.remove_volume.
Diffstat (limited to 'nova')
-rw-r--r--nova/compute/api.py7
-rw-r--r--nova/compute/manager.py12
-rw-r--r--nova/volume/api.py7
3 files changed, 12 insertions, 14 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 63983afd8..1dbd73f8f 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -687,13 +687,6 @@ class API(base.Base):
"volume_id": volume_id}})
return instance
- def remove_volume(self, context, volume_id, host):
- """Remove volume on specified compute host."""
- rpc.call(context,
- self.db.queue_get_for(context, FLAGS.compute_topic, host),
- {"method": "remove_volume",
- "args": {'volume_id': volume_id}})
-
def associate_floating_ip(self, context, instance_id, address):
instance = self.get(context, instance_id)
self.network_api.associate_floating_ip(context,
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 8ce8a5d86..85bcd7590 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -46,13 +46,13 @@ import functools
from eventlet import greenthread
-from nova import compute
from nova import exception
from nova import flags
from nova import log as logging
from nova import manager
from nova import rpc
from nova import utils
+from nova import volume
from nova.compute import power_state
from nova.virt import driver
@@ -1037,14 +1037,12 @@ class ComputeManager(manager.SchedulerDependentManager):
'host': host})
if dest:
- # NOTE(noguchimn): We set image_service here
- # not to import an image service object.
- compute_api = compute.API(image_service=1)
- for volume in instance_ref['volumes']:
- volume_id = volume['id']
+ volume_api = volume.API()
+ for volume_ref in instance_ref['volumes']:
+ volume_id = volume_ref['id']
self.db.volume_update(ctxt, volume_id, {'status': 'in-use'})
if dest:
- compute_api.remove_volume(ctxt, volume_id, dest)
+ volume_api.remove_from_compute(ctxt, volume_id, dest)
def periodic_tasks(self, context=None):
"""Tasks to be run at a periodic interval."""
diff --git a/nova/volume/api.py b/nova/volume/api.py
index 4b4bb9dc5..09befb647 100644
--- a/nova/volume/api.py
+++ b/nova/volume/api.py
@@ -103,3 +103,10 @@ class API(base.Base):
# TODO(vish): abstract status checking?
if volume['status'] == "available":
raise exception.ApiError(_("Volume is already detached"))
+
+ def remove_from_compute(self, context, 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}})