Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Maya: Refactor submit deadline to use AbstractSubmitDeadline #3759

Merged
merged 41 commits into from
Sep 12, 2022

Conversation

BigRoy
Copy link
Collaborator

@BigRoy BigRoy commented Aug 30, 2022

Brief description

Refactor submit deadline to use AbstractSubmitDeadline.

Description

Current state is functional in that it's able to do a straight maya submission (and I was able to submit a Tile Render submission, but haven't tested whether the tile assembly came out as needed yet).

I'll leave as "Draft" for the time being as I expect to still perform some fixes on my end that I can probably test easily soon.

Additional info

Yes, this is a massive PR and likely breaks on many things - but I wanted to start raising discussions on approach. I can try to separate into standalone smaller PRs that first cleanup the old submitter and then refactor - but there will always be a tipping point where it needs to be refactored to the new logic and we'll still need to end up testing the new functionality. Thus I feel it might be worth just cleaning the monster ones and test thoroughly the different cases.

Especially because likely many cases (Tile Rendering, V-Ray submissions, Arnold submissions) were previously untested in their latest state too and might have been broken for some time.

Testing notes:

  1. Open Maya, start submitting things.
  2. Open other hosts that use the AbstractDeadlineSubmitter as base - and make sure they still work too.

…itDeadline` base.

- This does *NOT* work currently!
@mkolar mkolar added the type: refactor Structural changes not affecting functionality label Aug 30, 2022
@m-u-r-p-h-y m-u-r-p-h-y self-requested a review September 2, 2022 08:20
@@ -293,6 +293,7 @@ def process(self, context):
"source": filepath,
"expectedFiles": full_exp_files,
"publishRenderMetadataFolder": common_publish_meta_path,
"renderProducts": layer_render_products,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this is not JSON serializable and thus the logging below had to be removed to avoid an error. Is this a problem?


plugin_info_ext = {
# Renderer
plugin_info = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just note that we should probably move all those to the similar class like MayaPluginInfo

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are actually PluginInfo for different plug-ins across the file. So this is one for the Tile Assembler, others I believe are for VRay plugin and Arnold plugin. But yes, it'd be more consistent if each would get their own plugin info accordingly.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've now refactored them to their own PluginInfo data classes - I wonder if that's more readable now. It feels a lot cleaner like this.

@antirotor
Copy link
Member

so far it looks very good, I would like to go over it and remove form it ass and vrscene exporting jobs because I don't think they currently work and it will clean up the code.

@BigRoy
Copy link
Collaborator Author

BigRoy commented Sep 2, 2022

so far it looks very good, I would like to go over it and remove form it ass and vrscene exporting jobs because I don't think they currently work and it will clean up the code.

I'm fine with removing it. However, might be more work to add them again later instead of fixing now? Thoughts?

@mkolar mkolar marked this pull request as ready for review September 5, 2022 13:37
@mkolar mkolar requested a review from kalisp September 5, 2022 13:37
Comment on lines +335 to +336
OutputFilenameTile = attr.ib(factory=partial(DeadlineIndexedVar,
"OutputFilename{}Tile"))
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anyone know of a better more pythonic way to initialize these with attr? I feel like I'm missing something obvious.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kalisp or @antirotor do you know?

Copy link
Member

@kalisp kalisp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested and works in AE.

@m-u-r-p-h-y
Copy link
Member

I have tested Maya submits

  • redshift
  • arnold
  • render man

submitting itself is passing through correctly.

I'm just curious why the Deadline integrator is falling back to use workfiles, instead of published ones.
image

I double checked my project settings and it set to defaults to use published one . . .

image

@BigRoy
Copy link
Collaborator Author

BigRoy commented Sep 8, 2022

I'm just curious why the Deadline integrator is falling back to use workfiles, instead of published ones.

Thank you very much - that was a bug! Fixed with 49dff63
Please test again @m-u-r-p-h-y

Copy link
Member

@m-u-r-p-h-y m-u-r-p-h-y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

submitting to Deadline works and using published workfile correctly now. good job!

image

@antirotor antirotor merged commit f5a8c36 into ynput:develop Sep 12, 2022
@BigRoy BigRoy deleted the maya_submit_deadline_abstract_base branch March 20, 2024 15:21
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: refactor Structural changes not affecting functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deadline: Maya and Abstract submitter differ in workfile representation formatting
6 participants