@@ -4573,4 +4573,85 @@ func (s *MethodTestSuite) TestResourcesMonitor() {
4573
4573
dbtestutil .DisableForeignKeysAndTriggers (s .T (), db )
4574
4574
check .Args (database.InsertVolumeResourceMonitorParams {}).Asserts (rbac .ResourceSystem , policy .ActionCreate )
4575
4575
}))
4576
+
4577
+ s .Run ("FetchMemoryResourceMonitorsByAgentID" , s .Subtest (func (db database.Store , check * expects ) {
4578
+ u := dbgen .User (s .T (), db , database.User {})
4579
+ o := dbgen .Organization (s .T (), db , database.Organization {})
4580
+ tpl := dbgen .Template (s .T (), db , database.Template {
4581
+ OrganizationID : o .ID ,
4582
+ CreatedBy : u .ID ,
4583
+ })
4584
+ tv := dbgen .TemplateVersion (s .T (), db , database.TemplateVersion {
4585
+ TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true },
4586
+ OrganizationID : o .ID ,
4587
+ CreatedBy : u .ID ,
4588
+ })
4589
+ w := dbgen .Workspace (s .T (), db , database.WorkspaceTable {
4590
+ TemplateID : tpl .ID ,
4591
+ OrganizationID : o .ID ,
4592
+ OwnerID : u .ID ,
4593
+ })
4594
+ j := dbgen .ProvisionerJob (s .T (), db , nil , database.ProvisionerJob {
4595
+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
4596
+ })
4597
+ b := dbgen .WorkspaceBuild (s .T (), db , database.WorkspaceBuild {
4598
+ JobID : j .ID ,
4599
+ WorkspaceID : w .ID ,
4600
+ TemplateVersionID : tv .ID ,
4601
+ })
4602
+ res := dbgen .WorkspaceResource (s .T (), db , database.WorkspaceResource {JobID : b .JobID })
4603
+ agt := dbgen .WorkspaceAgent (s .T (), db , database.WorkspaceAgent {ResourceID : res .ID })
4604
+ dbgen .WorkspaceAgentMemoryResourceMonitor (s .T (), db , database.WorkspaceAgentMemoryResourceMonitor {
4605
+ AgentID : agt .ID ,
4606
+ Enabled : true ,
4607
+ Threshold : 80 ,
4608
+ CreatedAt : dbtime .Now (),
4609
+ })
4610
+
4611
+ monitor , err := db .FetchMemoryResourceMonitorsByAgentID (context .Background (), agt .ID )
4612
+ require .NoError (s .T (), err )
4613
+
4614
+ check .Args (agt .ID ).Asserts ().Returns (monitor )
4615
+ }))
4616
+
4617
+ s .Run ("FetchVolumesResourceMonitorsByAgentID" , s .Subtest (func (db database.Store , check * expects ) {
4618
+ u := dbgen .User (s .T (), db , database.User {})
4619
+ o := dbgen .Organization (s .T (), db , database.Organization {})
4620
+ tpl := dbgen .Template (s .T (), db , database.Template {
4621
+ OrganizationID : o .ID ,
4622
+ CreatedBy : u .ID ,
4623
+ })
4624
+ tv := dbgen .TemplateVersion (s .T (), db , database.TemplateVersion {
4625
+ TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true },
4626
+ OrganizationID : o .ID ,
4627
+ CreatedBy : u .ID ,
4628
+ })
4629
+ w := dbgen .Workspace (s .T (), db , database.WorkspaceTable {
4630
+ TemplateID : tpl .ID ,
4631
+ OrganizationID : o .ID ,
4632
+ OwnerID : u .ID ,
4633
+ })
4634
+ j := dbgen .ProvisionerJob (s .T (), db , nil , database.ProvisionerJob {
4635
+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
4636
+ })
4637
+ b := dbgen .WorkspaceBuild (s .T (), db , database.WorkspaceBuild {
4638
+ JobID : j .ID ,
4639
+ WorkspaceID : w .ID ,
4640
+ TemplateVersionID : tv .ID ,
4641
+ })
4642
+ res := dbgen .WorkspaceResource (s .T (), db , database.WorkspaceResource {JobID : b .JobID })
4643
+ agt := dbgen .WorkspaceAgent (s .T (), db , database.WorkspaceAgent {ResourceID : res .ID })
4644
+ dbgen .WorkspaceAgentVolumeResourceMonitor (s .T (), db , database.WorkspaceAgentVolumeResourceMonitor {
4645
+ AgentID : agt .ID ,
4646
+ Path : "/var/lib" ,
4647
+ Enabled : true ,
4648
+ Threshold : 80 ,
4649
+ CreatedAt : dbtime .Now (),
4650
+ })
4651
+
4652
+ monitors , err := db .FetchVolumesResourceMonitorsByAgentID (context .Background (), agt .ID )
4653
+ require .NoError (s .T (), err )
4654
+
4655
+ check .Args (agt .ID ).Asserts ().Returns (monitors )
4656
+ }))
4576
4657
}
0 commit comments