Skip to content

Commit 53e5c41

Browse files
author
Marcus Sorensen
committed
Randomize managed volume copy host
* Managed volume copy was always returning first host that could see storage pools * Fix null value in logging for ScaleIOPrimaryDataStoreDriver due to if/else logic error Signed-off-by: Marcus Sorensen <mls@apple.com>
1 parent 04acc03 commit 53e5c41

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

plugins/storage/volume/scaleio/src/main/java/org/apache/cloudstack/storage/datastore/driver/ScaleIOPrimaryDataStoreDriver.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,8 @@ public void copyAsync(DataObject srcData, DataObject destData, Host destHost, As
629629

630630
private Answer copyTemplateToVolume(DataObject srcData, DataObject destData, Host destHost) {
631631
// Copy PowerFlex/ScaleIO template to volume
632-
LOGGER.debug("Initiating copy from PowerFlex template volume on host " + destHost != null ? destHost.getId() : "");
632+
String debugMessage = "Initiating copy from PowerFlex template volume on host ";
633+
LOGGER.debug(destHost != null ? debugMessage + destHost.getId() : debugMessage);
633634
int primaryStorageDownloadWait = StorageManager.PRIMARY_STORAGE_DOWNLOAD_WAIT.value();
634635
CopyCommand cmd = new CopyCommand(srcData.getTO(), destData.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
635636

@@ -648,7 +649,8 @@ private Answer copyTemplateToVolume(DataObject srcData, DataObject destData, Hos
648649

649650
private Answer copyVolume(DataObject srcData, DataObject destData, Host destHost) {
650651
// Copy PowerFlex/ScaleIO volume
651-
LOGGER.debug("Initiating copy from PowerFlex volume on host " + destHost != null ? destHost.getId() : "");
652+
String debugMessage = "Initiating copy from PowerFlex volume on host ";
653+
LOGGER.debug(destHost != null ? debugMessage + destHost.getId() : debugMessage);
652654
String value = configDao.getValue(Config.CopyVolumeWait.key());
653655
int copyVolumeWait = NumbersUtil.parseInt(value, Integer.parseInt(Config.CopyVolumeWait.getDefaultValue()));
654656

server/src/main/java/com/cloud/storage/StorageManagerImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2136,6 +2136,7 @@ public Host findUpAndEnabledHostWithAccessToStoragePools(List<Long> poolIds) {
21362136
if (hostIds.isEmpty()) {
21372137
return null;
21382138
}
2139+
Collections.shuffle(hostIds);
21392140

21402141
for (Long hostId : hostIds) {
21412142
Host host = _hostDao.findById(hostId);

0 commit comments

Comments
 (0)