Martin Sivák has uploaded a new change for review. Change subject: core: Push ioTune QoS info when hotplugging disk ......................................................................
core: Push ioTune QoS info when hotplugging disk This adds the support for disk QoS for disks that are hotplugged while the VM is already running. Change-Id: Ic4bb85cd307089088be77cff28adbc783ebcaedd Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1145665 Signed-off-by: Martin Sivák <[email protected]> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugDiskVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java 2 files changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/33907/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugDiskVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugDiskVDSCommand.java index 0abdede..998ff83 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugDiskVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugDiskVDSCommand.java @@ -16,6 +16,7 @@ import org.ovirt.engine.core.common.businessentities.VolumeFormat; import org.ovirt.engine.core.common.utils.VmDeviceType; import org.ovirt.engine.core.common.vdscommands.HotPlugDiskVDSParameters; +import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.vdsbroker.architecture.GetControllerIndices; @@ -66,6 +67,19 @@ drive.put(VdsProperties.VolumeId, diskImage.getImageId().toString()); drive.put(VdsProperties.ImageId, diskImage.getId().toString()); drive.put(VdsProperties.PropagateErrors, disk.getPropagateErrors().toString().toLowerCase()); + + // maps to avoid fetching qos object for same disk profile id + Map<Guid, Guid> diskProfileStorageQosMap = new HashMap<>(); + Map<Guid, Map<String, Integer>> storageQosIoTuneMap = new HashMap<>(); + Map<String, Integer> ioTune = + VmInfoBuilder.buildIoTune(diskImage, diskProfileStorageQosMap, storageQosIoTuneMap); + if (ioTune != null) { + if (vmDevice.getSpecParams() == null) { + vmDevice.setSpecParams(new HashMap<String, Object>()); + } + vmDevice.getSpecParams().put(VdsProperties.Iotune, ioTune); + } + } else { LunDisk lunDisk = (LunDisk) disk; diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java index 5d853a1..c46a9bf 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java @@ -359,7 +359,7 @@ ArchStrategyFactory.getStrategy(vm.getClusterArch()).run(new CreateAdditionalControllers(devices)); } - private Map<String, Integer> buildIoTune(DiskImage diskImage, + static Map<String, Integer> buildIoTune(DiskImage diskImage, Map<Guid, Guid> diskProfileStorageQosMap, Map<Guid, Map<String, Integer>> storageQosIoTuneMap) { Guid diskProfileId = diskImage.getDiskProfileId(); @@ -385,7 +385,7 @@ return null; } - private Map<String, Integer> buildIoTuneMap(StorageQos storageQos) { + private static Map<String, Integer> buildIoTuneMap(StorageQos storageQos) { // build map Map<String, Integer> ioTuneMap = new HashMap<>(); if (storageQos.getMaxThroughput() != null) { -- To view, visit http://gerrit.ovirt.org/33907 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic4bb85cd307089088be77cff28adbc783ebcaedd Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Sivák <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
