AWS Thinkbox Discussion Forums

Current state of the D6 API

Since the only API documentation available is still part of the D5 docs, I’m wondering if it’s possible to get at least a summary of the API and plugin logic changes that have been made so far, and those that are still planned but not done yet. I know at least a few of them have been covered in other threads, but it would be nice to have a comprehensive reference thread that can be kept up to date as other things are added or changed. Basically, I’d really like to avoid writing my own crawlers if possible…

Thanks,

-Nathan

Hey Nathan,

The only major change was the deprecated plugin system described here:
viewtopic.php?f=84&t=8665

All the global functions already had equivalents in one of the Utils classes, or as member functions of the DeadlinePlugin class.

Some new API functions and classes have been added that still lack documentation. However, we are currently working on a separate doxygen style API reference that should be finished soon, and everything will be documented. The actual “how to” stuff will still be in the regular documentation, and we will cover the new plugin logic there. Hopefully we can get to this soon.

Cheers,

  • Ryan

Thanks Ryan. Looking forward to having those docs available.

In the meantime, is it true that job and task statuses cannot be changed using the scripting API?

Currently, they cannot, but we should be able to add this.

Cheers,

  • Ryan

That would be great to have. However, am I correct in thinking that a task cannot be “paused”?

That’s right. However, we designed the backend so that this could be possible in the future. It’s something we’ll probably look at for 6.1 or 7.

Ok cool, good to know.

Next on the list

  1. Has there, in fact, been some method added to fail a task without allowing it to re-queue? I was under the impression there had, but there isn’t really anywhere I can look…
  2. Can the PluginInfo dict be accessed from within the PluginPreLoad script (before the job plugin module is imported)?
  3. When submitting a job, how would I pack custom key-value pairs into the “ExDic” dict? That is, how should they be formatted in the JobInfo file passed to DeadlineCommand?

Thanks

I think I found the answer to #3. It looks like you just pass as many of these as you want:

ExtraInfoKeyValue1=FooKey=FooValue
ExtraInfoKeyValue2=BarKey=BarValue

That look right?

  1. Yup. The DeadlinePlugin/ManagedProcess class now has an AbortRender function that lets you control the abort level. We released the API docs with beta 11 yesterday, so you can take a look at them for more info:
    viewtopic.php?f=85&t=8912

  2. No. The plugin preload script is executed before we create an instance of DeadlinePlugin, so there is no way to get access to the plugin info.

  3. Yup, you just pass those ExtraInfoKeyValue# entries. Just make sure to start with 0 for the # instead of 1.

Cheers,

  • Ryan

Awesome! Somehow I missed that link on the release page. but those are great.

Ok, makes sense. So what job-specific info (if any) is accessible from PluginPreLoad.py then? Job ID? Task/frame number? Nothing? Has anything been shoehorned into the execution environment at that point?

We could probably pass something to the main function, like the job object. Or we could create a new object that just has some basic info (job and current task ID). We’ll put this on the todo list.

Privacy | Site terms | Cookie preferences