Skip to content

Commit 4f9883d

Browse files
committed
Broaden exception handling when setting power through microgrid API
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 22158fe commit 4f9883d

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/frequenz/sdk/actor/power_distributing/_component_managers/_battery_manager.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,14 @@ def _parse_result(
672672
battery_ids,
673673
request_timeout.total_seconds(),
674674
)
675+
except Exception as e: # pylint: disable=broad-except
676+
failed_power += distribution[inverter_id]
677+
failed_batteries = failed_batteries.union(battery_ids)
678+
_logger.warning(
679+
"Unknown error while setting power to battery %s: %s",
680+
battery_ids,
681+
e,
682+
)
675683

676684
return failed_power, failed_batteries
677685

src/frequenz/sdk/actor/power_distributing/_component_managers/_ev_charger_manager/_ev_charger_manager.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,12 @@ async def _set_api_power(
341341
component_id,
342342
err,
343343
)
344+
case e if e is not None:
345+
_logger.warning(
346+
"Unknown error while setting power to EV charger %s: %s",
347+
component_id,
348+
e,
349+
)
344350
if failed_components:
345351
return PartialFailure(
346352
failed_components=failed_components,

src/frequenz/sdk/actor/power_distributing/_component_managers/_pv_inverter_manager/_pv_inverter_manager.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ async def distribute_power(self, request: Request) -> None:
159159
)
160160
await self._set_api_power(request, allocations, remaining_power)
161161

162-
async def _set_api_power(
162+
async def _set_api_power( # pylint: disable=too-many-locals
163163
self, request: Request, allocations: dict[int, Power], remaining_power: Power
164164
) -> None:
165165
api_client = connection_manager.get().api_client
@@ -201,6 +201,12 @@ async def _set_api_power(
201201
component_id,
202202
err,
203203
)
204+
case e if e is not None:
205+
_logger.warning(
206+
"Unknown error while setting power to EV charger %s: %s",
207+
component_id,
208+
e,
209+
)
204210
if failed_components:
205211
await self._results_sender.send(
206212
PartialFailure(

0 commit comments

Comments
 (0)