Addon: fix issue where Shaman checkout directory wasn't used properly
Shaman prevents duplicate checkout directories, and communicates the actual location back to the client. This wasn't used by the add-on though, so the Flamenco job definition would point to the wrong files.
This commit is contained in:
parent
be0fbcca8e
commit
e6bf60cb77
@ -225,11 +225,12 @@ class FLAMENCO_OT_submit_job(FlamencoOpMixin, bpy.types.Operator):
|
|||||||
|
|
||||||
prefs = preferences.get(context)
|
prefs = preferences.get(context)
|
||||||
if prefs.is_shaman_enabled:
|
if prefs.is_shaman_enabled:
|
||||||
blendfile_on_farm = self._bat_pack_shaman(context, blendfile)
|
# self.blendfile_on_farm will be set when BAT created the checkout,
|
||||||
|
# see _on_bat_pack_msg() below.
|
||||||
|
self.blendfile_on_farm = None
|
||||||
|
self._bat_pack_shaman(context, blendfile)
|
||||||
else:
|
else:
|
||||||
blendfile_on_farm = self._bat_pack_filesystem(context, blendfile)
|
self.blendfile_on_farm = self._bat_pack_filesystem(context, blendfile)
|
||||||
|
|
||||||
self.blendfile_on_farm = blendfile_on_farm
|
|
||||||
|
|
||||||
context.window_manager.modal_handler_add(self)
|
context.window_manager.modal_handler_add(self)
|
||||||
wm = context.window_manager
|
wm = context.window_manager
|
||||||
@ -279,7 +280,7 @@ class FLAMENCO_OT_submit_job(FlamencoOpMixin, bpy.types.Operator):
|
|||||||
|
|
||||||
def _bat_pack_shaman(
|
def _bat_pack_shaman(
|
||||||
self, context: bpy.types.Context, blendfile: Path
|
self, context: bpy.types.Context, blendfile: Path
|
||||||
) -> PurePosixPath:
|
) -> None:
|
||||||
"""Use the Manager's Shaman API to submit the BAT pack.
|
"""Use the Manager's Shaman API to submit the BAT pack.
|
||||||
|
|
||||||
:return: the filesystem path of the blend file, for in the render job definition.
|
:return: the filesystem path of the blend file, for in the render job definition.
|
||||||
@ -308,14 +309,22 @@ class FLAMENCO_OT_submit_job(FlamencoOpMixin, bpy.types.Operator):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Having Shaman enabled on the Manager automatically creates a variable
|
# We cannot assume the blendfile location is known until the Shaman
|
||||||
# "jobs" that will resolve to the checkout directory.
|
# checkout has actually been created.
|
||||||
return PurePosixPath("{jobs}") / checkout_root / blendfile.name
|
|
||||||
|
|
||||||
def _on_bat_pack_msg(self, context: bpy.types.Context, msg: _Message) -> set[str]:
|
def _on_bat_pack_msg(self, context: bpy.types.Context, msg: _Message) -> set[str]:
|
||||||
from .bat import interface as bat_interface
|
from .bat import interface as bat_interface
|
||||||
|
|
||||||
if isinstance(msg, bat_interface.MsgDone):
|
if isinstance(msg, bat_interface.MsgDone):
|
||||||
|
if self.blendfile_on_farm is None:
|
||||||
|
# Adjust the blendfile to match the Shaman checkout path. Shaman
|
||||||
|
# may have checked out at a different location than we
|
||||||
|
# requested.
|
||||||
|
#
|
||||||
|
# Having Shaman enabled on the Manager automatically creates a
|
||||||
|
# variable "jobs" that will resolve to the checkout directory.
|
||||||
|
self.blendfile_on_farm = PurePosixPath("{jobs}") / msg.output_path
|
||||||
|
|
||||||
self._submit_job(context)
|
self._submit_job(context)
|
||||||
return self._quit(context)
|
return self._quit(context)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user