Arik Hadas has uploaded a new change for review. Change subject: core: fix NPE on addition of external vm ......................................................................
core: fix NPE on addition of external vm We add externally managed VMs using AddVmFromScratch command. This command is called by the monitoring thread so no user is set as the 'current user' when it is executed. Thus we got NPE when trying to set the its disk permissions. However, this kind of VMs are diskless VMs so we are not supposed to set disk permissions for it. Thus, changing AddVmCommand#addDiskPermissions in a way that the disk owners will not be retrieved for diskless VMs prevents the NPE. Change-Id: I2e0cff201b1c8c89682fc2c3a4ddbc88b4ec803e Bug-Url: https://bugzilla.redhat.com/1176528 Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/36348/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index 640c006..a46ab20 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -1243,12 +1243,10 @@ protected void addDiskPermissions() { List<Guid> newDiskImageIds = new ArrayList<>(srcDiskIdToTargetDiskIdMapping.values()); Permissions[] permsArray = new Permissions[newDiskImageIds.size()]; - Guid diskOperatorIdFromParams = getParameters().getDiskOperatorAuthzPrincipalDbId(); - Guid diskOperatorId = diskOperatorIdFromParams != null ? diskOperatorIdFromParams : getCurrentUser().getId(); for (int i = 0; i < newDiskImageIds.size(); i++) { permsArray[i] = - new Permissions(diskOperatorId, + new Permissions(getUserIdOfDiskOperator(), PredefinedRoles.DISK_OPERATOR.getId(), newDiskImageIds.get(i), VdcObjectType.Disk); @@ -1256,6 +1254,11 @@ MultiLevelAdministrationHandler.addPermission(permsArray); } + private Guid getUserIdOfDiskOperator() { + Guid diskOperatorIdFromParams = getParameters().getDiskOperatorAuthzPrincipalDbId(); + return diskOperatorIdFromParams != null ? diskOperatorIdFromParams : getCurrentUser().getId(); + } + protected void addActiveSnapshot() { _vmSnapshotId = Guid.newGuid(); new SnapshotsManager().addActiveSnapshot(_vmSnapshotId, getVm(), getCompensationContext()); -- To view, visit http://gerrit.ovirt.org/36348 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2e0cff201b1c8c89682fc2c3a4ddbc88b4ec803e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches