Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 2 additions & 11 deletions client/ayon_usd/addon.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import json
import os
from datetime import datetime, timezone

from ayon_core import style
from ayon_core.addon import AYONAddon, IPluginPaths, ITrayAddon
Expand Down Expand Up @@ -70,15 +69,7 @@ def _download_global_lakefs_binaries(self):
self.log.info("USD Binary distribution is disabled.")
return

os.makedirs(DOWNLOAD_DIR, exist_ok=True)

if not os.path.exists(ADDON_DATA_JSON_PATH):
now = datetime.now().astimezone(timezone.utc)
with open(ADDON_DATA_JSON_PATH, "w+") as json_file:
init_data = {
"ayon_usd_addon_first_init_utc": str(now)
}
json.dump(init_data, json_file)
utils.create_addon_data_json_file()

if not utils.is_usd_lib_download_needed(settings):
self.log.info("USD Libs already available. Skipping download.")
Expand Down Expand Up @@ -146,4 +137,4 @@ def _download_global_lakefs_binaries(self):
)
download_ui.setStyleSheet(style.load_stylesheet())
download_ui.start()
self._download_window = download_ui
self._download_window = download_ui
9 changes: 6 additions & 3 deletions client/ayon_usd/hooks/pre_resolver_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,12 @@ def execute(self):
)
return

# Check for existing local resolver that matches the lakefs timestamp
with open(ADDON_DATA_JSON_PATH, "r") as data_json:
addon_data_json = json.load(data_json)
# Bootstrap addon metadata for launches that happen without tray init.
addon_data_json = utils.get_addon_data_json()

if not addon_data_json:
utils.create_addon_data_json_file()
addon_data_json = utils.get_addon_data_json()

key = str(self.app_name).replace("/", "_")
local_resolver_key = f"resolver_data_{key}"
Expand Down
29 changes: 27 additions & 2 deletions client/ayon_usd/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import platform
import pathlib
import sys
from datetime import datetime, timezone

from ayon_usd.ayon_bin_client.ayon_bin_distro.work_handler import worker
from ayon_usd.ayon_bin_client.ayon_bin_distro.util import zip
Expand All @@ -15,6 +16,31 @@
ADDON_DATA_JSON_PATH = os.path.join(DOWNLOAD_DIR, "ayon_usd_addon_info.json")


def get_addon_data_json() -> dict:
"""Get addon data JSON content as dict."""
if os.path.exists(ADDON_DATA_JSON_PATH):
with open(ADDON_DATA_JSON_PATH, "r") as json_file:
return json.load(json_file)
return {}


def create_addon_data_json_file():
"""Create addon data JSON file if it doesn't exist."""
if os.path.exists(ADDON_DATA_JSON_PATH):
return

os.makedirs(DOWNLOAD_DIR, exist_ok=True)

init_data = {
"ayon_usd_addon_first_init_utc": str(
datetime.now().astimezone(timezone.utc)
)
}

with open(ADDON_DATA_JSON_PATH, "w") as json_file:
json.dump(init_data, json_file)


def get_download_dir(create_if_missing=True):
"""Dir path where files are downloaded.

Expand Down Expand Up @@ -56,8 +82,7 @@ def is_usd_lib_download_needed(settings: dict) -> bool:
if not os.path.exists(usd_lib_dir):
return True

with open(ADDON_DATA_JSON_PATH, "r") as data_json:
addon_data_json = json.load(data_json)
addon_data_json = get_addon_data_json()
try:
usd_lib_lake_fs_time_stamp_local = addon_data_json[
"usd_lib_lake_fs_time_cest"
Expand Down
Loading