@@ -4544,3 +4544,88 @@ func (s *MethodTestSuite) TestOAuth2ProviderAppTokens() {
4544
4544
}).Asserts (rbac .ResourceOauth2AppCodeToken .WithOwner (user .ID .String ()), policy .ActionDelete )
4545
4545
}))
4546
4546
}
4547
+
4548
+ func (s * MethodTestSuite ) TestResourcesMonitor () {
4549
+ s .Run ("FetchMemoryResourceMonitor" , s .Subtest (func (db database.Store , check * expects ) {
4550
+ u := dbgen .User (s .T (), db , database.User {})
4551
+ o := dbgen .Organization (s .T (), db , database.Organization {})
4552
+ tpl := dbgen .Template (s .T (), db , database.Template {
4553
+ OrganizationID : o .ID ,
4554
+ CreatedBy : u .ID ,
4555
+ })
4556
+ tv := dbgen .TemplateVersion (s .T (), db , database.TemplateVersion {
4557
+ TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true },
4558
+ OrganizationID : o .ID ,
4559
+ CreatedBy : u .ID ,
4560
+ })
4561
+ w := dbgen .Workspace (s .T (), db , database.WorkspaceTable {
4562
+ TemplateID : tpl .ID ,
4563
+ OrganizationID : o .ID ,
4564
+ OwnerID : u .ID ,
4565
+ })
4566
+ j := dbgen .ProvisionerJob (s .T (), db , nil , database.ProvisionerJob {
4567
+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
4568
+ })
4569
+ b := dbgen .WorkspaceBuild (s .T (), db , database.WorkspaceBuild {
4570
+ JobID : j .ID ,
4571
+ WorkspaceID : w .ID ,
4572
+ TemplateVersionID : tv .ID ,
4573
+ })
4574
+ res := dbgen .WorkspaceResource (s .T (), db , database.WorkspaceResource {JobID : b .JobID })
4575
+ agt := dbgen .WorkspaceAgent (s .T (), db , database.WorkspaceAgent {ResourceID : res .ID })
4576
+ _ , err := db .InsertMemoryResourceMonitor (context .Background (), database.InsertMemoryResourceMonitorParams {
4577
+ AgentID : agt .ID ,
4578
+ Enabled : true ,
4579
+ Threshold : 80 ,
4580
+ CreatedAt : dbtime .Now (),
4581
+ })
4582
+ require .NoError (s .T (), err )
4583
+
4584
+ monitor , err := db .FetchMemoryResourceMonitorsByAgentID (context .Background (), agt .ID )
4585
+ require .NoError (s .T (), err )
4586
+
4587
+ check .Args (agt .ID ).Asserts (rbac .ResourceSystem , policy .ActionRead ).Returns (monitor )
4588
+ }))
4589
+
4590
+ s .Run ("FetchVolumeResourceMonitor" , s .Subtest (func (db database.Store , check * expects ) {
4591
+ u := dbgen .User (s .T (), db , database.User {})
4592
+ o := dbgen .Organization (s .T (), db , database.Organization {})
4593
+ tpl := dbgen .Template (s .T (), db , database.Template {
4594
+ OrganizationID : o .ID ,
4595
+ CreatedBy : u .ID ,
4596
+ })
4597
+ tv := dbgen .TemplateVersion (s .T (), db , database.TemplateVersion {
4598
+ TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true },
4599
+ OrganizationID : o .ID ,
4600
+ CreatedBy : u .ID ,
4601
+ })
4602
+ w := dbgen .Workspace (s .T (), db , database.WorkspaceTable {
4603
+ TemplateID : tpl .ID ,
4604
+ OrganizationID : o .ID ,
4605
+ OwnerID : u .ID ,
4606
+ })
4607
+ j := dbgen .ProvisionerJob (s .T (), db , nil , database.ProvisionerJob {
4608
+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
4609
+ })
4610
+ b := dbgen .WorkspaceBuild (s .T (), db , database.WorkspaceBuild {
4611
+ JobID : j .ID ,
4612
+ WorkspaceID : w .ID ,
4613
+ TemplateVersionID : tv .ID ,
4614
+ })
4615
+ res := dbgen .WorkspaceResource (s .T (), db , database.WorkspaceResource {JobID : b .JobID })
4616
+ agt := dbgen .WorkspaceAgent (s .T (), db , database.WorkspaceAgent {ResourceID : res .ID })
4617
+ _ , err := db .InsertVolumeResourceMonitor (context .Background (), database.InsertVolumeResourceMonitorParams {
4618
+ AgentID : agt .ID ,
4619
+ Path : "/volume" ,
4620
+ Enabled : true ,
4621
+ Threshold : 80 ,
4622
+ CreatedAt : dbtime .Now (),
4623
+ })
4624
+ require .NoError (s .T (), err )
4625
+
4626
+ monitors , err := db .FetchVolumesResourceMonitorsByAgentID (context .Background (), agt .ID )
4627
+ require .NoError (s .T (), err )
4628
+
4629
+ check .Args (agt .ID ).Asserts (rbac .ResourceSystem , policy .ActionRead ).Returns (monitor )
4630
+ }))
4631
+ }
0 commit comments