Tal Nisan has uploaded a new change for review. Change subject: webadmin: Fix disk alias recycling ......................................................................
webadmin: Fix disk alias recycling When creating a new disk via webadmin, the suggested disk alias created the suggested alias from the VM name concated with the amount of the disk on the VM + 1, in case all disk were created by that convention, deleting a disk which is not the last one and adding a new disk resulted in a suggested disk alias which matches the last disk alias exactly Change-Id: Ie852fbcf26c0742c610631a121b9bfd706c01218 Signed-off-by: Tal Nisan <[email protected]> Bug-url: https://bugzilla.redhat.com/1022795 --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetNextAvailableDiskAliasNameByVMIdQuery.java 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/24061/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetNextAvailableDiskAliasNameByVMIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetNextAvailableDiskAliasNameByVMIdQuery.java index ed05073..e62ec32 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetNextAvailableDiskAliasNameByVMIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetNextAvailableDiskAliasNameByVMIdQuery.java @@ -1,5 +1,9 @@ package org.ovirt.engine.core.bll; +import java.util.ArrayList; +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -18,8 +22,12 @@ VM vm = getDbFacade().getVmDao().get(getParameters().getId(), getUserID(), getParameters().isFiltered()); if (vm != null) { updateDisksFromDb(vm); - suggestedDiskName = - ImagesHandler.getDefaultDiskAlias(vm.getName(), Integer.toString(vm.getDiskMapCount() + 1)); + List<String> aliases = createDiskAliasesList(vm); + int i = 0; + do { + i++; + suggestedDiskName = ImagesHandler.getDefaultDiskAlias(vm.getName(), Integer.toString(vm.getDiskMapCount() + i)); + } while(aliases.contains(suggestedDiskName)); } getQueryReturnValue().setReturnValue(suggestedDiskName); } @@ -28,4 +36,12 @@ protected void updateDisksFromDb(VM vm) { VmHandler.updateDisksFromDb(vm); } + + private List<String> createDiskAliasesList(VM vm) { + List<String> diskAliases = new ArrayList<>(vm.getDiskMap().size()); + for (Disk disk : vm.getDiskMap().values()) { + diskAliases.add(disk.getDiskAlias()); + } + return diskAliases; + } } -- To view, visit http://gerrit.ovirt.org/24061 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie852fbcf26c0742c610631a121b9bfd706c01218 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tal Nisan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
