mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 15:00:27 +08:00
91 lines
2.4 KiB
Go
91 lines
2.4 KiB
Go
// 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) {
|
|
_, err := this.ValidateAdmin(ctx)
|
|
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) {
|
|
_, err := this.ValidateAdmin(ctx)
|
|
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),
|
|
IsOn: log.IsOn,
|
|
IsUp: log.IsUp,
|
|
CanAccess: log.CanAccess,
|
|
BackupIP: log.BackupIP,
|
|
NodeIPAddress: pbAddr,
|
|
Admin: pbAdmin,
|
|
})
|
|
}
|
|
return &pb.ListNodeIPAddressLogsResponse{NodeIPAddressLogs: pbLogs}, nil
|
|
}
|