Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0e58772

Browse files
authored
fix: filter workspace_build resource on start/stop action (#5809)
* fix: ufilter workspace_build resource on start/stop action * added preset filter for workspace_build filtering * cleaning up the preset filters
1 parent 918c37c commit 0e58772

File tree

3 files changed

+45
-8
lines changed

3 files changed

+45
-8
lines changed

coderd/audit.go

+4
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,10 @@ func actionFromString(actionString string) string {
478478
return actionString
479479
case codersdk.AuditActionDelete:
480480
return actionString
481+
case codersdk.AuditActionStart:
482+
return actionString
483+
case codersdk.AuditActionStop:
484+
return actionString
481485
default:
482486
}
483487
return ""

coderd/audit_test.go

+37-6
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,15 @@ func TestAuditLogsFilter(t *testing.T) {
4646

4747
var (
4848
ctx = context.Background()
49-
client = coderdtest.New(t, nil)
49+
client = coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
5050
user = coderdtest.CreateFirstUser(t, client)
5151
version = coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
5252
template = coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
5353
)
5454

55+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
56+
workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
57+
5558
// Create two logs with "Create"
5659
err := client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{
5760
Action: codersdk.AuditActionCreate,
@@ -77,6 +80,24 @@ func TestAuditLogsFilter(t *testing.T) {
7780
})
7881
require.NoError(t, err)
7982

83+
// Create one log with "Start"
84+
err = client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{
85+
Action: codersdk.AuditActionStart,
86+
ResourceType: codersdk.ResourceTypeWorkspaceBuild,
87+
ResourceID: workspace.LatestBuild.ID,
88+
Time: time.Date(2022, 8, 15, 14, 30, 45, 100, time.UTC), // 2022-8-15 14:30:45
89+
})
90+
require.NoError(t, err)
91+
92+
// Create one log with "Stop"
93+
err = client.CreateTestAuditLog(ctx, codersdk.CreateTestAuditLogRequest{
94+
Action: codersdk.AuditActionStop,
95+
ResourceType: codersdk.ResourceTypeWorkspaceBuild,
96+
ResourceID: workspace.LatestBuild.ID,
97+
Time: time.Date(2022, 8, 15, 14, 30, 45, 100, time.UTC), // 2022-8-15 14:30:45
98+
})
99+
require.NoError(t, err)
100+
80101
// Test cases
81102
testCases := []struct {
82103
Name string
@@ -106,12 +127,12 @@ func TestAuditLogsFilter(t *testing.T) {
106127
{
107128
Name: "FilterByEmail",
108129
SearchQuery: "email:" + coderdtest.FirstUserParams.Email,
109-
ExpectedResult: 3,
130+
ExpectedResult: 5,
110131
},
111132
{
112133
Name: "FilterByUsername",
113134
SearchQuery: "username:" + coderdtest.FirstUserParams.Username,
114-
ExpectedResult: 3,
135+
ExpectedResult: 5,
115136
},
116137
{
117138
Name: "FilterByResourceID",
@@ -121,17 +142,17 @@ func TestAuditLogsFilter(t *testing.T) {
121142
{
122143
Name: "FilterInvalidSingleValue",
123144
SearchQuery: "invalid",
124-
ExpectedResult: 3,
145+
ExpectedResult: 5,
125146
},
126147
{
127148
Name: "FilterWithInvalidResourceType",
128149
SearchQuery: "resource_type:invalid",
129-
ExpectedResult: 3,
150+
ExpectedResult: 5,
130151
},
131152
{
132153
Name: "FilterWithInvalidAction",
133154
SearchQuery: "action:invalid",
134-
ExpectedResult: 3,
155+
ExpectedResult: 5,
135156
},
136157
{
137158
Name: "FilterOnCreateSingleDay",
@@ -148,6 +169,16 @@ func TestAuditLogsFilter(t *testing.T) {
148169
SearchQuery: "action:create date_to:2022-08-15",
149170
ExpectedResult: 1,
150171
},
172+
{
173+
Name: "FilterOnWorkspaceBuildStart",
174+
SearchQuery: "resource_type:workspace_build action:start",
175+
ExpectedResult: 1,
176+
},
177+
{
178+
Name: "FilterOnWorkspaceBuildStop",
179+
SearchQuery: "resource_type:workspace_build action:stop",
180+
ExpectedResult: 1,
181+
},
151182
}
152183

153184
for _, testCase := range testCases {

site/src/pages/AuditPage/AuditPageView.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ const presetFilters = [
3535
name: "Created workspaces",
3636
},
3737
{ query: "resource_type:template action:create", name: "Added templates" },
38-
{ query: "resource_type:user action:create", name: "Added users" },
39-
{ query: "resource_type:template action:delete", name: "Deleted templates" },
4038
{ query: "resource_type:user action:delete", name: "Deleted users" },
39+
{
40+
query: "resource_type:workspace_build action:start",
41+
name: "Started builds",
42+
},
4143
]
4244

4345
export interface AuditPageViewProps {

0 commit comments

Comments
 (0)