2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:47:20 +08:00

feat: 添加磁盘管理工具到工具箱 (#1195)

* Initial plan

* 实现磁盘管理工具的后端和前端基础功能

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* 完成磁盘管理工具功能实现并验证构建成功

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* 添加输入验证防止命令注入攻击

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* 移除命令注入验证并修复评审意见

Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>

* feat: merge main

* feat: merge main

* feat: 分区优化

* feat: fstab管理

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
Co-authored-by: 耗子 <haozi@loli.email>
This commit is contained in:
Copilot
2026-01-09 03:22:35 +08:00
committed by GitHub
parent 24312f5993
commit 54b3b60efd
10 changed files with 1748 additions and 20 deletions

View File

@@ -49,6 +49,7 @@ type Http struct {
toolboxSystem *service.ToolboxSystemService
toolboxBenchmark *service.ToolboxBenchmarkService
toolboxSSH *service.ToolboxSSHService
toolboxDisk *service.ToolboxDiskService
webhook *service.WebHookService
apps *apploader.Loader
}
@@ -87,6 +88,7 @@ func NewHttp(
toolboxSystem *service.ToolboxSystemService,
toolboxBenchmark *service.ToolboxBenchmarkService,
toolboxSSH *service.ToolboxSSHService,
toolboxDisk *service.ToolboxDiskService,
webhook *service.WebHookService,
apps *apploader.Loader,
) *Http {
@@ -124,6 +126,7 @@ func NewHttp(
toolboxSystem: toolboxSystem,
toolboxBenchmark: toolboxBenchmark,
toolboxSSH: toolboxSSH,
toolboxDisk: toolboxDisk,
webhook: webhook,
apps: apps,
}
@@ -463,6 +466,25 @@ func (route *Http) Register(r *chi.Mux) {
r.Post("/root_key", route.toolboxSSH.GenerateRootKey)
})
r.Route("/toolbox_disk", func(r chi.Router) {
r.Get("/list", route.toolboxDisk.List)
r.Post("/partitions", route.toolboxDisk.GetPartitions)
r.Post("/mount", route.toolboxDisk.Mount)
r.Post("/umount", route.toolboxDisk.Umount)
r.Post("/format", route.toolboxDisk.Format)
r.Post("/init", route.toolboxDisk.Init)
r.Get("/fstab", route.toolboxDisk.GetFstab)
r.Delete("/fstab", route.toolboxDisk.DeleteFstab)
r.Get("/lvm", route.toolboxDisk.GetLVMInfo)
r.Post("/lvm/pv", route.toolboxDisk.CreatePV)
r.Delete("/lvm/pv", route.toolboxDisk.RemovePV)
r.Post("/lvm/vg", route.toolboxDisk.CreateVG)
r.Delete("/lvm/vg", route.toolboxDisk.RemoveVG)
r.Post("/lvm/lv", route.toolboxDisk.CreateLV)
r.Delete("/lvm/lv", route.toolboxDisk.RemoveLV)
r.Post("/lvm/lv/extend", route.toolboxDisk.ExtendLV)
})
r.Route("/webhook", func(r chi.Router) {
r.Get("/", route.webhook.List)
r.Post("/", route.webhook.Create)