40 lines
915 B
Python
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
|