MCPcopy Index your code
hub / github.com/coder/envbox / newAgentClientV2

Function newAgentClientV2

buildlog/coder.go:108–145  ·  view source on GitHub ↗
(ctx context.Context, logger slog.Logger, client *agentsdk.Client)

Source from the content-addressed store, hash-verified

106}
107
108func newAgentClientV2(ctx context.Context, logger slog.Logger, client *agentsdk.Client) (CoderClient, error) {
109 cctx, cancel := context.WithCancel(ctx)
110 uid := uuid.New()
111 ls := agentsdk.NewLogSender(logger)
112 sl := ls.GetScriptLogger(uid)
113
114 var conn drpc.Conn
115 var err error
116 for r := retry.New(10*time.Millisecond, time.Second); r.Wait(ctx); {
117 conn, err = client.ConnectRPC(ctx)
118 if err != nil {
119 logger.Error(ctx, "connect err", slog.Error(err))
120 continue
121 }
122 break
123 }
124 if conn == nil {
125 cancel()
126 return nil, xerrors.Errorf("connect rpc: %w", err)
127 }
128
129 arpc := proto.NewDRPCAgentClient(conn)
130 go func() {
131 err := ls.SendLoop(ctx, arpc)
132 if err != nil {
133 logger.Error(ctx, "send loop", slog.Error(err))
134 }
135 }()
136
137 return &agentClientV2{
138 ctx: cctx,
139 cancel: cancel,
140 source: uid,
141 ls: ls,
142 sl: sl,
143 log: logger,
144 }, nil
145}
146
147func OpenCoderClient(ctx context.Context, logger slog.Logger, accessURL *url.URL, hc *http.Client, token string) (CoderClient, error) {
148 client := agentsdk.New(accessURL, agentsdk.WithFixedToken(token))

Callers 1

OpenCoderClientFunction · 0.85

Calls 3

ErrorMethod · 0.65
ErrorfMethod · 0.65
WaitMethod · 0.45

Tested by

no test coverage detected