Moti Asayag has uploaded a new change for review. Change subject: engine: Ensure vm disks are set at initialization ......................................................................
engine: Ensure vm disks are set at initialization Ensures the disks and their target destination are set before the command is instantiated. Change-Id: I60273d948086465e637d6eec34445468b7acc0a7 Signed-off-by: Moti Asayag <masa...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommandTestAbstract.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommandTest.java 4 files changed, 24 insertions(+), 22 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/38347/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java index a59ce4d..66aa914 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.Set; +import org.apache.commons.collections.MapUtils; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.job.ExecutionContext; import org.ovirt.engine.core.bll.job.ExecutionHandler; @@ -100,11 +101,7 @@ setVmTemplateId(templateIdToUse); initTemplate(); - diskInfoDestinationMap = getParameters().getDiskInfoDestinationMap(); - if (diskInfoDestinationMap == null) { - diskInfoDestinationMap = new HashMap<>(); - } - + ensureDestinationImageMap(); nameForVmInPoolGenerator = new NameForVmInPoolGenerator(getParameters().getVmPool().getName()); } @@ -280,11 +277,13 @@ return false; } - if (!ensureDestinationImageMap()) { + if (getVmTemplate().getDiskTemplateMap().values().size() != diskInfoDestinationMap.size()) { + log.error("Can not found any default active domain for one of the disks of template with id '{}'", + getVmTemplate().getId()); + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_MISSED_STORAGES_FOR_SOME_DISKS); return false; } - storageToDisksMap = ImagesHandler.buildStorageToDiskMap(getVmTemplate().getDiskTemplateMap().values(), - diskInfoDestinationMap); + List<Guid> storageIds = new ArrayList<Guid>(); for (DiskImage diskImage : diskInfoDestinationMap.values()) { Guid storageId = diskImage.getStorageIds().get(0); @@ -340,12 +339,17 @@ storageToDisksMap.get(storageId)); } - private boolean ensureDestinationImageMap() { - if (diskInfoDestinationMap.isEmpty()) { - if (getParameters().getStorageDomainId() != null - && !Guid.Empty.equals(getParameters().getStorageDomainId())) { + private void ensureDestinationImageMap() { + if (MapUtils.isEmpty(getParameters().getDiskInfoDestinationMap())) { + diskInfoDestinationMap = new HashMap<>(); + + if (getVmTemplate() == null) { + return; + } + + if (!Guid.isNullOrEmpty(getParameters().getStorageDomainId())) { Guid storageId = getParameters().getStorageDomainId(); - ArrayList<Guid> storageIds = new ArrayList<Guid>(); + ArrayList<Guid> storageIds = new ArrayList<>(); storageIds.add(storageId); for (DiskImage image : getVmTemplate().getDiskTemplateMap().values()) { image.setStorageIds(storageIds); @@ -356,14 +360,13 @@ diskInfoDestinationMap, destStorages); } + } else { + diskInfoDestinationMap = getParameters().getDiskInfoDestinationMap(); } - if (getVmTemplate().getDiskTemplateMap().values().size() != diskInfoDestinationMap.size()) { - log.error("Can not found any default active domain for one of the disks of template with id '{}'", - getVmTemplate().getId()); - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_MISSED_STORAGES_FOR_SOME_DISKS); - return false; - } - return true; + + storageToDisksMap = + ImagesHandler.buildStorageToDiskMap(getVmTemplate().getDiskTemplateMap().values(), + diskInfoDestinationMap); } public boolean checkDestDomains() { diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommandTest.java index d894e92..d0121a9 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmPoolWithVmsCommandTest.java @@ -28,7 +28,6 @@ // do nothing - is done here and not with mockito since it's called in the ctor } }); - command.postConstruct(); return command; } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommandTestAbstract.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommandTestAbstract.java index 6224a43..9216dc6 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommandTestAbstract.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommandTestAbstract.java @@ -170,6 +170,7 @@ setUpCommand(); mockVds(); mockDbDAO(); + command.postConstruct(); } protected void setUpCommand() { diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommandTest.java index 29b11cc..7f17b64 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommandTest.java @@ -21,7 +21,6 @@ // do nothing - is done here and not with mockito since it's called in the ctor } }); - command.postConstruct(); return command; } -- To view, visit https://gerrit.ovirt.org/38347 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I60273d948086465e637d6eec34445468b7acc0a7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches