Files
2026-07-13 12:24:33 +08:00

40 lines
915 B
Python

# SPDX-License-Identifier: Apache-2.0
"""
Interface for storage controllers
Storage controllers are separate modules/threads that sees the L1 Manager
and can operate on it.
"""
# Standard
from abc import ABC, abstractmethod
class StorageControllerInterface(ABC):
@abstractmethod
def start(self):
"""
Start the storage controller.
This function should be implemented by subclasses to start
any necessary threads or processes.
"""
pass
@abstractmethod
def stop(self):
"""
Stop the storage controller.
This function should be implemented by subclasses to stop
any running threads or processes.
"""
pass
@abstractmethod
def report_status(self) -> dict:
"""
Return a status dict for this controller.
Must include at least ``is_healthy: bool``.
"""
pass