阶段性提交

This commit is contained in:
GoEdgeLab
2020-07-29 19:34:54 +08:00
parent b984b68089
commit 16d2dff57a
56 changed files with 5799 additions and 959 deletions

View File

@@ -0,0 +1,98 @@
package servers
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/configs/nodes"
"github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
)
type CreateAction struct {
actionutils.ParentAction
}
func (this *CreateAction) Init() {
this.Nav("", "", "create")
}
func (this *CreateAction) RunGet(params struct{}) {
// 所有集群
resp, err := this.RPC().NodeClusterRPC().FindAllEnabledClusters(this.AdminContext(), &pb.FindAllEnabledNodeClustersRequest{})
if err != nil {
this.ErrorPage(err)
}
if err != nil {
this.ErrorPage(err)
return
}
clusterMaps := []maps.Map{}
for _, cluster := range resp.Clusters {
clusterMaps = append(clusterMaps, maps.Map{
"id": cluster.Id,
"name": cluster.Name,
})
}
this.Data["clusters"] = clusterMaps
this.Show()
}
func (this *CreateAction) RunPost(params struct {
Name string
ClusterId int64
Must *actions.Must
}) {
params.Must.
Field("name", params.Name).
Require("请输入服务名称")
if params.ClusterId <= 0 {
this.Fail("请选择部署的集群")
}
// TODO 验证集群ID
// 配置
serverConfig := &nodes.ServerConfig{}
serverConfig.IsOn = true
serverConfig.Name = params.Name
serverConfigJSON, err := serverConfig.AsJSON()
if err != nil {
this.ErrorPage(err)
return
}
// 包含条件
includeNodes := []maps.Map{}
includeNodesJSON, err := json.Marshal(includeNodes)
if err != nil {
this.ErrorPage(err)
return
}
// 排除条件
excludeNodes := []maps.Map{}
excludeNodesJSON, err := json.Marshal(excludeNodes)
if err != nil {
this.ErrorPage(err)
return
}
_, err = this.RPC().ServerRPC().CreateServer(this.AdminContext(), &pb.CreateServerRequest{
UserId: 0,
AdminId: this.AdminId(),
ClusterId: params.ClusterId,
Config: serverConfigJSON,
IncludeNodesJSON: includeNodesJSON,
ExcludeNodesJSON: excludeNodesJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}

View File

@@ -1,6 +1,8 @@
package servers
import "github.com/iwind/TeaGo/actions"
import (
"github.com/iwind/TeaGo/actions"
)
type Helper struct {
}

View File

@@ -1,15 +1,60 @@
package servers
import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/configs/nodes"
"github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/iwind/TeaGo/maps"
)
type IndexAction struct {
actionutils.ParentAction
}
func (this *IndexAction) Init() {
this.Nav("", "", "")
this.Nav("", "", "index")
}
func (this *IndexAction) RunGet(params struct{}) {
countResp, err := this.RPC().ServerRPC().CountAllEnabledServers(this.AdminContext(), &pb.CountAllEnabledServersRequest{})
if err != nil {
this.ErrorPage(err)
return
}
count := countResp.Count
page := this.NewPage(count)
this.Data["page"] = page.AsHTML()
// 服务列表
serversResp, err := this.RPC().ServerRPC().ListEnabledServers(this.AdminContext(), &pb.ListEnabledServersRequest{
Offset: page.Offset,
Size: page.Size,
})
if err != nil {
this.ErrorPage(err)
return
}
serverMaps := []maps.Map{}
for _, server := range serversResp.Servers {
// 服务名
serverConfig := &nodes.ServerConfig{}
err = json.Unmarshal(server.Config, &serverConfig)
if err != nil {
this.ErrorPage(err)
return
}
serverMaps = append(serverMaps, maps.Map{
"id": server.Id,
"name": serverConfig.Name,
"cluster": maps.Map{
"id": server.Cluster.Id,
"name": server.Cluster.Name,
},
})
}
this.Data["servers"] = serverMaps
this.Show()
}

View File

@@ -12,6 +12,7 @@ func init() {
Helper(NewHelper()).
Prefix("/servers").
Get("", new(IndexAction)).
GetPost("/create", new(CreateAction)).
EndAll()
})
}