I was wondering whether you can assign an event plugin per job?
I know you can now “Opt-in” for event plugins, but I was wondering whether you could assign an disk path to a event plugin, so it doesn’t have to be installed into the repository.
Quick answer is “not yet”. Long answer consists of questions.
Is this for development reasons? Have you considered a staging area? I’ve probably mentioned this before, but keeping a repo/db on your machine and pointing a single Slave at it is a super handy way to get dev work done.
Also, I’ve done some interesting things with Git as well like creating a submodule for just the ‘custom’ folder in the Repository.
I mostly thinking about having self contained jobs on the farm, that doesn’t depend on a certain configuration of the Repository settings. It all comes down to having a pipeline that is portable between Repositories.
I was thinking that you could have an event plugin that is relative to the scene file. The job has to have access to the scene file, hence should also have access to the event plugin.
Have been experimenting with post job script, but without any luck since I can’t get the status of the job if it fails.
How about having a generic bootstrap event plugin in your repo, which just redirects to a ‘known’ pipeline location where you store your scripts/plugins/pipeline code? The generic event plugin executes in cPython so you can take any approach you like from here on in, connecting to your pipeline, passing any Deadline data such as the job object.
I’ve been down this route, and currently on it. The problem I tend to find, is that it still requires configuration of the Repository. If you could assign event plugin paths to a job, I would be free of configuring the Repository
What I might do in the mean time, is take your idea of a generic event plugin. The “known” location of the script to execute could be submitted with the Job, to make it updatable.
Nice! Probably a good one to add to our ever growing GitHub repo. If your up for it (and have permission to release), send a push: github.com/ThinkboxSoftware/Deadline
BTW what is the intention of that repo? Is it just as an example base, or is it planned that we can choose to use these events/plugins from the Monitor?
Cool.
Current intention is just a public dumping ground / examples to help users / help developers/scripters do stuff in Deadline. I don’t believe we have any intention to ‘hook’ this git repo up to our shipping version in any way.