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

Commitb163bc7

Browse files
authored
fix(support): correctly rename existing agent connection info, add real netcheck (#12946)
1 parentc5367c2 commitb163bc7

File tree

4 files changed

+49
-31
lines changed

4 files changed

+49
-31
lines changed

‎cli/support.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -232,20 +232,21 @@ func findAgent(agentName string, haystack []codersdk.WorkspaceResource) (*coders
232232
funcwriteBundle(src*support.Bundle,dest*zip.Writer)error {
233233
// We JSON-encode the following:
234234
fork,v:=rangemap[string]any{
235-
"deployment/buildinfo.json":src.Deployment.BuildInfo,
236-
"deployment/config.json":src.Deployment.Config,
237-
"deployment/experiments.json":src.Deployment.Experiments,
238-
"deployment/health.json":src.Deployment.HealthReport,
239-
"network/netcheck.json":src.Network.Netcheck,
240-
"workspace/workspace.json":src.Workspace.Workspace,
241235
"agent/agent.json":src.Agent.Agent,
242236
"agent/listening_ports.json":src.Agent.ListeningPorts,
243237
"agent/manifest.json":src.Agent.Manifest,
244238
"agent/peer_diagnostics.json":src.Agent.PeerDiagnostics,
245239
"agent/ping_result.json":src.Agent.PingResult,
240+
"deployment/buildinfo.json":src.Deployment.BuildInfo,
241+
"deployment/config.json":src.Deployment.Config,
242+
"deployment/experiments.json":src.Deployment.Experiments,
243+
"deployment/health.json":src.Deployment.HealthReport,
244+
"network/connection_info.json":src.Network.ConnectionInfo,
245+
"network/netcheck.json":src.Network.Netcheck,
246246
"workspace/template.json":src.Workspace.Template,
247247
"workspace/template_version.json":src.Workspace.TemplateVersion,
248248
"workspace/parameters.json":src.Workspace.Parameters,
249+
"workspace/workspace.json":src.Workspace.Workspace,
249250
} {
250251
f,err:=dest.Create(k)
251252
iferr!=nil {
@@ -265,17 +266,17 @@ func writeBundle(src *support.Bundle, dest *zip.Writer) error {
265266

266267
// The below we just write as we have them:
267268
fork,v:=rangemap[string]string{
268-
"network/coordinator_debug.html":src.Network.CoordinatorDebug,
269-
"network/tailnet_debug.html":src.Network.TailnetDebug,
270-
"workspace/build_logs.txt":humanizeBuildLogs(src.Workspace.BuildLogs),
271269
"agent/logs.txt":string(src.Agent.Logs),
272270
"agent/agent_magicsock.html":string(src.Agent.AgentMagicsockHTML),
273271
"agent/client_magicsock.html":string(src.Agent.ClientMagicsockHTML),
274272
"agent/startup_logs.txt":humanizeAgentLogs(src.Agent.StartupLogs),
275273
"agent/prometheus.txt":string(src.Agent.Prometheus),
276-
"workspace/template_file.zip":string(templateVersionBytes),
277-
"logs.txt":strings.Join(src.Logs,"\n"),
278274
"cli_logs.txt":string(src.CLILogs),
275+
"logs.txt":strings.Join(src.Logs,"\n"),
276+
"network/coordinator_debug.html":src.Network.CoordinatorDebug,
277+
"network/tailnet_debug.html":src.Network.TailnetDebug,
278+
"workspace/build_logs.txt":humanizeBuildLogs(src.Workspace.BuildLogs),
279+
"workspace/template_file.zip":string(templateVersionBytes),
279280
} {
280281
f,err:=dest.Create(k)
281282
iferr!=nil {

‎cli/support_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/coder/coder/v2/coderd/database"
2424
"github.com/coder/coder/v2/coderd/database/dbfake"
2525
"github.com/coder/coder/v2/coderd/database/dbtime"
26+
"github.com/coder/coder/v2/coderd/healthcheck/derphealth"
2627
"github.com/coder/coder/v2/codersdk"
2728
"github.com/coder/coder/v2/codersdk/agentsdk"
2829
"github.com/coder/coder/v2/codersdk/healthsdk"
@@ -182,20 +183,20 @@ func assertBundleContents(t *testing.T, path string, wantWorkspace bool, wantAge
182183
varv healthsdk.HealthcheckReport
183184
decodeJSONFromZip(t,f,&v)
184185
require.NotEmpty(t,v,"health report should not be empty")
186+
case"network/connection_info.json":
187+
varv workspacesdk.AgentConnectionInfo
188+
decodeJSONFromZip(t,f,&v)
189+
require.NotEmpty(t,v,"agent connection info should not be empty")
185190
case"network/coordinator_debug.html":
186191
bs:=readBytesFromZip(t,f)
187192
require.NotEmpty(t,bs,"coordinator debug should not be empty")
188193
case"network/tailnet_debug.html":
189194
bs:=readBytesFromZip(t,f)
190195
require.NotEmpty(t,bs,"tailnet debug should not be empty")
191196
case"network/netcheck.json":
192-
varvworkspacesdk.AgentConnectionInfo
197+
varvderphealth.Report
193198
decodeJSONFromZip(t,f,&v)
194-
if!wantAgent||!wantWorkspace {
195-
require.Empty(t,v,"expected connection info to be empty")
196-
continue
197-
}
198-
require.NotEmpty(t,v,"connection info should not be empty")
199+
require.NotEmpty(t,v,"netcheck should not be empty")
199200
case"workspace/workspace.json":
200201
varv codersdk.Workspace
201202
decodeJSONFromZip(t,f,&v)

‎support/support.go

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import (
1313
"golang.org/x/sync/errgroup"
1414
"golang.org/x/xerrors"
1515
"tailscale.com/ipn/ipnstate"
16+
"tailscale.com/net/netcheck"
17+
18+
"github.com/coder/coder/v2/coderd/healthcheck/derphealth"
1619

1720
"github.com/google/uuid"
1821

@@ -46,9 +49,16 @@ type Deployment struct {
4649
}
4750

4851
typeNetworkstruct {
49-
CoordinatorDebugstring`json:"coordinator_debug"`
50-
TailnetDebugstring`json:"tailnet_debug"`
51-
Netcheck*workspacesdk.AgentConnectionInfo`json:"netcheck"`
52+
ConnectionInfo workspacesdk.AgentConnectionInfo
53+
CoordinatorDebugstring`json:"coordinator_debug"`
54+
Netcheck*derphealth.Report`json:"netcheck"`
55+
TailnetDebugstring`json:"tailnet_debug"`
56+
}
57+
58+
typeNetcheckstruct {
59+
Report*netcheck.Report`json:"report"`
60+
Errorstring`json:"error"`
61+
Logs []string`json:"logs"`
5262
}
5363

5464
typeWorkspacestruct {
@@ -62,6 +72,7 @@ type Workspace struct {
6272

6373
typeAgentstruct {
6474
Agent*codersdk.WorkspaceAgent`json:"agent"`
75+
ConnectionInfo*workspacesdk.AgentConnectionInfo`json:"connection_info"`
6576
ListeningPorts*codersdk.WorkspaceAgentListeningPortsResponse`json:"listening_ports"`
6677
Logs []byte`json:"logs"`
6778
ClientMagicsockHTML []byte`json:"client_magicsock_html"`
@@ -136,7 +147,7 @@ func DeploymentInfo(ctx context.Context, client *codersdk.Client, log slog.Logge
136147
returnd
137148
}
138149

139-
funcNetworkInfo(ctx context.Context,client*codersdk.Client,log slog.Logger,agentID uuid.UUID)Network {
150+
funcNetworkInfo(ctx context.Context,client*codersdk.Client,log slog.Logger)Network {
140151
var (
141152
nNetwork
142153
eg errgroup.Group
@@ -171,15 +182,18 @@ func NetworkInfo(ctx context.Context, client *codersdk.Client, log slog.Logger,
171182
})
172183

173184
eg.Go(func()error {
174-
ifagentID==uuid.Nil {
175-
log.Warn(ctx,"agent id required for agent connection info")
176-
returnnil
177-
}
178-
connInfo,err:=workspacesdk.New(client).AgentConnectionInfo(ctx,agentID)
185+
// Need connection info to get DERP map for netcheck
186+
connInfo,err:=workspacesdk.New(client).AgentConnectionInfoGeneric(ctx)
179187
iferr!=nil {
180-
returnxerrors.Errorf("fetch agent conn info: %w",err)
188+
log.Warn(ctx,"unable to fetch generic agent connection info")
189+
returnnil
181190
}
182-
n.Netcheck=&connInfo
191+
n.ConnectionInfo=connInfo
192+
varrpt derphealth.Report
193+
rpt.Run(ctx,&derphealth.ReportOptions{
194+
DERPMap:connInfo.DERPMap,
195+
})
196+
n.Netcheck=&rpt
183197
returnnil
184198
})
185199

@@ -482,7 +496,7 @@ func Run(ctx context.Context, d *Deps) (*Bundle, error) {
482496
returnnil
483497
})
484498
eg.Go(func()error {
485-
ni:=NetworkInfo(ctx,d.Client,d.Log,d.AgentID)
499+
ni:=NetworkInfo(ctx,d.Client,d.Log)
486500
b.Network=ni
487501
returnnil
488502
})

‎support/support_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ func TestRun(t *testing.T) {
6262
assertSanitizedDeploymentConfig(t,bun.Deployment.Config)
6363
assertNotNilNotEmpty(t,bun.Deployment.HealthReport,"deployment health report should be present")
6464
assertNotNilNotEmpty(t,bun.Deployment.Experiments,"deployment experiments should be present")
65+
assertNotNilNotEmpty(t,bun.Network.ConnectionInfo,"agent connection info should be present")
6566
assertNotNilNotEmpty(t,bun.Network.CoordinatorDebug,"network coordinator debug should be present")
66-
assertNotNilNotEmpty(t,bun.Network.TailnetDebug,"network tailnet debug should be present")
6767
assertNotNilNotEmpty(t,bun.Network.Netcheck,"network netcheck should be present")
68+
assertNotNilNotEmpty(t,bun.Network.TailnetDebug,"network tailnet debug should be present")
6869
assertNotNilNotEmpty(t,bun.Workspace.Workspace,"workspace should be present")
6970
assertSanitizedWorkspace(t,bun.Workspace.Workspace)
7071
assertNotNilNotEmpty(t,bun.Workspace.BuildLogs,"workspace build logs should be present")
@@ -109,9 +110,10 @@ func TestRun(t *testing.T) {
109110
assertSanitizedDeploymentConfig(t,bun.Deployment.Config)
110111
assertNotNilNotEmpty(t,bun.Deployment.HealthReport,"deployment health report should be present")
111112
assertNotNilNotEmpty(t,bun.Deployment.Experiments,"deployment experiments should be present")
113+
assertNotNilNotEmpty(t,bun.Network.ConnectionInfo,"agent connection info should be present")
112114
assertNotNilNotEmpty(t,bun.Network.CoordinatorDebug,"network coordinator debug should be present")
115+
assertNotNilNotEmpty(t,bun.Network.Netcheck,"network netcheck should be present")
113116
assertNotNilNotEmpty(t,bun.Network.TailnetDebug,"network tailnet debug should be present")
114-
assert.Empty(t,bun.Network.Netcheck,"did not expect netcheck to be present")
115117
assert.Empty(t,bun.Workspace.Workspace,"did not expect workspace to be present")
116118
assert.Empty(t,bun.Agent,"did not expect agent to be present")
117119
assertNotNilNotEmpty(t,bun.Logs,"bundle logs should be present")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp