Alon Bar-Lev has posted comments on this change. Change subject: aaa: more fixes to command context propgation ......................................................................
Patch Set 6: (22 comments) http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java: Line 190 Line 191 Line 192 Line 193 Line 194 without instead of null? http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java: Line 597: getVmStaticDAO().incrementDbGeneration(getVmTemplateId()); Line 598: for (VdcActionParametersBase p : getParameters().getImagesParameters()) { Line 599: Backend.getInstance().endAction(VdcActionType.CreateImageTemplate, Line 600: p, Line 601: cloneContext().withoutCompensationContext().withoutExecutionContext().withoutLock()); detach? Line 602: } Line 603: if (reloadVmTemplateFromDB() != null) { Line 604: endDefaultOperations(); Line 605: } Line 675: for (VdcActionParametersBase p : getParameters().getImagesParameters()) { Line 676: p.setTaskGroupSuccess(false); Line 677: Backend.getInstance().endAction(VdcActionType.CreateImageTemplate, Line 678: p, Line 679: cloneContext().withoutCompensationContext().withoutExecutionContext().withoutLock()); detach? Line 680: } Line 681: Line 682: // if template exist in db remove it Line 683: if (getVmTemplate() != null) { http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java: Line 211: runVmParams.setParentCommand(VdcActionType.AttachUserToVmFromPoolAndRun); Line 212: runVmParams.setRunAsStateless(true); Line 213: ExecutionContext runVmContext = createRunVmContext(); Line 214: VdcReturnValueBase vdcReturnValue = runInternalAction(VdcActionType.RunVm, Line 215: runVmParams, cloneContext().withExecutionContext(runVmContext).withoutLock().withCompensationContext(null)); withoutCompensationContext? Line 216: Line 217: getTaskIdList().addAll(vdcReturnValue.getInternalVdsmTaskIdList()); Line 218: setSucceeded(vdcReturnValue.getSucceeded()); Line 219: setActionReturnValue(vmToAttach); Line 245: protected void endSuccessfully() { Line 246: if (getVm() != null) { Line 247: if (DbFacade.getInstance().getSnapshotDao().exists(getVm().getId(), SnapshotType.STATELESS)) { Line 248: setSucceeded(Backend.getInstance().endAction(VdcActionType.RunVm, Line 249: getParameters().getImagesParameters().get(0), cloneContext().withoutLock().withExecutionContext(null)).getSucceeded()); withoutCompensationContext? Line 250: Line 251: if (!getSucceeded()) { Line 252: log.warn("EndSuccessfully: endAction of RunVm failed, detaching user from Vm"); Line 253: detachUserFromVmFromPool(); // just in case. Line 273: @Override Line 274: protected void endWithFailure() { Line 275: setSucceeded(Backend.getInstance().endAction(VdcActionType.RunVm, Line 276: getParameters().getImagesParameters().get(0), Line 277: cloneContext().withExecutionContext(null).withoutLock()).getSucceeded()); withoutCompensationContext? Line 278: if (!getSucceeded()) { Line 279: log.warn("AttachUserToVmFromPoolAndRunCommand::EndWitFailure: endAction of RunVm Failed"); Line 280: } Line 281: detachUserFromVmFromPool(); http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommonVmPoolWithVmsCommand.java: Line 218: ExecutionMessageDirector.resolveStepMessage(StepEnum.ADD_VM_TO_POOL, values)); Line 219: ExecutionContext ctx = new ExecutionContext(); Line 220: ctx.setStep(addVmStep); Line 221: ctx.setMonitored(true); Line 222: commandCtx = cloneContext().withExecutionContext(ctx).withoutLock().withoutCompensationContext(); detach().withExecutionContext(ctx) ? Line 223: } catch (RuntimeException e) { Line 224: log.errorFormat("Failed to create command context of adding VM {0} to Pool {1}", Line 225: currentVmName, Line 226: getParameters().getVmPool().getName(), http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java: Line 658: Line 659: @Override Line 660: public CommandContext cloneContextAndDetachFromParent() { Line 661: return super.cloneContextAndDetachFromParent(); Line 662: } why is this needed? Line 663: http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java: Line 112: Line 113: @Override Line 114: public CommandContext cloneContextAndDetachFromParent() { Line 115: return super.cloneContextAndDetachFromParent(); Line 116: } why is this needed? Line 117: Line 118: @Override Line 119: public List<PermissionSubject> getPermissionCheckSubjects() { Line 120: List<PermissionSubject> permissionSubjects = new ArrayList<>(); http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java: Line 1363: Line 1364: @Override Line 1365: public CommandContext cloneContextAndDetachFromParent() { Line 1366: return super.cloneContextAndDetachFromParent(); Line 1367: } why is it needed? http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java: Line 50: Line 51: @Override Line 52: public CommandContext cloneContextAndDetachFromParent() { Line 53: return super.cloneContextAndDetachFromParent(); Line 54: } why is this needed? Line 55: Line 56: @Override Line 57: protected boolean canDoAction() { Line 58: if (isImagesAlreadyOnTarget() && !validateUnregisteredEntity(vmFromConfiguration, ovfEntityData)) { http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java: Line 147: ctx.setMonitored(true); Line 148: } catch (RuntimeException e) { Line 149: log.error("Failed to create ExecutionContext for MigrateVmCommand", e); Line 150: } Line 151: return cloneContext().withExecutionContext(ctx).withoutCompensationContext().withoutLock(); detach().withExecutionContext(ctx) ? Line 152: } Line 153: Line 154: @Override Line 155: protected boolean canDoAction() { http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotsCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskSnapshotsCommand.java: Line 49: Line 50: @Override Line 51: public CommandContext cloneContextAndDetachFromParent() { Line 52: return super.cloneContextAndDetachFromParent(); Line 53: } why is this needed? Line 54: Line 55: @Override Line 56: protected void init(T parameters) { Line 57: super.init(parameters); http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMemoryVolumesCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMemoryVolumesCommand.java: Line 81: Line 82: @Override Line 83: public CommandContext cloneContextAndDetachFromParent() { Line 84: return super.cloneContextAndDetachFromParent(); Line 85: } why is this needed? Line 86: Line 87: @Override Line 88: public void taskEndSuccessfully() { Line 89: // Not implemented http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java: Line 410: Line 411: @Override Line 412: public CommandContext cloneContextAndDetachFromParent() { Line 413: return super.cloneContextAndDetachFromParent(); Line 414: } why is this needed? Line 415: http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java: Line 146: Line 147: @Override Line 148: public CommandContext cloneContextAndDetachFromParent() { Line 149: return super.cloneContextAndDetachFromParent(); Line 150: } why is this needed? Line 151: Line 152: /* Line 153: * get vm from export domain Line 154: */ http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmHibernationVolumesCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmHibernationVolumesCommand.java: Line 81: Line 82: @Override Line 83: public CommandContext cloneContextAndDetachFromParent() { Line 84: return super.cloneContextAndDetachFromParent(); Line 85: } why is this needed? Line 86: Line 87: @Override Line 88: public Guid createTask(Guid taskId, Line 89: AsyncTaskCreationInfo asyncTaskCreationInfo, http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java: Line 126: } Line 127: Line 128: public CommandContext getContext() { Line 129: if (commandContext == null) { Line 130: commandContext = cloneContext().withExecutionContext(getExecutionContext()).withLock(new EngineLock(getExclusiveLocks(), null)); isn't this execution context part of the clone? cloneContext().withLock(..) should be sufficient Line 131: } Line 132: return commandContext; Line 133: } Line 134: http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java: Line 952: runStatelessVmCtx.setJob(job); Line 953: // Since run stateless step involves invocation of command, we should set the run stateless vm step as Line 954: // the "beginning step" of the child command. Line 955: runStatelessVmCtx.setStep(runStatelessStep); Line 956: return cloneContext().withExecutionContext(runStatelessVmCtx).withoutCompensationContext().withoutLock(); deach().withExecutionContext() ? Line 957: } Line 958: Line 959: @Override Line 960: protected void endWithFailure() { http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateDiskCommand.java: Line 98: Line 99: @Override Line 100: public CommandContext cloneContextAndDetachFromParent() { Line 101: return super.cloneContextAndDetachFromParent(); Line 102: } why is this needed? Line 103: Line 104: @Override Line 105: public VdcActionType getActionType() { Line 106: return super.getActionType(); http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/LiveMigrateVmDisksCommand.java: Line 110: Line 111: @Override Line 112: public CommandContext cloneContextAndDetachFromParent() { Line 113: return super.cloneContextAndDetachFromParent(); Line 114: } why is this needed? Line 115: Line 116: public Guid persistAsyncTaskPlaceHolder() { Line 117: return super.persistAsyncTaskPlaceHolder(getActionType()); Line 118: } http://gerrit.ovirt.org/#/c/29290/6/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkConfigurator.java: Line 261: } Line 262: Line 263: private CommandContext cloneOnlyEngineContext() { Line 264: return commandContext.clone().withoutCompensationContext().withoutExecutionContext().withoutLock(); Line 265: } leftover? Line 266: Line 267: private DbFacade getDbFacade() { Line 268: return DbFacade.getInstance(); Line 269: } -- To view, visit http://gerrit.ovirt.org/29290 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Icbf9e0216c83d981d11bb2d8d2a939fd2a279d9d Gerrit-PatchSet: 6 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: Alon Bar-Lev <alo...@redhat.com> Gerrit-Reviewer: Arik Hadas <aha...@redhat.com> Gerrit-Reviewer: Moti Asayag <masa...@redhat.com> Gerrit-Reviewer: Tal Nisan <tni...@redhat.com> Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches