Skip to content

Commit 3ae65f9

Browse files
Use CombinedLogger in workspace credentials server, fix git ts handler response type
1 parent 6e0d7db commit 3ae65f9

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

pkg/credentials/server.go

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,58 @@ import (
1616
"github.com/loft-sh/devpod/pkg/agent/tunnel"
1717
locald "github.com/loft-sh/devpod/pkg/daemon/platform"
1818
workspaced "github.com/loft-sh/devpod/pkg/daemon/workspace"
19+
devpodlog "github.com/loft-sh/devpod/pkg/log"
1920
"github.com/loft-sh/devpod/pkg/ts"
2021
"github.com/loft-sh/log"
2122
"github.com/pkg/errors"
23+
"github.com/sirupsen/logrus"
2224
)
2325

24-
const DefaultPort = "12049"
25-
const CredentialsServerPortEnv = "DEVPOD_CREDENTIALS_SERVER_PORT"
26+
const (
27+
DefaultPort = "12049"
28+
CredentialsServerPortEnv = "DEVPOD_CREDENTIALS_SERVER_PORT"
29+
CredentialsServerLogFile = "devpod-credentials-server.log"
30+
)
2631

2732
// RunCredentialsServer starts a credentials server inside the DevPod workspace.
2833
func RunCredentialsServer(
2934
ctx context.Context,
3035
port int,
3136
client tunnel.TunnelClient,
3237
clientHost string,
33-
log log.Logger,
38+
logger log.Logger,
3439
) error {
40+
logPath := filepath.Join("/tmp", CredentialsServerLogFile)
41+
fileLogger := log.NewFileLogger(logPath, logrus.DebugLevel)
42+
combinedLogger := devpodlog.NewCombinedLogger(logrus.DebugLevel, logger, fileLogger)
43+
3544
var handler http.Handler = http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
36-
log.Debugf("Incoming client connection at %s", request.URL.Path)
45+
combinedLogger.Debugf("Incoming client connection at %s", request.URL.Path)
3746
if request.URL.Path == "/git-credentials" {
38-
err := handleGitCredentialsRequest(ctx, writer, request, client, clientHost, log)
47+
err := handleGitCredentialsRequest(ctx, writer, request, client, clientHost, combinedLogger)
3948
if err != nil {
4049
http.Error(writer, err.Error(), http.StatusInternalServerError)
4150
return
4251
}
4352
} else if request.URL.Path == "/docker-credentials" {
44-
err := handleDockerCredentialsRequest(ctx, writer, request, client, log)
53+
err := handleDockerCredentialsRequest(ctx, writer, request, client, combinedLogger)
4554
if err != nil {
4655
http.Error(writer, err.Error(), http.StatusInternalServerError)
4756
return
4857
}
4958
} else if request.URL.Path == "/git-ssh-signature" {
50-
err := handleGitSSHSignatureRequest(ctx, writer, request, client, log)
59+
err := handleGitSSHSignatureRequest(ctx, writer, request, client, combinedLogger)
5160
if err != nil {
5261
http.Error(writer, err.Error(), http.StatusInternalServerError)
5362
return
5463
}
5564
} else if request.URL.Path == "/loft-platform-credentials" {
56-
err := handleLoftPlatformCredentialsRequest(ctx, writer, request, client, log)
65+
err := handleLoftPlatformCredentialsRequest(ctx, writer, request, client, combinedLogger)
5766
if err != nil {
5867
http.Error(writer, err.Error(), http.StatusInternalServerError)
5968
}
6069
} else if request.URL.Path == "/gpg-public-keys" {
61-
err := handleGPGPublicKeysRequest(ctx, writer, request, client, log)
70+
err := handleGPGPublicKeysRequest(ctx, writer, request, client, combinedLogger)
6271
if err != nil {
6372
http.Error(writer, err.Error(), http.StatusInternalServerError)
6473
}
@@ -70,7 +79,7 @@ func RunCredentialsServer(
7079

7180
errChan := make(chan error, 1)
7281
go func() {
73-
log.Debugf("Credentials server started on port %d...", port)
82+
combinedLogger.Debugf("Credentials server started on port %d...", port)
7483

7584
// always returns error. ErrServerClosed on graceful close
7685
if err := srv.ListenAndServe(); err != http.ErrServerClosed {
@@ -192,7 +201,8 @@ func handleGitCredentialsOverTSNet(ctx context.Context, writer http.ResponseWrit
192201
log.Infof("Response: %s", string(respBody))
193202

194203
// Write the response back to the original response.
195-
writer.WriteHeader(resp.StatusCode)
204+
writer.Header().Set("Content-Type", "application/json")
205+
writer.WriteHeader(http.StatusOK)
196206
if _, err := writer.Write(respBody); err != nil {
197207
log.Errorf("Error writing response to client: %v", err)
198208
return errors.Wrap(err, "write response")

0 commit comments

Comments
 (0)