|
24 | 24 | from simple_logger.logger import get_logger |
25 | 25 |
|
26 | 26 | from utilities.data_science_cluster_utils import update_components_in_dsc |
| 27 | +from utilities.exceptions import ClusterLoginError |
27 | 28 | from utilities.general import get_s3_secret_dict |
28 | 29 | from utilities.infra import ( |
29 | 30 | create_ns, |
@@ -246,33 +247,36 @@ def unprivileged_client( |
246 | 247 | non_admin_user_password: tuple[str, str], |
247 | 248 | ) -> Generator[DynamicClient, Any, Any]: |
248 | 249 | """ |
249 | | - Provides none privileged API client. If non_admin_user_password is None, then it will yield admin_client. |
| 250 | + Provides none privileged API client. If non_admin_user_password is None, then it will raise. |
250 | 251 | """ |
251 | 252 | if non_admin_user_password is None: |
252 | | - yield admin_client |
| 253 | + raise ValueError("Unprivileged user not provisioned") |
253 | 254 |
|
254 | 255 | else: |
255 | 256 | current_user = run_command(command=["oc", "whoami"])[1].strip() |
| 257 | + non_admin_user_name = non_admin_user_password[0] |
256 | 258 |
|
257 | 259 | if login_with_user_password( |
258 | 260 | api_address=admin_client.configuration.host, |
259 | | - user=non_admin_user_password[0], |
| 261 | + user=non_admin_user_name, |
260 | 262 | password=non_admin_user_password[1], |
261 | 263 | ): |
262 | 264 | with open(kubconfig_filepath) as fd: |
263 | 265 | kubeconfig_content = yaml.safe_load(fd) |
264 | 266 |
|
265 | 267 | unprivileged_context = kubeconfig_content["current-context"] |
266 | 268 |
|
| 269 | + unprivileged_client = get_client(config_file=kubconfig_filepath, context=unprivileged_context) |
| 270 | + |
267 | 271 | # Get back to admin account |
268 | 272 | login_with_user_password( |
269 | 273 | api_address=admin_client.configuration.host, |
270 | 274 | user=current_user.strip(), |
271 | 275 | ) |
272 | | - yield get_client(config_file=kubconfig_filepath, context=unprivileged_context) |
| 276 | + yield unprivileged_client |
273 | 277 |
|
274 | 278 | else: |
275 | | - yield admin_client |
| 279 | + raise ClusterLoginError(user=non_admin_user_name) |
276 | 280 |
|
277 | 281 |
|
278 | 282 | @pytest.fixture(scope="session") |
|
0 commit comments