You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/04/29 16:51:39 UTC
[1/6] git commit: updated refs/heads/4.5 to 031d7a9
Repository: cloudstack
Updated Branches:
refs/heads/4.5 f8b7251b8 -> 031d7a9c4
CLOUDSTACK-8402: Depend on openjdk 1.7 for both CentOS 6 and 7
This commit forces rpms to depend on java-1.7.0-openjdk which is available
on both CentOS 6 and CentOS 7, also the version that ACS 4.5 supports.
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/031d7a9c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/031d7a9c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/031d7a9c
Branch: refs/heads/4.5
Commit: 031d7a9c43c5082913064a39829ecefb2239c5ab
Parents: 795f381
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Apr 29 16:09:48 2015 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
packaging/centos63/default/macros.spec | 2 +-
packaging/centos63/rhel7/macros.spec | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/031d7a9c/packaging/centos63/default/macros.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/default/macros.spec b/packaging/centos63/default/macros.spec
index 638b07b..f20bde0 100644
--- a/packaging/centos63/default/macros.spec
+++ b/packaging/centos63/default/macros.spec
@@ -16,7 +16,7 @@
# under the License.
%define _pythonparamiko Requires: python-paramiko
-%define _javaversion java => 1.7.0
+%define _javaversion java-1.7.0-openjdk
%define _tomcatversion tomcat6
%define _vlanconfigtool vconfig
%define _tomcatpathname tomcat6
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/031d7a9c/packaging/centos63/rhel7/macros.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/rhel7/macros.spec b/packaging/centos63/rhel7/macros.spec
index 13eaf8e..7d7ee61 100644
--- a/packaging/centos63/rhel7/macros.spec
+++ b/packaging/centos63/rhel7/macros.spec
@@ -16,7 +16,7 @@
# under the License.
%define _pythonparamiko %{nil}
-%define _javaversion java => 1.7.0
+%define _javaversion java-1.7.0-openjdk
%define _tomcatversion tomcat => 7.0
%define _vlanconfigtool iproute
%define _tomcatpathname tomcat
[3/6] git commit: updated refs/heads/4.5 to 031d7a9
Posted by bh...@apache.org.
CLOUDSTACK-8410. ESXi host stuck disconnects frequently.
During ping task, while scanning and updating status of all VMs on the host that are stuck in a transitional state
and are missing from the power report, do so only for VMs that are not removed.
(cherry picked from commit de7173a0ed6434d1809d0471fe8f28bd339f208e)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e1db982d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e1db982d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e1db982d
Branch: refs/heads/4.5
Commit: e1db982d6b46f81240ef47ed2f6604e38d69c17a
Parents: f8b7251
Author: Likitha Shetty <li...@citrix.com>
Authored: Fri Mar 13 15:14:25 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
.../src/com/cloud/vm/VirtualMachineManagerImpl.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e1db982d/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 3cf8c2d..36c5c44 100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -3817,7 +3817,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
String sql = "SELECT i.* FROM vm_instance as i, host as h WHERE h.status = 'UP' " +
"AND h.id = ? AND i.power_state_update_time < ? AND i.host_id = h.id " +
"AND (i.state ='Starting' OR i.state='Stopping' OR i.state='Migrating') " +
- "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)";
+ "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)" +
+ "AND i.removed IS NULL";
List<Long> l = new ArrayList<Long>();
TransactionLegacy txn = null;
@@ -3851,7 +3852,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
String sql = "SELECT i.* FROM vm_instance as i, host as h WHERE h.status = 'UP' " +
"AND h.id = ? AND i.power_state_update_time > ? AND i.host_id = h.id " +
"AND (i.state ='Starting' OR i.state='Stopping' OR i.state='Migrating') " +
- "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)";
+ "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)" +
+ "AND i.removed IS NULL";
List<Long> l = new ArrayList<Long>();
TransactionLegacy txn = null;
@@ -3882,7 +3884,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
String sql = "SELECT i.* FROM vm_instance as i, host as h WHERE h.status != 'UP' " +
"AND i.power_state_update_time < ? AND i.host_id = h.id " +
"AND (i.state ='Starting' OR i.state='Stopping' OR i.state='Migrating') " +
- "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)";
+ "AND i.id NOT IN (SELECT w.vm_instance_id FROM vm_work_job AS w JOIN async_job AS j ON w.id = j.id WHERE j.job_status = ?)" +
+ "AND i.removed IS NULL";
List<Long> l = new ArrayList<Long>();
TransactionLegacy txn = null;
[5/6] git commit: updated refs/heads/4.5 to 031d7a9
Posted by bh...@apache.org.
CLOUDSTACK-8426: Use a separate thread pool for VR reboot in case of out-of-band movement
Using a cached thread pool for VR reboot task
(cherry picked from commit 1a719afb516164915b973f548c37814b448f0349)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/795f3814
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/795f3814
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/795f3814
Branch: refs/heads/4.5
Commit: 795f3814f69f341df107678ab45fc29297932aa1
Parents: 6378d37
Author: Koushik Das <ko...@apache.org>
Authored: Wed Apr 29 12:29:21 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
.../cloud/network/router/VirtualNetworkApplianceManagerImpl.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/795f3814/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 65a4a34..add6aa0 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -435,6 +435,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
ScheduledExecutorService _checkExecutor;
ScheduledExecutorService _networkStatsUpdateExecutor;
ExecutorService _rvrStatusUpdateExecutor;
+ ExecutorService _rebootRouterExecutor;
Account _systemAcct;
@@ -688,6 +689,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
_executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterMonitor"));
_checkExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterStatusMonitor"));
_networkStatsUpdateExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("NetworkStatsUpdater"));
+ _rebootRouterExecutor = Executors.newCachedThreadPool(new NamedThreadFactory("RebootRouterTask"));
VirtualMachine.State.getStateMachine().registerListener(this);
@@ -4494,7 +4496,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
// 2. If VM is in running state in CS and there is a 'PowerOn' report from new host
if (hostId == null || (hostId.longValue() != powerHostId.longValue())) {
s_logger.info("Schedule a router reboot task as router " + vo.getId() + " is powered-on out-of-band, need to reboot to refresh network rules");
- _executor.schedule(new RebootTask(vo.getId()), 1000, TimeUnit.MICROSECONDS);
+ _rebootRouterExecutor.execute(new RebootTask(vo.getId()));
}
}
}
[2/6] git commit: updated refs/heads/4.5 to 031d7a9
Posted by bh...@apache.org.
CLOUDSTACK-8425: Job framework: Same internal job can execute simultaneously
The same internal job was simultaneously getting executed by 2 worked threads.
The fix is to ensure that job gets scheduled for execution from a single place.
(cherry picked from commit 6dfb8ab03ed05747941a89b4079ff23d25f4d8fd)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6378d37c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6378d37c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6378d37c
Branch: refs/heads/4.5
Commit: 6378d37c5efdf7c4f761b3ae741ffa9032358b5d
Parents: 27b7e49
Author: Koushik Das <ko...@apache.org>
Authored: Wed Apr 29 11:10:48 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
.../cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java | 4 ++--
.../cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java | 1 -
.../cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java | 2 +-
3 files changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6378d37c/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java
index 167d9f5..29c3f1b 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/dao/SyncQueueItemDaoImpl.java
@@ -116,9 +116,9 @@ public class SyncQueueItemDaoImpl extends GenericDaoBase<SyncQueueItemVO, Long>
l.add(item);
}
} catch (SQLException e) {
- s_logger.error("Unexpected sql excetpion, ", e);
+ s_logger.error("Unexpected sql exception, ", e);
} catch (Throwable e) {
- s_logger.error("Unexpected excetpion, ", e);
+ s_logger.error("Unexpected exception, ", e);
}
return l;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6378d37c/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index c3c79c9..1ea3c78 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -554,7 +554,6 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
if (job.getSyncSource() != null) {
// here check queue item one more time to double make sure that queue item is removed in case of any uncaught exception
_queueMgr.purgeItem(job.getSyncSource().getId());
- checkQueue(job.getSyncSource().getQueueId());
}
try {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6378d37c/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
index 6535163..c17c581 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
@@ -160,7 +160,7 @@ public class SyncQueueManagerImpl extends ManagerBase implements SyncQueueManage
itemVO.setLastProcessTime(dt);
_syncQueueItemDao.update(item.getId(), itemVO);
- resultList.add(item);
+ resultList.add(itemVO);
}
}
}
[4/6] git commit: updated refs/heads/4.5 to 031d7a9
Posted by bh...@apache.org.
CLOUDSTACK-8411. Unable to delete an uploaded volume after CCP fails to attach the volume to a VM.
Correctly update the status of an uploaded volume upon failure to attach it to a VM.
(cherry picked from commit 10a106f5d86a7f6786b94a7298a5c63c32eab66b)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6c649ce3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6c649ce3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6c649ce3
Branch: refs/heads/4.5
Commit: 6c649ce3ae3e4b3c785e98ef0da8da4410c7dad5
Parents: e1db982
Author: Likitha Shetty <li...@citrix.com>
Authored: Thu Mar 26 17:25:12 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
.../org/apache/cloudstack/storage/volume/VolumeServiceImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6c649ce3/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
index b0555e2..3483544 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
@@ -889,7 +889,7 @@ public class VolumeServiceImpl implements VolumeService {
AsyncCallFuture<VolumeApiResult> future = context.future;
VolumeApiResult res = new VolumeApiResult(destVolume);
try {
- if (res.isFailed()) {
+ if (result.isFailed()) {
destVolume.processEvent(Event.OperationFailed);
srcVolume.processEvent(Event.OperationFailed);
res.setResult(result.getResult());
[6/6] git commit: updated refs/heads/4.5 to 031d7a9
Posted by bh...@apache.org.
CLOUDSTACK-8412. VM migration with storage fails.
Update MigrateWithStorageCommand to avoid JSON deserialization error.
(cherry picked from commit 04365601dac6d4dfa396e5c86ab7e698906dfb44)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/27b7e49b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/27b7e49b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/27b7e49b
Branch: refs/heads/4.5
Commit: 27b7e49b395d089ff45037faa51e73d979ceb62b
Parents: 6c649ce
Author: Likitha Shetty <li...@citrix.com>
Authored: Fri Apr 3 15:47:07 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Apr 29 16:50:40 2015 +0200
----------------------------------------------------------------------
.../hypervisor/vmware/resource/VmwareResource.java | 12 ++++++------
.../storage/motion/VmwareStorageMotionStrategy.java | 11 ++++++-----
2 files changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/27b7e49b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 9f90901..9e7db37 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -3036,7 +3036,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
List<VolumeObjectTO> volumeToList = new ArrayList<VolumeObjectTO>();
Map<Long, Integer> volumeDeviceKey = new HashMap<Long, Integer>();
- Map<VolumeTO, StorageFilerTO> volToFiler = cmd.getVolumeToFiler();
+ List<Pair<VolumeTO, StorageFilerTO>> volToFiler = cmd.getVolumeToFilerAsList();
String tgtHost = cmd.getTargetHost();
String tgtHostMorInfo = tgtHost.split("@")[0];
morTgtHost.setType(tgtHostMorInfo.split(":")[0]);
@@ -3064,9 +3064,9 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
vmName = vmMo.getName();
// Specify destination datastore location for each volume
- for (Entry<VolumeTO, StorageFilerTO> entry : volToFiler.entrySet()) {
- volume = entry.getKey();
- filerTo = entry.getValue();
+ for (Pair<VolumeTO, StorageFilerTO> entry : volToFiler) {
+ volume = entry.first();
+ filerTo = entry.second();
s_logger.debug("Preparing spec for volume : " + volume.getName());
morDsAtTarget = HypervisorHostHelper.findDatastoreWithBackwardsCompatibility(tgtHyperHost, filerTo.getUuid());
@@ -3195,8 +3195,8 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
}
// Update and return volume path for every disk because that could have changed after migration
- for (Entry<VolumeTO, StorageFilerTO> entry : volToFiler.entrySet()) {
- volume = entry.getKey();
+ for (Pair<VolumeTO, StorageFilerTO> entry : volToFiler) {
+ volume = entry.first();
long volumeId = volume.getId();
VirtualDisk[] disks = vmMo.getAllDiskDevice();
for (VirtualDisk disk : disks) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/27b7e49b/plugins/hypervisors/vmware/src/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategy.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategy.java b/plugins/hypervisors/vmware/src/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategy.java
index 24efde7..da9764d 100644
--- a/plugins/hypervisors/vmware/src/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategy.java
+++ b/plugins/hypervisors/vmware/src/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategy.java
@@ -19,7 +19,7 @@
package org.apache.cloudstack.storage.motion;
-import java.util.HashMap;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -53,6 +53,7 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.storage.StoragePool;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.VolumeDao;
+import com.cloud.utils.Pair;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.dao.VMInstanceDao;
@@ -130,12 +131,12 @@ public class VmwareStorageMotionStrategy implements DataMotionStrategy {
// Initiate migration of a virtual machine with it's volumes.
try {
- Map<VolumeTO, StorageFilerTO> volumeToFilerto = new HashMap<VolumeTO, StorageFilerTO>();
+ List<Pair<VolumeTO, StorageFilerTO>> volumeToFilerto = new ArrayList<Pair<VolumeTO, StorageFilerTO>>();
for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
VolumeInfo volume = entry.getKey();
VolumeTO volumeTo = new VolumeTO(volume, storagePoolDao.findById(volume.getPoolId()));
StorageFilerTO filerTo = new StorageFilerTO((StoragePool)entry.getValue());
- volumeToFilerto.put(volumeTo, filerTo);
+ volumeToFilerto.add(new Pair<VolumeTO, StorageFilerTO>(volumeTo, filerTo));
}
// Migration across cluster needs to be done in three phases.
@@ -168,12 +169,12 @@ public class VmwareStorageMotionStrategy implements DataMotionStrategy {
// Initiate migration of a virtual machine with it's volumes.
try {
- Map<VolumeTO, StorageFilerTO> volumeToFilerto = new HashMap<VolumeTO, StorageFilerTO>();
+ List<Pair<VolumeTO, StorageFilerTO>> volumeToFilerto = new ArrayList<Pair<VolumeTO, StorageFilerTO>>();
for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
VolumeInfo volume = entry.getKey();
VolumeTO volumeTo = new VolumeTO(volume, storagePoolDao.findById(volume.getPoolId()));
StorageFilerTO filerTo = new StorageFilerTO((StoragePool)entry.getValue());
- volumeToFilerto.put(volumeTo, filerTo);
+ volumeToFilerto.add(new Pair<VolumeTO, StorageFilerTO>(volumeTo, filerTo));
}
MigrateWithStorageCommand command = new MigrateWithStorageCommand(to, volumeToFilerto, destHost.getGuid());