Files
EdgeAPI/internal/rpc/services/service_node_ip_address_log.go

91 lines
2.4 KiB
Go
Raw Normal View History

2021-08-31 17:24:52 +08:00
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
// NodeIPAddressLogService IP地址相关日志
type NodeIPAddressLogService struct {
BaseService
}
// CountAllNodeIPAddressLogs 计算日志数量
func (this *NodeIPAddressLogService) CountAllNodeIPAddressLogs(ctx context.Context, req *pb.CountAllNodeIPAddressLogsRequest) (*pb.RPCCountResponse, error) {
2022-07-22 14:35:17 +08:00
_, err := this.ValidateAdmin(ctx)
2021-08-31 17:24:52 +08:00
if err != nil {
return nil, err
}
var tx = this.NullTx()
count, err := models.SharedNodeIPAddressLogDAO.CountLogs(tx, req.NodeIPAddressId)
if err != nil {
return nil, err
}
return this.SuccessCount(count)
}
// ListNodeIPAddressLogs 列出单页日志
func (this *NodeIPAddressLogService) ListNodeIPAddressLogs(ctx context.Context, req *pb.ListNodeIPAddressLogsRequest) (*pb.ListNodeIPAddressLogsResponse, error) {
2022-07-22 14:35:17 +08:00
_, err := this.ValidateAdmin(ctx)
2021-08-31 17:24:52 +08:00
if err != nil {
return nil, err
}
var tx = this.NullTx()
logs, err := models.SharedNodeIPAddressLogDAO.ListLogs(tx, req.NodeIPAddressId, req.Offset, req.Size)
if err != nil {
return nil, err
}
var pbLogs = []*pb.NodeIPAddressLog{}
for _, log := range logs {
var pbAddr *pb.NodeIPAddress
addr, err := models.SharedNodeIPAddressDAO.FindEnabledAddress(tx, int64(log.AddressId))
if err != nil {
return nil, err
}
if addr != nil {
pbAddr = &pb.NodeIPAddress{
Id: int64(addr.Id),
NodeId: int64(addr.NodeId),
Name: addr.Name,
Ip: addr.Ip,
Description: addr.Description,
Role: addr.Role,
}
}
var pbAdmin *pb.Admin
if log.AdminId > 0 {
admin, err := models.SharedAdminDAO.FindEnabledAdmin(tx, int64(log.AdminId))
if err != nil {
return nil, err
}
if admin != nil {
pbAdmin = &pb.Admin{
Id: int64(admin.Id),
Fullname: admin.Fullname,
Username: admin.Username,
}
}
}
pbLogs = append(pbLogs, &pb.NodeIPAddressLog{
Id: int64(log.Id),
Description: log.Description,
CreatedAt: int64(log.CreatedAt),
2022-03-22 21:45:07 +08:00
IsOn: log.IsOn,
2022-03-22 22:11:32 +08:00
IsUp: log.IsUp,
CanAccess: log.CanAccess,
2021-09-13 10:51:05 +08:00
BackupIP: log.BackupIP,
2021-08-31 17:24:52 +08:00
NodeIPAddress: pbAddr,
Admin: pbAdmin,
})
}
return &pb.ListNodeIPAddressLogsResponse{NodeIPAddressLogs: pbLogs}, nil
}