diff --git a/.github/workflows/providers-build.yml b/.github/workflows/providers-build.yml index b4dae2c29..523a2d01c 100644 --- a/.github/workflows/providers-build.yml +++ b/.github/workflows/providers-build.yml @@ -113,7 +113,7 @@ jobs: - name: Build container image run: | - BASE_IMAGE=$(yq -r '.distribution_spec.container_image // "python:3.12-slim"' src/llama_stack/distributions/ci-tests/build.yaml) + BASE_IMAGE=$(yq -r '.distribution_spec.container_image // "python:3.12-slim"' src/llama_stack/distributions/ci-tests/config.yaml) BUILD_ARGS="--build-arg INSTALL_MODE=editable --build-arg DISTRO_NAME=ci-tests" BUILD_ARGS="$BUILD_ARGS --build-arg BASE_IMAGE=$BASE_IMAGE" BUILD_ARGS="$BUILD_ARGS --build-arg RUN_CONFIG_PATH=/workspace/src/llama_stack/distributions/ci-tests/config.yaml" @@ -155,11 +155,11 @@ jobs: run: | yq -i ' .distribution_spec.container_image = "registry.access.redhat.com/ubi9:latest" - ' src/llama_stack/distributions/ci-tests/build.yaml + ' src/llama_stack/distributions/ci-tests/config.yaml - name: Build UBI9 container image run: | - BASE_IMAGE=$(yq -r '.distribution_spec.container_image // "registry.access.redhat.com/ubi9:latest"' src/llama_stack/distributions/ci-tests/build.yaml) + BASE_IMAGE=$(yq -r '.distribution_spec.container_image // "registry.access.redhat.com/ubi9:latest"' src/llama_stack/distributions/ci-tests/config.yaml) BUILD_ARGS="--build-arg INSTALL_MODE=editable --build-arg DISTRO_NAME=ci-tests" BUILD_ARGS="$BUILD_ARGS --build-arg BASE_IMAGE=$BASE_IMAGE" BUILD_ARGS="$BUILD_ARGS --build-arg RUN_CONFIG_PATH=/workspace/src/llama_stack/distributions/ci-tests/config.yaml" diff --git a/tests/unit/conversations/test_conversations.py b/tests/unit/conversations/test_conversations.py index b481be63c..1aeb61a04 100644 --- a/tests/unit/conversations/test_conversations.py +++ b/tests/unit/conversations/test_conversations.py @@ -44,9 +44,9 @@ async def service(): ), ) register_sqlstore_backends({"sql_test": storage.backends["sql_test"]}) - run_config = StackConfig(image_name="test", apis=[], providers={}, storage=storage) + stack_config = StackConfig(image_name="test", apis=[], providers={}, storage=storage) - config = ConversationServiceConfig(run_config=run_config, policy=[]) + config = ConversationServiceConfig(config=stack_config, policy=[]) service = ConversationServiceImpl(config, {}) await service.initialize() yield service @@ -151,9 +151,9 @@ async def test_policy_configuration(): ), ) register_sqlstore_backends({"sql_test": storage.backends["sql_test"]}) - run_config = StackConfig(image_name="test", apis=[], providers={}, storage=storage) + stack_config = StackConfig(image_name="test", apis=[], providers={}, storage=storage) - config = ConversationServiceConfig(run_config=run_config, policy=restrictive_policy) + config = ConversationServiceConfig(config=stack_config, policy=restrictive_policy) service = ConversationServiceImpl(config, {}) await service.initialize() diff --git a/tests/unit/distribution/test_distribution.py b/tests/unit/distribution/test_distribution.py index b8ff484a7..762d8219f 100644 --- a/tests/unit/distribution/test_distribution.py +++ b/tests/unit/distribution/test_distribution.py @@ -395,27 +395,25 @@ pip_packages: def test_external_provider_from_module_building(self, mock_providers): """Test loading an external provider from a module during build (building=True, partial spec).""" - from llama_stack.core.datatypes import BuildConfig, BuildProvider, DistributionSpec + from llama_stack.core.datatypes import StackConfig from llama_stack_api import Api - # No importlib patch needed, should not import module when type of `config` is BuildConfig or DistributionSpec - build_config = BuildConfig( - version=2, - image_type="container", + # No importlib patch needed, should not import module when building + config = StackConfig( image_name="test_image", - distribution_spec=DistributionSpec( - description="test", - providers={ - "inference": [ - BuildProvider( - provider_type="external_test", - module="external_test", - ) - ] - }, - ), + apis=[], + providers={ + "inference": [ + Provider( + provider_id="external_test", + provider_type="external_test", + config={}, + module="external_test", + ) + ] + }, ) - registry = get_provider_registry(build_config) + registry = get_provider_registry(config, building=True) assert Api.inference in registry assert "external_test" in registry[Api.inference] provider = registry[Api.inference]["external_test"] @@ -492,31 +490,29 @@ class TestGetExternalProvidersFromModule: assert result[Api.inference]["versioned_test"].module == "versioned_test==1.0.0" def test_buildconfig_does_not_import_module(self, mock_providers): - """Test that BuildConfig does not import the module (building=True).""" - from llama_stack.core.datatypes import BuildConfig, BuildProvider, DistributionSpec + """Test that StackConfig does not import the module when building (building=True).""" + from llama_stack.core.datatypes import StackConfig from llama_stack.core.distribution import get_external_providers_from_module - build_config = BuildConfig( - version=2, - image_type="container", + config = StackConfig( image_name="test_image", - distribution_spec=DistributionSpec( - description="test", - providers={ - "inference": [ - BuildProvider( - provider_type="build_test", - module="build_test==1.0.0", - ) - ] - }, - ), + apis=[], + providers={ + "inference": [ + Provider( + provider_id="build_test", + provider_type="build_test", + config={}, + module="build_test==1.0.0", + ) + ] + }, ) # Should not call import_module at all when building with patch("importlib.import_module") as mock_import: registry = {Api.inference: {}} - result = get_external_providers_from_module(registry, build_config, building=True) + result = get_external_providers_from_module(registry, config, building=True) # Verify module was NOT imported mock_import.assert_not_called() @@ -530,28 +526,24 @@ class TestGetExternalProvidersFromModule: assert provider.api == Api.inference def test_buildconfig_multiple_providers(self, mock_providers): - """Test BuildConfig with multiple providers for the same API.""" - from llama_stack.core.datatypes import BuildConfig, BuildProvider, DistributionSpec + """Test StackConfig with multiple providers for the same API.""" + from llama_stack.core.datatypes import StackConfig from llama_stack.core.distribution import get_external_providers_from_module - build_config = BuildConfig( - version=2, - image_type="container", + config = StackConfig( image_name="test_image", - distribution_spec=DistributionSpec( - description="test", - providers={ - "inference": [ - BuildProvider(provider_type="provider1", module="provider1"), - BuildProvider(provider_type="provider2", module="provider2"), - ] - }, - ), + apis=[], + providers={ + "inference": [ + Provider(provider_id="provider1", provider_type="provider1", config={}, module="provider1"), + Provider(provider_id="provider2", provider_type="provider2", config={}, module="provider2"), + ] + }, ) with patch("importlib.import_module") as mock_import: registry = {Api.inference: {}} - result = get_external_providers_from_module(registry, build_config, building=True) + result = get_external_providers_from_module(registry, config, building=True) mock_import.assert_not_called() assert "provider1" in result[Api.inference]