We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scenario ID: wind_turbine Backend System: openeo.vito.be Failure Count: 1 Timestamp: 2025-04-21 13:05:28
Links:
{ "wind_turbine": { "arguments": { "spatial_extent": { "east": 8.888, "north": 54.981, "south": 53.951, "west": 8.858 }, "year": 2024 }, "namespace": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/refs/heads/main/algorithm_catalog/dhi/wind_turbine/openeo_udp/wind_turbine.json", "process_id": "wind_turbine_detection" }, "save1": { "process_id": "save_result", "arguments": { "data": { "from_node": "wind_turbine" }, "format": "GEOJSON" }, "result": true } }
scenario = BenchmarkScenario(id='wind_turbine', description='Wind turbine detection', backend='openeo.vito.be', process_graph={'w...s.json': 'https://s3.waw3-1.cloudferro.com/swift/v1/apex-examples/fusets_mogpr/fusets_mogpr.nc'}, reference_options={}) connection_factory = <function connection_factory.<locals>.get_connection at 0x7f034cc5b920> tmp_path = PosixPath('/home/runner/work/apex_algorithms/apex_algorithms/qa/benchmarks/tmp_path_root/test_run_benchmark_wind_turbin0') track_metric = <function track_metric.<locals>.append at 0x7f034cc5bba0> upload_assets_on_fail = <function upload_assets_on_fail.<locals>.collect at 0x7f034cc5b880> request = <FixtureRequest for <Function test_run_benchmark[wind_turbine]>> @pytest.mark.parametrize( "scenario", [ # Use scenario id as parameterization id to give nicer test names. pytest.param(uc, id=uc.id) for uc in get_benchmark_scenarios() ], ) def test_run_benchmark( scenario: BenchmarkScenario, connection_factory, tmp_path: Path, track_metric, upload_assets_on_fail, request ): track_metric("scenario_id", scenario.id) # Check if a backend override has been provided via cli options. override_backend = request.config.getoption("--override-backend") backend = scenario.backend if override_backend: _log.info(f"Overriding backend URL with {override_backend!r}") backend = override_backend connection: openeo.Connection = connection_factory(url=backend) # TODO #14 scenario option to use synchronous instead of batch job mode? job = connection.create_job( process_graph=scenario.process_graph, title=f"APEx benchmark {scenario.id}", additional=scenario.job_options, ) track_metric("job_id", job.job_id) # TODO: monitor timing and progress # TODO: abort excessively long batch jobs? https://github.com/Open-EO/openeo-python-client/issues/589 > job.start_and_wait() tests/test_benchmarks.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/job.py:292: in start_and_wait self.start() /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/job.py:126: in start self.connection.post(f"/jobs/{self.job_id}/results", expected_status=202) /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/_connection.py:205: in post return self.request("post", path=path, json=json, allow_redirects=False, **kwargs) /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/connection.py:664: in request return _request() /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/connection.py:657: in _request return super(Connection, self).request( /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/_connection.py:132: in request self._raise_api_error(resp) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <Connection to 'https://openeo.vito.be/openeo/1.2/' with OidcBearerAuth> response = <Response [402]> def _raise_api_error(self, response: requests.Response): """Convert API error response to Python exception""" status_code = response.status_code try: info = response.json() except Exception: info = None # Valid JSON object with "code" and "message" fields indicates a proper openEO API error. if isinstance(info, dict): error_code = info.get("code") error_message = info.get("message") if error_code and isinstance(error_code, str) and error_message and isinstance(error_message, str): raise OpenEoApiError( http_status_code=status_code, code=error_code, message=error_message, id=info.get("id"), url=info.get("url"), ) # Failed to parse it as a compliant openEO API error: show body as-is in the exception. text = response.text error_message = None _log.warning(f"Failed to parse API error response: [{status_code}] {text!r} (headers: {response.headers})") # TODO: eliminate this VITO-backend specific error massaging? if status_code == 502 and "Proxy Error" in text: error_message = ( "Received 502 Proxy Error." " This typically happens when a synchronous openEO processing request takes too long and is aborted." " Consider using a batch job instead." ) > raise OpenEoApiPlainError(message=text, http_status_code=status_code, error_message=error_message) E openeo.rest.OpenEoApiPlainError: [402] {"message":"You do not have sufficient credits to perform this request. Please visit https://portal.terrascope.be/pages/pricing to find more information on how to buy additional credits."} /opt/hostedtoolcache/Python/3.12.10/x64/lib/python3.12/site-packages/openeo/rest/_connection.py:175: OpenEoApiPlainError ----------------------------- Captured stdout call ----------------------------- 0:00:00 Job 'j-25042113052344a694d50a995d1719fb': send 'start' ------------------------------ Captured log call ------------------------------- INFO conftest:conftest.py:125 Connecting to 'openeo.vito.be' INFO openeo.config:config.py:193 Loaded openEO client config from sources: [] INFO conftest:conftest.py:138 Checking for auth_env_var='OPENEO_AUTH_CLIENT_CREDENTIALS_TERRASCOPE' to drive auth against url='openeo.vito.be'. INFO conftest:conftest.py:142 Extracted provider_id='terrascope' client_id='openeo-apex-service-account' from auth_env_var='OPENEO_AUTH_CLIENT_CREDENTIALS_TERRASCOPE' INFO openeo.rest.connection:connection.py:232 Found OIDC providers: ['egi', 'terrascope', 'CDSE'] INFO openeo.rest.auth.oidc:oidc.py:404 Doing 'client_credentials' token request 'https://sso.terrascope.be/auth/realms/terrascope/protocol/openid-connect/token' with post data fields ['grant_type', 'client_id', 'client_secret', 'scope'] (client_id 'openeo-apex-service-account') INFO openeo.rest.connection:connection.py:329 Obtained tokens: ['access_token', 'id_token'] WARNING openeo.rest._connection:_connection.py:165 Failed to parse API error response: [402] '{"message":"You do not have sufficient credits to perform this request. Please visit https://portal.terrascope.be/pages/pricing to find more information on how to buy additional credits."}' (headers: {'Content-Type': 'application/json', 'X-Served-By': 'traefik_credits_check', 'Date': 'Mon, 21 Apr 2025 13:05:23 GMT', 'Content-Length': '188', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'}) - Generated track_metrics report: report/metrics.json, _ParquetS3StorageSettings(bucket='apex-benchmarks', key='metrics/v1/metrics.parquet') - -------------------- `upload_assets` stats: {'uploaded': 0} -------------------- - tests/test_benchmarks.py::test_run_benchmark[wind_turbine]: - Generated html report: file:///home/runner/work/apex_algorithms/apex_algorithms/qa/benchmarks/report/report.html -
The text was updated successfully, but these errors were encountered:
soxofaan
No branches or pull requests
Benchmark Failure: wind_turbine
Scenario ID: wind_turbine
Backend System: openeo.vito.be
Failure Count: 1
Timestamp: 2025-04-21 13:05:28
Links:
Contact Information
Process Graph
Error Logs
The text was updated successfully, but these errors were encountered: