use 'get_ayon_server_api_connection' in core functions

This commit is contained in:
Jakub Trllo 2023-11-09 14:36:42 +01:00
parent 8e0513fe54
commit 14ddd5cb51
6 changed files with 40 additions and 22 deletions

View file

@ -36,6 +36,7 @@ from openpype.settings import (
)
from openpype.client.mongo import validate_mongo_connection
from openpype.client import get_ayon_server_api_connection
_PLACEHOLDER = object()
@ -613,9 +614,8 @@ def get_openpype_username():
"""
if AYON_SERVER_ENABLED:
import ayon_api
return ayon_api.get_user()["name"]
con = get_ayon_server_api_connection()
return con.get_user()["name"]
username = os.environ.get("OPENPYPE_USERNAME")
if not username:

View file

@ -16,9 +16,9 @@ from abc import ABCMeta, abstractmethod
import six
import appdirs
import ayon_api
from openpype import AYON_SERVER_ENABLED
from openpype.client import get_ayon_server_api_connection
from openpype.settings import (
get_system_settings,
SYSTEM_SETTINGS_KEY,
@ -319,8 +319,11 @@ def load_modules(force=False):
def _get_ayon_bundle_data():
con = get_ayon_server_api_connection()
bundles = con.get_bundles()["bundles"]
bundle_name = os.getenv("AYON_BUNDLE_NAME")
bundles = ayon_api.get_bundles()["bundles"]
return next(
(
bundle
@ -345,7 +348,8 @@ def _get_ayon_addons_information(bundle_info):
output = []
bundle_addons = bundle_info["addons"]
addons = ayon_api.get_addons_info()["addons"]
con = get_ayon_server_api_connection()
addons = con.get_addons_info()["addons"]
for addon in addons:
name = addon["name"]
versions = addon.get("versions")

View file

@ -5,7 +5,6 @@ import platform
import collections
import numbers
import ayon_api
import six
import time
@ -16,7 +15,7 @@ from openpype.settings.lib import (
from openpype.settings.constants import (
DEFAULT_PROJECT_KEY
)
from openpype.client import get_project
from openpype.client import get_project, get_ayon_server_api_connection
from openpype.lib import Logger, get_local_site_id
from openpype.lib.path_templates import (
TemplateUnsolved,
@ -479,7 +478,8 @@ class Anatomy(BaseAnatomy):
if AYON_SERVER_ENABLED:
if not project_name:
return
return ayon_api.get_project_roots_for_site(
con = get_ayon_server_api_connection()
return con.get_project_roots_for_site(
project_name, get_local_site_id()
)

View file

@ -11,12 +11,14 @@ import pyblish.api
from pyblish.lib import MessageHandler
import openpype
from openpype import AYON_SERVER_ENABLED
from openpype.host import HostBase
from openpype.client import (
get_project,
get_asset_by_id,
get_asset_by_name,
version_is_latest,
get_ayon_server_api_connection,
)
from openpype.lib.events import emit_event
from openpype.modules import load_modules, ModulesManager
@ -105,6 +107,10 @@ def install_host(host):
_is_installed = True
# Make sure global AYON connection has set site id and version
if AYON_SERVER_ENABLED:
get_ayon_server_api_connection()
legacy_io.install()
modules_manager = _get_modules_manager()

View file

@ -4,7 +4,7 @@ import logging
from openpype import AYON_SERVER_ENABLED
from openpype.lib import Logger
from openpype.client import get_project
from openpype.client import get_project, get_ayon_server_api_connection
from . import legacy_io
from .anatomy import Anatomy
from .plugin_discover import (
@ -153,8 +153,6 @@ class ServerThumbnailResolver(ThumbnailResolver):
if not entity_type or not entity_id:
return None
import ayon_api
project_name = self.dbcon.active_project()
thumbnail_id = thumbnail_entity["_id"]
@ -169,7 +167,7 @@ class ServerThumbnailResolver(ThumbnailResolver):
# NOTE Use 'get_server_api_connection' because public function
# 'get_thumbnail_by_id' does not return output of 'ServerAPI'
# method.
con = ayon_api.get_server_api_connection()
con = get_ayon_server_api_connection()
if hasattr(con, "get_thumbnail_by_id"):
result = con.get_thumbnail_by_id(thumbnail_id)
if result.is_valid:

View file

@ -20,7 +20,8 @@ import copy
import time
import six
import ayon_api
from openpype.client import get_ayon_server_api_connection
def _convert_color(color_value):
@ -1445,7 +1446,8 @@ class _AyonSettingsCache:
@classmethod
def _use_bundles(cls):
if _AyonSettingsCache.use_bundles is None:
major, minor, _, _, _ = ayon_api.get_server_version_tuple()
con = get_ayon_server_api_connection()
major, minor, _, _, _ = con.get_server_version_tuple()
use_bundles = True
if (major, minor) < (0, 3):
use_bundles = False
@ -1462,6 +1464,8 @@ class _AyonSettingsCache:
variant = cls._get_dev_mode_settings_variant()
elif is_staging_enabled():
variant = "staging"
# Cache variant
_AyonSettingsCache.variant = variant
return _AyonSettingsCache.variant
@ -1477,8 +1481,9 @@ class _AyonSettingsCache:
str: Name of settings variant.
"""
bundles = ayon_api.get_bundles()
user = ayon_api.get_user()
con = get_ayon_server_api_connection()
bundles = con.get_bundles()
user = con.get_user()
username = user["name"]
for bundle in bundles["bundles"]:
if (
@ -1494,21 +1499,23 @@ class _AyonSettingsCache:
def get_value_by_project(cls, project_name):
cache_item = _AyonSettingsCache.cache_by_project_name[project_name]
if cache_item.is_outdated:
con = get_ayon_server_api_connection()
if cls._use_bundles():
value = ayon_api.get_addons_settings(
value = con.get_addons_settings(
bundle_name=cls._get_bundle_name(),
project_name=project_name,
variant=cls._get_variant()
)
else:
value = ayon_api.get_addons_settings(project_name)
value = con.get_addons_settings(project_name)
cache_item.update_value(value)
return cache_item.get_value()
@classmethod
def _get_addon_versions_from_bundle(cls):
con = get_ayon_server_api_connection()
expected_bundle = cls._get_bundle_name()
bundles = ayon_api.get_bundles()["bundles"]
bundles = con.get_bundles()["bundles"]
bundle = next(
(
bundle
@ -1528,8 +1535,11 @@ class _AyonSettingsCache:
if cls._use_bundles():
addons = cls._get_addon_versions_from_bundle()
else:
settings_data = ayon_api.get_addons_settings(
only_values=False, variant=cls._get_variant())
con = get_ayon_server_api_connection()
settings_data = con.get_addons_settings(
only_values=False,
variant=cls._get_variant()
)
addons = settings_data["versions"]
cache_item.update_value(addons)