Skip to content

Commit 0945873

Browse files
committed
fix of pr167 & zd4391
1 parent e516446 commit 0945873

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

registry/coder/modules/jetbrains-gateway/main.test.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe("jetbrains-gateway", async () => {
2020
folder: "/home/coder",
2121
});
2222
expect(state.outputs.url.value).toBe(
23-
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz&agent_id=foo",
23+
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz",
2424
);
2525

2626
const coder_app = state.resources.find(
@@ -41,3 +41,14 @@ describe("jetbrains-gateway", async () => {
4141
expect(state.outputs.identifier.value).toBe("IU");
4242
});
4343
});
44+
it("optionally includes agent_id when embed_agent_id is true", async () => {
45+
const state = await runTerraformApply(import.meta.dir, {
46+
agent_id: "foo",
47+
folder: "/home/coder",
48+
embed_agent_id: true,
49+
});
50+
51+
expect(state.outputs.url.value).toBe(
52+
"jetbrains-gateway://connect#type=coder&workspace=default&owner=default&folder=/home/coder&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=243.21565.193&ide_download_link=https://download.jetbrains.com/idea/ideaIU-2024.3.tar.gz&agent_id=foo",
53+
);
54+
});

registry/coder/modules/jetbrains-gateway/main.tf

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ variable "group" {
6868
default = null
6969
}
7070

71+
variable "embed_agent_id" {
72+
type = bool
73+
description = "Append the agent_id to the JetBrains Gateway URL for when support for multiple agents is required."
74+
default = false
75+
}
76+
7177
variable "coder_parameter_order" {
7278
type = number
7379
description = "The order determines the position of a template parameter in the UI/CLI presentation. The lowest order is shown first and parameters with equal order are sorted by name (ascending order)."
@@ -331,7 +337,7 @@ resource "coder_app" "gateway" {
331337
external = true
332338
order = var.order
333339
group = var.group
334-
url = join("", [
340+
url = join("", concat([
335341
"jetbrains-gateway://connect#type=coder&workspace=",
336342
data.coder_workspace.me.name,
337343
"&owner=",
@@ -348,9 +354,7 @@ resource "coder_app" "gateway" {
348354
local.build_number,
349355
"&ide_download_link=",
350356
local.download_link,
351-
"&agent_id=",
352-
var.agent_id,
353-
])
357+
], var.embed_agent_id && trimspace(var.agent_id) != "" ? ["&agent_id=", var.agent_id] : []))
354358
}
355359

356360
output "identifier" {

0 commit comments

Comments
 (0)