Skip to content

General versus Per-Model flags #271

Description

@chadell

Environment

  • DiffSync version: 2.0.0

Proposed Functionality

The way flags are managed in

ifself.flags&DiffSyncFlags.SKIP_UNMATCHED_SRCandnotdst_obj:
log.debug("Skipping due to SKIP_UNMATCHED_SRC flag on source adapter")
self.incr_models_processed()
returnNone
ifself.flags&DiffSyncFlags.SKIP_UNMATCHED_DSTandnotsrc_obj:
log.debug("Skipping due to SKIP_UNMATCHED_DST flag on source adapter")
self.incr_models_processed()
returnNone
ifsrc_objandnotdst_objandsrc_obj.model_flags&DiffSyncModelFlags.SKIP_UNMATCHED_SRC:
log.debug("Skipping due to SKIP_UNMATCHED_SRC flag on model")
self.incr_models_processed()
returnNone
ifdst_objandnotsrc_objanddst_obj.model_flags&DiffSyncModelFlags.SKIP_UNMATCHED_DST:
log.debug("Skipping due to SKIP_UNMATCHED_DST flag on model")
self.incr_models_processed()
returnNone
ifsrc_objandsrc_obj.model_flags&DiffSyncModelFlags.IGNORE:
log.debug("Skipping due to IGNORE flag on source object")
self.incr_models_processed()
returnNone
ifdst_objanddst_obj.model_flags&DiffSyncModelFlags.IGNORE:
log.debug("Skipping due to IGNORE flag on dest object")
self.incr_models_processed()
returnNone
, means that the GLOBAL flags always take precedence over the MODEL ones.

I would propose changing the order (more specific first) and adding some flags that could negate the global behavior. For example:

  • global: SKIP_UNMATCHED_DST
  • model: NO_SKIP_UNMATCHED_DST (new one)

This should allow not skipping for only a specific model.

Use Case

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: gathering feedbackFurther discussion is needed to determine this issue's scope and/or implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions