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

Method initializeDaggerClient

engine/server/session.go:530–722  ·  view source on GitHub ↗

requires that client.stateMu is held

(
	ctx context.Context,
	client *daggerClient,
	opts *ClientInitOpts,
)

Source from the content-addressed store, hash-verified

528
529// requires that client.stateMu is held
530func (srv *Server) initializeDaggerClient(
531 ctx context.Context,
532 client *daggerClient,
533 opts *ClientInitOpts,
534) error {
535 slog := slog.With(
536 "isMainClient", client.clientID == client.daggerSession.mainClientCallerID,
537 "sessionID", client.daggerSession.sessionID,
538 "clientID", client.clientID,
539 "mainClientID", client.daggerSession.mainClientCallerID,
540 )
541 slog.Info("initializing new client")
542 var callerG singleflight.Group[string, engineutil.SessionCaller]
543 client.getClientCaller = func(ctx context.Context, id string) (engineutil.SessionCaller, error) {
544 ctx, cancel := context.WithTimeout(context.WithoutCancel(ctx), 10*time.Second)
545 defer cancel()
546 caller, _, err := callerG.Do(ctx, id, func(ctx context.Context) (engineutil.SessionCaller, error) {
547 return client.daggerSession.attachables.Wait(ctx, id)
548 })
549 return caller, err
550 }
551 client.hostServiceProxyClientID = opts.HostServiceProxyClientID
552 client.getHostServiceCaller = func(ctx context.Context, id string) (engineutil.SessionCaller, error) {
553 return client.resolveHostServiceCaller(ctx, id)
554 }
555
556 var err error
557 client.dialer = &net.Dialer{
558 Resolver: &net.Resolver{
559 PreferGo: true,
560 Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
561 if len(srv.dns.Nameservers) == 0 {
562 return nil, errors.New("no nameservers configured")
563 }
564
565 var errs []error
566 for _, ns := range srv.dns.Nameservers {
567 conn, err := client.dialer.DialContext(ctx, network, net.JoinHostPort(ns, "53"))
568 if err != nil {
569 errs = append(errs, err)
570 continue
571 }
572
573 return conn, nil
574 }
575
576 return nil, errors.Join(errs...)
577 },
578 },
579 }
580
581 engineUtilOpts := *srv.engineUtilOpts
582 engineUtilOpts.Dialer = client.dialer
583 engineUtilOpts.GetClientCaller = client.getClientCaller
584 engineUtilOpts.GetHostServiceCaller = client.getHostServiceCaller
585 engineUtilOpts.GetMainClientCaller = client.getMainClientCaller
586 engineUtilOpts.GetRegistryResolver = srv.RegistryResolver
587 engineUtilOpts.Interactive = client.daggerSession.interactive

Callers 1

getOrInitClientMethod · 0.95

Calls 15

getCoreSchemaBaseMethod · 0.95
WithFunction · 0.92
InfoFunction · 0.92
NewClientFunction · 0.92
NewRootFunction · 0.92
ContextWithQueryFunction · 0.92
ViewTypeAlias · 0.92
BaseVersionFunction · 0.92
NormalizeVersionFunction · 0.92
NewSchemaBuilderFunction · 0.92

Tested by

no test coverage detected