可以修改服务的DNS设置

This commit is contained in:
刘祥超
2020-11-14 11:05:43 +08:00
parent 97f94afc3b
commit 9f67a584b4
2 changed files with 63 additions and 0 deletions

View File

@@ -848,6 +848,35 @@ func (this *ServerDAO) FindAllServersToFixWithDNSDomainId(dnsDomainId int64) (re
return 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 { func (this *ServerDAO) createEvent() error {
return SharedSysEventDAO.CreateEvent(NewServerChangeEvent()) return SharedSysEventDAO.CreateEvent(NewServerChangeEvent())

View File

@@ -856,3 +856,37 @@ func (this *ServerService) NotifyServersChange(ctx context.Context, req *pb.Noti
return &pb.NotifyServersChangeResponse{}, nil 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
}