Skip to content

Commit a7c9e62

Browse files
authored
chore: fix api param name (coder#20172)
In coder#20137, we added a new flag to `coder provisioner jobs list`, namely `--initiator`. To make some follow-up worth it, I need to rename an API param used in the process before it becomes part of our released and tagged API. Instead of only accepting UUIDs, we accept an arbitrary string. We still validate it as a UUID now, but we will expand its validation to allow any string and then resolve that string the same way that we resolve the user parameter elsewhere in the API.
1 parent dd99d40 commit a7c9e62

File tree

5 files changed

+23
-25
lines changed

5 files changed

+23
-25
lines changed

cli/provisionerjobs.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,18 @@ func (r *RootCmd) provisionerJobsList() *serpent.Command {
6666
return xerrors.Errorf("current organization: %w", err)
6767
}
6868

69-
var initiatorID *uuid.UUID
70-
7169
if initiator != "" {
7270
user, err := client.User(ctx, initiator)
7371
if err != nil {
7472
return xerrors.Errorf("initiator not found: %s", initiator)
7573
}
76-
initiatorID = &user.ID
74+
initiator = user.ID.String()
7775
}
7876

7977
jobs, err := client.OrganizationProvisionerJobs(ctx, org.ID, &codersdk.OrganizationProvisionerJobsOptions{
80-
Status: slice.StringEnums[codersdk.ProvisionerJobStatus](status),
81-
Limit: int(limit),
82-
InitiatorID: initiatorID,
78+
Status: slice.StringEnums[codersdk.ProvisionerJobStatus](status),
79+
Limit: int(limit),
80+
Initiator: initiator,
8381
})
8482
if err != nil {
8583
return xerrors.Errorf("list provisioner jobs: %w", err)

coderd/provisionerjobs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (api *API) handleAuthAndFetchProvisionerJobs(rw http.ResponseWriter, r *htt
111111
ids = p.UUIDs(qp, nil, "ids")
112112
}
113113
tags := p.JSONStringMap(qp, database.StringMap{}, "tags")
114-
initiatorID := p.UUID(qp, uuid.Nil, "initiator_id")
114+
initiatorID := p.UUID(qp, uuid.Nil, "initiator")
115115
p.ErrorExcessParams(qp)
116116
if len(p.Errors) > 0 {
117117
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{

coderd/provisionerjobs_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func TestProvisionerJobs(t *testing.T) {
173173
ctx := testutil.Context(t, testutil.WaitMedium)
174174

175175
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
176-
InitiatorID: &member.ID,
176+
Initiator: member.ID.String(),
177177
})
178178
require.NoError(t, err)
179179
require.GreaterOrEqual(t, len(jobs), 1)
@@ -186,8 +186,8 @@ func TestProvisionerJobs(t *testing.T) {
186186

187187
// Test filtering by initiator ID combined with status filter
188188
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
189-
InitiatorID: &owner.UserID,
190-
Status: []codersdk.ProvisionerJobStatus{codersdk.ProvisionerJobSucceeded},
189+
Initiator: owner.UserID.String(),
190+
Status: []codersdk.ProvisionerJobStatus{codersdk.ProvisionerJobSucceeded},
191191
})
192192
require.NoError(t, err)
193193

@@ -204,8 +204,8 @@ func TestProvisionerJobs(t *testing.T) {
204204

205205
// Test filtering by initiator ID with limit
206206
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
207-
InitiatorID: &owner.UserID,
208-
Limit: 1,
207+
Initiator: owner.UserID.String(),
208+
Limit: 1,
209209
})
210210
require.NoError(t, err)
211211
require.Len(t, jobs, 1)
@@ -220,8 +220,8 @@ func TestProvisionerJobs(t *testing.T) {
220220

221221
// Test filtering by initiator ID combined with tags
222222
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
223-
InitiatorID: &member.ID,
224-
Tags: map[string]string{"initiatorTest": "true"},
223+
Initiator: member.ID.String(),
224+
Tags: map[string]string{"initiatorTest": "true"},
225225
})
226226
require.NoError(t, err)
227227
require.Len(t, jobs, 1)
@@ -238,7 +238,7 @@ func TestProvisionerJobs(t *testing.T) {
238238
// Test with non-existent initiator ID
239239
nonExistentID := uuid.New()
240240
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
241-
InitiatorID: &nonExistentID,
241+
Initiator: nonExistentID.String(),
242242
})
243243
require.NoError(t, err)
244244
require.Len(t, jobs, 0)
@@ -250,7 +250,7 @@ func TestProvisionerJobs(t *testing.T) {
250250

251251
// Test with nil initiator ID (should return all jobs)
252252
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
253-
InitiatorID: nil,
253+
Initiator: "",
254254
})
255255
require.NoError(t, err)
256256
require.GreaterOrEqual(t, len(jobs), 50) // Should return all jobs (up to default limit)
@@ -282,7 +282,7 @@ func TestProvisionerJobs(t *testing.T) {
282282
ctx := testutil.Context(t, testutil.WaitMedium)
283283
// Member should not be able to access jobs even with initiator filter
284284
jobs, err := memberClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, &codersdk.OrganizationProvisionerJobsOptions{
285-
InitiatorID: &member.ID,
285+
Initiator: member.ID.String(),
286286
})
287287
require.Error(t, err)
288288
require.Len(t, jobs, 0)

codersdk/organizations.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -397,11 +397,11 @@ func (c *Client) OrganizationProvisionerDaemons(ctx context.Context, organizatio
397397
}
398398

399399
type OrganizationProvisionerJobsOptions struct {
400-
Limit int
401-
IDs []uuid.UUID
402-
Status []ProvisionerJobStatus
403-
Tags map[string]string
404-
InitiatorID *uuid.UUID
400+
Limit int
401+
IDs []uuid.UUID
402+
Status []ProvisionerJobStatus
403+
Tags map[string]string
404+
Initiator string
405405
}
406406

407407
func (c *Client) OrganizationProvisionerJobs(ctx context.Context, organizationID uuid.UUID, opts *OrganizationProvisionerJobsOptions) ([]ProvisionerJob, error) {
@@ -423,8 +423,8 @@ func (c *Client) OrganizationProvisionerJobs(ctx context.Context, organizationID
423423
}
424424
qp.Add("tags", string(tagsRaw))
425425
}
426-
if opts.InitiatorID != nil {
427-
qp.Add("initiator_id", opts.InitiatorID.String())
426+
if opts.Initiator != "" {
427+
qp.Add("initiator", opts.Initiator)
428428
}
429429
}
430430

site/src/api/typesGenerated.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)