Would be great if there was an easy way to synchronize Max plugin folders, Nuke init.py etc.
Wouldn’t need to run every time, more like a push update for every slave to run through its installed application and synchronize with a single repository.
Would be great if there was an easy way to synchronize Max plugin folders, Nuke init.py etc.
Wouldn’t need to run every time, more like a push update for every slave to run through its installed application and synchronize with a single repository.
Haha, yeah that would be nice. I’ve written about this several times. I’m not sure if this is one the forums. We have a system but it’s a hack. It’s never as easy as copying files in a folder. Upgrading 3rd-party plugins, hot-fixes, merging/enforcing settings, script profiles, run-time libraries, it gets to be a huge undertaking.
The first and biggest problem is how to enforce that it runs. Just making a shortcut on the desktop doesn’t guarentee people will click that. Nor will the farm use that.
Idea 1) Runs at machine startup, also runs on all machines when sysadmin pushes updates. The problem is if the program is running the synch will fail. So you have to create an event listener that waits for the process to close and runs the synch.
Idea 2) rename 3dsmax.exe to 3dsmax2010.exe. then create a new .exe that performs the synch. This is so hacky. It breaks hots fixes, windows7 pinning subverts it among serveral other problems.
Idea 3) Create plugin for max that checks if update needed. it kill max and runs the synch process. the synch launches max afterwards. This might confuse the user seeing max quit and start again. potential infinite looping of this.
I have tried idea 1 and 2. We currently use 2, since 2006 (max8) or so. Idea 3 is in the works. Idea 1 might still work but it requires a good understanding of remote process delegation. This might be easier now with powershell 2.0.
The rest of the problems are the synching processes themselves. Extracting all the plugins, scripts, macroscripts, dlls, running installers into spoof folders. Then making all the commands to copy files, adjust .ini files, write xml files.
Then what do you do if the server is down? Or if one person wants to run a beta? How do you initialize settins while letting everyone customize some things. but not others.
Good luck
Ben.
If you just want to update the farm, that might be easier. But you still have some of the same issues. And I’ve found it to be unlikely that you don’t need to update the user’s workstations as well.
Ben.
Honestly I think we would be happy if you could just specify a folder or files to sync on slave start.
C:\Program Files\Autodesk\3ds max 2011\Plugin.ini = \server\repository4\syncfolders\3dsmax 2011\Plugin.ini
C:\Program Files\Autodesk\3ds max 2011\Plugins*.* = \server\repository4\syncfolders\3dsmax 2011\plugins*.*
etc…
Also maybe some means of handling it in a more OS agnostic fashion such as
Nuke6\init.py = \syncfolders\Nuke6\init.py
It could even be very similar to the Mapped Path setup options. Path to Repository instead of Path to Replace. Then a Windows path, linux path and Mac path for each installation.
You can create a PreLoad.py python script for any plugin in Deadline. This script is launched before the plugin is loaded, and thus before the rendering application (Max, Maya, etc) launches. You could use this script to sync a particular application before rendering with it, and because it’s just a script, it is much more flexible than simply specifying a sync folder within Deadline. Most of the plugin API is exposed to this script, so for example, you could pull the Max version from the job’s plugin info file to ensure you sync the correct version of Max.
Here is the documentation:
software.primefocusworld.com/sof … -_Optional
Cheers,