阶段性提交

This commit is contained in:
刘祥超
2020-09-16 09:09:10 +08:00
parent eadf69b147
commit 5b35be650b
44 changed files with 959 additions and 279 deletions

View File

@@ -29,61 +29,60 @@ func (this *IndexAction) RunGet(params struct {
this.Data["serverType"] = server.Type
this.Data["reverseProxyId"] = server.ReverseProxyId
if server.ReverseProxyId <= 0 {
// TODO 应该在界面上提示用户开启
this.ErrorPage(errors.New("reverse proxy should not be nil"))
return
}
reverseProxyResp, err := this.RPC().ReverseProxyRPC().FindEnabledReverseProxy(this.AdminContext(), &pb.FindEnabledReverseProxyRequest{ReverseProxyId: server.ReverseProxyId})
if err != nil {
this.ErrorPage(err)
return
}
reverseProxy := reverseProxyResp.ReverseProxy
if reverseProxy == nil {
// TODO 应该在界面上提示用户开启
this.ErrorPage(errors.New("reverse proxy should not be nil"))
return
}
primaryOrigins := []*serverconfigs.OriginServerConfig{}
backupOrigins := []*serverconfigs.OriginServerConfig{}
if len(reverseProxy.PrimaryOriginsJSON) > 0 {
err = json.Unmarshal(reverseProxy.PrimaryOriginsJSON, &primaryOrigins)
isOn := false
if server.ReverseProxyId > 0 {
reverseProxyResp, err := this.RPC().ReverseProxyRPC().FindEnabledReverseProxy(this.AdminContext(), &pb.FindEnabledReverseProxyRequest{ReverseProxyId: server.ReverseProxyId})
if err != nil {
this.ErrorPage(err)
return
}
}
if len(reverseProxy.BackupOriginsJSON) > 0 {
err = json.Unmarshal(reverseProxy.BackupOriginsJSON, &backupOrigins)
if err != nil {
this.ErrorPage(err)
reverseProxy := reverseProxyResp.ReverseProxy
if reverseProxy == nil {
// TODO 应该在界面上提示用户开启
this.ErrorPage(errors.New("reverse proxy should not be nil"))
return
}
}
isOn = true
primaryOriginMaps := []maps.Map{}
backupOriginMaps := []maps.Map{}
for _, originConfig := range primaryOrigins {
m := maps.Map{
"id": originConfig.Id,
"weight": originConfig.Weight,
"addr": originConfig.Addr.Protocol.String() + "://" + originConfig.Addr.Host + ":" + originConfig.Addr.PortRange,
primaryOrigins := []*serverconfigs.OriginServerConfig{}
backupOrigins := []*serverconfigs.OriginServerConfig{}
if len(reverseProxy.PrimaryOriginsJSON) > 0 {
err = json.Unmarshal(reverseProxy.PrimaryOriginsJSON, &primaryOrigins)
if err != nil {
this.ErrorPage(err)
return
}
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
for _, originConfig := range backupOrigins {
m := maps.Map{
"id": originConfig.Id,
"weight": originConfig.Weight,
"addr": originConfig.Addr.Protocol.String() + "://" + originConfig.Addr.Host + ":" + originConfig.Addr.PortRange,
if len(reverseProxy.BackupOriginsJSON) > 0 {
err = json.Unmarshal(reverseProxy.BackupOriginsJSON, &backupOrigins)
if err != nil {
this.ErrorPage(err)
return
}
}
backupOriginMaps = append(backupOriginMaps, m)
primaryOriginMaps := []maps.Map{}
backupOriginMaps := []maps.Map{}
for _, originConfig := range primaryOrigins {
m := maps.Map{
"id": originConfig.Id,
"weight": originConfig.Weight,
"addr": originConfig.Addr.Protocol.String() + "://" + originConfig.Addr.Host + ":" + originConfig.Addr.PortRange,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
for _, originConfig := range backupOrigins {
m := maps.Map{
"id": originConfig.Id,
"weight": originConfig.Weight,
"addr": originConfig.Addr.Protocol.String() + "://" + originConfig.Addr.Host + ":" + originConfig.Addr.PortRange,
}
backupOriginMaps = append(backupOriginMaps, m)
}
this.Data["primaryOrigins"] = primaryOriginMaps
this.Data["backupOrigins"] = backupOriginMaps
}
this.Data["primaryOrigins"] = primaryOriginMaps
this.Data["backupOrigins"] = backupOriginMaps
this.Data["isOn"] = isOn
this.Show()
}

View File

@@ -17,6 +17,7 @@ func init() {
Get("", new(IndexAction)).
GetPost("/scheduling", new(SchedulingAction)).
GetPost("/updateSchedulingPopup", new(UpdateSchedulingPopupAction)).
Post("/updateOn", new(UpdateOnAction)).
EndAll()
})
}

View File

@@ -0,0 +1,55 @@
package reverseProxy
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
type UpdateOnAction struct {
actionutils.ParentAction
}
func (this *UpdateOnAction) RunPost(params struct {
ServerId int64
ReverseProxyId int64
IsOn bool
}) {
// 如果没有配置过,则配置
if params.ReverseProxyId <= 0 {
if !params.IsOn {
this.Success()
}
resp, err := this.RPC().ReverseProxyRPC().CreateReverseProxy(this.AdminContext(), &pb.CreateReverseProxyRequest{
SchedulingJSON: nil,
PrimaryOriginsJSON: nil,
BackupOriginsJSON: nil,
})
if err != nil {
this.ErrorPage(err)
return
}
reverseProxyId := resp.ReverseProxyId
_, err = this.RPC().ServerRPC().UpdateServerReverseProxy(this.AdminContext(), &pb.UpdateServerReverseProxyRequest{
ServerId: params.ServerId,
ReverseProxyId: reverseProxyId,
})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}
// 如果已经配置过
_, err := this.RPC().ReverseProxyRPC().UpdateReverseProxyIsOn(this.AdminContext(), &pb.UpdateReverseProxyIsOnRequest{
ReverseProxyId: params.ReverseProxyId,
IsOn: params.IsOn,
})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}