[用户平台][缓存]实现刷新和预热

This commit is contained in:
刘祥超
2020-12-23 21:24:48 +08:00
parent 803d0c6344
commit ed34a387c7
7 changed files with 56 additions and 5 deletions

View File

@@ -1064,6 +1064,17 @@ func (this *ServerDAO) UpdateUserServersClusterId(userId int64, clusterId int64)
return err return err
} }
// 查找用户的所有的服务
func (this *ServerDAO) FindAllEnabledServersWithUserId(userId int64) (result []*Server, err error) {
_, err = this.Query().
State(ServerStateEnabled).
Attr("userId", userId).
DescPk().
Slice(&result).
FindAll()
return
}
// 生成DNS Name // 生成DNS Name
func (this *ServerDAO) genDNSName() (string, error) { func (this *ServerDAO) genDNSName() (string, error) {
for { for {

View File

@@ -148,7 +148,7 @@ func (this *APINodeService) ListEnabledAPINodes(ctx context.Context, req *pb.Lis
// 根据ID查找节点 // 根据ID查找节点
func (this *APINodeService) FindEnabledAPINode(ctx context.Context, req *pb.FindEnabledAPINodeRequest) (*pb.FindEnabledAPINodeResponse, error) { func (this *APINodeService) FindEnabledAPINode(ctx context.Context, req *pb.FindEnabledAPINodeRequest) (*pb.FindEnabledAPINodeResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -119,7 +119,7 @@ func (this *HTTPCachePolicyService) ListEnabledHTTPCachePolicies(ctx context.Con
// 查找单个缓存策略配置 // 查找单个缓存策略配置
func (this *HTTPCachePolicyService) FindEnabledHTTPCachePolicyConfig(ctx context.Context, req *pb.FindEnabledHTTPCachePolicyConfigRequest) (*pb.FindEnabledHTTPCachePolicyConfigResponse, error) { func (this *HTTPCachePolicyService) FindEnabledHTTPCachePolicyConfig(ctx context.Context, req *pb.FindEnabledHTTPCachePolicyConfigRequest) (*pb.FindEnabledHTTPCachePolicyConfigResponse, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -276,11 +276,16 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
// 查找一个集群下的所有节点 // 查找一个集群下的所有节点
func (this *NodeService) FindAllEnabledNodesWithClusterId(ctx context.Context, req *pb.FindAllEnabledNodesWithClusterIdRequest) (*pb.FindAllEnabledNodesWithClusterIdResponse, error) { func (this *NodeService) FindAllEnabledNodesWithClusterId(ctx context.Context, req *pb.FindAllEnabledNodesWithClusterIdRequest) (*pb.FindAllEnabledNodesWithClusterIdResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if userId > 0 {
// TODO 检查权限
}
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(req.NodeClusterId) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@@ -64,11 +64,15 @@ func (this *NodeClusterService) DeleteNodeCluster(ctx context.Context, req *pb.D
// 查找单个集群 // 查找单个集群
func (this *NodeClusterService) FindEnabledNodeCluster(ctx context.Context, req *pb.FindEnabledNodeClusterRequest) (*pb.FindEnabledNodeClusterResponse, error) { func (this *NodeClusterService) FindEnabledNodeCluster(ctx context.Context, req *pb.FindEnabledNodeClusterRequest) (*pb.FindEnabledNodeClusterResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if userId > 0 {
// TODO 检查用户是否有权限
}
cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.NodeClusterId) cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@@ -191,7 +191,7 @@ func (this *NodeService) NodeStream(server pb.NodeService_NodeStreamServer) erro
// 向节点发送命令 // 向节点发送命令
func (this *NodeService) SendCommandToNode(ctx context.Context, req *pb.NodeStreamMessage) (*pb.NodeStreamMessage, error) { func (this *NodeService) SendCommandToNode(ctx context.Context, req *pb.NodeStreamMessage) (*pb.NodeStreamMessage, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -1080,3 +1080,34 @@ func (this *ServerService) CheckUserServer(ctx context.Context, req *pb.CheckUse
} }
return this.Success() return this.Success()
} }
// 查找一个用户下的所有域名列表
func (this *ServerService) FindAllEnabledServerNamesWithUserId(ctx context.Context, req *pb.FindAllEnabledServerNamesWithUserIdRequest) (*pb.FindAllEnabledServerNamesWithUserIdResponse, error) {
_, _, err := this.ValidateAdminAndUser(ctx, 0, req.UserId)
if err != nil {
return nil, err
}
servers, err := models.SharedServerDAO.FindAllEnabledServersWithUserId(req.UserId)
if err != nil {
return nil, err
}
serverNames := []string{}
for _, server := range servers {
if len(server.ServerNames) > 0 && server.ServerNames != "null" {
serverNameConfigs := []*serverconfigs.ServerNameConfig{}
err = json.Unmarshal([]byte(server.ServerNames), &serverNameConfigs)
if err != nil {
return nil, err
}
for _, config := range serverNameConfigs {
if len(config.SubNames) == 0 {
serverNames = append(serverNames, config.Name)
} else {
serverNames = append(serverNames, config.SubNames...)
}
}
}
}
return &pb.FindAllEnabledServerNamesWithUserIdResponse{ServerNames: serverNames}, nil
}