Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keep Resubmission spec and json data consistent #10789

Merged
merged 2 commits into from
Sep 7, 2021

Conversation

amaltaro
Copy link
Contributor

@amaltaro amaltaro commented Sep 6, 2021

Fixes #10788

Status

ready

Description

The only logic change - regarding the recent changes to this Resubmission spec - is keeping the JSON vs the Workload config data in sync, thus, iterating over the Tasks/Steps (when existing) and updating those accordingly to the new parameters provided by the user.

The behaviour implemented in this PR was also quickly discussed with Hasan, and in summary, this is how it will behave during Resubmission workflow creation:

  • ACDC of ReReco: resource parameters Memory | TimePerEvent | Multicore | EventStreams are either of type int or float, so regardless whether they are overwritten or not, both the JSON and the workload object will always contain the up-to-date and consistent value;
  • ACDC of TaskChain: resource parameters Memory | TimePerEvent | Multicore | EventStreams can be either int/float or a dictionary.
    • If no value is provided, the top level parameter will be set to None (workload object isn't touched);
    • If value is provided as int/float, it gets applied to both top and ALL inner tasks;
    • If value is provided as a dictionary, top level will contain the dictionary, and the tasks will be updated after their keyname/value as provided by the user;
  • ACDC of StepChain: resource parameters Memory | TimePerEvent have simple type (int/float), while Multicore | EventStreams can be either int/float or a dictionary.
    • If Memory | TimePerEvent is provided as a dictionary, workflow creation fails;
    • If no value is provided, Multicore | EventStreams top level parameter will be set to None, while Memory | TimePerEvent remains untouched (workload object isn't touched).
    • If Multicore | EventStreams is provided as int/float, it gets applied to both top and ALL inner steps. If value is provided as a dictionary, top level will contain the dictionary, and the steps will be updated after their keyname/value as provided by the user (NOTE that the workload object has a bug Override of Multicore/EventStreams in Resubmission of StepChains not functional #10791).

Is it backward compatible (if not, which system it affects?)

YES

Related PRs

Complement to #10781

External dependencies / deployment changes

None

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
    • 1 changes in unstable tests
  • Python3 Unit tests: succeeded
    • 1 changes in unstable tests
  • Python2 Pylint check: failed
    • 5 warnings and errors that must be fixed
    • 1 warnings
    • 1 comments to review
  • Python3 Pylint check: failed
    • 5 warnings and errors that must be fixed
    • 1 warnings
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded
    • 1 comments to review

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12419/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
  • Python3 Unit tests: succeeded
    • 3 changes in unstable tests
  • Python2 Pylint check: failed
    • 4 warnings and errors that must be fixed
    • 3 warnings
    • 34 comments to review
  • Python3 Pylint check: failed
    • 8 warnings and errors that must be fixed
    • 3 warnings
    • 49 comments to review
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded
    • 1 comments to review

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12420/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
    • 1 changes in unstable tests
  • Python3 Unit tests: succeeded
    • 1 changes in unstable tests
  • Python2 Pylint check: failed
    • 15 warnings and errors that must be fixed
    • 4 warnings
    • 43 comments to review
  • Python3 Pylint check: failed
    • 19 warnings and errors that must be fixed
    • 4 warnings
    • 66 comments to review
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded
    • 8 comments to review

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12421/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
    • 3 tests deleted
    • 9 tests added
    • 1 changes in unstable tests
  • Python3 Unit tests: succeeded
    • 3 tests deleted
    • 9 tests added
    • 1 changes in unstable tests
  • Python2 Pylint check: failed
    • 16 warnings and errors that must be fixed
    • 4 warnings
    • 39 comments to review
  • Python3 Pylint check: failed
    • 20 warnings and errors that must be fixed
    • 4 warnings
    • 65 comments to review
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded
    • 8 comments to review

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12422/artifact/artifacts/PullRequestReport.html

@amaltaro
Copy link
Contributor Author

amaltaro commented Sep 7, 2021

And voilà! Finally, this is working as expected. Time to squash it, update the description, and fire up a review request.

Fix default EventStreams; fixed Resubmission tweaks

fixed TimePerEvent and Memory for ACDC of StepChain

fix how Resubmission setters are called; fix StepChain
more unit tests for StepChain and ReReco
@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
    • 3 tests deleted
    • 9 tests added
  • Python3 Unit tests: succeeded
    • 3 tests deleted
    • 9 tests added
    • 1 changes in unstable tests
  • Python2 Pylint check: failed
    • 16 warnings and errors that must be fixed
    • 4 warnings
    • 39 comments to review
  • Python3 Pylint check: failed
    • 20 warnings and errors that must be fixed
    • 4 warnings
    • 65 comments to review
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded
    • 8 comments to review

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12423/artifact/artifacts/PullRequestReport.html

@haozturk
Copy link

haozturk commented Sep 7, 2021

Thanks a lot Alan! I read the description and it all looks good to me.

@amaltaro amaltaro merged commit 3b0ab8b into dmwm:master Sep 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make Resubmission json and workload spec consistent
3 participants