|
83 | 83 | import traceback |
84 | 84 | import subprocess |
85 | 85 | from contextlib import contextmanager |
86 | | -from urllib.parse import urlparse, parse_qs |
| 86 | +from urllib.parse import urlencode, urlparse, parse_qs |
87 | 87 |
|
88 | 88 | from version import __version__ |
89 | 89 |
|
@@ -348,10 +348,10 @@ def _print(message: str): |
348 | 348 | elif os.getenv("SSL_CERT_FILE") != certifi.where(): |
349 | 349 | _print("--- your system is set to use custom CA certificate bundle.") |
350 | 350 |
|
| 351 | +import ayon_api # noqa E402 |
351 | 352 | from ayon_api import ( # noqa E402 |
352 | 353 | get_base_url, |
353 | 354 | set_default_settings_variant, |
354 | | - get_addons_studio_settings, |
355 | 355 | get_event, |
356 | 356 | update_event, |
357 | 357 | take_web_action_event, |
@@ -542,17 +542,32 @@ def _prepare_disk_mapping_args(src_path, dst_path): |
542 | 542 | return [] |
543 | 543 |
|
544 | 544 |
|
545 | | -def _run_disk_mapping(bundle_name): |
| 545 | +def _run_disk_mapping( |
| 546 | + studio_bundle_name: str, |
| 547 | + project_bundle_name: str, |
| 548 | +) -> None: |
546 | 549 | """Run disk mapping logic. |
547 | 550 |
|
548 | 551 | Mapping of disks is taken from core addon settings. To run this logic |
549 | 552 | '_set_default_settings_variant' must be called first, so correct |
550 | 553 | settings are received from server. |
551 | 554 | """ |
552 | | - |
553 | 555 | low_platform = platform.system().lower() |
554 | | - settings = get_addons_studio_settings(bundle_name) |
555 | | - core_settings = settings.get("core") or {} |
| 556 | + |
| 557 | + key_values = { |
| 558 | + "bundle_name": studio_bundle_name, |
| 559 | + } |
| 560 | + if project_bundle_name and studio_bundle_name != project_bundle_name: |
| 561 | + key_values["project_bundle_name"] = project_bundle_name |
| 562 | + |
| 563 | + query = urlencode(key_values) |
| 564 | + |
| 565 | + core_settings = {} |
| 566 | + response = ayon_api.get(f"settings?{query}") |
| 567 | + for addon in response.data["addons"]: |
| 568 | + if addon["name"] == "core": |
| 569 | + core_settings = addon["settings"] or {} |
| 570 | + |
556 | 571 | disk_mapping = core_settings.get("disk_mapping") or {} |
557 | 572 | platform_disk_mapping = disk_mapping.get(low_platform) |
558 | 573 | if not platform_disk_mapping: |
@@ -688,7 +703,10 @@ def _start_distribution(): |
688 | 703 | distribution.use_staging, |
689 | 704 | project_bundle_name |
690 | 705 | ) |
691 | | - _run_disk_mapping(project_bundle_name) |
| 706 | + _run_disk_mapping( |
| 707 | + studio_bundle_name, |
| 708 | + project_bundle_name |
| 709 | + ) |
692 | 710 |
|
693 | 711 | auto_update = (os.getenv("AYON_AUTO_UPDATE") or "").lower() |
694 | 712 | skip_auto_update = auto_update == "skip" |
|
0 commit comments