mcsmapi 0.1.7__py3-none-any.whl → 0.1.8b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,94 +1,105 @@
1
1
  from enum import Enum
2
2
  from typing import Literal
3
3
  from pydantic import BaseModel
4
- from mcsmapi.models.common import CpuMemChart, InstanceInfo, ProcessInfo
4
+ from mcsmapi.models.common import CpuMemChart, ProcessInfo
5
5
  from mcsmapi.models.daemon import DaemonModel
6
6
 
7
7
 
8
8
  class SystemUser(BaseModel):
9
9
  """系统用户信息"""
10
10
 
11
- uid: int = 0
11
+ uid: int
12
12
  """用户 ID (UID)"""
13
- gid: int = 0
13
+ gid: int
14
14
  """用户组 ID (GID)"""
15
- username: str = ""
15
+ username: str
16
16
  """用户名"""
17
- homedir: str = ""
17
+ homedir: str
18
18
  """用户主目录"""
19
- shell: str | None = None
19
+ shell: str | None
20
20
  """默认 Shell 解释器"""
21
21
 
22
22
 
23
23
  class SystemInfo(BaseModel):
24
24
  """系统信息"""
25
25
 
26
- user: SystemUser = SystemUser()
26
+ user: SystemUser
27
27
  """当前登录用户信息"""
28
- time: int = 0
28
+ time: int
29
29
  """系统当前时间 (Unix 时间戳)"""
30
- totalmem: int = 0
30
+ totalmem: int
31
31
  """系统总内存大小 (单位: 字节)"""
32
- freemem: int = 0
32
+ freemem: int
33
33
  """系统空闲内存大小 (单位: 字节)"""
34
- type: str = ""
34
+ type: str
35
35
  """操作系统类型"""
36
- version: str = ""
36
+ version: str
37
37
  """操作系统版本"""
38
- node: str = ""
39
- """系统节点名称"""
40
- hostname: str = ""
38
+ node: str
39
+ """系统NodeJS版本"""
40
+ hostname: str
41
41
  """主机名"""
42
- loadavg: list[float] = []
42
+ loadavg: tuple[float, float, float]
43
43
  """系统负载平均值 (过去 1、5、15 分钟)"""
44
- platform: str = ""
44
+ platform: str
45
45
  """操作系统平台"""
46
- release: str = ""
46
+ release: str
47
47
  """系统发行版本信息"""
48
- uptime: float = 0
48
+ uptime: float
49
49
  """系统运行时间 (单位: 秒)"""
50
- cpu: float = 0
50
+ cpu: float
51
51
  """CPU 当前使用率 (单位: %)"""
52
52
 
53
53
 
54
54
  class RecordInfo(BaseModel):
55
55
  """安全记录信息"""
56
56
 
57
- logined: int = 0
58
- """成功登录次数"""
59
- illegalAccess: int = 0
57
+ logined: int
58
+ """登录成功次数"""
59
+ illegalAccess: int
60
60
  """非法访问次数"""
61
- banips: int = 0
61
+ banips: int
62
62
  """被封禁的 IP 数量"""
63
- loginFailed: int = 0
63
+ loginFailed: int
64
64
  """登录失败次数"""
65
65
 
66
66
 
67
+ class RequestChart(BaseModel):
68
+ """应用实例运行和接口请求量趋势"""
69
+
70
+ value: int
71
+ """接口请求量"""
72
+ totalInstance: int
73
+ """总实例数量"""
74
+ runningInstance: int
75
+ """运行中实例数量"""
76
+
77
+
67
78
  class ChartInfo(BaseModel):
68
79
  """图表数据信息"""
69
80
 
70
81
  system: list[CpuMemChart]
71
- """系统统计信息"""
72
- request: list[InstanceInfo]
73
- """实例统计信息"""
82
+ """系统资源使用趋势"""
83
+ request: list[RequestChart]
84
+ """应用实例运行和接口请求量趋势"""
74
85
 
75
86
 
76
87
  class RemoteCountInfo(BaseModel):
77
- """远程守护进程统计信息"""
88
+ """远程节点统计信息"""
78
89
 
79
90
  total: int
80
- """远程守护进程总数"""
91
+ """远程节点总数"""
81
92
  available: int
82
- """可用的远程守护进程数量"""
93
+ """可用的远程节点数量"""
83
94
 
84
95
 
85
96
  class OverviewModel(BaseModel):
86
97
  """系统概览信息"""
87
98
 
88
99
  version: str
89
- """系统当前版本"""
100
+ """面板当前版本"""
90
101
  specifiedDaemonVersion: str
91
- """指定的守护进程 (Daemon) 版本"""
102
+ """指定的远程节点版本"""
92
103
  system: SystemInfo
93
104
  """系统信息"""
94
105
  record: RecordInfo
@@ -98,9 +109,9 @@ class OverviewModel(BaseModel):
98
109
  chart: ChartInfo
99
110
  """系统与请求统计图表数据"""
100
111
  remoteCount: RemoteCountInfo
101
- """远程守护进程统计信息"""
112
+ """远程节点统计信息"""
102
113
  remote: list[DaemonModel]
103
- """远程守护进程详细信息"""
114
+ """远程节点详细信息"""
104
115
 
105
116
 
106
117
  class LogType(Enum):
@@ -108,37 +119,59 @@ class LogType(Enum):
108
119
 
109
120
  # 系统相关
110
121
  SYSTEM_CONFIG_CHANGE = "system_config_change"
122
+ """系统配置修改"""
111
123
 
112
124
  # 用户相关
113
125
  USER_LOGIN = "user_login"
126
+ """用户登录"""
114
127
  USER_CONFIG_CHANGE = "user_config_change"
128
+ """修改用户配置"""
115
129
  USER_DELETE = "user_delete"
130
+ """删除用户"""
116
131
  USER_CREATE = "user_create"
132
+ """创建用户"""
117
133
 
118
- # 守护进程相关
134
+ # 节点相关
119
135
  DAEMON_CONFIG_CHANGE = "daemon_config_change"
136
+ """修改节点配置"""
120
137
  DAEMON_REMOVE = "daemon_remove"
138
+ """删除节点"""
121
139
  DAEMON_CREATE = "daemon_create"
140
+ """创建节点"""
122
141
 
123
142
  # 实例任务相关
124
143
  INSTANCE_TASK_DELETE = "instance_task_delete"
144
+ """删除实例计划任务"""
125
145
  INSTANCE_TASK_CREATE = "instance_task_create"
146
+ """创建实例计划任务"""
126
147
 
127
148
  # 实例文件相关
128
149
  INSTANCE_FILE_DELETE = "instance_file_delete"
150
+ """删除实例文件"""
129
151
  INSTANCE_FILE_DOWNLOAD = "instance_file_download"
152
+ """下载实例文件"""
130
153
  INSTANCE_FILE_UPDATE = "instance_file_update"
154
+ """更新实例文件"""
131
155
  INSTANCE_FILE_UPLOAD = "instance_file_upload"
156
+ """上传实例文件"""
132
157
 
133
158
  # 实例操作相关
134
159
  INSTANCE_DELETE = "instance_delete"
160
+ """删除实例"""
135
161
  INSTANCE_CREATE = "instance_create"
162
+ """创建实例"""
136
163
  INSTANCE_CONFIG_CHANGE = "instance_config_change"
164
+ """修改实例配置"""
137
165
  INSTANCE_KILL = "instance_kill"
166
+ """强制停止实例"""
138
167
  INSTANCE_UPDATE = "instance_update"
168
+ """更新实例"""
139
169
  INSTANCE_RESTART = "instance_restart"
170
+ """重启实例"""
140
171
  INSTANCE_STOP = "instance_stop"
172
+ """停止实例"""
141
173
  INSTANCE_START = "instance_start"
174
+ """启动实例"""
142
175
 
143
176
 
144
177
  class LogDetail(BaseModel):
@@ -161,10 +194,10 @@ class LogDetail(BaseModel):
161
194
  instance_id: str | None = None
162
195
  """实例ID(仅实例事件存在)"""
163
196
  daemon_id: str | None = None
164
- """守护进程ID(仅实例事件和守护进程事件存在)"""
197
+ """节点ID(仅实例事件和节点事件存在)"""
165
198
  login_result: bool | None = None
166
199
  """登录结果(仅登录事件存在)"""
167
- file: str | None = None
168
- """文件名(仅文件操作事件存在)"""
200
+ file: list[str] | str | None = None
201
+ """被操作的文件(仅文件操作事件存在)"""
169
202
  task_name: str | None = None
170
203
  """任务名称(仅任务操作事件存在)"""
mcsmapi/models/user.py CHANGED
@@ -5,61 +5,71 @@ from mcsmapi.models.instance import InstanceDetail, UserInstancesList
5
5
 
6
6
 
7
7
  class UserPermission(IntEnum):
8
+ """用户权限级别"""
9
+
8
10
  BANNED = -1
9
11
  USER = 1
10
12
  ADMIN = 10
11
13
 
12
14
 
15
+ class UserCreateResult(BaseModel):
16
+ """用户创建结果"""
17
+
18
+ uuid: str
19
+ """用户UUID"""
20
+ userName: str
21
+ """用户名"""
22
+ permission: UserPermission
23
+ """用户权限级别"""
24
+
25
+
13
26
  class UserModel(BaseModel):
14
27
  """用户信息模型"""
15
28
 
16
- uuid: str = ""
17
- """用户唯一标识符 (UUID)"""
18
- userName: str = ""
29
+ uuid: str
30
+ """用户UUID"""
31
+ userName: str
19
32
  """用户名"""
20
- passWord: str = ""
21
- """用户密码 (存储加密后的字符串)"""
22
- passWordType: int = 0
23
- """密码类型 (0=默认类型)"""
24
- salt: str = ""
25
- """密码盐值 (用于加密)"""
26
- permission: UserPermission = UserPermission.USER
33
+ permission: UserPermission
27
34
  """用户权限级别"""
28
- registerTime: str = ""
29
- """用户注册时间 (时间字符串格式)"""
30
- loginTime: str = ""
31
- """用户最后登录时间 (时间字符串格式)"""
32
- apiKey: str = ""
35
+ registerTime: str
36
+ """用户注册时间 (YYYY/M/D hh:mm:ss)"""
37
+ loginTime: str
38
+ """用户最后登录时间 (YYYY/M/D hh:mm:ss)"""
39
+ apiKey: str
33
40
  """用户 API 密钥"""
34
- isInit: bool = False
35
- """是否为初始化用户 (系统内置用户)"""
36
- secret: str = ""
37
- """用户安全密钥 (可能用于额外的身份验证)"""
38
- open2FA: bool = False
41
+ open2FA: bool
39
42
  """是否启用双因素认证 (2FA)"""
40
- instances: list[UserInstancesList] = []
43
+ instances: list[UserInstancesList]
41
44
  """用户关联的实例列表"""
42
-
43
- def delete(self) -> bool:
45
+ isInit: bool
46
+ """是否为初始化用户 (已弃用)"""
47
+ secret: str
48
+ """用户安全密钥 (已弃用)"""
49
+ passWord: str
50
+ """用户密码 (已弃用)"""
51
+ passWordType: int
52
+ """密码类型 (已弃用)"""
53
+ salt: str
54
+ """密码盐值 (已弃用)"""
55
+
56
+ def delete(self):
44
57
  """
45
- 删除该用户。
58
+ 删除该用户
46
59
 
47
- **返回:**
48
- - bool: 删除成功后返回True。
60
+ :returns: 删除成功后返回True
49
61
  """
50
62
  from mcsmapi.apis.user import User
51
63
 
52
64
  return User().delete([self.uuid])
53
65
 
54
- def update(self, config: dict[str, Any]) -> bool:
66
+ def update(self, config: dict[str, Any]):
55
67
  """
56
- 更新该用户的信息。
68
+ 更新该用户的信息
57
69
 
58
- 参数:
59
- - config (dict[str, Any]): 用户的新信息,以字典形式提供,缺失内容使用原用户信息填充。
70
+ :params config: 用户的新信息,以字典形式提供,缺失内容使用原用户信息填充
60
71
 
61
- 返回:
62
- - bool: 更新成功后返回True。
72
+ :returns: 更新成功后返回True
63
73
  """
64
74
  from mcsmapi.apis.user import User
65
75
 
@@ -80,38 +90,44 @@ class UserModel(BaseModel):
80
90
  class SearchUserModel(BaseModel):
81
91
  """用户搜索结果"""
82
92
 
83
- total: int = 0
93
+ total: int
84
94
  """匹配的用户总数"""
85
- page: int = 0
95
+ page: int
86
96
  """当前页码"""
87
- page_size: int = 0
97
+ page_size: int
88
98
  """每页返回的用户数量"""
89
- max_page: int = 0
99
+ max_page: int
90
100
  """最大可用页数"""
91
- data: list[UserModel] = []
101
+ data: list[UserModel]
92
102
  """用户信息列表"""
93
103
 
94
104
 
95
105
  class UserConfig(BaseModel):
96
106
  """用户配置信息"""
97
107
 
98
- uuid: str
99
- """用户唯一标识符 (UUID)"""
100
- userName: str
108
+ uuid: str = ""
109
+ """用户UUID"""
110
+ userName: str = ""
101
111
  """用户名"""
102
- loginTime: str
112
+ loginTime: str = ""
103
113
  """最后登录时间"""
104
- registerTime: str
114
+ registerTime: str = ""
105
115
  """注册时间"""
106
- instances: list[InstanceDetail]
116
+ instances: list[InstanceDetail] = []
107
117
  """用户拥有的实例列表"""
108
- permission: UserPermission
118
+ permission: UserPermission = UserPermission.USER
109
119
  """用户权限级别"""
110
- apiKey: str
111
- """用户 API 密钥"""
112
- isInit: bool
113
- """是否为初始化用户 (系统内置用户)"""
114
- secret: str
115
- """用户安全密钥 (可能用于额外的身份验证)"""
116
- open2FA: bool
120
+ passWord: str = ""
121
+ """用户密码"""
122
+ open2FA: bool = False
117
123
  """是否启用双因素认证 (2FA)"""
124
+ apiKey: str = ""
125
+ """用户 API 密钥"""
126
+ passWordType: int = 1
127
+ """密码类型 (已弃用)"""
128
+ isInit: bool = False
129
+ """是否为初始化用户 (已弃用)"""
130
+ secret: str = ""
131
+ """用户安全密钥 (已弃用)"""
132
+ salt: str = ""
133
+ """用户密码盐值 (已弃用)"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcsmapi
3
- Version: 0.1.7
3
+ Version: 0.1.8b1
4
4
  Summary: Shortcut the pypi package of MCSM./快捷操作MCSM的pypi包
5
5
  Author-email: molanp <molanpp@outlook.com>
6
6
  License-Expression: MIT
@@ -11,7 +11,7 @@ Requires-Python: >=3.10
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: requests
14
- Requires-Dist: pydantic>=2.0.0
14
+ Requires-Dist: pydantic<3.0.0,>=2.0.0
15
15
  Dynamic: license-file
16
16
 
17
17
  # MCSM API
@@ -84,9 +84,10 @@ mcsm.login_with_apikey("apikey")
84
84
 
85
85
  # Get dashboard data
86
86
  overview = mcsm.overview()
87
+ overview_data = overview.overview()
87
88
 
88
89
  # Get MCSM version
89
- mcsm_version = mcsm.overview().version
90
+ mcsm_version = overview_data.version
90
91
  ```
91
92
 
92
93
  ## Contributing
@@ -0,0 +1,24 @@
1
+ mcsmapi/__init__.py,sha256=TxBjQPMtwR_Eh0N7nZAoKinONAgnDsSbt47-cLvbeLk,1418
2
+ mcsmapi/exceptions.py,sha256=mHsAHyoX9SiFDGBMEhesA_ao9hhZZ38EGTp97K7VDp8,184
3
+ mcsmapi/pool.py,sha256=Xa1DvBdfn5zTZ-eB50BFbYxhKX8j-4vfus9QOGO_FQE,348
4
+ mcsmapi/request.py,sha256=G6O4Q3oXidmauyraUgoMTkms5XFlY-iHPhZ3s0k9TmM,2743
5
+ mcsmapi/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ mcsmapi/apis/daemon.py,sha256=0ng7Twv04gs4y09AYFIH2o5YPoxGV3c3TwsUkqxpgTI,2555
7
+ mcsmapi/apis/file.py,sha256=1SYNw-6Qaiq5knS0Pu1_7-y82WtcB6EOHPGakYvvqjQ,9630
8
+ mcsmapi/apis/image.py,sha256=ajTiZXSj0o5aMEDcPe6JkFI5JJcYZhQXszmNqnbSJxA,2656
9
+ mcsmapi/apis/instance.py,sha256=h2y3gTLINvDZq7vOzBhQ3X02f3mmg5ZlPunMDkTahgo,8318
10
+ mcsmapi/apis/overview.py,sha256=7wRAdhFzbtLq6Oknj4_ncO5fETZuZCGtliErA0NNju0,514
11
+ mcsmapi/apis/user.py,sha256=KXd8OPjyQBprPTlJD-wLGE-BtaOsM_0WF1yqRlGgTfg,2414
12
+ mcsmapi/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ mcsmapi/models/common.py,sha256=HNvYJnbxrtkJ7-H2zCXSuB-J-YXBXCcfyK0TzQprsKI,531
14
+ mcsmapi/models/daemon.py,sha256=It7kPyxogqY6oBdyXYNi4EmyqlGwizu7j-N37snko8k,4093
15
+ mcsmapi/models/file.py,sha256=vk9rQp3Yw_aK7F8ghi5eiBYuwcjK1m-2IQ0YbUWoj3A,5933
16
+ mcsmapi/models/image.py,sha256=mpyS7KTVoOwH2opB-fQC2GD3An_bXcERLmLPDBuoYUA,5643
17
+ mcsmapi/models/instance.py,sha256=FTFLkwi3r9OUQnusIQ1JI1f7dX4QIbH1Q5BxfUWIqxM,8362
18
+ mcsmapi/models/overview.py,sha256=Q_MG04iCkQ7KdBZnji3xA9XzwM3JZ6fZe3NWap8lMdU,5284
19
+ mcsmapi/models/user.py,sha256=f2fZS1EQFwqOJM7fKu91dcvHHAdRjhAhwY8XfwXhRvk,3318
20
+ mcsmapi-0.1.8b1.dist-info/licenses/LICENSE,sha256=bMKDPsvaybvY-4TTlSZtCXPPtxb7KPpDVqXgDA8Ogo0,1068
21
+ mcsmapi-0.1.8b1.dist-info/METADATA,sha256=FyYvDSMJwqwYImKbLTXSSNx4f7mI_LFb9EqxOITuWVs,3032
22
+ mcsmapi-0.1.8b1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
+ mcsmapi-0.1.8b1.dist-info/top_level.txt,sha256=8MUYHd1Or4cbSCd93IaqLA72w0weEuKieopVwIfVlWo,8
24
+ mcsmapi-0.1.8b1.dist-info/RECORD,,
@@ -1,24 +0,0 @@
1
- mcsmapi/__init__.py,sha256=TxBjQPMtwR_Eh0N7nZAoKinONAgnDsSbt47-cLvbeLk,1418
2
- mcsmapi/exceptions.py,sha256=mHsAHyoX9SiFDGBMEhesA_ao9hhZZ38EGTp97K7VDp8,184
3
- mcsmapi/pool.py,sha256=Xa1DvBdfn5zTZ-eB50BFbYxhKX8j-4vfus9QOGO_FQE,348
4
- mcsmapi/request.py,sha256=G6O4Q3oXidmauyraUgoMTkms5XFlY-iHPhZ3s0k9TmM,2743
5
- mcsmapi/apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- mcsmapi/apis/daemon.py,sha256=4kGWkVHsT7wgMGaTOei3daUe8qJ3_LGJ12hjq9j6OaE,2759
7
- mcsmapi/apis/file.py,sha256=uoO6PSlbSfleMQnopc4Ajmf_Z4dMN4IkunXBzv9rvvQ,10955
8
- mcsmapi/apis/image.py,sha256=Onb_yciTyybB4r2TxyvW04Z6-nnTSDO2HanhtRbA3m4,2968
9
- mcsmapi/apis/instance.py,sha256=RHvR7dyKgOlIuKbQzemWVXw17jEUmLILZ0J-gFu6538,11117
10
- mcsmapi/apis/overview.py,sha256=MqLmEyLh3i9VsQRFn7WI_02yRBt6eqZvusOkhHFIgFw,518
11
- mcsmapi/apis/user.py,sha256=XdoIgT9j87fhp0FPO4UusPYDPf59WlvzRaeLAdMhikM,3022
12
- mcsmapi/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- mcsmapi/models/common.py,sha256=2KiqbGiBRuipIoeSNPH9_p7sGyKOy406JtBhWR4K0dQ,598
14
- mcsmapi/models/daemon.py,sha256=FTt10oYFnGXG1WAXMJ4roPGLCX5R5U3YGIzeEu-2F4E,4344
15
- mcsmapi/models/file.py,sha256=0BltWCHZC0Mlic1_xaPRys0HyNdKScGNxui4_tzREUI,5976
16
- mcsmapi/models/image.py,sha256=jlEbLF6uEwBTRShOGI0vWYN7WAZyJoiMa1gw_UjKINw,5447
17
- mcsmapi/models/instance.py,sha256=vixAknesy-lop5BI8lKIHaDsSpa5xJtycAfX3zz0PGs,8810
18
- mcsmapi/models/overview.py,sha256=kGDvHtsur1iA0wbeT-QkZPf04wkmo6YsrFSLtGZpsd0,4583
19
- mcsmapi/models/user.py,sha256=OnELhHdnoJYvfJUH55QwAHsZDu1vwigYIjAdbZFyMnk,3182
20
- mcsmapi-0.1.7.dist-info/licenses/LICENSE,sha256=bMKDPsvaybvY-4TTlSZtCXPPtxb7KPpDVqXgDA8Ogo0,1068
21
- mcsmapi-0.1.7.dist-info/METADATA,sha256=7lsyKuG4FBPFGpyb0L3CpuNcW4zvuBpPECOEjhBzZEg,2989
22
- mcsmapi-0.1.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
- mcsmapi-0.1.7.dist-info/top_level.txt,sha256=8MUYHd1Or4cbSCd93IaqLA72w0weEuKieopVwIfVlWo,8
24
- mcsmapi-0.1.7.dist-info/RECORD,,