[midPoint-git] [Evolveum/midpoint] 7af612: Improve LiveSync error handling strategy

mederly noreply at github.com
Wed Nov 4 17:45:02 CET 2020


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: 7af6125a1f6a459ad8d22afbf02ff88587bca144
      https://github.com/Evolveum/midpoint/commit/7af6125a1f6a459ad8d22afbf02ff88587bca144
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-11-04 (Wed, 04 Nov 2020)

  Changed paths:
    M icf-connectors/dummy-resource/src/main/java/com/evolveum/icf/dummy/resource/DummyResource.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/xml/XmlTypeConverter.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/constants/SchemaConstants.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectTypeUtil.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd
    M infra/schema/src/main/resources/xml/ns/public/model/extension-3.xsd
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/trigger/ShadowReconcileTriggerHandler.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/AbstractEmptyModelIntegrationTest.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestLiveSyncTaskMechanics.java
    A model/model-intest/src/test/resources/sync/resource-dummy-errors-source-precise.xml
    A model/model-intest/src/test/resources/sync/resource-dummy-errors-target.xml
    A model/model-intest/src/test/resources/sync/role-errors-target.xml
    A model/model-intest/src/test/resources/sync/task-errors-precise-ignore-partial-stop-on-fatal.xml
    A model/model-intest/src/test/resources/sync/task-errors-precise-ignore.xml
    A model/model-intest/src/test/resources/sync/task-errors-precise-retry-later-max-4.xml
    A model/model-intest/src/test/resources/sync/task-errors-precise-retry-later-on-any.xml
    A model/model-intest/src/test/resources/sync/task-errors-precise-stop-on-any.xml
    M model/model-test/src/main/java/com/evolveum/midpoint/model/test/AbstractModelIntegrationTest.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ProvisioningServiceImpl.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ResourceEventListenerImpl.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ResourceObjectConverter.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/AsyncUpdater.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/ChangeProcessor.java
    A provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/ErrorHandlingStrategyExecutor.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/LiveSynchronizer.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/ProcessChangeRequest.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/sync/SynchronizationOperationResult.java
    M provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/Change.java
    R provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/ChangeHandler.java
    M provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/ConnectorInstance.java
    A provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/LiveSyncChangeListener.java
    A provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/async/AsyncChangeListener.java
    R provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/async/ChangeListener.java
    M provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/connectors/AbstractManualConnectorInstance.java
    M provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/async/AsyncUpdateConnectorInstance.java
    M provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/async/ConnectorListeningHelper.java
    M provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/async/TransformationalAsyncUpdateMessageListener.java
    M provisioning/ucf-impl-connid/pom.xml
    M provisioning/ucf-impl-connid/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/ConnectorInstanceConnIdImpl.java
    R provisioning/ucf-impl-connid/src/test/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/CollectingChangeHandler.java
    A provisioning/ucf-impl-connid/src/test/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/CollectingChangeListener.java
    M provisioning/ucf-impl-connid/src/test/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/TestUcfDummy.java
    M provisioning/ucf-impl-connid/src/test/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/TestUcfOpenDj.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/util/RepoCommonUtils.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/AbstractRoleAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/ExtensionAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/FocusAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/OrgAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/RoleAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/TaskAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/TriggerAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/UserAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/prism/PrismObjectAsserter.java

  Log Message:
  -----------
  Improve LiveSync error handling strategy

1. Implemented EXPERIMENTAL LiveSync error handling strategy.
It allows to specify when to stop, ignore, or "postpone" failed
objects; along with suspending the task after given # of errors.
This code should be eventually integrated with the thresholds
feature.

2. Implemented "shadow reconciliation" trigger handler that tries
to re-process failed shadows at specified time.

3. Change processor (for live sync, async updates, notify) now considers
IN_PROGRESS status as success. The reasoning behind this is that such
operations are done, and there is - in fact - nothing to retry from
the point of livesync or async update task. The delayed execution will
be done by consistency mechanism.

4. Change processor now does NOT apply partition error criticality
if no partition criticality is specified. (This used to reset all
errors to PARTIAL_ERROR in such cases.)

5. Cleaned up the terminology:
 - renamed some Change and ProcessChangeRequest members
 - renamed ChangeHandler to LiveSyncChangeListener (for the time being)
 - renamed ChangeListener to AsyncChangeListener

Related to MID-6417.


  Commit: 0ee2a92c7c1b404a17b3a8fc46f336476380bf94
      https://github.com/Evolveum/midpoint/commit/0ee2a92c7c1b404a17b3a8fc46f336476380bf94
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-11-04 (Wed, 04 Nov 2020)

  Changed paths:
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/ldap/TestLdapSyncMassive.java

  Log Message:
  -----------
  Adapt TestLdapSyncMassive to error handling mods

Related to MID-6417.


  Commit: e015215826d494e4fffb67e2b51189e3e8a1faee
      https://github.com/Evolveum/midpoint/commit/e015215826d494e4fffb67e2b51189e3e8a1faee
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-11-04 (Wed, 04 Nov 2020)

  Changed paths:
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/util/ClockworkInspector.java
    M model/model-common/src/main/java/com/evolveum/midpoint/model/common/util/ProfilingModelInspector.java
    M model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/TestSynchronizationService.java
    M model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/util/mock/MockLensDebugListener.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/negative/TestAssignmentErrors.java
    M model/model-test/src/main/java/com/evolveum/midpoint/model/test/ProfilingModelInspectorManager.java

  Log Message:
  -----------
  Polish inspection code a little bit

(No functional changes here.)


Compare: https://github.com/Evolveum/midpoint/compare/f644cb512001...e015215826d4


More information about the midPoint-svn mailing list