Class WorkersReconciliation
java.lang.Object
com.evolveum.midpoint.repo.common.activity.run.distribution.WorkersReconciliation
Executes the workers reconciliation. This includes
1. auto-reconciliation when distributed activity starts,
2. explicitly requested reconciliation (e.g. via GUI),
3. reconciliation during auto-scaling.
The reconciliation process tries to match worker tasks with the "to be" state (driven by configured distribution
plus current cluster state). For details please see
execute(OperationResult)
method.-
Constructor Summary
ConstructorDescriptionWorkersReconciliation
(@NotNull Task rootTask, @NotNull Task coordinatorTask, @NotNull ActivityPath activityPath, WorkersReconciliationOptions options, @NotNull CommonTaskBeans beans) -
Method Summary
Modifier and TypeMethodDescription@NotNull WorkersReconciliationResultType
execute
(OperationResult parentResult) Executes the workers reconciliation.getCurrentWorkers
(OperationResult result)
-
Constructor Details
-
WorkersReconciliation
public WorkersReconciliation(@NotNull @NotNull Task rootTask, @NotNull @NotNull Task coordinatorTask, @NotNull @NotNull ActivityPath activityPath, WorkersReconciliationOptions options, @NotNull @NotNull CommonTaskBeans beans)
-
-
Method Details
-
execute
@NotNull public @NotNull WorkersReconciliationResultType execute(OperationResult parentResult) throws SchemaException, ObjectNotFoundException, ObjectAlreadyExistsException, ConfigurationException Executes the workers reconciliation. The simple part where tasks are on the correct nodes: 1. workers that match "to be" state (i.e. they have appropriate group + name + scavenger flag) are *accepted* - seeskipMatchingWorkers()
; 2. workers that are compatible (matching group + scavenger flag) but with not matching name are simply *renamed*, seerenameCompatibleWorkers(OperationResult)
; 3. workers that are in correct group (but otherwise wrong) are *adapted* by renaming and setting scavenger flag, seeadaptGroupCompatibleWorkers(OperationResult)
; At this moment, we have to start reconciling workers among nodes. TODO finish the description -
getCurrentWorkers
@NotNull public @NotNull List<Task> getCurrentWorkers(OperationResult result) throws SchemaException - Throws:
SchemaException
-