Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 51 additions & 37 deletions edge_mining/adapters/domain/energy/cli/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
from edge_mining.shared.interfaces.config import EnergyMonitorConfig
from edge_mining.shared.logging.port import LoggerPort

from edge_mining.adapters.utils import run_async_func


def select_energy_source_type() -> Optional[EnergySourceType]:
"""Select an energy source type from the list."""
Expand Down Expand Up @@ -263,15 +265,17 @@ def handle_add_energy_source(configuration_service: ConfigurationServiceInterfac
)

try:
added: EnergySource = configuration_service.create_energy_source(
name=new_energy_source.name,
source_type=new_energy_source.type,
nominal_power_max=new_energy_source.nominal_power_max,
storage=new_energy_source.storage,
grid=new_energy_source.grid,
external_source=new_energy_source.external_source,
energy_monitor_id=new_energy_source.energy_monitor_id,
forecast_provider_id=new_energy_source.forecast_provider_id,
added: EnergySource = run_async_func(
configuration_service.create_energy_source(
name=new_energy_source.name,
source_type=new_energy_source.type,
nominal_power_max=new_energy_source.nominal_power_max,
storage=new_energy_source.storage,
grid=new_energy_source.grid,
external_source=new_energy_source.external_source,
energy_monitor_id=new_energy_source.energy_monitor_id,
forecast_provider_id=new_energy_source.forecast_provider_id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -591,16 +595,18 @@ def update_single_energy_source(
new_energy_source.forecast_provider_id = forecast_provider.id

try:
updated: EnergySource = configuration_service.update_energy_source(
source_id=new_energy_source.id,
name=new_energy_source.name,
source_type=new_energy_source.type,
nominal_power_max=new_energy_source.nominal_power_max,
storage=new_energy_source.storage,
grid=new_energy_source.grid,
external_source=new_energy_source.external_source,
energy_monitor_id=new_energy_source.energy_monitor_id,
forecast_provider_id=new_energy_source.forecast_provider_id,
updated: EnergySource = run_async_func(
configuration_service.update_energy_source(
source_id=new_energy_source.id,
name=new_energy_source.name,
source_type=new_energy_source.type,
nominal_power_max=new_energy_source.nominal_power_max,
storage=new_energy_source.storage,
grid=new_energy_source.grid,
external_source=new_energy_source.external_source,
energy_monitor_id=new_energy_source.energy_monitor_id,
forecast_provider_id=new_energy_source.forecast_provider_id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -634,9 +640,11 @@ def assign_energy_monitor_to_energy_source(
return None

try:
updated_energy_source = configuration_service.set_energy_monitor_to_energy_source(
energy_source_id=energy_source.id,
energy_monitor_id=energy_monitor.id,
updated_energy_source = run_async_func(
configuration_service.set_energy_monitor_to_energy_source(
energy_source_id=energy_source.id,
energy_monitor_id=energy_monitor.id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -672,7 +680,7 @@ def delete_single_energy_source(
return False

try:
removed_energy_source = configuration_service.remove_energy_source(energy_source.id)
removed_energy_source = run_async_func(configuration_service.remove_energy_source(energy_source.id))
logger.debug(f"Energy Source {removed_energy_source.name} deleted successfully.")
click.echo(
click.style(
Expand Down Expand Up @@ -702,9 +710,11 @@ def assign_forecast_provider_to_energy_source(
click.echo(click.style("No forecast provider selected. Aborting assignment.", fg="red"))
return None
try:
updated_energy_source = configuration_service.set_forecast_provider_to_energy_source(
energy_source_id=energy_source.id,
forecast_provider_id=forecast_provider.id,
updated_energy_source = run_async_func(
configuration_service.set_forecast_provider_to_energy_source(
energy_source_id=energy_source.id,
forecast_provider_id=forecast_provider.id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -1093,11 +1103,13 @@ def handle_add_energy_monitor(

added: Optional[EnergyMonitor] = None
try:
added = configuration_service.create_energy_monitor(
name=new_energy_monitor.name,
adapter_type=new_energy_monitor.adapter_type,
config=new_energy_monitor.config,
external_service_id=new_energy_monitor.external_service_id,
added = run_async_func(
configuration_service.create_energy_monitor(
name=new_energy_monitor.name,
adapter_type=new_energy_monitor.adapter_type,
config=new_energy_monitor.config,
external_service_id=new_energy_monitor.external_service_id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -1381,11 +1393,13 @@ def update_single_energy_monitor(
return None

try:
updated_monitor: EnergyMonitor = configuration_service.update_energy_monitor(
monitor_id=new_energy_monitor.id,
name=new_energy_monitor.name,
config=new_energy_monitor.config,
external_service_id=new_energy_monitor.external_service_id,
updated_monitor: EnergyMonitor = run_async_func(
configuration_service.update_energy_monitor(
monitor_id=new_energy_monitor.id,
name=new_energy_monitor.name,
config=new_energy_monitor.config,
external_service_id=new_energy_monitor.external_service_id,
)
)
logger.debug(f"Energy Monitor {updated_monitor.name} updated successfully.")
click.echo(
Expand Down Expand Up @@ -1422,7 +1436,7 @@ def delete_single_energy_monitor(
return False

try:
removed_energy_monitor = configuration_service.remove_energy_monitor(monitor.id)
removed_energy_monitor = run_async_func(configuration_service.remove_energy_monitor(monitor.id))
logger.debug(f"Energy Monitor {removed_energy_monitor.name} deleted successfully.")
click.echo(
click.style(
Expand Down
12 changes: 6 additions & 6 deletions edge_mining/adapters/domain/energy/fast_api/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ async def add_energy_source(
energy_source_to_add: EnergySource = energy_source_data.to_model()

# Add the energy source
created_source = config_service.create_energy_source(
created_source = await config_service.create_energy_source(
name=energy_source_to_add.name,
source_type=energy_source_to_add.type,
nominal_power_max=energy_source_to_add.nominal_power_max,
Expand Down Expand Up @@ -130,7 +130,7 @@ async def update_energy_source(
raise EnergySourceNotFoundError(f"Energy source with id {source_id} not found")

# Update the energy source
updated_source = config_service.update_energy_source(
updated_source = await config_service.update_energy_source(
source_id=source_id,
name=energy_source_update.name or "",
source_type=energy_source_update.type,
Expand Down Expand Up @@ -162,7 +162,7 @@ async def delete_energy_source(
) -> EnergySourceSchema:
"""Remove an energy source."""
try:
deleted_source = config_service.remove_energy_source(source_id)
deleted_source = await config_service.remove_energy_source(source_id)

response = EnergySourceSchema.from_model(deleted_source)

Expand Down Expand Up @@ -207,7 +207,7 @@ async def add_energy_monitor(
raise EnergyMonitorConfigurationError("Energy monitor configuration should be set")

# Add the energy monitor
created_monitor = config_service.create_energy_monitor(
created_monitor = await config_service.create_energy_monitor(
name=energy_monitor_to_add.name,
adapter_type=energy_monitor_to_add.adapter_type,
config=energy_monitor_to_add.config,
Expand Down Expand Up @@ -334,7 +334,7 @@ async def update_energy_monitor(
external_service_id = EntityId(uuid.UUID(energy_monitor_update.external_service_id))

# Update the energy monitor
updated_monitor = config_service.update_energy_monitor(
updated_monitor = await config_service.update_energy_monitor(
monitor_id=monitor_id,
name=energy_monitor_update.name or "",
config=cast(EnergyMonitorConfig, configuration),
Expand All @@ -357,7 +357,7 @@ async def delete_energy_monitor(
) -> EnergyMonitorSchema:
"""Remove an energy monitor."""
try:
deleted_monitor = config_service.remove_energy_monitor(monitor_id)
deleted_monitor = await config_service.remove_energy_monitor(monitor_id)

response = EnergyMonitorSchema.from_model(deleted_monitor)

Expand Down
30 changes: 18 additions & 12 deletions edge_mining/adapters/domain/forecast/cli/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
from edge_mining.shared.interfaces.config import ForecastProviderConfig
from edge_mining.shared.logging.port import LoggerPort

from edge_mining.adapters.utils import run_async_func


def select_forecast_provider_adapter() -> Optional[ForecastProviderAdapter]:
"""Select a forecast provider adapter from the available options."""
Expand Down Expand Up @@ -163,11 +165,13 @@ def handle_add_forecast_provider(

added: Optional[ForecastProvider] = None
try:
added = configuration_service.create_forecast_provider(
name=name,
adapter_type=adapter_type,
config=config,
external_service_id=external_service_id,
added = run_async_func(
configuration_service.create_forecast_provider(
name=name,
adapter_type=adapter_type,
config=config,
external_service_id=external_service_id,
)
)
click.echo(
click.style(
Expand Down Expand Up @@ -431,12 +435,14 @@ def update_single_forecast_provider(
)

try:
updated: ForecastProvider = configuration_service.update_forecast_provider(
provider_id=forecast_provider.id,
name=name,
adapter_type=forecast_provider.adapter_type,
config=config,
external_service_id=external_service_id,
updated: ForecastProvider = run_async_func(
configuration_service.update_forecast_provider(
provider_id=forecast_provider.id,
name=name,
adapter_type=forecast_provider.adapter_type,
config=config,
external_service_id=external_service_id,
)
)
logger.debug(f"Forecast Provider '{updated.name}' updated successfully.")
click.echo(
Expand Down Expand Up @@ -470,7 +476,7 @@ def delete_single_forecast_provider(
return False

try:
configuration_service.remove_forecast_provider(forecast_provider.id)
run_async_func(configuration_service.remove_forecast_provider(forecast_provider.id))
logger.debug(f"Forecast Provider '{forecast_provider.name}' deleted successfully.")
click.echo(
click.style(
Expand Down
6 changes: 3 additions & 3 deletions edge_mining/adapters/domain/forecast/fast_api/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ async def add_forecast_provider(
raise ForecastProviderConfigurationError("Forecast provider configuration should be set")

# Add the forecast provider
created_provider = config_service.create_forecast_provider(
created_provider = await config_service.create_forecast_provider(
name=forecast_provider_to_add.name,
adapter_type=forecast_provider_to_add.adapter_type,
config=forecast_provider_to_add.config,
Expand Down Expand Up @@ -190,7 +190,7 @@ async def update_forecast_provider(
external_service_id = EntityId(uuid.UUID(forecast_provider_update.external_service_id))

# Update the forecast provider
updated_provider = config_service.update_forecast_provider(
updated_provider = await config_service.update_forecast_provider(
provider_id=provider_id,
name=forecast_provider_update.name or "",
adapter_type=forecast_provider.adapter_type,
Expand All @@ -214,7 +214,7 @@ async def delete_forecast_provider(
) -> ForecastProviderSchema:
"""Remove a forecast provider."""
try:
deleted_provider = config_service.remove_forecast_provider(provider_id)
deleted_provider = await config_service.remove_forecast_provider(provider_id)

response = ForecastProviderSchema.from_model(deleted_provider)

Expand Down
Loading