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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy