Skip to content

collect_headless_farm

CollectRenderOnFarm

Bases: ContextPlugin

Setup instances for render on farm submission.

Source code in client/ayon_nuke/plugins/publish/collect_headless_farm.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class CollectRenderOnFarm(pyblish.api.ContextPlugin):
    """Setup instances for render on farm submission."""

    # Needs to be after CollectFromCreateContext
    order = pyblish.api.CollectorOrder - 0.49
    label = "Collect Render On Farm"
    hosts = ["nuke"]

    settings_category = "nuke"

    def process(self, context):
        if not context.data.get("render_on_farm", False):
            return

        for instance in context:
            if instance.data["family"] == "workfile":
                instance.data["active"] = False
                continue

            # Filter out all other instances.
            node = instance.data["transientData"]["node"]
            if node.name() != instance.context.data["node_name"]:
                instance.data["active"] = False
                continue

            instance.data["families"].append("render_on_farm")

            # Enable for farm publishing.
            instance.data["farm"] = True

        # Skip workfile version incremental save.
        instance.context.data["increment_script_version"] = False

SetupRenderOnFarm

Bases: InstancePlugin, AYONPyblishPluginMixin

Setup instance for render on farm submission.

Source code in client/ayon_nuke/plugins/publish/collect_headless_farm.py
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class SetupRenderOnFarm(pyblish.api.InstancePlugin, AYONPyblishPluginMixin):
    """Setup instance for render on farm submission."""

    order = pyblish.api.CollectorOrder + 0.4999
    label = "Setup Render On Farm"
    hosts = ["nuke"]
    families = ["render_on_farm"]

    def process(self, instance):
        # Clear the families as we only want the main family, ei. no review
        # etc.
        instance.data["families"] = ["render_on_farm"]

        # Use the workfile instead of published.
        publish_attributes = instance.data["publish_attributes"]
        plugin_attributes = publish_attributes["NukeSubmitDeadline"]
        plugin_attributes["use_published_workfile"] = False