Signed-off-by: Aaron Karper <[email protected]>
---
 lib/cmdlib/instance.py | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/lib/cmdlib/instance.py b/lib/cmdlib/instance.py
index 8eb6e93..74584f8 100644
--- a/lib/cmdlib/instance.py
+++ b/lib/cmdlib/instance.py
@@ -2053,7 +2053,7 @@ class LUInstanceRemove(LogicalUnit):
 
 
 class LUInstanceMove(LogicalUnit):
-  """Move an instance by data-copying.
+  """Move an instance by data-copying if necessary.
 
   """
   HPATH = "instance-move"
@@ -2195,13 +2195,16 @@ class LUInstanceMove(LogicalUnit):
     disks = self.cfg.GetInstanceDisks(self.instance.uuid)
     for idx, disk in enumerate(disks):
       # FIXME: pass debug option from opcode to backend
-      dt = masterd.instance.DiskTransfer("disk/%s" % idx,
-                                         constants.IEIO_RAW_DISK,
-                                         (disk, self.instance),
-                                         constants.IEIO_RAW_DISK,
-                                         (disk, self.instance),
-                                         None)
-      transfers.append(dt)
+      if disk.dev_type in constants.DTS_COPYABLE:
+        # if disk.dev_type is merely MOVABLE, it means it is available
+        # automatically, e.g. by sharedfile or Ceph.
+        dt = masterd.instance.DiskTransfer("disk/%s" % idx,
+                                           constants.IEIO_RAW_DISK,
+                                           (disk, self.instance),
+                                           constants.IEIO_RAW_DISK,
+                                           (disk, self.instance),
+                                           None)
+        transfers.append(dt)
       self.cfg.Update(disk, feedback_fn)
 
     import_result = \
-- 
2.1.0.rc2.206.gedb03e5

Reply via email to