Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eca6381

Browse files
authored
feat(agent/agentcontainers): add more envs to readconfig for app URL building (#18603)
1 parent 634144f commit eca6381

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

agent/agent.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1166,7 +1166,7 @@ func (a *agent) handleManifest(manifestOK *checkpoint) func(ctx context.Context,
11661166
)
11671167
if a.devcontainers {
11681168
a.containerAPI.Init(
1169-
agentcontainers.WithManifestInfo(manifest.OwnerName, manifest.WorkspaceName),
1169+
agentcontainers.WithManifestInfo(manifest.OwnerName, manifest.WorkspaceName, manifest.AgentName),
11701170
agentcontainers.WithDevcontainers(manifest.Devcontainers, scripts),
11711171
agentcontainers.WithSubAgentClient(agentcontainers.NewSubAgentClientFromAPI(a.logger, aAPI)),
11721172
)

agent/agentcontainers/api.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ type API struct {
7171

7272
ownerName string
7373
workspaceName string
74+
parentAgent string
7475

7576
mu sync.RWMutex
7677
closed bool
@@ -188,10 +189,11 @@ func WithSubAgentEnv(env ...string) Option {
188189

189190
// WithManifestInfo sets the owner name, and workspace name
190191
// for the sub-agent.
191-
func WithManifestInfo(owner, workspace string) Option {
192+
func WithManifestInfo(owner, workspace, parentAgent string) Option {
192193
return func(api *API) {
193194
api.ownerName = owner
194195
api.workspaceName = workspace
196+
api.parentAgent = parentAgent
195197
}
196198
}
197199

@@ -1319,7 +1321,9 @@ func (api *API) maybeInjectSubAgentIntoContainerLocked(ctx context.Context, dc c
13191321
fmt.Sprintf("CODER_WORKSPACE_AGENT_NAME=%s", subAgentConfig.Name),
13201322
fmt.Sprintf("CODER_WORKSPACE_OWNER_NAME=%s", api.ownerName),
13211323
fmt.Sprintf("CODER_WORKSPACE_NAME=%s", api.workspaceName),
1324+
fmt.Sprintf("CODER_WORKSPACE_PARENT_AGENT_NAME=%s", api.parentAgent),
13221325
fmt.Sprintf("CODER_URL=%s", api.subAgentURL),
1326+
fmt.Sprintf("CONTAINER_ID=%s", container.ID),
13231327
}...),
13241328
)
13251329
}

agent/agentcontainers/api_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,7 +1393,7 @@ func TestAPI(t *testing.T) {
13931393
agentcontainers.WithSubAgentClient(fakeSAC),
13941394
agentcontainers.WithSubAgentURL("test-subagent-url"),
13951395
agentcontainers.WithDevcontainerCLI(fakeDCCLI),
1396-
agentcontainers.WithManifestInfo("test-user", "test-workspace"),
1396+
agentcontainers.WithManifestInfo("test-user", "test-workspace", "test-parent-agent"),
13971397
)
13981398
api.Init()
13991399
apiClose := func() {
@@ -1415,7 +1415,9 @@ func TestAPI(t *testing.T) {
14151415
assert.Contains(t, envs, "CODER_WORKSPACE_AGENT_NAME=coder")
14161416
assert.Contains(t, envs, "CODER_WORKSPACE_NAME=test-workspace")
14171417
assert.Contains(t, envs, "CODER_WORKSPACE_OWNER_NAME=test-user")
1418+
assert.Contains(t, envs, "CODER_WORKSPACE_PARENT_AGENT_NAME=test-parent-agent")
14181419
assert.Contains(t, envs, "CODER_URL=test-subagent-url")
1420+
assert.Contains(t, envs, "CONTAINER_ID=test-container-id")
14191421
return nil
14201422
})
14211423

@@ -1557,7 +1559,9 @@ func TestAPI(t *testing.T) {
15571559
assert.Contains(t, envs, "CODER_WORKSPACE_AGENT_NAME=coder")
15581560
assert.Contains(t, envs, "CODER_WORKSPACE_NAME=test-workspace")
15591561
assert.Contains(t, envs, "CODER_WORKSPACE_OWNER_NAME=test-user")
1562+
assert.Contains(t, envs, "CODER_WORKSPACE_PARENT_AGENT_NAME=test-parent-agent")
15601563
assert.Contains(t, envs, "CODER_URL=test-subagent-url")
1564+
assert.NotContains(t, envs, "CONTAINER_ID=test-container-id")
15611565
return nil
15621566
})
15631567

@@ -2134,7 +2138,7 @@ func TestAPI(t *testing.T) {
21342138
agentcontainers.WithSubAgentClient(fSAC),
21352139
agentcontainers.WithSubAgentURL("test-subagent-url"),
21362140
agentcontainers.WithWatcher(watcher.NewNoop()),
2137-
agentcontainers.WithManifestInfo("test-user", "test-workspace"),
2141+
agentcontainers.WithManifestInfo("test-user", "test-workspace", "test-parent-agent"),
21382142
)
21392143
api.Init()
21402144
defer api.Close()
@@ -2150,7 +2154,9 @@ func TestAPI(t *testing.T) {
21502154
assert.Contains(t, envs, "CODER_WORKSPACE_AGENT_NAME=coder")
21512155
assert.Contains(t, envs, "CODER_WORKSPACE_NAME=test-workspace")
21522156
assert.Contains(t, envs, "CODER_WORKSPACE_OWNER_NAME=test-user")
2157+
assert.Contains(t, envs, "CODER_WORKSPACE_PARENT_AGENT_NAME=test-parent-agent")
21532158
assert.Contains(t, envs, "CODER_URL=test-subagent-url")
2159+
assert.Contains(t, envs, "CONTAINER_ID=test-container-id")
21542160
// First call should not have feature envs.
21552161
assert.NotContains(t, envs, "FEATURE_CODE_SERVER_OPTION_PORT=9090")
21562162
assert.NotContains(t, envs, "FEATURE_DOCKER_IN_DOCKER_OPTION_MOBY=false")
@@ -2161,7 +2167,9 @@ func TestAPI(t *testing.T) {
21612167
assert.Contains(t, envs, "CODER_WORKSPACE_AGENT_NAME=coder")
21622168
assert.Contains(t, envs, "CODER_WORKSPACE_NAME=test-workspace")
21632169
assert.Contains(t, envs, "CODER_WORKSPACE_OWNER_NAME=test-user")
2170+
assert.Contains(t, envs, "CODER_WORKSPACE_PARENT_AGENT_NAME=test-parent-agent")
21642171
assert.Contains(t, envs, "CODER_URL=test-subagent-url")
2172+
assert.Contains(t, envs, "CONTAINER_ID=test-container-id")
21652173
// Second call should have feature envs from the first config read.
21662174
assert.Contains(t, envs, "FEATURE_CODE_SERVER_OPTION_PORT=9090")
21672175
assert.Contains(t, envs, "FEATURE_DOCKER_IN_DOCKER_OPTION_MOBY=false")

0 commit comments

Comments
 (0)