Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite81d2b5

Browse files
committed
feat: use agent v2 API to fetch manifest
1 parent60b8ac5 commite81d2b5

File tree

4 files changed

+21
-39
lines changed

4 files changed

+21
-39
lines changed

‎agent/agent.go‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ type Options struct {
8888
}
8989

9090
typeClientinterface {
91-
Manifest(ctx context.Context) (agentsdk.Manifest,error)
9291
Listen(ctx context.Context) (drpc.Conn,error)
9392
ReportStats(ctx context.Context,log slog.Logger,statsChan<-chan*agentsdk.Stats,setIntervalfunc(time.Duration)) (io.Closer,error)
9493
PostLifecycle(ctx context.Context,state agentsdk.PostLifecycleRequest)error
@@ -713,12 +712,16 @@ func (a *agent) run(ctx context.Context) error {
713712
serviceBanner:=agentsdk.ServiceBannerFromProto(sbp)
714713
a.serviceBanner.Store(&serviceBanner)
715714

716-
manifest,err:=a.client.Manifest(ctx)
715+
mp,err:=aAPI.GetManifest(ctx,&proto.GetManifestRequest{})
717716
iferr!=nil {
718717
returnxerrors.Errorf("fetch metadata: %w",err)
719718
}
720-
a.logger.Info(ctx,"fetched manifest",slog.F("manifest",manifest))
721-
719+
a.logger.Info(ctx,"fetched manifest",slog.F("manifest",mp))
720+
manifest,err:=agentsdk.ManifestFromProto(mp)
721+
iferr!=nil {
722+
a.logger.Critical(ctx,"failed to convert manifest",slog.F("manifest",mp),slog.Error(err))
723+
returnxerrors.Errorf("convert manifest: %w",err)
724+
}
722725
ifmanifest.AgentID==uuid.Nil {
723726
returnxerrors.New("nil agentID returned by manifest")
724727
}

‎agent/agent_test.go‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,6 +2039,9 @@ func setupAgent(t *testing.T, metadata agentsdk.Manifest, ptyTimeout time.Durati
20392039
ifmetadata.WorkspaceName=="" {
20402040
metadata.WorkspaceName="test-workspace"
20412041
}
2042+
ifmetadata.WorkspaceID==uuid.Nil {
2043+
metadata.WorkspaceID=uuid.New()
2044+
}
20422045
coordinator:=tailnet.NewCoordinator(logger)
20432046
t.Cleanup(func() {
20442047
_=coordinator.Close()

‎agent/agenttest/client.go‎

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ func NewClient(t testing.TB,
4949
}
5050
err:=proto.DRPCRegisterTailnet(mux,drpcService)
5151
require.NoError(t,err)
52-
fakeAAPI:=NewFakeAgentAPI(t,logger)
52+
mp,err:=agentsdk.ProtoFromManifest(manifest)
53+
require.NoError(t,err)
54+
fakeAAPI:=NewFakeAgentAPI(t,logger,mp)
5355
err=agentproto.DRPCRegisterAgent(mux,fakeAAPI)
5456
require.NoError(t,err)
5557
server:=drpcserver.NewWithOptions(mux, drpcserver.Options{
@@ -64,7 +66,6 @@ func NewClient(t testing.TB,
6466
t:t,
6567
logger:logger.Named("client"),
6668
agentID:agentID,
67-
manifest:manifest,
6869
statsChan:statsChan,
6970
coordinator:coordinator,
7071
server:server,
@@ -77,7 +78,6 @@ type Client struct {
7778
t testing.TB
7879
logger slog.Logger
7980
agentID uuid.UUID
80-
manifest agentsdk.Manifest
8181
metadatamap[string]agentsdk.Metadata
8282
statsChanchan*agentsdk.Stats
8383
coordinator tailnet.Coordinator
@@ -98,10 +98,6 @@ func (c *Client) Close() {
9898
c.derpMapOnce.Do(func() {close(c.derpMapUpdates) })
9999
}
100100

101-
func (c*Client)Manifest(_ context.Context) (agentsdk.Manifest,error) {
102-
returnc.manifest,nil
103-
}
104-
105101
func (c*Client)Listen(ctx context.Context) (drpc.Conn,error) {
106102
conn,lis:=drpcsdk.MemTransportPipe()
107103
c.LastWorkspaceAgent=func() {
@@ -252,12 +248,13 @@ type FakeAgentAPI struct {
252248
t testing.TB
253249
logger slog.Logger
254250

251+
manifest*agentproto.Manifest
252+
255253
getServiceBannerFuncfunc() (codersdk.ServiceBannerConfig,error)
256254
}
257255

258-
func (*FakeAgentAPI)GetManifest(context.Context,*agentproto.GetManifestRequest) (*agentproto.Manifest,error) {
259-
// TODO implement me
260-
panic("implement me")
256+
func (f*FakeAgentAPI)GetManifest(context.Context,*agentproto.GetManifestRequest) (*agentproto.Manifest,error) {
257+
returnf.manifest,nil
261258
}
262259

263260
func (f*FakeAgentAPI)SetServiceBannerFunc(fnfunc() (codersdk.ServiceBannerConfig,error)) {
@@ -310,9 +307,10 @@ func (*FakeAgentAPI) BatchCreateLogs(context.Context, *agentproto.BatchCreateLog
310307
panic("implement me")
311308
}
312309

313-
funcNewFakeAgentAPI(t testing.TB,logger slog.Logger)*FakeAgentAPI {
310+
funcNewFakeAgentAPI(t testing.TB,logger slog.Logger,manifest*agentproto.Manifest)*FakeAgentAPI {
314311
return&FakeAgentAPI{
315-
t:t,
316-
logger:logger.Named("FakeAgentAPI"),
312+
t:t,
313+
logger:logger.Named("FakeAgentAPI"),
314+
manifest:manifest,
317315
}
318316
}

‎codersdk/agentsdk/agentsdk.go‎

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -135,28 +135,6 @@ type Script struct {
135135
Scriptstring`json:"script"`
136136
}
137137

138-
// Manifest fetches manifest for the currently authenticated workspace agent.
139-
func (c*Client)Manifest(ctx context.Context) (Manifest,error) {
140-
res,err:=c.SDK.Request(ctx,http.MethodGet,"/api/v2/workspaceagents/me/manifest",nil)
141-
iferr!=nil {
142-
returnManifest{},err
143-
}
144-
deferres.Body.Close()
145-
ifres.StatusCode!=http.StatusOK {
146-
returnManifest{},codersdk.ReadBodyAsError(res)
147-
}
148-
varagentMetaManifest
149-
err=json.NewDecoder(res.Body).Decode(&agentMeta)
150-
iferr!=nil {
151-
returnManifest{},err
152-
}
153-
err=c.rewriteDerpMap(agentMeta.DERPMap)
154-
iferr!=nil {
155-
returnManifest{},err
156-
}
157-
returnagentMeta,nil
158-
}
159-
160138
// rewriteDerpMap rewrites the DERP map to use the access URL of the SDK as the
161139
// "embedded relay" access URL. The passed derp map is modified in place.
162140
//

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp