88by a Background step that restores the backup before each scenario.
99"""
1010
11+ import copy
1112import os
1213import shutil
1314
@@ -45,23 +46,53 @@ def _write_config(config: dict, path: str) -> None:
4546 yaml .dump (config , f , default_flow_style = False )
4647
4748
48- def _find_tls_openai_provider (config : dict ) -> dict :
49- """Find the tls-openai inference provider in the config.
49+ _TLS_PROVIDER_BASE : dict = {
50+ "provider_id" : "tls-openai" ,
51+ "provider_type" : "remote::openai" ,
52+ "config" : {
53+ "api_key" : "test-key" ,
54+ "base_url" : "https://mock-tls-inference:8443/v1" ,
55+ "allowed_models" : ["mock-tls-model" ],
56+ },
57+ }
58+
59+ _TLS_MODEL_RESOURCE : dict = {
60+ "model_id" : "mock-tls-model" ,
61+ "provider_id" : "tls-openai" ,
62+ "provider_model_id" : "mock-tls-model" ,
63+ }
64+
65+
66+ def _ensure_tls_provider (config : dict ) -> dict :
67+ """Find or create the tls-openai inference provider in the config.
68+
69+ If the provider does not exist, it is added along with the
70+ mock-tls-model registered resource.
5071
5172 Parameters:
5273 config: The Llama Stack configuration dictionary.
5374
5475 Returns:
55- The tls-openai provider configuration.
56-
57- Raises:
58- AssertionError: If no tls-openai provider is found.
76+ The tls-openai provider configuration dictionary.
5977 """
60- providers = config .get ("providers" , {})
61- for provider in providers .get ("inference" , []):
78+ providers = config .setdefault ("providers" , {})
79+ inference = providers .setdefault ("inference" , [])
80+
81+ for provider in inference :
6282 if provider .get ("provider_id" ) == "tls-openai" :
6383 return provider
64- raise AssertionError ("No tls-openai provider found in run.yaml" )
84+
85+ # Provider not found — add it
86+ provider = copy .deepcopy (_TLS_PROVIDER_BASE )
87+ inference .append (provider )
88+
89+ # Also register the model resource
90+ resources = config .setdefault ("registered_resources" , {})
91+ models = resources .setdefault ("models" , [])
92+ if not any (m .get ("model_id" ) == "mock-tls-model" for m in models ):
93+ models .append (copy .deepcopy (_TLS_MODEL_RESOURCE ))
94+
95+ return provider
6596
6697
6798def _backup_llama_config () -> None :
@@ -128,7 +159,7 @@ def configure_tls_verify_false(context: Context) -> None:
128159 """
129160 _backup_llama_config ()
130161 config = _load_llama_config ()
131- provider = _find_tls_openai_provider (config )
162+ provider = _ensure_tls_provider (config )
132163
133164 if "config" not in provider :
134165 provider ["config" ] = {}
@@ -148,7 +179,7 @@ def configure_tls_verify_ca(context: Context) -> None:
148179 """
149180 _backup_llama_config ()
150181 config = _load_llama_config ()
151- provider = _find_tls_openai_provider (config )
182+ provider = _ensure_tls_provider (config )
152183
153184 if "config" not in provider :
154185 provider ["config" ] = {}
@@ -173,7 +204,7 @@ def configure_tls_verify_true(context: Context) -> None:
173204 """
174205 _backup_llama_config ()
175206 config = _load_llama_config ()
176- provider = _find_tls_openai_provider (config )
207+ provider = _ensure_tls_provider (config )
177208
178209 if "config" not in provider :
179210 provider ["config" ] = {}
@@ -193,7 +224,7 @@ def configure_tls_mtls(context: Context) -> None:
193224 """
194225 _backup_llama_config ()
195226 config = _load_llama_config ()
196- provider = _find_tls_openai_provider (config )
227+ provider = _ensure_tls_provider (config )
197228
198229 if "config" not in provider :
199230 provider ["config" ] = {}
@@ -221,7 +252,7 @@ def configure_tls_min_version(context: Context, version: str) -> None:
221252 """
222253 _backup_llama_config ()
223254 config = _load_llama_config ()
224- provider = _find_tls_openai_provider (config )
255+ provider = _ensure_tls_provider (config )
225256
226257 if "config" not in provider :
227258 provider ["config" ] = {}
0 commit comments