mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-27 23:22:01 +00:00
refactor: Add ProviderContext for a flexible storage directory
- Introduce ProviderContext class to decouple provider storage paths from absolute paths - Add storage_dir attribute to StackRunConfig to accept CLI options - Implement storage directory resolution with prioritized fallbacks: 1. CLI option (--state-directory) 2. Environment variable (LLAMA_STACK_STATE_DIR) 3. Default distribution directory - Standardize provider signatures to follow context, config, deps pattern - Update provider implementations to use the new context-based approach - Add comprehensive tests to verify state directory resolution
This commit is contained in:
parent
dd07c7a5b5
commit
e6c9aebe47
41 changed files with 242 additions and 81 deletions
43
tests/unit/test_state_dir_resolution.py
Normal file
43
tests/unit/test_state_dir_resolution.py
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the terms described in the LICENSE file in
|
||||
# the root directory of this source tree.
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from llama_stack.distribution.resolver import resolve_storage_dir
|
||||
|
||||
|
||||
class DummyConfig:
|
||||
pass
|
||||
|
||||
|
||||
def test_storage_dir_cli(monkeypatch):
|
||||
config = DummyConfig()
|
||||
config.storage_dir = "/cli/dir"
|
||||
monkeypatch.delenv("LLAMA_STACK_STORAGE_DIR", raising=False)
|
||||
result = resolve_storage_dir(config, "distro")
|
||||
assert result == Path("/cli/dir")
|
||||
|
||||
|
||||
def test_storage_dir_env(monkeypatch):
|
||||
config = DummyConfig()
|
||||
if hasattr(config, "storage_dir"):
|
||||
delattr(config, "storage_dir")
|
||||
monkeypatch.setenv("LLAMA_STACK_STORAGE_DIR", "/env/dir")
|
||||
result = resolve_storage_dir(config, "distro")
|
||||
assert result == Path("/env/dir")
|
||||
|
||||
|
||||
def test_storage_dir_fallback(monkeypatch):
|
||||
# Mock the DISTRIBS_BASE_DIR
|
||||
monkeypatch.setattr("llama_stack.distribution.utils.config_dirs.DISTRIBS_BASE_DIR", Path("/mock/distribs"))
|
||||
|
||||
config = DummyConfig()
|
||||
if hasattr(config, "storage_dir"):
|
||||
delattr(config, "storage_dir")
|
||||
monkeypatch.delenv("LLAMA_STACK_STORAGE_DIR", raising=False)
|
||||
|
||||
result = resolve_storage_dir(config, "distro")
|
||||
assert result == Path("/mock/distribs/distro")
|
||||
Loading…
Add table
Add a link
Reference in a new issue