chore: Remove interface from coderd and lift API surface (#1772)

Abstracting coderd into an interface added misdirection because
the interface was never intended to be fulfilled outside of a single
implementation.

This lifts the abstraction, and attaches all handlers to a root struct
named `*coderd.API`.
This commit is contained in:
Kyle Carberry
2022-05-26 03:14:08 +00:00
committed by GitHub
parent c78f947e09
commit 31b819e83f
27 changed files with 234 additions and 263 deletions
+8 -8
View File
@@ -273,7 +273,7 @@ func server() *cobra.Command {
}
}
coderDaemon := coderd.New(options)
coderAPI := coderd.New(options)
client := codersdk.New(localURL)
if tlsEnable {
// Secure transport isn't needed for locally communicating!
@@ -299,7 +299,7 @@ func server() *cobra.Command {
errCh := make(chan error, 1)
provisionerDaemons := make([]*provisionerd.Server, 0)
for i := 0; uint8(i) < provisionerDaemonCount; i++ {
daemonClose, err := newProvisionerDaemon(cmd.Context(), coderDaemon, logger, cacheDir, errCh, dev)
daemonClose, err := newProvisionerDaemon(cmd.Context(), coderAPI, logger, cacheDir, errCh, dev)
if err != nil {
return xerrors.Errorf("create provisioner daemon: %w", err)
}
@@ -319,7 +319,7 @@ func server() *cobra.Command {
// These errors are typically noise like "TLS: EOF". Vault does similar:
// https://github.com/hashicorp/vault/blob/e2490059d0711635e529a4efcbaa1b26998d6e1c/command/server.go#L2714
ErrorLog: log.New(io.Discard, "", 0),
Handler: coderDaemon.Handler(),
Handler: coderAPI.Handler,
BaseContext: func(_ net.Listener) context.Context {
return shutdownConnsCtx
},
@@ -387,7 +387,7 @@ func server() *cobra.Command {
signal.Notify(stopChan, os.Interrupt)
select {
case <-cmd.Context().Done():
coderDaemon.CloseWait()
coderAPI.Close()
return cmd.Context().Err()
case err := <-tunnelErrChan:
if err != nil {
@@ -395,7 +395,7 @@ func server() *cobra.Command {
}
case err := <-errCh:
shutdownConns()
coderDaemon.CloseWait()
coderAPI.Close()
return err
case <-stopChan:
}
@@ -459,7 +459,7 @@ func server() *cobra.Command {
_, _ = fmt.Fprintf(cmd.OutOrStdout(), cliui.Styles.Prompt.String()+"Waiting for WebSocket connections to close...\n")
shutdownConns()
coderDaemon.CloseWait()
coderAPI.Close()
return nil
},
}
@@ -555,7 +555,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo
}
// nolint:revive
func newProvisionerDaemon(ctx context.Context, coderDaemon coderd.CoderD,
func newProvisionerDaemon(ctx context.Context, coderAPI *coderd.API,
logger slog.Logger, cacheDir string, errChan chan error, dev bool) (*provisionerd.Server, error) {
err := os.MkdirAll(cacheDir, 0700)
if err != nil {
@@ -595,7 +595,7 @@ func newProvisionerDaemon(ctx context.Context, coderDaemon coderd.CoderD,
}()
provisioners[string(database.ProvisionerTypeEcho)] = proto.NewDRPCProvisionerClient(provisionersdk.Conn(echoClient))
}
return provisionerd.New(coderDaemon.ListenProvisionerDaemon, &provisionerd.Options{
return provisionerd.New(coderAPI.ListenProvisionerDaemon, &provisionerd.Options{
Logger: logger,
PollInterval: 500 * time.Millisecond,
UpdateInterval: 500 * time.Millisecond,