mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2026-01-03 01:26:35 +08:00
阶段性提交
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ func init() {
|
||||
Get("", new(IndexAction)).
|
||||
GetPost("/scheduling", new(SchedulingAction)).
|
||||
GetPost("/updateSchedulingPopup", new(UpdateSchedulingPopupAction)).
|
||||
Post("/updateOn", new(UpdateOnAction)).
|
||||
EndAll()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
Reference in New Issue
Block a user