mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-14 08:20:25 +08:00
可以修改服务的DNS设置
This commit is contained in:
@@ -848,6 +848,35 @@ func (this *ServerDAO) FindAllServersToFixWithDNSDomainId(dnsDomainId int64) (re
|
||||
return
|
||||
}
|
||||
|
||||
// 获取某个集群下的服务DNS信息
|
||||
func (this *ServerDAO) FindAllServersDNSWithClusterId(clusterId int64) (result []*Server, err error) {
|
||||
_, err = this.Query().
|
||||
State(ServerStateEnabled).
|
||||
Attr("isOn", true).
|
||||
Attr("clusterId", clusterId).
|
||||
Result("id", "name", "dnsName").
|
||||
DescPk().
|
||||
Slice(&result).
|
||||
FindAll()
|
||||
return
|
||||
}
|
||||
|
||||
// 重新生成子域名
|
||||
func (this *ServerDAO) GenerateServerDNSName(serverId int64) (string, error) {
|
||||
if serverId <= 0 {
|
||||
return "", errors.New("invalid serverId")
|
||||
}
|
||||
dnsName, err := this.genDNSName()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
op := NewServerOperator()
|
||||
op.Id = serverId
|
||||
op.DnsName = dnsName
|
||||
_, err = this.Save(op)
|
||||
return dnsName, err
|
||||
}
|
||||
|
||||
// 创建事件
|
||||
func (this *ServerDAO) createEvent() error {
|
||||
return SharedSysEventDAO.CreateEvent(NewServerChangeEvent())
|
||||
|
||||
@@ -856,3 +856,37 @@ func (this *ServerService) NotifyServersChange(ctx context.Context, req *pb.Noti
|
||||
|
||||
return &pb.NotifyServersChangeResponse{}, nil
|
||||
}
|
||||
|
||||
// 取得某个集群下的所有服务相关的DNS
|
||||
func (this *ServerService) FindAllEnabledServersDNSWithClusterId(ctx context.Context, req *pb.FindAllEnabledServersDNSWithClusterIdRequest) (*pb.FindAllEnabledServersDNSWithClusterIdResponse, error) {
|
||||
// 校验请求
|
||||
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
servers, err := models.SharedServerDAO.FindAllServersDNSWithClusterId(req.ClusterId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := []*pb.ServerDNSInfo{}
|
||||
for _, server := range servers {
|
||||
// 如果子域名为空
|
||||
if len(server.DnsName) == 0 {
|
||||
// 自动生成子域名
|
||||
dnsName, err := models.SharedServerDAO.GenerateServerDNSName(int64(server.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
server.DnsName = dnsName
|
||||
}
|
||||
|
||||
result = append(result, &pb.ServerDNSInfo{
|
||||
Id: int64(server.Id),
|
||||
Name: server.Name,
|
||||
DnsName: server.DnsName,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.FindAllEnabledServersDNSWithClusterIdResponse{Servers: result}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user