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

Skip to content

Commit f204b1f

Browse files
committed
Nest jobs under an organization
1 parent 795bba2 commit f204b1f

File tree

4 files changed

+22
-16
lines changed

4 files changed

+22
-16
lines changed

coderd/coderd.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,15 @@ func New(options *Options) http.Handler {
107107
r.Get("/", api.provisionerDaemons)
108108
r.Get("/serve", api.provisionerDaemonsServe)
109109
})
110-
r.Route("/jobs/{provisionerjob}", func(r chi.Router) {
111-
r.Use(httpmw.ExtractProvisionerJobParam(options.Database))
112-
r.Get("/logs", api.provisionerJobLogsByID)
110+
r.Route("/jobs/{organization}", func(r chi.Router) {
111+
r.Use(
112+
httpmw.ExtractAPIKey(options.Database, nil),
113+
httpmw.ExtractOrganizationParam(options.Database),
114+
)
115+
r.Route("/{provisionerjob}", func(r chi.Router) {
116+
r.Use(httpmw.ExtractProvisionerJobParam(options.Database))
117+
r.Get("/logs", api.provisionerJobLogsByID)
118+
})
113119
})
114120
})
115121
})

coderd/provisionerjoblogs_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestProvisionerJobLogsByName(t *testing.T) {
4747
coderdtest.AwaitWorkspaceHistoryProvisioned(t, client, "", workspace.Name, history.Name)
4848

4949
// Return the log after completion!
50-
logs, err := client.ProvisionerJobLogs(context.Background(), history.Provision.ID)
50+
logs, err := client.ProvisionerJobLogs(context.Background(), user.Organization, history.Provision.ID)
5151
require.NoError(t, err)
5252
require.NotNil(t, logs)
5353
require.Len(t, logs, 1)
@@ -84,7 +84,7 @@ func TestProvisionerJobLogsByName(t *testing.T) {
8484
require.NoError(t, err)
8585
coderdtest.AwaitWorkspaceHistoryProvisioned(t, client, "", workspace.Name, history.Name)
8686

87-
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), history.Provision.ID, before)
87+
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), user.Organization, history.Provision.ID, before)
8888
require.NoError(t, err)
8989
log, ok := <-logs
9090
require.True(t, ok)
@@ -123,7 +123,7 @@ func TestProvisionerJobLogsByName(t *testing.T) {
123123
Transition: database.WorkspaceTransitionStart,
124124
})
125125
require.NoError(t, err)
126-
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), history.Provision.ID, before)
126+
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), user.Organization, history.Provision.ID, before)
127127
require.NoError(t, err)
128128
log := <-logs
129129
require.Equal(t, "log-output", log.Output)

codersdk/provisioners.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,20 @@ func (c *Client) ProvisionerDaemonClient(ctx context.Context) (proto.DRPCProvisi
6161

6262
// ProvisionerJobLogs returns all logs for workspace history.
6363
// To stream logs, use the FollowProvisionerJobLogs function.
64-
func (c *Client) ProvisionerJobLogs(ctx context.Context, jobID uuid.UUID) ([]coderd.ProvisionerJobLog, error) {
65-
return c.ProvisionerJobLogsBetween(ctx, jobID, time.Time{}, time.Time{})
64+
func (c *Client) ProvisionerJobLogs(ctx context.Context, organization string, jobID uuid.UUID) ([]coderd.ProvisionerJobLog, error) {
65+
return c.ProvisionerJobLogsBetween(ctx, organization, jobID, time.Time{}, time.Time{})
6666
}
6767

6868
// ProvisionerJobLogsBetween returns logs between a specific time.
69-
func (c *Client) ProvisionerJobLogsBetween(ctx context.Context, jobID uuid.UUID, after, before time.Time) ([]coderd.ProvisionerJobLog, error) {
69+
func (c *Client) ProvisionerJobLogsBetween(ctx context.Context, organization string, jobID uuid.UUID, after, before time.Time) ([]coderd.ProvisionerJobLog, error) {
7070
values := url.Values{}
7171
if !after.IsZero() {
7272
values["after"] = []string{strconv.FormatInt(after.UTC().UnixMilli(), 10)}
7373
}
7474
if !before.IsZero() {
7575
values["before"] = []string{strconv.FormatInt(before.UTC().UnixMilli(), 10)}
7676
}
77-
res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/provisioners/jobs/%s/logs?%s", jobID, values.Encode()), nil)
77+
res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/provisioners/jobs/%s/%s/logs?%s", organization, jobID, values.Encode()), nil)
7878
if err != nil {
7979
return nil, err
8080
}
@@ -89,12 +89,12 @@ func (c *Client) ProvisionerJobLogsBetween(ctx context.Context, jobID uuid.UUID,
8989

9090
// FollowProvisionerJobLogsAfter returns a stream of workspace history logs.
9191
// The channel will close when the workspace history job is no longer active.
92-
func (c *Client) FollowProvisionerJobLogsAfter(ctx context.Context, jobID uuid.UUID, after time.Time) (<-chan coderd.ProvisionerJobLog, error) {
92+
func (c *Client) FollowProvisionerJobLogsAfter(ctx context.Context, organization string, jobID uuid.UUID, after time.Time) (<-chan coderd.ProvisionerJobLog, error) {
9393
afterQuery := ""
9494
if !after.IsZero() {
9595
afterQuery = fmt.Sprintf("&after=%d", after.UTC().UnixMilli())
9696
}
97-
res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/provisioners/jobs/%s/logs?follow%s", jobID, afterQuery), nil)
97+
res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/provisioners/jobs/%s/%s/logs?follow%s", organization, jobID, afterQuery), nil)
9898
if err != nil {
9999
return nil, err
100100
}

codersdk/provisioners_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func TestProvisionerJobLogs(t *testing.T) {
5555
t.Run("Error", func(t *testing.T) {
5656
t.Parallel()
5757
client := coderdtest.New(t)
58-
_, err := client.ProvisionerJobLogs(context.Background(), uuid.New())
58+
_, err := client.ProvisionerJobLogs(context.Background(), "nothing", uuid.New())
5959
require.Error(t, err)
6060
})
6161

@@ -73,7 +73,7 @@ func TestProvisionerJobLogs(t *testing.T) {
7373
Transition: database.WorkspaceTransitionStart,
7474
})
7575
require.NoError(t, err)
76-
_, err = client.ProvisionerJobLogs(context.Background(), history.Provision.ID)
76+
_, err = client.ProvisionerJobLogs(context.Background(), user.Organization, history.Provision.ID)
7777
require.NoError(t, err)
7878
})
7979
}
@@ -83,7 +83,7 @@ func TestFollowProvisionerJobLogsAfter(t *testing.T) {
8383
t.Run("Error", func(t *testing.T) {
8484
t.Parallel()
8585
client := coderdtest.New(t)
86-
_, err := client.FollowProvisionerJobLogsAfter(context.Background(), uuid.New(), time.Time{})
86+
_, err := client.FollowProvisionerJobLogsAfter(context.Background(), "nothing", uuid.New(), time.Time{})
8787
require.Error(t, err)
8888
})
8989

@@ -115,7 +115,7 @@ func TestFollowProvisionerJobLogsAfter(t *testing.T) {
115115
Transition: database.WorkspaceTransitionStart,
116116
})
117117
require.NoError(t, err)
118-
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), history.Provision.ID, after)
118+
logs, err := client.FollowProvisionerJobLogsAfter(context.Background(), user.Organization, history.Provision.ID, after)
119119
require.NoError(t, err)
120120
_, ok := <-logs
121121
require.True(t, ok)

0 commit comments

Comments
 (0)