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