Package: ciokatana
Conductor for KatanaSubmit to Conductor from The Foundry's Katana.Installpip install  ciokatana==<some version> --target ~/Conductor/katana && python ~/Conductor/katana/ciokatana/post_install.pyFor reference, the plugin is implemented as a Katana SuperTool, and thepost_install.pyscript registers the plugin by writing aninitfile into the Katana resources path. See the contents ofpost_install.pyfor more details.UsageOpen the Conductor dialogIf installation was successful, you should see aConductormenu item in Katana'sUtilmenu. If you don't see it, try restarting Katana.To open the Conductor dialog select theConductormenu item in theUtilmenu. If noRendernodes are selected in the node graph, the dialog will be pre-populated with allRendernodes in the scene.TabsYou'll notice 5 tabs.Configure,Preview,Validation,Progress, andResponseConfigure TabMost parameters in the submitter, such as those in theGeneral,Hardware, andSoftwaresections of theConfiguretab are explained in tooltips (TBD). Please hover over the labels in the dialog itself for more info on these. This document will focus on theKatana specificparameters as they relate to multi-shot setups and to using mocks for demo purposes.Frames and Tasks section.Here you'll find a list ofRendernodes that were in context when the dialog was opened. On submission, a separate job is shipped to Conductor for each node in this list. By default, the Frame spec, Scout spec, and Chunk size for each job are set to the values in this section of the submitter. These can be overridden.To override the frame and chunk parameters, use theEditorbutton next to any Render node to display it in the Parameters panel. Open thefarmSettingspanel for the Render node, turn onconductorOverrides, and configure the individualRender nodes. You'll see the overridden values updated in the dialog.Preview TabThe preview tab currently shows only the first submission. It is updated every time you switch to the Preview tab. This means that if you change something in the scene that would affect the submission, such as the name of aRendernode, you'll need to switch to another tab and then back to the Preview tab to see the updated submission.Validation TabCurrently, only a couple of sample validations are implemented.
In order to invoke a validation error for demo purposes, set theframeSpecfor one of the render nodes to over 1000, with achunkSizeof 1. Then submit. You'll see a validation error in theValidationtab.
In order to invoke a validation warning for demo purposes, set the instance type to one of the GPU machines before submitting.Progress TabThe progress tab shows the progress of the submission. There are 3 progress bars and a file upload progress panel. The 3 progress bars are as follows.Overall submission progress. For a submission of 4 jobs, this will be 25% when 1 job is complete, 50% when 2 jobs are complete, etc.MD5 calculation progress. This often reaches 100% faster than the update interval.Upload progress for the current job.Since many if not all the file uploads are the same for each job, only the first job's upload will be slow enough to see the progress bar increment. The second and subsequent job's files won't need to be uploaded.This becomes clearer in theFile Upload Progress panel. This panel shows the files that are being uploaded for the current job. The small progress increase towards 100% for new files, but files that already exist on Conductor will show the wordCachedon a purple background.Canceling a submissionYou can cancel a submission at any time by clicking theCancelbutton. If you cancel a submission, the current job will throw aUserCancelederror and the remaining jobs will not be started. The UI will switch to theResponsestab which will showUserCancelederror with awarningstatus. You'll also see the responses for any jobs that were submitted successfully before the cancelation.You can simulate a cancelation in a mock submission. To do this, set themockIntervalhigh enough that you get a chance to react, then hit submit. After a few seconds, click theCancelbutton. The current job will throw aUserCancelederror and the remaining jobs will not be started, even if the mock submission contains several jobs that submitted successfully.Submission errorsIf a submission error occurs, the current job will of course fail. However, subsequent jobs will continue to attempt to submit, because although it's unlikely, the error may have been peculiar to the one job. After all jobs have submitted, the Responses tab will show the error for the failed job(s) with anerrorstatus. The responses for the successful jobs will also be shown.You can simulate a submission error in a mock submission. To do this, set themockIntervalhigh enough that you get a chance to react, then hit submit. After a few seconds, click theRaise an errorbutton. The current job will throw a random error which will cause the current job progress to stop, and just as with a real submission, the remaining jobs will continue to submit. After all jobs have submitted, the Responses tab will show the error for the failed job(s) The responses for the successful jobs will also be shown.Response TabThe responses tab shows a response for every job that ran to completion. There are 3 possible response statuses:Errors. These are shown with a red icon. You'll see a summary in the response card, but you can view the full error stack trace by clicking theShow Detailsbutton.Warnings. These are shown with a yellow icon. They may or may not have an expandable details panel.Success. These are shown with a green icon. Since this means the job was submitted to Conductor, you'll see a link to the job on the dashboard. Clicking this link will open the job in a new browser tab.Mocks.A mock submission pretends to be a real submission, but is actually a list of pre-baked events in a JSON file. It is useful for testing and demo purposes. The events in the mock feed the the progress tab and the responses tab in the same way that a real submission would. Therefore, by playing back a mock submission, you can simulate a real submission.To enable mocks set the environment variableCIO_FEATURE_MOCK=1before starting Katana.With mocks enabled you'll see some parameters in theAdvancedsection related to mocking a submission.There is a mock submission included with the plugin. It is located at~/Conductor/katana/ciokatana/scripts/mock_submission.json. You can use this mock to test the submission process or you can create your own. The included mock submission contains four render jobs.To use the included mock:In the advanced section, setmockModetoUse Mock.FormockFile, either browse to~/Conductor/katana/ciokatana/scripts/mock_submission.json, or better, copy~/Conductor/katana/ciokatana/scripts/mock_submission.jsonto your home folder and browse to the copy.Set an interval formockInterval. This is the time paused between events in the mock submission. The default is 1 second, which is faster than a real submission. You can set this to a higher value to slow down the playback. The minimum value is 0.05 seconds.Submit as usual. The progress tab and the response tab will be updated as if a real submission was taking place. Note however, that no real jobs are submitted to Conductor and no files are uploaded. The responses tab will contain lins to jobs on the dashboard, but these links will not relate to the submission since the included mock file was created on a different account.To create your own mock:An advantage to creating your own mock is that the responses tab will contain links to jobs on the dashboard that are relevant to your account, since they come from a real submission. To create your own mock, follow these steps:In the advanced section, setmockModetoGenerate Mock.FormockFile, browse to a location where you want to save the mock file.Submit as usual. As the real submission runs, all the events arte streamed to the mock file. When the submission is complete, the mock file is ready to be replayed.To use this new mock, switch mockMode toUse Mockas described above.ChangelogVersion:0.1.3 -- 05 Aug 202319 snagging list 2 (#21)Add the ability to choose what job to display in the Preview  windowAsset scrape: removes assets in output_pathReconnect re-reads everything and rebuilds menus.Validate that paths use project.dir or some expressionRemoved reloading in shelf items, which was the cause of import confusion.Ignore tmp folder when calculating the output folderVersion:0.1.3-rc.1 -- 04 Aug 2023don't consider relative AOV outputs.Version:0.1.2 -- 03 Aug 2023Fixed a bug that would fail to create a submission when a render node has multiple outputs. (#20)Version:0.1.1 -- 02 Aug 2023Use a more descriptive environment variabler for mocks: CIO_FEATURE_MOCK and fix bad rehydration project and instance type combo boxes (#18)Version:0.1.0 -- 02 Aug 202316 snagging list (#17)Version:0.1.0-rc.5 -- 01 Aug 2023Only use json_stream when the variable CIO_FEATURE_DEV is on. Set the variable then pip install to enable the mock framework. The mock framework allows you to use fake submissions that look just like normal submissions without actually submitting anything.Update circleCI config for prettier slack notifications and to fix the links now that we trigger on tags and not branches.Made a bigger editor panel, which can be good for screenshots.Asset scraping blacklist catches more bad paths.Use Alaa's progress-math so that the progress bar is more accurate.Adds some debugging shelf itemsVersion:0.1.0-rc.3 -- 26 Jul 2023Adds asset scrapingVersion:0.1.0-rc.2 -- 24 Jul 2023Added a README file and several small fixes.First release candidate.Integrated with the FarmAPI