Skip to content

Commit daa3c26

Browse files
committed
improve testing
1 parent b93d3a1 commit daa3c26

File tree

4 files changed

+72
-5
lines changed

4 files changed

+72
-5
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,6 +1392,10 @@ func (q *querier) FavoriteWorkspace(ctx context.Context, id uuid.UUID) error {
13921392
}
13931393

13941394
func (q *querier) FetchMemoryResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) (database.WorkspaceAgentMemoryResourceMonitor, error) {
1395+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceWorkspaceAgentMemoryResourceMonitor); err != nil {
1396+
return database.WorkspaceAgentMemoryResourceMonitor{}, err
1397+
}
1398+
13951399
return q.db.FetchMemoryResourceMonitorsByAgentID(ctx, agentID)
13961400
}
13971401

@@ -1403,6 +1407,10 @@ func (q *querier) FetchNewMessageMetadata(ctx context.Context, arg database.Fetc
14031407
}
14041408

14051409
func (q *querier) FetchVolumesResourceMonitorsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceAgentVolumeResourceMonitor, error) {
1410+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceWorkspaceAgentVolumeResourceMonitor); err != nil {
1411+
return nil, err
1412+
}
1413+
14061414
return q.db.FetchVolumesResourceMonitorsByAgentID(ctx, agentID)
14071415
}
14081416

@@ -2998,6 +3006,10 @@ func (q *querier) InsertLicense(ctx context.Context, arg database.InsertLicenseP
29983006
}
29993007

30003008
func (q *querier) InsertMemoryResourceMonitor(ctx context.Context, arg database.InsertMemoryResourceMonitorParams) (database.WorkspaceAgentMemoryResourceMonitor, error) {
3009+
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceWorkspaceAgentMemoryResourceMonitor); err != nil {
3010+
return database.WorkspaceAgentMemoryResourceMonitor{}, err
3011+
}
3012+
30013013
return q.db.InsertMemoryResourceMonitor(ctx, arg)
30023014
}
30033015

@@ -3187,6 +3199,10 @@ func (q *querier) InsertUserLink(ctx context.Context, arg database.InsertUserLin
31873199
}
31883200

31893201
func (q *querier) InsertVolumeResourceMonitor(ctx context.Context, arg database.InsertVolumeResourceMonitorParams) (database.WorkspaceAgentVolumeResourceMonitor, error) {
3202+
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceWorkspaceAgentVolumeResourceMonitor); err != nil {
3203+
return database.WorkspaceAgentVolumeResourceMonitor{}, err
3204+
}
3205+
31903206
return q.db.InsertVolumeResourceMonitor(ctx, arg)
31913207
}
31923208

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4573,13 +4573,12 @@ func (s *MethodTestSuite) TestResourcesMonitor() {
45734573
})
45744574
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
45754575
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
4576-
_, err := db.InsertMemoryResourceMonitor(context.Background(), database.InsertMemoryResourceMonitorParams{
4576+
dbgen.WorkspaceAgentMemoryResourceMonitor(s.T(), db, database.WorkspaceAgentMemoryResourceMonitor{
45774577
AgentID: agt.ID,
45784578
Enabled: true,
45794579
Threshold: 80,
45804580
CreatedAt: dbtime.Now(),
45814581
})
4582-
require.NoError(s.T(), err)
45834582

45844583
monitor, err := db.FetchMemoryResourceMonitorsByAgentID(context.Background(), agt.ID)
45854584
require.NoError(s.T(), err)
@@ -4614,14 +4613,13 @@ func (s *MethodTestSuite) TestResourcesMonitor() {
46144613
})
46154614
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
46164615
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
4617-
_, err := db.InsertVolumeResourceMonitor(context.Background(), database.InsertVolumeResourceMonitorParams{
4616+
dbgen.WorkspaceAgentVolumeResourceMonitor(s.T(), db, database.WorkspaceAgentVolumeResourceMonitor{
46184617
AgentID: agt.ID,
4619-
Path: "/volume",
4618+
Path: "/var/lib",
46204619
Enabled: true,
46214620
Threshold: 80,
46224621
CreatedAt: dbtime.Now(),
46234622
})
4624-
require.NoError(s.T(), err)
46254623

46264624
monitors, err := db.FetchVolumesResourceMonitorsByAgentID(context.Background(), agt.ID)
46274625
require.NoError(s.T(), err)

coderd/database/dbgen/dbgen.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,6 +1032,29 @@ func OAuth2ProviderAppToken(t testing.TB, db database.Store, seed database.OAuth
10321032
return token
10331033
}
10341034

1035+
func WorkspaceAgentMemoryResourceMonitor(t testing.TB, db database.Store, seed database.WorkspaceAgentMemoryResourceMonitor) database.WorkspaceAgentMemoryResourceMonitor {
1036+
monitor, err := db.InsertMemoryResourceMonitor(genCtx, database.InsertMemoryResourceMonitorParams{
1037+
AgentID: takeFirst(seed.AgentID, uuid.New()),
1038+
Enabled: takeFirst(seed.Enabled, true),
1039+
Threshold: takeFirst(seed.Threshold, 100),
1040+
CreatedAt: takeFirst(seed.CreatedAt, dbtime.Now()),
1041+
})
1042+
require.NoError(t, err, "insert workspace agent memory resource monitor")
1043+
return monitor
1044+
}
1045+
1046+
func WorkspaceAgentVolumeResourceMonitor(t testing.TB, db database.Store, seed database.WorkspaceAgentVolumeResourceMonitor) database.WorkspaceAgentVolumeResourceMonitor {
1047+
monitor, err := db.InsertVolumeResourceMonitor(genCtx, database.InsertVolumeResourceMonitorParams{
1048+
AgentID: takeFirst(seed.AgentID, uuid.New()),
1049+
Path: takeFirst(seed.Path, "/"),
1050+
Enabled: takeFirst(seed.Enabled, true),
1051+
Threshold: takeFirst(seed.Threshold, 100),
1052+
CreatedAt: takeFirst(seed.CreatedAt, dbtime.Now()),
1053+
})
1054+
require.NoError(t, err, "insert workspace agent volume resource monitor")
1055+
return monitor
1056+
}
1057+
10351058
func CustomRole(t testing.TB, db database.Store, seed database.CustomRole) database.CustomRole {
10361059
role, err := db.InsertCustomRole(genCtx, database.InsertCustomRoleParams{
10371060
Name: takeFirst(seed.Name, strings.ToLower(testutil.GetRandomName(t))),

coderd/rbac/roles_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,36 @@ func TestRolePermissions(t *testing.T) {
777777
},
778778
},
779779
},
780+
{
781+
Name: "MemoryResourceMonitor",
782+
Actions: []policy.Action{policy.ActionRead, policy.ActionCreate},
783+
Resource: rbac.ResourceWorkspaceAgentMemoryResourceMonitor,
784+
AuthorizeMap: map[bool][]hasAuthSubjects{
785+
true: {owner},
786+
false: {
787+
memberMe, orgMemberMe, otherOrgMember,
788+
orgAdmin, otherOrgAdmin,
789+
orgAuditor, otherOrgAuditor,
790+
templateAdmin, orgTemplateAdmin, otherOrgTemplateAdmin,
791+
userAdmin, orgUserAdmin, otherOrgUserAdmin,
792+
},
793+
},
794+
},
795+
{
796+
Name: "VolumeResourceMonitor",
797+
Actions: []policy.Action{policy.ActionRead, policy.ActionCreate},
798+
Resource: rbac.ResourceWorkspaceAgentVolumeResourceMonitor,
799+
AuthorizeMap: map[bool][]hasAuthSubjects{
800+
true: {owner},
801+
false: {
802+
memberMe, orgMemberMe, otherOrgMember,
803+
orgAdmin, otherOrgAdmin,
804+
orgAuditor, otherOrgAuditor,
805+
templateAdmin, orgTemplateAdmin, otherOrgTemplateAdmin,
806+
userAdmin, orgUserAdmin, otherOrgUserAdmin,
807+
},
808+
},
809+
},
780810
}
781811

782812
// We expect every permission to be tested above.

0 commit comments

Comments
 (0)