修改用户所属集群的时候同时修改其下的所有服务所属集群

This commit is contained in:
GoEdgeLab
2020-12-23 19:44:50 +08:00
parent 4f19c11d22
commit abc523fa1a
5 changed files with 58 additions and 7 deletions

View File

@@ -148,6 +148,7 @@ func (this *NodeDAO) IncreaseAllNodesLatestVersionMatch(clusterId int64) error {
Attr("clusterId", clusterId).
Set("latestVersion", dbs.SQL("latestVersion+1")).
Update()
return err
}

View File

@@ -1055,6 +1055,15 @@ func (this *ServerDAO) CheckUserServer(serverId int64, userId int64) error {
return nil
}
// 设置一个用户下的所有服务的所属集群
func (this *ServerDAO) UpdateUserServersClusterId(userId int64, clusterId int64) error {
_, err := this.Query().
Attr("userId", userId).
Set("clusterId", clusterId).
Update()
return err
}
// 生成DNS Name
func (this *ServerDAO) genDNSName() (string, error) {
for {

View File

@@ -1142,13 +1142,14 @@ func (this *NodeService) FindEnabledNodeDNS(ctx context.Context, req *pb.FindEna
return &pb.FindEnabledNodeDNSResponse{
Node: &pb.NodeDNSInfo{
Id: int64(node.Id),
Name: node.Name,
IpAddr: ipAddr,
Routes: pbRoutes,
NodeClusterId: clusterId,
DnsDomainId: dnsDomainId,
DnsDomainName: dnsDomainName,
Id: int64(node.Id),
Name: node.Name,
IpAddr: ipAddr,
Routes: pbRoutes,
NodeClusterId: clusterId,
NodeClusterDNSName: clusterDNS.DnsName,
DnsDomainId: dnsDomainId,
DnsDomainName: dnsDomainName,
},
}, nil
}

View File

@@ -645,6 +645,22 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
}
}
// 用户信息
var pbUser *pb.User = nil
if server.UserId > 0 {
user, err := models.SharedUserDAO.FindEnabledBasicUser(int64(server.UserId))
if err != nil {
return nil, err
}
if user != nil {
pbUser = &pb.User{
Id: int64(user.Id),
Username: user.Username,
Fullname: user.Fullname,
}
}
}
return &pb.FindEnabledServerResponse{Server: &pb.Server{
Id: int64(server.Id),
IsOn: server.IsOn == 1,
@@ -671,6 +687,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
Name: clusterName,
},
Groups: pbGroups,
User: pbUser,
}}, nil
}

View File

@@ -37,10 +37,33 @@ func (this *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserReque
return nil, err
}
oldClusterId, err := models.SharedUserDAO.FindUserClusterId(req.UserId)
if err != nil {
return nil, err
}
err = models.SharedUserDAO.UpdateUser(req.UserId, req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.IsOn, req.NodeClusterId)
if err != nil {
return nil, err
}
if oldClusterId != req.NodeClusterId {
err = models.SharedServerDAO.UpdateUserServersClusterId(req.UserId, req.NodeClusterId)
if err != nil {
return nil, err
}
err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(oldClusterId)
if err != nil {
return nil, err
}
err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil {
return nil, err
}
}
return this.Success()
}