implemented helper function 'make_sure_tray_is_running' to run tray

This commit is contained in:
Jakub Trllo 2024-07-24 18:33:04 +02:00
parent a4bb042337
commit 5bf6985737
2 changed files with 41 additions and 1 deletions

View file

@ -4,6 +4,7 @@ from .lib import (
get_tray_state,
is_tray_running,
get_tray_server_url,
make_sure_tray_is_running,
main,
)
@ -15,5 +16,6 @@ __all__ = (
"get_tray_state",
"is_tray_running",
"get_tray_server_url",
"make_sure_tray_is_running",
"main",
)

View file

@ -13,7 +13,7 @@ from typing import Optional, Dict, Tuple, Any
import ayon_api
import requests
from ayon_core.lib import Logger
from ayon_core.lib import Logger, get_ayon_launcher_args, run_detached_process
from ayon_core.lib.local_settings import get_ayon_appdirs
@ -356,6 +356,44 @@ def is_tray_running(
return state != TrayState.NOT_RUNNING
def make_sure_tray_is_running(
ayon_url: Optional[str] = None,
variant: Optional[str] = None,
env: Optional[Dict[str, str]] = None
):
"""Make sure that tray for AYON url and variant is running.
Args:
ayon_url (Optional[str]): AYON server url.
variant (Optional[str]): Settings variant.
env (Optional[Dict[str, str]]): Environment variables for the process.
"""
state = get_tray_state(ayon_url, variant)
if state == TrayState.RUNNING:
return
if state == TrayState.STARTING:
_wait_for_starting_tray(ayon_url, variant)
state = get_tray_state(ayon_url, variant)
if state == TrayState.RUNNING:
return
args = get_ayon_launcher_args("tray", "--force")
if env is None:
env = os.environ.copy()
if ayon_url:
env["AYON_SERVER_URL"] = ayon_url
# TODO maybe handle variant in a better way
if variant:
if variant == "staging":
args.append("--use-staging")
run_detached_process(args, env=env)
def main(force=False):
from ayon_core.tools.tray.ui import main