mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
@ -25,7 +25,7 @@ func Logger(log slog.Logger) func(next http.Handler) http.Handler {
|
||||
next.ServeHTTP(sw, r)
|
||||
|
||||
// Don't log successful health check requests.
|
||||
if r.URL.Path == "/api/v2" && sw.Status == 200 {
|
||||
if r.URL.Path == "/api/v2" && sw.Status == http.StatusOK {
|
||||
return
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ func Logger(log slog.Logger) func(next http.Handler) http.Handler {
|
||||
|
||||
// For status codes 400 and higher we
|
||||
// want to log the response body.
|
||||
if sw.Status >= 400 {
|
||||
if sw.Status >= http.StatusInternalServerError {
|
||||
httplog = httplog.With(
|
||||
slog.F("response_body", string(sw.ResponseBody())),
|
||||
)
|
||||
@ -47,7 +47,7 @@ func Logger(log slog.Logger) func(next http.Handler) http.Handler {
|
||||
// includes proxy errors etc. It also causes slogtest to fail
|
||||
// instantly without an error message by default.
|
||||
logLevelFn := httplog.Debug
|
||||
if sw.Status >= 400 {
|
||||
if sw.Status >= http.StatusInternalServerError {
|
||||
logLevelFn = httplog.Warn
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,11 @@ var (
|
||||
maxTerraformVersion = version.Must(version.NewVersion("1.3.0"))
|
||||
|
||||
terraformMinorVersionMismatch = xerrors.New("Terraform binary minor version mismatch.")
|
||||
|
||||
installTerraform sync.Once
|
||||
installTerraformExecPath string
|
||||
// nolint:errname
|
||||
installTerraformError error
|
||||
)
|
||||
|
||||
const (
|
||||
@ -93,18 +98,21 @@ func Serve(ctx context.Context, options *ServeOptions) error {
|
||||
return xerrors.Errorf("absolute binary context canceled: %w", err)
|
||||
}
|
||||
|
||||
installer := &releases.ExactVersion{
|
||||
InstallDir: options.CachePath,
|
||||
Product: product.Terraform,
|
||||
Version: TerraformVersion,
|
||||
// We don't want to install Terraform multiple times!
|
||||
installTerraform.Do(func() {
|
||||
installer := &releases.ExactVersion{
|
||||
InstallDir: options.CachePath,
|
||||
Product: product.Terraform,
|
||||
Version: TerraformVersion,
|
||||
}
|
||||
installer.SetLogger(slog.Stdlib(ctx, options.Logger, slog.LevelDebug))
|
||||
options.Logger.Debug(ctx, "installing terraform", slog.F("dir", options.CachePath), slog.F("version", TerraformVersion))
|
||||
installTerraformExecPath, installTerraformError = installer.Install(ctx)
|
||||
})
|
||||
if installTerraformError != nil {
|
||||
return xerrors.Errorf("install terraform: %w", installTerraformError)
|
||||
}
|
||||
installer.SetLogger(slog.Stdlib(ctx, options.Logger, slog.LevelDebug))
|
||||
options.Logger.Info(ctx, "installing terraform", slog.F("dir", options.CachePath), slog.F("version", TerraformVersion))
|
||||
execPath, err := installer.Install(ctx)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("install terraform: %w", err)
|
||||
}
|
||||
options.BinaryPath = execPath
|
||||
options.BinaryPath = installTerraformExecPath
|
||||
} else {
|
||||
options.BinaryPath = absoluteBinary
|
||||
}
|
||||
|
Reference in New Issue
Block a user