dtcenter/METplus

Consider adding flag for skipping processing for each LOOP_BY if part of the chain fails

Opened this issue · 0 comments

Describe the New Feature

When @JohnHalleyGotway was testing dtcenter/MET#2897, he encountered a failure in one but not all of the processes in the PROCESS_LIST. In this case, the process list was:
PROCESS_LIST = PyEmbedIngest,PointStat,PlotPointObs

John's question was whether PointStat and PlotPointObs should attempt to run if PyEmbedIngest failed. Currently, the behavior is to run all processes in the PROCESS_LIST regardless of failures of upstream processes.

This issue is to suggest adding a configuration item for users to REQUIRE_ALL_SUCCEED or something to that effect, which keeps track of the error or success of each process in the PROCESS_LIST. If an error is recorded, then the PROCESS_LIST is halted for the current iteration of METplus Wrappers (e.g. current iteration of LOOP_BY), and the Wrappers will proceed to the next time.

This is may only apply to instances where the user is calling PyEmbedIngest, since presumably the result of that process is required downstream. So perhaps the work is something like adding PY_EMBED_INGEST_STOP_ON FAIL, for example.

Acceptance Testing

Try the new config item and ensure METplus Wrappers is advancing to the next iteration based on the failure state.

Time Estimate

1 Day

Relevant Deadlines

NONE.

Funding Source

NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a METplus-Wrappers-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a METplus-Wrappers-X.Y.Z version, select the METplus-Wrappers-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

New Feature Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Add any new Python packages to the METplus Components Python Requirements table.
  • For any new datasets, an entry to the METplus Verification Datasets Guide.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: METplus-Wrappers-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.