Skip to content

Commit 0805250

Browse files
committed
Merge branch 'main' into devurls
2 parents f70dd17 + 31b819e commit 0805250

File tree

9 files changed

+49
-57
lines changed

9 files changed

+49
-57
lines changed

cli/server.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ func server() *cobra.Command {
273273
}
274274
}
275275

276-
coderDaemon := coderd.New(options)
276+
coderAPI := coderd.New(options)
277277
client := codersdk.New(localURL)
278278
if tlsEnable {
279279
// Secure transport isn't needed for locally communicating!
@@ -299,7 +299,7 @@ func server() *cobra.Command {
299299
errCh := make(chan error, 1)
300300
provisionerDaemons := make([]*provisionerd.Server, 0)
301301
for i := 0; uint8(i) < provisionerDaemonCount; i++ {
302-
daemonClose, err := newProvisionerDaemon(cmd.Context(), coderDaemon, logger, cacheDir, errCh, dev)
302+
daemonClose, err := newProvisionerDaemon(cmd.Context(), coderAPI, logger, cacheDir, errCh, dev)
303303
if err != nil {
304304
return xerrors.Errorf("create provisioner daemon: %w", err)
305305
}
@@ -319,7 +319,7 @@ func server() *cobra.Command {
319319
// These errors are typically noise like "TLS: EOF". Vault does similar:
320320
// https://github.com/hashicorp/vault/blob/e2490059d0711635e529a4efcbaa1b26998d6e1c/command/server.go#L2714
321321
ErrorLog: log.New(io.Discard, "", 0),
322-
Handler: coderDaemon,
322+
Handler: coderAPI.Handler,
323323
BaseContext: func(_ net.Listener) context.Context {
324324
return shutdownConnsCtx
325325
},
@@ -387,15 +387,15 @@ func server() *cobra.Command {
387387
signal.Notify(stopChan, os.Interrupt)
388388
select {
389389
case <-cmd.Context().Done():
390-
coderDaemon.Close()
390+
coderAPI.Close()
391391
return cmd.Context().Err()
392392
case err := <-tunnelErrChan:
393393
if err != nil {
394394
return err
395395
}
396396
case err := <-errCh:
397397
shutdownConns()
398-
coderDaemon.Close()
398+
coderAPI.Close()
399399
return err
400400
case <-stopChan:
401401
}
@@ -459,7 +459,7 @@ func server() *cobra.Command {
459459

460460
_, _ = fmt.Fprintf(cmd.OutOrStdout(), cliui.Styles.Prompt.String()+"Waiting for WebSocket connections to close...\n")
461461
shutdownConns()
462-
coderDaemon.Close()
462+
coderAPI.Close()
463463
return nil
464464
},
465465
}
@@ -555,7 +555,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo
555555
}
556556

557557
// nolint:revive
558-
func newProvisionerDaemon(ctx context.Context, coderDaemon *coderd.API,
558+
func newProvisionerDaemon(ctx context.Context, coderAPI *coderd.API,
559559
logger slog.Logger, cacheDir string, errChan chan error, dev bool) (*provisionerd.Server, error) {
560560
err := os.MkdirAll(cacheDir, 0700)
561561
if err != nil {
@@ -595,7 +595,7 @@ func newProvisionerDaemon(ctx context.Context, coderDaemon *coderd.API,
595595
}()
596596
provisioners[string(database.ProvisionerTypeEcho)] = proto.NewDRPCProvisionerClient(provisionersdk.Conn(echoClient))
597597
}
598-
return provisionerd.New(coderDaemon.ListenProvisionerDaemon, &provisionerd.Options{
598+
return provisionerd.New(coderAPI.ListenProvisionerDaemon, &provisionerd.Options{
599599
Logger: logger,
600600
PollInterval: 500 * time.Millisecond,
601601
UpdateInterval: 500 * time.Millisecond,

coderd/coderd.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ type Options struct {
6060

6161
// New constructs a Coder API handler.
6262
func New(options *Options) *API {
63-
r := chi.NewRouter()
64-
api := &API{
65-
Options: options,
66-
router: r,
67-
}
68-
6963
if options.AgentConnectionUpdateFrequency == 0 {
7064
options.AgentConnectionUpdateFrequency = 3 * time.Second
7165
}
@@ -81,6 +75,13 @@ func New(options *Options) *API {
8175
panic(xerrors.Errorf("rego authorize panic: %w", err))
8276
}
8377
}
78+
79+
r := chi.NewRouter()
80+
api := &API{
81+
Options: options,
82+
Handler: r,
83+
}
84+
8485
apiKeyMiddleware := httpmw.ExtractAPIKey(options.Database, &httpmw.OAuth2Configs{
8586
Github: options.GithubOAuth2Config,
8687
})
@@ -101,7 +102,7 @@ func New(options *Options) *API {
101102
r.Use(
102103
httpmw.RateLimitPerMinute(options.APIRateLimit),
103104
apiKeyMiddleware,
104-
httpmw.ExtractUserParam(a.Database),
105+
httpmw.ExtractUserParam(api.Database),
105106
authRolesMiddleware,
106107
)
107108
})
@@ -347,17 +348,11 @@ func New(options *Options) *API {
347348
type API struct {
348349
*Options
349350

350-
router chi.Router
351+
Handler chi.Router
351352
websocketWaitMutex sync.Mutex
352353
websocketWaitGroup sync.WaitGroup
353354
}
354355

355-
// ServeHTTP fulfills the http.Handler interface to allow for the API
356-
// to be mounted without exposing the router.
357-
func (api *API) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
358-
api.router.ServeHTTP(rw, r)
359-
}
360-
361356
// Close waits for all WebSocket connections to drain before returning.
362357
func (api *API) Close() {
363358
api.websocketWaitMutex.Lock()

coderd/coderd_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
4040
ctx := context.Background()
4141

4242
authorizer := &fakeAuthorizer{}
43-
srv, client, _ := coderdtest.NewWithServer(t, &coderdtest.Options{
43+
client, api := coderdtest.NewWithAPI(t, &coderdtest.Options{
4444
Authorizer: authorizer,
4545
IncludeProvisionerD: true,
4646
})
@@ -267,8 +267,7 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
267267
assertRoute[noTrailSlash] = v
268268
}
269269

270-
c, _ := srv.Config.Handler.(*chi.Mux)
271-
err = chi.Walk(c, func(method string, route string, handler http.Handler, middlewares ...func(http.Handler) http.Handler) error {
270+
err = chi.Walk(api.Handler, func(method string, route string, handler http.Handler, middlewares ...func(http.Handler) http.Handler) error {
272271
name := method + ":" + route
273272
t.Run(name, func(t *testing.T) {
274273
authorizer.reset()

coderd/coderdtest/coderdtest.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,14 @@ type Options struct {
6969
IncludeProvisionerD bool
7070
}
7171

72-
// New constructs an in-memory coderd instance and returns
73-
// the connected client.
72+
// New constructs a codersdk client connected to an in-memory API instance.
7473
func New(t *testing.T, options *Options) *codersdk.Client {
75-
_, cli, _ := NewWithServer(t, options)
76-
return cli
74+
client, _ := NewWithAPI(t, options)
75+
return client
7776
}
7877

79-
// NewWithServer returns an in-memory coderd instance and
80-
// the HTTP server it started with.
81-
func NewWithServer(t *testing.T, options *Options) (*httptest.Server, *codersdk.Client, *coderd.API) {
78+
// NewWithAPI constructs a codersdk client connected to the returned in-memory API instance.
79+
func NewWithAPI(t *testing.T, options *Options) (*codersdk.Client, *coderd.API) {
8280
if options == nil {
8381
options = &Options{}
8482
}
@@ -144,7 +142,7 @@ func NewWithServer(t *testing.T, options *Options) (*httptest.Server, *codersdk.
144142
require.NoError(t, err)
145143

146144
// We set the handler after server creation for the access URL.
147-
coderDaemon := coderd.New(&coderd.Options{
145+
coderAPI := coderd.New(&coderd.Options{
148146
AgentConnectionUpdateFrequency: 150 * time.Millisecond,
149147
AccessURL: serverURL,
150148
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
@@ -160,24 +158,24 @@ func NewWithServer(t *testing.T, options *Options) (*httptest.Server, *codersdk.
160158
APIRateLimit: options.APIRateLimit,
161159
Authorizer: options.Authorizer,
162160
})
163-
srv.Config.Handler = coderDaemon
161+
srv.Config.Handler = coderAPI.Handler
164162
if options.IncludeProvisionerD {
165-
_ = NewProvisionerDaemon(t, coderDaemon)
163+
_ = NewProvisionerDaemon(t, coderAPI)
166164
}
167165
t.Cleanup(func() {
168166
cancelFunc()
169167
_ = turnServer.Close()
170168
srv.Close()
171-
coderDaemon.Close()
169+
coderAPI.Close()
172170
})
173171

174-
return srv, codersdk.New(serverURL), coderDaemon
172+
return codersdk.New(serverURL), coderAPI
175173
}
176174

177175
// NewProvisionerDaemon launches a provisionerd instance configured to work
178176
// well with coderd testing. It registers the "echo" provisioner for
179177
// quick testing.
180-
func NewProvisionerDaemon(t *testing.T, coderDaemon *coderd.API) io.Closer {
178+
func NewProvisionerDaemon(t *testing.T, coderAPI *coderd.API) io.Closer {
181179
echoClient, echoServer := provisionersdk.TransportPipe()
182180
ctx, cancelFunc := context.WithCancel(context.Background())
183181
t.Cleanup(func() {
@@ -192,7 +190,7 @@ func NewProvisionerDaemon(t *testing.T, coderDaemon *coderd.API) io.Closer {
192190
assert.NoError(t, err)
193191
}()
194192

195-
closer := provisionerd.New(coderDaemon.ListenProvisionerDaemon, &provisionerd.Options{
193+
closer := provisionerd.New(coderAPI.ListenProvisionerDaemon, &provisionerd.Options{
196194
Logger: slogtest.Make(t, nil).Named("provisionerd").Leveled(slog.LevelDebug),
197195
PollInterval: 50 * time.Millisecond,
198196
UpdateInterval: 250 * time.Millisecond,

coderd/coderdtest/coderdtest_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ func TestMain(m *testing.M) {
1414

1515
func TestNew(t *testing.T) {
1616
t.Parallel()
17-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
17+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
1818
user := coderdtest.CreateFirstUser(t, client)
19-
closer := coderdtest.NewProvisionerDaemon(t, coderDaemon)
19+
closer := coderdtest.NewProvisionerDaemon(t, coderAPI)
2020
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
2121
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
2222
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)

coderd/gitsshkey_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ func TestGitSSHKey(t *testing.T) {
7979
func TestAgentGitSSHKey(t *testing.T) {
8080
t.Parallel()
8181

82-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
82+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
8383
user := coderdtest.CreateFirstUser(t, client)
84-
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderDaemon)
84+
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderAPI)
8585
authToken := uuid.NewString()
8686
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
8787
Parse: echo.ParseComplete,

coderd/workspaceagents_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ func TestWorkspaceAgent(t *testing.T) {
2727
t.Parallel()
2828
t.Run("Connect", func(t *testing.T) {
2929
t.Parallel()
30-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
30+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
3131
user := coderdtest.CreateFirstUser(t, client)
32-
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderDaemon)
32+
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderAPI)
3333
authToken := uuid.NewString()
3434
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
3535
Parse: echo.ParseComplete,
@@ -68,9 +68,9 @@ func TestWorkspaceAgent(t *testing.T) {
6868

6969
func TestWorkspaceAgentListen(t *testing.T) {
7070
t.Parallel()
71-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
71+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
7272
user := coderdtest.CreateFirstUser(t, client)
73-
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderDaemon)
73+
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderAPI)
7474
authToken := uuid.NewString()
7575
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
7676
Parse: echo.ParseComplete,
@@ -118,9 +118,9 @@ func TestWorkspaceAgentListen(t *testing.T) {
118118

119119
func TestWorkspaceAgentTURN(t *testing.T) {
120120
t.Parallel()
121-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
121+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
122122
user := coderdtest.CreateFirstUser(t, client)
123-
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderDaemon)
123+
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderAPI)
124124
authToken := uuid.NewString()
125125
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
126126
Parse: echo.ParseComplete,
@@ -179,9 +179,9 @@ func TestWorkspaceAgentPTY(t *testing.T) {
179179
// it seems like it could be either.
180180
t.Skip("ConPTY appears to be inconsistent on Windows.")
181181
}
182-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
182+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
183183
user := coderdtest.CreateFirstUser(t, client)
184-
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderDaemon)
184+
daemonCloser := coderdtest.NewProvisionerDaemon(t, coderAPI)
185185
authToken := uuid.NewString()
186186
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
187187
Parse: echo.ParseComplete,

coderd/workspacebuilds_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ func TestWorkspaceBuildResources(t *testing.T) {
119119
t.Parallel()
120120
t.Run("ListRunning", func(t *testing.T) {
121121
t.Parallel()
122-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
122+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
123123
user := coderdtest.CreateFirstUser(t, client)
124-
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderDaemon)
124+
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderAPI)
125125
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
126126
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
127127
closeDaemon.Close()

coderd/workspaces_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@ func TestPostWorkspaceBuild(t *testing.T) {
290290

291291
t.Run("AlreadyActive", func(t *testing.T) {
292292
t.Parallel()
293-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
293+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
294294
user := coderdtest.CreateFirstUser(t, client)
295-
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderDaemon)
295+
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderAPI)
296296
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
297297
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
298298
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
@@ -328,9 +328,9 @@ func TestPostWorkspaceBuild(t *testing.T) {
328328

329329
t.Run("WithState", func(t *testing.T) {
330330
t.Parallel()
331-
_, client, coderDaemon := coderdtest.NewWithServer(t, nil)
331+
client, coderAPI := coderdtest.NewWithAPI(t, nil)
332332
user := coderdtest.CreateFirstUser(t, client)
333-
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderDaemon)
333+
closeDaemon := coderdtest.NewProvisionerDaemon(t, coderAPI)
334334
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
335335
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
336336
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy