From 009fa8c079a74e706c2b93acacf3a70f285cd84e Mon Sep 17 00:00:00 2001 From: Edison Su Date: Tue, 20 Dec 2011 17:09:41 -0800 Subject: [PATCH] bug 12158: only allow storage migration through migratevm api, iff no data disks attached to the vm. As data disks may have different service offering with the specified storage pool status 12158: resolved fixed --- server/src/com/cloud/vm/UserVmManagerImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 4c0eec9e61a..06183faec45 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -3235,6 +3235,11 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager if (vm.getType() != VirtualMachine.Type.User) { throw new InvalidParameterValueException("can only do storage migration on user vm"); } + + List vols = _volsDao.findByInstance(vm.getId()); + if (vols.size() > 1) { + throw new InvalidParameterValueException("Data disks attached to the vm, can not migrate. Need to dettach data disks at first"); + } HypervisorType destHypervisorType = _clusterDao.findById(destPool.getClusterId()).getHypervisorType(); if (vm.getHypervisorType() != destHypervisorType) {