mcsmapi 0.1.7__tar.gz → 0.1.8b2__tar.gz
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.
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/PKG-INFO +6 -5
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/README.md +4 -3
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/__init__.py +8 -8
- mcsmapi-0.1.8b2/mcsmapi/apis/daemon.py +109 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/apis/file.py +90 -116
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/apis/image.py +18 -24
- mcsmapi-0.1.8b2/mcsmapi/apis/instance.py +281 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/apis/overview.py +1 -1
- mcsmapi-0.1.8b2/mcsmapi/apis/user.py +82 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/common.py +6 -6
- mcsmapi-0.1.8b2/mcsmapi/models/daemon.py +177 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/file.py +70 -67
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/image.py +17 -11
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/instance.py +109 -111
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/overview.py +74 -41
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/user.py +68 -59
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi.egg-info/PKG-INFO +6 -5
- mcsmapi-0.1.8b2/mcsmapi.egg-info/requires.txt +2 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/pyproject.toml +2 -2
- mcsmapi-0.1.7/mcsmapi/apis/daemon.py +0 -99
- mcsmapi-0.1.7/mcsmapi/apis/instance.py +0 -310
- mcsmapi-0.1.7/mcsmapi/apis/user.py +0 -86
- mcsmapi-0.1.7/mcsmapi/models/daemon.py +0 -154
- mcsmapi-0.1.7/mcsmapi.egg-info/requires.txt +0 -2
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/LICENSE +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/apis/__init__.py +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/exceptions.py +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/models/__init__.py +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/pool.py +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi/request.py +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi.egg-info/SOURCES.txt +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi.egg-info/dependency_links.txt +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/mcsmapi.egg-info/top_level.txt +0 -0
- {mcsmapi-0.1.7 → mcsmapi-0.1.8b2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcsmapi
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.8b2
|
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
|
14
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
15
15
|
Dynamic: license-file
|
16
16
|
|
17
17
|
# MCSM API
|
@@ -32,7 +32,7 @@ The documentation is not yet complete, if you need it, please visit [deepwiki-mc
|
|
32
32
|
|
33
33
|
You can also find:
|
34
34
|
|
35
|
-
📄 Work-in-progress docs: [docs](
|
35
|
+
📄 Work-in-progress docs: [docs](https://mcsmapi.awkchan.top/en/)
|
36
36
|
|
37
37
|
💡 Example: [example](example)
|
38
38
|
|
@@ -50,7 +50,7 @@ You can install `mcsmapi` using `pip`:
|
|
50
50
|
pip install mcsmapi
|
51
51
|
```
|
52
52
|
|
53
|
-
If you need the latest build files
|
53
|
+
If you need the latest build files, please visit
|
54
54
|
[Actions](https://github.com/molanp/mcsmapi/actions/workflows/auto-build.yml)
|
55
55
|
|
56
56
|
## Supported Features
|
@@ -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 =
|
90
|
+
mcsm_version = overview_data.version
|
90
91
|
```
|
91
92
|
|
92
93
|
## Contributing
|
@@ -16,7 +16,7 @@ The documentation is not yet complete, if you need it, please visit [deepwiki-mc
|
|
16
16
|
|
17
17
|
You can also find:
|
18
18
|
|
19
|
-
📄 Work-in-progress docs: [docs](
|
19
|
+
📄 Work-in-progress docs: [docs](https://mcsmapi.awkchan.top/en/)
|
20
20
|
|
21
21
|
💡 Example: [example](example)
|
22
22
|
|
@@ -34,7 +34,7 @@ You can install `mcsmapi` using `pip`:
|
|
34
34
|
pip install mcsmapi
|
35
35
|
```
|
36
36
|
|
37
|
-
If you need the latest build files
|
37
|
+
If you need the latest build files, please visit
|
38
38
|
[Actions](https://github.com/molanp/mcsmapi/actions/workflows/auto-build.yml)
|
39
39
|
|
40
40
|
## Supported Features
|
@@ -68,9 +68,10 @@ mcsm.login_with_apikey("apikey")
|
|
68
68
|
|
69
69
|
# Get dashboard data
|
70
70
|
overview = mcsm.overview()
|
71
|
+
overview_data = overview.overview()
|
71
72
|
|
72
73
|
# Get MCSM version
|
73
|
-
mcsm_version =
|
74
|
+
mcsm_version = overview_data.version
|
74
75
|
```
|
75
76
|
|
76
77
|
## Contributing
|
@@ -11,14 +11,14 @@ from mcsmapi.request import Request
|
|
11
11
|
|
12
12
|
class MCSMAPI:
|
13
13
|
|
14
|
-
def __init__(self, url: str, timeout: int = 5)
|
14
|
+
def __init__(self, url: str, timeout: int = 5):
|
15
15
|
split_url = urllib.parse.urlsplit(url)
|
16
16
|
Request.set_mcsm_url(
|
17
17
|
urllib.parse.urljoin(f"{split_url.scheme}://{split_url.netloc}", "")
|
18
18
|
)
|
19
19
|
Request.set_timeout(timeout)
|
20
20
|
|
21
|
-
def login(self, username: str, password: str)
|
21
|
+
def login(self, username: str, password: str):
|
22
22
|
Request.set_token(
|
23
23
|
Request.send(
|
24
24
|
"POST",
|
@@ -34,20 +34,20 @@ class MCSMAPI:
|
|
34
34
|
self.authentication = "apikey"
|
35
35
|
return self
|
36
36
|
|
37
|
-
def overview(self)
|
37
|
+
def overview(self):
|
38
38
|
return Overview()
|
39
39
|
|
40
|
-
def instance(self)
|
40
|
+
def instance(self):
|
41
41
|
return Instance()
|
42
42
|
|
43
|
-
def user(self)
|
43
|
+
def user(self) :
|
44
44
|
return User()
|
45
45
|
|
46
|
-
def daemon(self)
|
46
|
+
def daemon(self):
|
47
47
|
return Daemon()
|
48
48
|
|
49
|
-
def file(self)
|
49
|
+
def file(self):
|
50
50
|
return File()
|
51
51
|
|
52
|
-
def image(self)
|
52
|
+
def image(self):
|
53
53
|
return Image()
|
@@ -0,0 +1,109 @@
|
|
1
|
+
from typing import Any
|
2
|
+
from mcsmapi.pool import ApiPool
|
3
|
+
from mcsmapi.request import send
|
4
|
+
from mcsmapi.models.daemon import (
|
5
|
+
DaemonConfig,
|
6
|
+
DaemonInfo,
|
7
|
+
DaemonSystemInfo,
|
8
|
+
DaemonStatus,
|
9
|
+
DaemonUpdateConfig,
|
10
|
+
)
|
11
|
+
|
12
|
+
|
13
|
+
class Daemon:
|
14
|
+
@staticmethod
|
15
|
+
def config() -> list[DaemonStatus]:
|
16
|
+
"""
|
17
|
+
获取全部节点配置信息
|
18
|
+
|
19
|
+
:returns: 节点的配置信息列表
|
20
|
+
"""
|
21
|
+
daemons = send(
|
22
|
+
"GET",
|
23
|
+
f"{ApiPool.SERVICE}/remote_services_list",
|
24
|
+
)
|
25
|
+
return [DaemonStatus(**daemon) for daemon in daemons]
|
26
|
+
|
27
|
+
@staticmethod
|
28
|
+
def info() -> list[DaemonInfo]:
|
29
|
+
"""
|
30
|
+
获取全部节点信息
|
31
|
+
|
32
|
+
:returns: 节点信息列表
|
33
|
+
"""
|
34
|
+
daemons = send(
|
35
|
+
"GET",
|
36
|
+
f"{ApiPool.SERVICE}/remote_services",
|
37
|
+
)
|
38
|
+
return [DaemonInfo(**daemon) for daemon in daemons]
|
39
|
+
|
40
|
+
@staticmethod
|
41
|
+
def system() -> list[DaemonSystemInfo]:
|
42
|
+
"""
|
43
|
+
获取全部节点的系统信息
|
44
|
+
|
45
|
+
:returns: 节点系统信息列表
|
46
|
+
"""
|
47
|
+
daemons = send(
|
48
|
+
"GET",
|
49
|
+
f"{ApiPool.SERVICE}/remote_services_system",
|
50
|
+
)
|
51
|
+
return [DaemonSystemInfo(**daemon) for daemon in daemons]
|
52
|
+
|
53
|
+
@staticmethod
|
54
|
+
def add(config: dict[str, Any]) -> str:
|
55
|
+
"""
|
56
|
+
新增一个节点
|
57
|
+
|
58
|
+
:params config: 节点的配置信息,以字典形式提供,缺失内容由DaemonConfig模型补全
|
59
|
+
|
60
|
+
:returns: 新增节点的UUID
|
61
|
+
"""
|
62
|
+
return send(
|
63
|
+
"POST",
|
64
|
+
f"{ApiPool.SERVICE}/remote_service",
|
65
|
+
data=DaemonConfig(**config).model_dump(),
|
66
|
+
)
|
67
|
+
|
68
|
+
@staticmethod
|
69
|
+
def delete(daemonId: str) -> bool:
|
70
|
+
"""
|
71
|
+
删除一个节点
|
72
|
+
|
73
|
+
:params daemonId: 节点的UUID
|
74
|
+
|
75
|
+
:returns: 操作成功后返回True
|
76
|
+
"""
|
77
|
+
return send(
|
78
|
+
"DELETE", f"{ApiPool.SERVICE}/remote_service", params={"uuid": daemonId}
|
79
|
+
)
|
80
|
+
|
81
|
+
@staticmethod
|
82
|
+
def link(daemonId: str) -> bool:
|
83
|
+
"""
|
84
|
+
连接一个节点
|
85
|
+
|
86
|
+
:params daemonId: 节点的UUID
|
87
|
+
|
88
|
+
:returns: 操作成功后返回True
|
89
|
+
"""
|
90
|
+
return send(
|
91
|
+
"GET", f"{ApiPool.SERVICE}/link_remote_service", params={"uuid": daemonId}
|
92
|
+
)
|
93
|
+
|
94
|
+
@staticmethod
|
95
|
+
def update(daemonId: str, config: dict[str, Any]) -> bool:
|
96
|
+
"""
|
97
|
+
更新一个节点的配置
|
98
|
+
|
99
|
+
:params daemonId: 节点的UUID
|
100
|
+
:params config: 节点的配置信息,以字典形式提供,缺失内容由DaemonUpdateConfig模型补全
|
101
|
+
|
102
|
+
:returns: 操作成功后返回True
|
103
|
+
"""
|
104
|
+
return send(
|
105
|
+
"PUT",
|
106
|
+
f"{ApiPool.SERVICE}/remote_service",
|
107
|
+
params={"uuid": daemonId},
|
108
|
+
data=DaemonUpdateConfig(**config).model_dump(),
|
109
|
+
)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
from typing import Literal
|
1
2
|
from mcsmapi.pool import ApiPool
|
2
3
|
from mcsmapi.request import Request, send, upload
|
3
4
|
from mcsmapi.models.file import FileDownloadConfig, FileList
|
@@ -18,16 +19,14 @@ class File:
|
|
18
19
|
"""
|
19
20
|
获取文件列表
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- file_name (str, 可选): 用于在文件列表中过滤出名称包含指定字符串的文件或文件夹
|
22
|
+
:params daemonId: 节点的UUID
|
23
|
+
:params uuid: 实例的UUID
|
24
|
+
:params target: 用于文件过滤的目标路径
|
25
|
+
:params page: 指定分页的页码
|
26
|
+
:params page_size: 指定每页的文件数量
|
27
|
+
:params file_name: 用于在文件列表中过滤出名称包含指定字符串的文件或文件夹
|
28
28
|
|
29
|
-
|
30
|
-
- FileList: 包含文件列表信息和分页详情的FileList模型。
|
29
|
+
:returns: 包含文件列表信息和分页详情的FileList模型
|
31
30
|
"""
|
32
31
|
result = send(
|
33
32
|
"GET",
|
@@ -44,17 +43,15 @@ class File:
|
|
44
43
|
return FileList(**result, daemonId=daemonId, uuid=uuid)
|
45
44
|
|
46
45
|
@staticmethod
|
47
|
-
def content(daemonId: str, uuid: str, target: str) -> str
|
46
|
+
def content(daemonId: str, uuid: str, target: str) -> str:
|
48
47
|
"""
|
49
48
|
获取文件内容
|
50
49
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
- target (str): 文件的目标路径。
|
50
|
+
:params daemonId: 节点的UUID
|
51
|
+
:params uuid: 实例的UUID
|
52
|
+
:params target: 文件的目标路径
|
55
53
|
|
56
|
-
|
57
|
-
- str: 文件的内容信息。
|
54
|
+
:returns: 文件的内容信息
|
58
55
|
"""
|
59
56
|
return send(
|
60
57
|
"PUT",
|
@@ -68,14 +65,12 @@ class File:
|
|
68
65
|
"""
|
69
66
|
更新文件内容
|
70
67
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
- text (str): 新的文件内容。
|
68
|
+
:params daemonId: 节点的UUID
|
69
|
+
:params uuid: 实例的UUID
|
70
|
+
:params target: 目标文件的路径
|
71
|
+
:params text: 新的文件内容
|
76
72
|
|
77
|
-
|
78
|
-
- bool: 更新成功后返回True。
|
73
|
+
:returns: 操作成功后返回True
|
79
74
|
"""
|
80
75
|
return send(
|
81
76
|
"PUT",
|
@@ -89,13 +84,11 @@ class File:
|
|
89
84
|
"""
|
90
85
|
下载文件
|
91
86
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
- file_name (str): 要下载的文件名。路径+名字, 示例: /backup/world.zip
|
87
|
+
:params daemonId: 节点的UUID
|
88
|
+
:params uuid: 实例的UUID
|
89
|
+
:params file_name: 要下载的文件的实例内完整路径, eg: /backup/world.zip
|
96
90
|
|
97
|
-
|
98
|
-
- str: 文件下载URL。
|
91
|
+
:returns: 文件下载URL
|
99
92
|
"""
|
100
93
|
|
101
94
|
result = send(
|
@@ -113,14 +106,12 @@ class File:
|
|
113
106
|
"""
|
114
107
|
上传文件
|
115
108
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
- upload_dir (str): 文件上传到的目标路径。
|
109
|
+
:params daemonId: 节点的UUID
|
110
|
+
:params uuid: 实例的UUID
|
111
|
+
:params file: 要上传的文件内容
|
112
|
+
:params upload_dir: 文件上传到的目标路径
|
121
113
|
|
122
|
-
|
123
|
-
- bool: 上传成功后返回True。
|
114
|
+
:returns: 操作成功后返回True
|
124
115
|
"""
|
125
116
|
result = send(
|
126
117
|
"POST",
|
@@ -137,15 +128,13 @@ class File:
|
|
137
128
|
@staticmethod
|
138
129
|
def copy(daemonId: str, uuid: str, copy_map: dict[str, str]) -> bool:
|
139
130
|
"""
|
140
|
-
|
131
|
+
复制多个文件夹或文件到指定位置
|
141
132
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
- copy_map (dict): 复制映射,格式为 {源路径: 目标路径}
|
133
|
+
:params daemonId: 节点的UUID
|
134
|
+
:params uuid: 实例的UUID
|
135
|
+
:params copy_map: 复制映射,格式为 {源路径: 目标路径}
|
146
136
|
|
147
|
-
|
148
|
-
- bool: 上传成功后返回True。
|
137
|
+
:returns: 操作成功后返回True
|
149
138
|
"""
|
150
139
|
targets = [[source, target] for source, target in copy_map.items()]
|
151
140
|
return send(
|
@@ -158,31 +147,27 @@ class File:
|
|
158
147
|
@staticmethod
|
159
148
|
def copyOne(daemonId: str, uuid: str, source: str, target: str) -> bool:
|
160
149
|
"""
|
161
|
-
|
150
|
+
复制单个文件或文件夹到指定位置
|
162
151
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
- target (str): 目标文件或文件夹的路径。
|
152
|
+
:params daemonId: 节点的UUID
|
153
|
+
:params uuid: 实例的UUID
|
154
|
+
:params source: 源文件或文件夹的路径
|
155
|
+
:params target: 目标文件或文件夹的路径
|
168
156
|
|
169
|
-
|
170
|
-
- bool: 移动成功后返回True。
|
157
|
+
:returns: 操作成功后返回True
|
171
158
|
"""
|
172
159
|
return File.copy(daemonId, uuid, {source: target})
|
173
160
|
|
174
161
|
@staticmethod
|
175
162
|
def move(daemonId: str, uuid: str, copy_map: dict[str, str]) -> bool:
|
176
163
|
"""
|
177
|
-
|
164
|
+
移动多个文件或文件夹到指定位置
|
178
165
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
- copy_map (dict): 移动映射,格式为 {源路径: 目标路径}
|
166
|
+
:params daemonId: 节点的UUID
|
167
|
+
:params uuid: 实例的UUID
|
168
|
+
:params copy_map: 移动映射,格式为 {源路径: 目标路径}
|
183
169
|
|
184
|
-
|
185
|
-
- bool: 移动成功后返回True。
|
170
|
+
:returns: 操作成功后返回True
|
186
171
|
"""
|
187
172
|
targets = [[source, target] for source, target in copy_map.items()]
|
188
173
|
return send(
|
@@ -195,32 +180,28 @@ class File:
|
|
195
180
|
@staticmethod
|
196
181
|
def moveOne(daemonId: str, uuid: str, source: str, target: str) -> bool:
|
197
182
|
"""
|
198
|
-
|
183
|
+
从源路径移动单个文件或文件夹到目标路径
|
199
184
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
- target (str): 目标文件或文件夹的路径。
|
185
|
+
:params daemonId: 节点的UUID
|
186
|
+
:params uuid: 实例的UUID
|
187
|
+
:params source: 源文件或文件夹的路径
|
188
|
+
:params target: 目标文件或文件夹的路径
|
205
189
|
|
206
|
-
|
207
|
-
- bool: 移动成功后返回True。
|
190
|
+
:returns: 操作成功后返回True
|
208
191
|
"""
|
209
192
|
return File.move(daemonId, uuid, {source: target})
|
210
193
|
|
211
194
|
@staticmethod
|
212
195
|
def rename(daemonId: str, uuid: str, source: str, new_name: str) -> bool:
|
213
196
|
"""
|
214
|
-
|
197
|
+
重命名单个文件或文件夹
|
215
198
|
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
- new_name (str): 源文件或文件夹的新名字。
|
199
|
+
:params daemonId: 节点的UUID
|
200
|
+
:params uuid: 实例的UUID
|
201
|
+
:params source: 源文件或文件夹的路径
|
202
|
+
:params new_name: 源文件或文件夹的新名字
|
221
203
|
|
222
|
-
|
223
|
-
- bool: 重命名成功后返回True。
|
204
|
+
:returns: 操作成功后返回True
|
224
205
|
"""
|
225
206
|
directory = os.path.dirname(source)
|
226
207
|
target = os.path.join(directory, new_name)
|
@@ -229,16 +210,14 @@ class File:
|
|
229
210
|
@staticmethod
|
230
211
|
def zip(daemonId: str, uuid: str, source: str, targets: list[str]) -> bool:
|
231
212
|
"""
|
232
|
-
|
213
|
+
压缩多个文件或文件夹到指定位置
|
233
214
|
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
- targets (list): 要压缩到的目标文件的路径。
|
215
|
+
:params daemonId: 节点的UUID
|
216
|
+
:params uuid: 实例的UUID
|
217
|
+
:params source: 要压缩到的目标文件的路径
|
218
|
+
:params targets: 需要压缩的文件路径
|
239
219
|
|
240
|
-
|
241
|
-
- bool: 压缩成功后返回True。
|
220
|
+
:returns: 操作成功后返回True
|
242
221
|
"""
|
243
222
|
return send(
|
244
223
|
"POST",
|
@@ -249,41 +228,40 @@ class File:
|
|
249
228
|
|
250
229
|
@staticmethod
|
251
230
|
def unzip(
|
252
|
-
daemonId: str,
|
231
|
+
daemonId: str,
|
232
|
+
uuid: str,
|
233
|
+
source: str,
|
234
|
+
targets: str,
|
235
|
+
code: Literal["utf-8", "gbk", "big5"] = "utf-8",
|
253
236
|
) -> bool:
|
254
237
|
"""
|
255
|
-
解压缩指定的zip
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
**返回:**
|
266
|
-
- bool: 解压成功后返回True。
|
238
|
+
解压缩指定的zip文件到目标位置
|
239
|
+
|
240
|
+
:params daemonId: 节点的UUID
|
241
|
+
:params uuid: 实例的UUID
|
242
|
+
:params source: 需要解压的zip文件路径
|
243
|
+
:params targets: 解压到的目标路径
|
244
|
+
:params code: 压缩文件的编码方式
|
245
|
+
|
246
|
+
:returns: 操作成功后返回True
|
267
247
|
"""
|
268
248
|
return send(
|
269
249
|
"POST",
|
270
250
|
f"{ApiPool.FILE}/compress",
|
271
251
|
params={"daemonId": daemonId, "uuid": uuid},
|
272
|
-
data={"type": 2, "code": code, "source": source, "targets":
|
252
|
+
data={"type": 2, "code": code, "source": source, "targets": targets},
|
273
253
|
)
|
274
254
|
|
275
255
|
@staticmethod
|
276
256
|
def delete(daemonId: str, uuid: str, targets: list[str]) -> bool:
|
277
257
|
"""
|
278
|
-
|
258
|
+
删除多个文件或文件夹
|
279
259
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
- targets (list): 要删除的文件或文件夹的路径。
|
260
|
+
:params daemonId: 节点的UUID
|
261
|
+
:params uuid: 实例的UUID
|
262
|
+
:params targets: 要删除的文件或文件夹的路径
|
284
263
|
|
285
|
-
|
286
|
-
- bool: 删除成功后返回True。
|
264
|
+
:returns: 操作成功后返回True
|
287
265
|
"""
|
288
266
|
return send(
|
289
267
|
"DELETE",
|
@@ -295,15 +273,13 @@ class File:
|
|
295
273
|
@staticmethod
|
296
274
|
def createFile(daemonId: str, uuid: str, target: str) -> bool:
|
297
275
|
"""
|
298
|
-
|
276
|
+
创建文件
|
299
277
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
- target (str): 目标文件的路径,包含文件名。
|
278
|
+
:params daemonId: 节点的UUID
|
279
|
+
:params uuid: 实例的UUID
|
280
|
+
:params target: 目标文件的路径,包含文件名
|
304
281
|
|
305
|
-
|
306
|
-
- bool: 创建成功后返回True。
|
282
|
+
:returns: 操作成功后返回True
|
307
283
|
"""
|
308
284
|
return send(
|
309
285
|
"POST",
|
@@ -317,13 +293,11 @@ class File:
|
|
317
293
|
"""
|
318
294
|
创建文件夹
|
319
295
|
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
- target (str): 目标文件夹的路径。
|
296
|
+
:params daemonId: 节点的UUID
|
297
|
+
:params uuid: 实例的UUID
|
298
|
+
:params target: 目标文件夹的路径
|
324
299
|
|
325
|
-
|
326
|
-
- bool: 创建成功后返回True。
|
300
|
+
:returns: 操作成功后返回True
|
327
301
|
"""
|
328
302
|
return send(
|
329
303
|
"POST",
|
@@ -9,11 +9,9 @@ class Image:
|
|
9
9
|
"""
|
10
10
|
获取镜像列表
|
11
11
|
|
12
|
-
|
13
|
-
- daemonId (str): 守护进程的唯一标识符。
|
12
|
+
:params daemonId: 节点的UUID
|
14
13
|
|
15
|
-
|
16
|
-
- list[ImageModel]: 包含镜像列表详情的 ImageModel 模型的列表。
|
14
|
+
:returns: 包含镜像列表详情的 ImageModel 模型的列表
|
17
15
|
"""
|
18
16
|
result = send(
|
19
17
|
"GET",
|
@@ -30,11 +28,9 @@ class Image:
|
|
30
28
|
"""
|
31
29
|
获取容器列表
|
32
30
|
|
33
|
-
|
34
|
-
- daemonId (str): 守护进程的唯一标识符。
|
31
|
+
:params daemonId: 节点的UUID
|
35
32
|
|
36
|
-
|
37
|
-
- list[DockerContainerItem]: 包含容器列表详情的 DockerContainerItem 模型的列表。
|
33
|
+
:params: 包含容器列表详情的 DockerContainerItem 模型的列表
|
38
34
|
"""
|
39
35
|
result = send(
|
40
36
|
"GET",
|
@@ -51,11 +47,9 @@ class Image:
|
|
51
47
|
"""
|
52
48
|
获取网络接口列表
|
53
49
|
|
54
|
-
|
55
|
-
- daemonId (str): 守护进程的唯一标识符。
|
50
|
+
:params daemonId: 节点的UUID
|
56
51
|
|
57
|
-
|
58
|
-
- list[DockerNetworkItem]: 包含网络接口列表详情的 DockerNetworkItem 模型的列表。
|
52
|
+
:returns: 包含网络接口列表详情的 DockerNetworkItem 模型的列表
|
59
53
|
"""
|
60
54
|
result = send(
|
61
55
|
"GET",
|
@@ -71,14 +65,12 @@ class Image:
|
|
71
65
|
"""
|
72
66
|
新增一个镜像
|
73
67
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
- tag (str): 镜像版本。
|
68
|
+
:params daemonId: 节点的UUID
|
69
|
+
:params dockerFile: DockerFile Config 内容
|
70
|
+
:params name: 镜像名称
|
71
|
+
:params tag: 镜像版本
|
79
72
|
|
80
|
-
|
81
|
-
- bool: 新增镜像成功后返回True。
|
73
|
+
:returns: 操作成功后返回True
|
82
74
|
"""
|
83
75
|
return send(
|
84
76
|
"POST",
|
@@ -92,13 +84,15 @@ class Image:
|
|
92
84
|
"""
|
93
85
|
获取镜像构建进度
|
94
86
|
|
95
|
-
|
87
|
+
:params daemonId: 节点的UUID
|
96
88
|
|
97
|
-
|
98
|
-
- daemonId (str): 守护进程的唯一标识符。
|
89
|
+
:returns: {容器名称: 当前状态}
|
99
90
|
|
100
|
-
|
101
|
-
|
91
|
+
状态码对照:
|
92
|
+
```
|
93
|
+
-1: 镜像构建失败
|
94
|
+
1: 镜像构建中
|
95
|
+
2: 镜像构建完成
|
102
96
|
"""
|
103
97
|
return send(
|
104
98
|
"GET",
|