@@ -5,21 +5,27 @@ import (
55
66 "github.com/1Panel-dev/1Panel/agent/app/model"
77 "github.com/1Panel-dev/1Panel/agent/global"
8+ "gorm.io/gorm"
89)
910
1011type MonitorRepo struct {}
1112
1213type IMonitorRepo interface {
1314 GetBase (opts ... DBOption ) ([]model.MonitorBase , error )
15+ GetGPU (opts ... DBOption ) ([]model.MonitorGPU , error )
1416 GetIO (opts ... DBOption ) ([]model.MonitorIO , error )
1517 GetNetwork (opts ... DBOption ) ([]model.MonitorNetwork , error )
1618
1719 CreateMonitorBase (model model.MonitorBase ) error
20+ BatchCreateMonitorGPU (list []model.MonitorGPU ) error
1821 BatchCreateMonitorIO (ioList []model.MonitorIO ) error
1922 BatchCreateMonitorNet (ioList []model.MonitorNetwork ) error
2023 DelMonitorBase (timeForDelete time.Time ) error
24+ DelMonitorGPU (timeForDelete time.Time ) error
2125 DelMonitorIO (timeForDelete time.Time ) error
2226 DelMonitorNet (timeForDelete time.Time ) error
27+
28+ WithByProductName (name string ) DBOption
2329}
2430
2531func NewIMonitorRepo () IMonitorRepo {
@@ -53,10 +59,22 @@ func (u *MonitorRepo) GetNetwork(opts ...DBOption) ([]model.MonitorNetwork, erro
5359 err := db .Find (& data ).Error
5460 return data , err
5561}
62+ func (u * MonitorRepo ) GetGPU (opts ... DBOption ) ([]model.MonitorGPU , error ) {
63+ var data []model.MonitorGPU
64+ db := global .GPUMonitorDB
65+ for _ , opt := range opts {
66+ db = opt (db )
67+ }
68+ err := db .Find (& data ).Error
69+ return data , err
70+ }
5671
5772func (u * MonitorRepo ) CreateMonitorBase (model model.MonitorBase ) error {
5873 return global .MonitorDB .Create (& model ).Error
5974}
75+ func (s * MonitorRepo ) BatchCreateMonitorGPU (list []model.MonitorGPU ) error {
76+ return global .GPUMonitorDB .CreateInBatches (& list , len (list )).Error
77+ }
6078func (u * MonitorRepo ) BatchCreateMonitorIO (ioList []model.MonitorIO ) error {
6179 return global .MonitorDB .CreateInBatches (ioList , len (ioList )).Error
6280}
@@ -72,3 +90,12 @@ func (u *MonitorRepo) DelMonitorIO(timeForDelete time.Time) error {
7290func (u * MonitorRepo ) DelMonitorNet (timeForDelete time.Time ) error {
7391 return global .MonitorDB .Where ("created_at < ?" , timeForDelete ).Delete (& model.MonitorNetwork {}).Error
7492}
93+ func (s * MonitorRepo ) DelMonitorGPU (timeForDelete time.Time ) error {
94+ return global .GPUMonitorDB .Where ("created_at < ?" , timeForDelete ).Delete (& model.MonitorGPU {}).Error
95+ }
96+
97+ func (s * MonitorRepo ) WithByProductName (name string ) DBOption {
98+ return func (g * gorm.DB ) * gorm.DB {
99+ return g .Where ("product_name = ?" , name )
100+ }
101+ }
0 commit comments