use applications addon arguments to call extractenvironments

This commit is contained in:
Jakub Trllo 2024-03-28 11:04:49 +01:00
parent 4cc8f8fb7f
commit 6a569c9e21

View file

@ -463,19 +463,13 @@ def inject_ayon_environment(deadlinePlugin):
export_url = os.path.join(tempfile.gettempdir(), temp_file_name)
print(">>> Temporary path: {}".format(export_url))
args = [
"--headless",
"extractenvironments",
export_url
]
add_kwargs = {
"envgroup": "farm",
}
# Support backwards compatible keys
for key, env_keys in (
("project", ["AYON_PROJECT_NAME", "AVALON_PROJECT"]),
("asset", ["AYON_FOLDER_PATH", "AVALON_ASSET"]),
("folder", ["AYON_FOLDER_PATH", "AVALON_ASSET"]),
("task", ["AYON_TASK_NAME", "AVALON_TASK"]),
("app", ["AYON_APP_NAME", "AVALON_APP_NAME"]),
):
@ -486,18 +480,37 @@ def inject_ayon_environment(deadlinePlugin):
break
add_kwargs[key] = value
if job.GetJobEnvironmentKeyValue("IS_TEST"):
args.append("--automatic-tests")
if all(add_kwargs.values()):
for key, value in add_kwargs.items():
args.extend(["--{}".format(key), value])
else:
if not all(add_kwargs.values()):
raise RuntimeError((
"Missing required env vars: AYON_PROJECT_NAME,"
" AYON_FOLDER_PATH, AYON_TASK_NAME, AYON_APP_NAME"
))
# Use applications addon arguments
# TODO validate if applications addon should be used
args = [
"--headless",
"addon",
"applications",
"extractenvironments",
export_url
]
# Backwards compatibility for older versions
legacy_args = [
"--headless",
"extractenvironments",
export_url
]
if job.GetJobEnvironmentKeyValue("IS_TEST"):
args.append("--automatic-tests")
for key, value in add_kwargs.items():
args.extend(["--{}".format(key), value])
# Legacy arguments expect '--asset' instead of '--folder'
if key == "folder":
key = "asset"
legacy_args.extend(["--{}".format(key), value])
environment = {
"AYON_SERVER_URL": ayon_server_url,
"AYON_API_KEY": ayon_api_key,
@ -516,9 +529,18 @@ def inject_ayon_environment(deadlinePlugin):
)
if process_exitcode != 0:
raise RuntimeError(
"Failed to run Ayon process to extract environments."
print(
"Failed to run AYON process to extract environments. Trying"
" to use legacy arguments."
)
legacy_args_str = subprocess.list2cmdline(legacy_args)
process_exitcode = deadlinePlugin.RunProcess(
exe, legacy_args_str, os.path.dirname(exe), -1
)
if process_exitcode != 0:
raise RuntimeError(
"Failed to run AYON process to extract environments."
)
print(">>> Loading file ...")
with open(export_url) as fp:
@ -634,4 +656,4 @@ def __main__(deadlinePlugin):
if ayon_publish_job == "1":
inject_render_job_id(deadlinePlugin)
if ayon_render_job == "1" or ayon_remote_job == "1":
inject_ayon_environment(deadlinePlugin)
inject_ayon_environment(deadlinePlugin)