summaryrefslogtreecommitdiff
path: root/internal/command/command_test.go
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2021-05-14 16:47:16 +0100
committerNick Thomas <nick@gitlab.com>2021-05-17 15:52:55 +0100
commitde13980f3795679958a65881a813723da37894f5 (patch)
treed7968570d5ae972a737ceded3caf5d16dab484e7 /internal/command/command_test.go
parentbc93a437b6cabb64360edfa698dacb4cc3ef02fe (diff)
downloadgitlab-shell-de13980f3795679958a65881a813723da37894f5.tar.gz
Fix opentracing setup for gitlab-sshd
Previously, opentracing (if configured) was initialized late in the gitlab-shell process's lifespan, coming just before making a gRPC call to Gitaly. By moving the opentracing initialization to be at process startup, we make it available for the whole process lifecycle, which is very useful to gitlab-sshd, as it means we'll only call tracing.Initialize() once on process startup, rather than once per SSH connection. To get this working, we need to introduce a context to gitlab-sshd. This carries the client/service name, but also carries an initial correlation ID. The main outcome of this is that all calls to the authorized_keys endpoint from a given gitlab-sshd process will now share a correlation ID. I don't have a strong opinion about this either way. Changelog: fixed
Diffstat (limited to 'internal/command/command_test.go')
-rw-r--r--internal/command/command_test.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/internal/command/command_test.go b/internal/command/command_test.go
index a70ea84..3617d39 100644
--- a/internal/command/command_test.go
+++ b/internal/command/command_test.go
@@ -168,7 +168,7 @@ func TestFailingNew(t *testing.T) {
}
}
-func TestContextWithCorrelationID(t *testing.T) {
+func TestSetup(t *testing.T) {
testCases := []struct {
name string
additionalEnv map[string]string
@@ -190,16 +190,20 @@ func TestContextWithCorrelationID(t *testing.T) {
resetEnvironment := addAdditionalEnv(tc.additionalEnv)
defer resetEnvironment()
- ctx, finished := ContextWithCorrelationID()
+ ctx, finished := Setup("foo", &config.Config{})
+ defer finished()
+
require.NotNil(t, ctx, "ctx is nil")
require.NotNil(t, finished, "finished is nil")
+
correlationID := correlation.ExtractFromContext(ctx)
require.NotEmpty(t, correlationID)
-
if tc.expectedCorrelationID != "" {
require.Equal(t, tc.expectedCorrelationID, correlationID)
}
- defer finished()
+
+ clientName := correlation.ExtractClientNameFromContext(ctx)
+ require.Equal(t, "foo", clientName)
})
}
}