|
1 | 1 | from typing import Any |
2 | 2 | from mcsmapi.pool import ApiPool |
3 | 3 | from mcsmapi.request import send |
4 | | -from mcsmapi.models.daemon import DaemonConfig |
| 4 | +from mcsmapi.models.daemon import DaemonConfig, DaemonModel |
| 5 | +from mcsmapi.models.daemon.instance import InstanceDetail |
5 | 6 |
|
6 | 7 |
|
7 | 8 | class Daemon: |
| 9 | + def show(self) -> list[DaemonConfig]: |
| 10 | + """ |
| 11 | + 获取全部节点配置信息 |
| 12 | +
|
| 13 | + 返回: |
| 14 | + - List[DaemonConfig]: 节点的配置信息列表 |
| 15 | + """ |
| 16 | + daemons = send( |
| 17 | + "GET", |
| 18 | + f"{ApiPool.SERVICE}/remote_services_list", |
| 19 | + ) |
| 20 | + return [DaemonConfig(**daemon) for daemon in daemons] |
| 21 | + |
| 22 | + def system(self) -> list[DaemonModel]: |
| 23 | + """ |
| 24 | + 获取全部节点的系统信息 |
| 25 | + |
| 26 | + 返回: |
| 27 | + - List[DaemonModel]: 节点系统信息列表 |
| 28 | + """ |
| 29 | + daemons = send( |
| 30 | + "GET", |
| 31 | + f"{ApiPool.SERVICE}/remote_services_system", |
| 32 | + ) |
| 33 | + return [DaemonModel(**daemon) for daemon in daemons] |
| 34 | + |
| 35 | + def instances(self, daemonId: str, page: int = 0, page_size: int = 10, instance_name: str = "", status: int = 0, tag: list[str] | None = None) -> list[InstanceDetail]: |
| 36 | + """ |
| 37 | + 查询指定节点下的实例详细信息 |
| 38 | + |
| 39 | + 参数: |
| 40 | + - `daemonId` (str): 要查询的守护进程(Daemon)的唯一标识符。 |
| 41 | + - `page` (int, 默认=0): 分页查询的页码(从 0 开始)。 |
| 42 | + - `page_size` (int, 默认=10): 每页返回的实例数量。 |
| 43 | + - `instance_name` (str, 默认=""): 过滤指定名称的实例。 |
| 44 | + - `status` (int, 默认=0): 过滤指定状态的实例,如运行中、已停止等。 |
| 45 | + - `tag` (List[str] | None, 默认=None): 根据标签筛选实例(可选参数)。 |
| 46 | + |
| 47 | + 返回: |
| 48 | + - `List[InstanceDetail]`: 包含实例详细信息的列表。 |
| 49 | + |
| 50 | + 注意: |
| 51 | + - 此方法尚未实现 (`raise RuntimeError`),因为 MCSM 官方文档未提供足够的信息。 |
| 52 | + - 由于根据 MCSM 源代码的测试无法获取有效数据,目前无法完成该功能的开发。 |
| 53 | + - 如果你有具体的实现思路,请在 issue 中提出 |
| 54 | + - 可供参考 MCSM 源码: [daemon_router.ts 第 32 行](https://github.com/MCSManager/MCSManager/blob/master/panel%2Fsrc%2Fapp%2Frouters%2Fdaemon_router.ts#L32-L32) |
| 55 | + - 测试地址示例: |
| 56 | + `http://localhost:23333/api/service/remote_service_instances?apikey=xxx&daemonId=xxx&page=0&page_size=10&status=3&instance_name=` |
| 57 | + """ |
| 58 | + raise RuntimeError("此方法尚未实现") |
| 59 | + |
8 | 60 | def add(self, config: dict[str, Any]) -> str: |
9 | 61 | """ |
10 | 62 | 新增一个节点。 |
|
0 commit comments