Skip to content

Catch 'non authorized' influxdb profiles in ESDL #43

@MarkTNO

Description

@MarkTNO

When using an 'optimized' ESDL as input for the optimizer a error like below occurs.
It would be good to give readable feedback.

logs:

[2024-03-28 15:19:54,903: INFO/ForkPoolWorker-1] Using RTC-Tools 2.6.0a3.
[2024-03-28 15:19:55,215: ERROR/ForkPoolWorker-1] 401: {"error":"unable to parse authentication credentials"}
[2024-03-28 15:19:55,247: ERROR/ForkPoolWorker-1] Failure detected for job 30779516-e1e3-4a65-a18a-46dceb8b899f celery task 5119656a-fa1b-458e-8438-3a7dd10bc881
[2024-03-28 15:19:55,258: ERROR/ForkPoolWorker-1] Task grow_optimizer[5119656a-fa1b-458e-8438-3a7dd10bc881] raised unexpected: InfluxDBClientError('401: {"error":"unable to parse authentication credentials"}')
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 477, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 760, in __protected_call__
    return self.run(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/omotes_sdk/internal/worker/worker.py", line 207, in wrapped_worker_task
    task.output_esdl = WORKER_TASK_FUNCTION(input_esdl, params_dict, task_util.update_progress)
  File "/app/grow_worker/worker.py", line 46, in grow_worker_task
    solution: GROWProblem = get_problem_function(GROW_TASK_TYPE)(
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/workflows/grow_workflow.py", line 919, in run_end_scenario_sizing
    solution = run_optimization_problem(
  File "/usr/local/lib/python3.8/site-packages/rtctools/util.py", line 111, in run_optimization_problem
    prob = optimization_problem_class(
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/workflows/grow_workflow.py", line 433, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/workflows/io/write_output.py", line 35, in __init__
    super().__init__(**kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/techno_economic_mixin.py", line 35, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/financial_mixin.py", line 78, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/asset_sizing_mixin.py", line 100, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/physics_mixin.py", line 57, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/heat_physics_mixin.py", line 111, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/electricity_physics_mixin.py", line 31, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/gas_physics_mixin.py", line 32, in __init__
    super().__init__(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools/optimization/single_pass_goal_programming_mixin.py", line 67, in __init__
    super().__init__(**kwargs)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/esdl/esdl_mixin.py", line 116, in __init__
    self.__esdl_assets, self._profiles, self.__esdl_carriers = _esdl_to_assets(
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/esdl/esdl_mixin.py", line 1123, in _esdl_to_assets
    profiles = parse_esdl_profiles(esdl_model)
  File "/usr/local/lib/python3.8/site-packages/rtctools_heat_network/influxdb/profile.py", line 50, in parse_esdl_profiles
    time_series_data = InfluxDBProfileManager.create_esdl_influxdb_profile_manager(
  File "/usr/local/lib/python3.8/site-packages/esdl/profiles/influxdbprofilemanager.py", line 203, in create_esdl_influxdb_profile_manager
    prof = InfluxDBProfileManager(conn_settings)
  File "/usr/local/lib/python3.8/site-packages/esdl/profiles/influxdbprofilemanager.py", line 79, in __init__
    if settings.database not in [db['name'] for db in self.influxdb_client.get_list_database()]:
  File "/usr/local/lib/python3.8/site-packages/influxdb/client.py", line 704, in get_list_database
    return list(self.query("SHOW DATABASES").get_points())
  File "/usr/local/lib/python3.8/site-packages/influxdb/client.py", line 521, in query
    response = self.request(
  File "/usr/local/lib/python3.8/site-packages/influxdb/client.py", line 378, in request
    raise InfluxDBClientError(err_msg, response.status_code)
influxdb.exceptions.InfluxDBClientError: 401: {"error":"unable to parse authentication credentials"}
XMLResource loading...
[2024-03-28 15:19:55,262: INFO/ForkPoolWorker-1] Job 30779516-e1e3-4a65-a18a-46dceb8b899f (celery task id 5119656a-fa1b-458e-8438-3a7dd10bc881) failed.
[2024-03-28 15:19:55,266: INFO/ForkPoolWorker-1] Stopping broker interface

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions