Ftrack transition from OpenPype to AYON

Transition when OpenPype won’t be used anymore:

  1. Ensure that your production bundle includes the latest release of ftrack.
  2. Run both the leecher and processor services.
  3. Launch the action “Create/Update Custom Attributes” on ftrack.

Using Both AYON and OpenPype:

This process is slightly more complex due to custom attributes. However, if you ensure that you have the same application variants and tool variants for both OpenPype and AYON, you should encounter minimal issues. OpenPype’s variants are found in System settings, while AYON’s variants are in the “Applications” addon settings.

Follow these steps:

  1. Add all applications and tools to AYON’s Applications addon settings to match those in OpenPype.
  2. Ensure that the custom attributes settings in the ftrack addon are the same as those you had in OpenPype (Read/Write roles).
  3. Follow the same steps as outlined above.

This will create custom attributes with the ‘ayon’ group, which may disrupt OpenPype sync. To resolve this, change the group of the custom attributes back to the ‘openpype’ group, excluding attributes such as ‘auto_sync_enabled,’ ‘ayon_id,’ ‘ayon_path,’ and ‘ayon_sync_failed’ (which are AYON specific).

Helper script for custom attributes conversion

import ftrack_api

session = ftrack_api.Session()

attr_confs = session.query(
    "select id, key, group_id from CustomAttributeConfiguration"
).all()
conf_groups = session.query(
    "select id, name from CustomAttributeGroup"
).all()

openpype_group = None
ayon_group = None
for conf_group in conf_groups:
    if conf_group["name"] == "openpype":
        openpype_group = conf_group
    elif conf_group["name"] == "ayon":
        ayon_group = conf_group

openpype_group_id = openpype_group["id"]
ayon_group_id = ayon_group["id"]

for attr_conf in attr_confs:
    key = attr_conf["key"]
    if (
        attr_conf["group_id"] != ayon_group_id
        or key.startswith("ayon")
        or key == "auto_sync_enabled"
    ):
        continue
    attr_conf["group_id"] = openpype_group_id
session.commit()

You can also run the Create/Update Custom Attributes action from OpenPype. from that moment it is recommended to exclusively use this action from OpenPype. OpenPype settings should automatically propagate applications and tools into ftrack. Therefore, if you make changes in OpenPype, manually running the action is unnecessary (unlike in AYON at the moment).

Services

Technically, it should be possible to run the OpenPype event server and AYON services simultaneously, provided you’re using the latest version of OpenPype and don’t have custom event handlers. However, exercise caution as we might not cover all cases. Ensure that a single project is not present in both OpenPype and AYON.

Is there any way to copy these over, instead of going over the massive list of versions and tools I have set there in OpenPype.

It looks like in OpenPype they default to API and Administrator for write and read roles, but for me they appear empty in AYON. Is that the new default if left empty or maybe allow all? Or do I need to explicitly put in those names?

Not without modifying them first. You use code from openpype/settings/ayon_settings.py for AYON > OpenPype conversion, but you would have to implement it on your own the other way.

Empty means that all roles will be granted to read/write.