MCPcopy Index your code
hub / github.com/dagger/dagger / initializeDaggerSession

Method initializeDaggerSession

engine/server/session.go:314–365  ·  view source on GitHub ↗

requires that sess.stateMu is held

(
	clientMetadata *engine.ClientMetadata,
	sess *daggerSession,
	failureCleanups *cleanups.Cleanups,
)

Source from the content-addressed store, hash-verified

312
313// requires that sess.stateMu is held
314func (srv *Server) initializeDaggerSession(
315 clientMetadata *engine.ClientMetadata,
316 sess *daggerSession,
317 failureCleanups *cleanups.Cleanups,
318) error {
319 slog.Info("initializing new session", "session", clientMetadata.SessionID)
320 defer slog.Debug("initialized new session", "session", clientMetadata.SessionID)
321
322 sess.sessionID = clientMetadata.SessionID
323 sess.mainClientCallerID = clientMetadata.ClientID
324 sess.clients = map[string]*daggerClient{}
325 sess.attachables = newSessionAttachableManager()
326 sess.endpoints = map[string]http.Handler{}
327 sess.closingCtx, sess.cancelClosing = context.WithCancelCause(context.Background())
328 sess.shutdownCh = make(chan struct{})
329 sess.services = core.NewServices()
330 sess.authProvider = auth.NewRegistryAuthProvider()
331 sess.resolver = serverresolver.New(serverresolver.Opts{
332 Hosts: srv.registryHosts,
333 Auth: serverresolver.NewSessionAuthSource(
334 sess.authProvider,
335 func(ctx context.Context) (*grpc.ClientConn, error) {
336 return srv.sessionMainClientConn(ctx, sess)
337 },
338 ),
339 ContentStore: srv.contentStore,
340 LeaseManager: srv.leaseManager,
341 })
342 failureCleanups.Add("close session resolver", sess.resolver.Close)
343 sess.containers = map[bkgw.Container]struct{}{}
344 sess.dagqlCond = sync.NewCond(&sess.dagqlMu)
345 sess.telemetryPubSub = srv.telemetryPubSub
346 sess.interactive = clientMetadata.Interactive
347 sess.interactiveCommand = clientMetadata.InteractiveCommand
348 sess.allowedLLMModules = clientMetadata.AllowedLLMModules
349
350 sess.analytics = analytics.New(analytics.Config{
351 DoNotTrack: clientMetadata.DoNotTrack || analytics.DoNotTrack(),
352 Labels: enginetel.NewLabels(clientMetadata.Labels, nil, nil).
353 WithEngineLabel(srv.engineName).
354 WithServerLabels(
355 engine.Version,
356 runtime.GOOS,
357 runtime.GOARCH,
358 false,
359 ),
360 })
361 failureCleanups.Add("close session analytics", sess.analytics.Close)
362
363 sess.state = sessionStateInitialized
364 return nil
365}
366
367var errSessionClosing = errors.New("session is closing")
368

Callers 1

getOrInitClientMethod · 0.95

Calls 13

sessionMainClientConnMethod · 0.95
InfoFunction · 0.92
DebugFunction · 0.92
NewServicesFunction · 0.92
NewRegistryAuthProviderFunction · 0.92
NewFunction · 0.92
DoNotTrackFunction · 0.92
WithServerLabelsMethod · 0.80
WithEngineLabelMethod · 0.80
BackgroundMethod · 0.65
NewMethod · 0.65

Tested by

no test coverage detected