Run Test: slices-bi-singlenode-login 2026-05-26 08:33:47.682936 CEST - Run: /usr/local/bin/uv pip install --upgrade slices-cli --extra-index-url=https://doc.slices-ri.eu/pypi/ 2026-05-26 08:33:50.805243 CEST - Run: slices --version 2026-05-26 08:33:51.070135 CEST - version: Slices CLI v2025.1.5 Slices CLI core v1.1.2 Slices CLI bi v2.0.2 Slices clientlib core v5.5.1 Slices clientlib bi v5.1.2 2026-05-26 08:33:51.070441 CEST - Run: slices pubkey list --format text 2026-05-26 08:33:51.786531 CEST - Pubkey already registered 2026-05-26 08:33:51.786921 CEST - Run: slices bi infrastructure list --format csv --all --refresh 2026-05-26 08:33:52.452865 CEST - Refreshed infrastructure list. Total: 22 entries. 2026-05-26 08:33:52.453020 CEST - Check List Flavors 2026-05-26 08:33:52.453221 CEST - Run: slices bi --infra fr-lyon1-bi-baremetal1 flavor list -f json 2026-05-26 08:33:53.420086 CEST - Check List DiskImages 2026-05-26 08:33:53.420293 CEST - Run: slices bi --infra fr-lyon1-bi-baremetal1 diskimage list -f json 2026-05-26 08:34:54.807591 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/step_ListDiskImages_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra fr-lyon1-bi-baremetal1 diskimage list -f json 2026-05-26 08:34:54.807872 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/diskimage-list_STDERR.txt': ╭───────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_transports/default.py:101 in map_httpcore_exceptions │ │ │ │ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │ │ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │ │ 100 │ try: │ │ ❱ 101 │ │ yield │ │ 102 │ except Exception as exc: │ │ 103 │ │ mapped_exc = None │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_transports/default.py:250 in handle_request │ │ │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ 249 │ │ with map_httpcore_exceptions(): │ │ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ 253 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:256 in handle_request │ │ │ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │ 254 │ │ │ │ │ 255 │ │ │ self._close_connections(closing) │ │ ❱ 256 │ │ │ raise exc from None │ │ 257 │ │ │ │ 258 │ │ # Return the response. Note that in this case we still have to manage │ │ 259 │ │ # the point at which the response is closed. │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:236 in handle_request │ │ │ │ 233 │ │ │ │ │ │ 234 │ │ │ │ try: │ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │ ❱ 236 │ │ │ │ │ response = connection.handle_request( │ │ 237 │ │ │ │ │ │ pool_request.request │ │ 238 │ │ │ │ │ ) │ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/connection.py:103 in handle_request │ │ │ │ 100 │ │ │ self._connect_failed = True │ │ 101 │ │ │ raise exc │ │ 102 │ │ │ │ ❱ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ 105 │ def _connect(self, request: Request) -> NetworkStream: │ │ 106 │ │ timeouts = request.extensions.get("timeout", {}) │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/http11.py:136 in handle_request │ │ │ │ 133 │ │ │ with ShieldCancellation(): │ │ 134 │ │ │ │ with Trace("response_closed", logger, request) as trace: │ │ 135 │ │ │ │ │ self._response_closed() │ │ ❱ 136 │ │ │ raise exc │ │ 137 │ │ │ 138 │ # Sending the request... │ │ 139 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/http11.py:106 in handle_request │ │ │ │ 103 │ │ │ │ │ reason_phrase, │ │ 104 │ │ │ │ │ headers, │ │ 105 │ │ │ │ │ trailing_data, │ │ ❱ 106 │ │ │ │ ) = self._receive_response_headers(**kwargs) │ │ 107 │ │ │ │ trace.return_value = ( │ │ 108 │ │ │ │ │ http_version, │ │ 109 │ │ │ │ │ status, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/http11.py:177 in _receive_response_headers │ │ │ │ 174 │ │ timeout = timeouts.get("read", None) │ │ 175 │ │ │ │ 176 │ │ while True: │ │ ❱ 177 │ │ │ event = self._receive_event(timeout=timeout) │ │ 178 │ │ │ if isinstance(event, h11.Response): │ │ 179 │ │ │ │ break │ │ 180 │ │ │ if ( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_sync/http11.py:217 in _receive_event │ │ │ │ 214 │ │ │ │ event = self._h11_state.next_event() │ │ 215 │ │ │ │ │ 216 │ │ │ if event is h11.NEED_DATA: │ │ ❱ 217 │ │ │ │ data = self._network_stream.read( │ │ 218 │ │ │ │ │ self.READ_NUM_BYTES, timeout=timeout │ │ 219 │ │ │ │ ) │ │ 220 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_backends/sync.py:126 in read │ │ │ │ 123 │ │ │ 124 │ def read(self, max_bytes: int, timeout: float | None = None) -> bytes: │ │ 125 │ │ exc_map: ExceptionMapping = {socket.timeout: ReadTimeout, OSError: ReadError} │ │ ❱ 126 │ │ with map_exceptions(exc_map): │ │ 127 │ │ │ self._sock.settimeout(timeout) │ │ 128 │ │ │ return self._sock.recv(max_bytes) │ │ 129 │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/contextlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpcore/_exceptions.py:14 in map_exceptions │ │ │ │ 11 │ except Exception as exc: # noqa: PIE786 │ │ 12 │ │ for from_exc, to_exc in map.items(): │ │ 13 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │ │ 15 │ │ raise # pragma: nocover │ │ 16 │ │ 17 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ReadTimeout: The read operation timed out The above exception was the direct cause of the following exception: ╭───────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slices_cli_bi/commands/bi_diskimage.py:33 in wrapper_handle_some_exceptions │ │ │ │ 30 │ def wrapper_handle_some_exceptions(*args, **kwargs): │ │ 31 │ │ """Function wrapper for handle_some_exceptions.""" # noqa: D401 │ │ 32 │ │ try: │ │ ❱ 33 │ │ │ return func(*args, **kwargs) │ │ 34 │ │ except ServiceException as e: │ │ 35 │ │ │ err_console.print("[red]There was a connection problem. The service might be down. :zap:") │ │ 36 │ │ │ err_console.print(f"[red]Details: {e}") │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slices_cli_bi/commands/bi_diskimage.py:204 in list_images │ │ │ │ 201 │ ] = "created", # type: ignore │ │ 202 ): │ │ 203 │ """List disk images.""" │ │ ❱ 204 │ disk_images = ctx.obj.api.for_project(ctx.obj.require_project_id()).bi(ctx.obj.infra_id).image.list() │ │ 205 │ │ │ 206 │ disk_images = list(disk_images) # fetch all diskimages now │ │ 207 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slices_clientlib_bi/bi_image.py:191 in list │ │ │ │ 188 │ def list(self) -> Collection[DiskImage]: │ │ 189 │ │ """List experiments.""" │ │ 190 │ │ │ │ ❱ 191 │ │ return PagedCollection("disk_image", DiskImage, self.API_BASE_PATH, self._client) │ │ 192 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slices_clientlib_core/util/pagination.py:84 in __init__ │ │ │ │ 81 │ │ self._client = client │ │ 82 │ │ self._params = params │ │ 83 │ │ try: │ │ ❱ 84 │ │ │ response = self._client.get(url, params=params) │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:1053 in get │ │ │ │ 1050 │ │ │ │ 1051 │ │ **Parameters**: See `httpx.request`. │ │ 1052 │ │ """ │ │ ❱ 1053 │ │ return self.request( │ │ 1054 │ │ │ "GET", │ │ 1055 │ │ │ url, │ │ 1056 │ │ │ params=params, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:825 in request │ │ │ │ 822 │ │ │ timeout=timeout, │ │ 823 │ │ │ extensions=extensions, │ │ 824 │ │ ) │ │ ❱ 825 │ │ return self.send(request, auth=auth, follow_redirects=follow_redirects) │ │ 826 │ │ │ 827 │ @contextmanager │ │ 828 │ def stream( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:914 in send │ │ │ │ 911 │ │ │ │ 912 │ │ auth = self._build_request_auth(request, auth) │ │ 913 │ │ │ │ ❱ 914 │ │ response = self._send_handling_auth( │ │ 915 │ │ │ request, │ │ 916 │ │ │ auth=auth, │ │ 917 │ │ │ follow_redirects=follow_redirects, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:942 in _send_handling_auth │ │ │ │ 939 │ │ │ request = next(auth_flow) │ │ 940 │ │ │ │ │ 941 │ │ │ while True: │ │ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │ │ 943 │ │ │ │ │ request, │ │ 944 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 945 │ │ │ │ │ history=history, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:979 in _send_handling_redirects │ │ │ │ 976 │ │ │ for hook in self._event_hooks["request"]: │ │ 977 │ │ │ │ hook(request) │ │ 978 │ │ │ │ │ ❱ 979 │ │ │ response = self._send_single_request(request) │ │ 980 │ │ │ try: │ │ 981 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 982 │ │ │ │ │ hook(response) │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_client.py:1014 in _send_single_request │ │ │ │ 1011 │ │ │ ) │ │ 1012 │ │ │ │ 1013 │ │ with request_context(request=request): │ │ ❱ 1014 │ │ │ response = transport.handle_request(request) │ │ 1015 │ │ │ │ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │ │ 1017 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_transports/default.py:249 in handle_request │ │ │ │ 246 │ │ │ content=request.stream, │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ ❱ 249 │ │ with map_httpcore_exceptions(): │ │ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/contextlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/httpx/_transports/default.py:118 in map_httpcore_exceptions │ │ │ │ 115 │ │ │ raise │ │ 116 │ │ │ │ 117 │ │ message = str(exc) │ │ ❱ 118 │ │ raise mapped_exc(message) from exc │ │ 119 │ │ 120 │ │ 121 class ResponseStream(SyncByteStream): │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ReadTimeout: The read operation timed out 2026-05-26 08:34:54.808023 CEST - Error in test step 'List DiskImages': "slices bi diskimage list" failed 2026-05-26 08:34:54.808052 CEST - Step 'List DiskImages' took 61.39 seconds, which is longer than the warning threshold of 5 seconds 2026-05-26 08:34:54.808076 CEST - Destroying tst-65f5cd65 tst 2026-05-26 08:34:54.808221 CEST - Run: slices bi --infra fr-lyon1-bi-baremetal1 destroy --experiment tst-65f5cd65 tst 2026-05-26 08:34:55.574747 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/step_Destroy_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra fr-lyon1-bi-baremetal1 destroy --experiment tst-65f5cd65 tst 2026-05-26 08:34:55.574829 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/destroy.txt': Could not retrieve experiment tst-65f5cd65 ❌ 2026-05-26 08:34:55.574875 CEST - Error in test step 'Destroy': "slices bi destroy" failed (return value is 1) 2026-05-26 08:34:55.574902 CEST - Wait 2s before retry 2026-05-26 08:34:58.442401 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/step_DestroyRetry1_retry1_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra fr-lyon1-bi-baremetal1 destroy --experiment tst-65f5cd65 tst 2026-05-26 08:34:58.442493 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/destroy_retry1.txt': Could not retrieve experiment tst-65f5cd65 ❌ 2026-05-26 08:34:58.442526 CEST - Error in test step 'Destroy (Retry 1)': "slices bi destroy" failed (return value is 1) 2026-05-26 08:34:58.442560 CEST - Wait 2s before retry 2026-05-26 08:35:01.160195 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/step_DestroyRetry2_retry2_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra fr-lyon1-bi-baremetal1 destroy --experiment tst-65f5cd65 tst 2026-05-26 08:35:01.160291 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/destroy_retry2.txt': Could not retrieve experiment tst-65f5cd65 ❌ 2026-05-26 08:35:01.160315 CEST - Error in test step 'Destroy (Retry 2)': "slices bi destroy" failed (return value is 1) 2026-05-26 08:35:01.160343 CEST - Wait 2s before retry 2026-05-26 08:35:04.279047 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/step_DestroyRetry3_retry3_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra fr-lyon1-bi-baremetal1 destroy --experiment tst-65f5cd65 tst 2026-05-26 08:35:04.279147 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/bfe11f69-96d9-4c7d-a7d6-429f9f83db28/destroy_retry3.txt': Could not retrieve experiment tst-65f5cd65 ❌ 2026-05-26 08:35:04.279170 CEST - Error in test step 'Destroy (Retry 3)': "slices bi destroy" failed (return value is 1)