AcademySoftwareFoundation / AcademySoftwareFoundation/OpenCue

Nuke DCC Integration Issue

Open
#2,077 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
957
Forks
259
Avg merge
3d 6h
Merged PRs (30d)
16

Description

Using the provided scripts to add the opencue submit to nuke causes issues with interpreting the yaml config file. It works fine without the config file. It also works fine when submitted outside of nuke.

To reproduce, opencue submit is installed on rocky linux in a python 3.11 environment. I'm using Nuke 16 to submit. The Nuke environment variables point to the yaml, cuebot ip, and the python environment. It is installed as a menu button and when run it spits out the error.

Normally this submits as expected to cuebot and begins rendering but it falls apart when the config yaml is used.

OpenCue version is 1.13.8

**Here are the logs:**

```
Failed to submit job!
"
b'Traceback (most recent call last):
File "CueNukeSubmit.py", line 104, in
main(args.file, args.nodes)
File "CueNukeSubmit.py", line 89, in main
app = CueSubmitNukeApp(nukeFile, writeNodes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "CueNukeSubmit.py", line 72, in __init__
self.mainWindow = CueSubmitNukeWindow(NUKE_WINDOW_TITLE, filename=nukeFile,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "CueNukeSubmit.py", line 53, in __init__
self.submitWidget = Submit.CueSubmitWidget(
^^^^^^^^^^^^^^^^^^^^^^^
File "/CueSubmit/lib64/python3.11/site-packages/cuesubmit/ui/Submit.py", line 245, in __init__
self.jobDataChanged()
File "/CueSubmit/lib64/python3.11/site-packages/cuesubmit/ui/Submit.py", line 398, in jobDataChanged
self.updateFeedbackCommand(self.jobTreeWidget.currentLayerData)
File "/CueSubmit/lib64/python3.11/site-packages/cuesubmit/ui/Submit.py", line 402, in updateFeedbackCommand
command = Submission.buildLayerCommand(layerData=layerData, silent=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/CueSubmit/lib64/python3.11/site-packages/cuesubmit/Submission.py", line 174, in buildLayerCommand
command = buildDynamicCmd(layerData)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/CueSubmit/lib64/python3.11/site-packages/cuesubmit/Submission.py", line 63, in buildDynamicCmd
for (flag, isPath, isMandatory), value in layerData.cmd.items():
^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3)
```

**I also added some debug prints:**

```
DEBUG: configData['RENDER_CMDS'] = {'Shell': {'command': '', 'options': {'{Command to run}': '\
'}}, 'Maya': {'command': 'Render', 'services': ['maya', 'arnold'], 'limits': ['arnold license limit'], 'options': {'-r {Renderer}': ['file', 'default', 'hw2', 'sw', 'arnold'], '-s {Start Frame}': '#FRAME_START#', '-e {End Frame}': '#FRAME_END#', '{!mayaFile*}': ['Maya Ascii file (*.ma)', 'Maya Binary file (*.mb)', 'Maya file (*.ma *.mb)']}}, 'Blender': {'command': 'blender', 'options': {'--background~': '', '-noaudio~': '', '{!file*}': ['Blender file (*.blend)'], '-s {Start Frame}': '#FRAME_START#', '-e {End Frame}': '#FRAME_END#', '-o {Output Path (Optional)*}': '//render_', '-F {Output Format}': ['', 'AVIJPEG', 'AVIRAW', 'BMP', 'CINEON', 'DPX', 'EXR', 'HDR', 'IRIS', 'IRIZ', 'JP2', 'JPEG', 'MPEG', 'MULTILAYER', 'PNG', 'RAWTGA', 'TGA', 'TIFF']}}, 'Nuke': {'command': '/usr/local/Nuke14.1v4/Nuke14.1', 'services': ['nuke'], 'limits': ['nuke license limit'], 'options': {'-X {!Write Nodes}': '', '-F {Frame Range}': '#FRAME_START#-#FRAME_END#', '-x {!Nuke File*}': ['Nuke Script File (*.nk)']}}}
DEBUG: layerData.layerType = 'Nuke'
DEBUG: JobTypes.JobTypes.FROM_CONFIG_FILE = dict_keys(['Shell', 'Maya', 'Blender', 'Nuke'])
DEBUG: using buildDynamicCmd
DEBUG: layerData.cmd = dict_items([('nukeFile', '0000_shots_TST_001_animation_work_main_v001.nk'), ('writeNodes', '[All]')])
DEBUG: renderCommand = /usr/local/Nuke14.1v4/Nuke14.1
```

Contributor guide

Open the contributing guide

Research direction

Start with CueNukeSubmit.py and follow the traceback into cuesubmit/ui/Submit.py and cuesubmit/Submission.py, especially buildDynamicCmd and the config-derived layerData.cmd. Reproduce the YAML-backed submission with Nuke 16 and Python 3.11, then verify that it reaches cuebot without the ValueError while submissions without the config still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.