From cb4b8cf129e5db3cd960564a60147fbdf6d4dac4 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 7 Feb 2024 14:01:38 +0100 Subject: [PATCH 1/3] feat: add order property to agent_metadata --- docs/resources/agent.md | 1 + examples/resources/coder_agent/resource.tf | 17 +++++++++++++++++ provider/agent.go | 5 +++++ provider/agent_test.go | 2 ++ 4 files changed, 25 insertions(+) diff --git a/docs/resources/agent.md b/docs/resources/agent.md index 7e20ade4..066b21f6 100644 --- a/docs/resources/agent.md +++ b/docs/resources/agent.md @@ -97,4 +97,5 @@ Required: Optional: - `display_name` (String) The user-facing name of this value. +- `order` (Number) The order determines the position of agent metadata in the UI/CLI presentation. The lowest order is shown first and parameters with equal order are sorted by key (ascending order). - `timeout` (Number) The maximum time the command is allowed to run in seconds. diff --git a/examples/resources/coder_agent/resource.tf b/examples/resources/coder_agent/resource.tf index d5235a18..0ed69ea3 100644 --- a/examples/resources/coder_agent/resource.tf +++ b/examples/resources/coder_agent/resource.tf @@ -11,6 +11,23 @@ resource "coder_agent" "dev" { web_terminal = true ssh_helper = false } + + metadata { + display_name = "CPU Usage" + key = "cpu_usage" + script = "coder stat cpu" + interval = 10 + timeout = 1 + order = 2 + } + metadata { + display_name = "RAM Usage" + key = "ram_usage" + script = "coder stat mem" + interval = 10 + timeout = 1 + order = 1 + } } resource "kubernetes_pod" "dev" { diff --git a/provider/agent.go b/provider/agent.go index 4ba3f706..cdeca50e 100644 --- a/provider/agent.go +++ b/provider/agent.go @@ -239,6 +239,11 @@ func agentResource() *schema.Resource { ForceNew: true, Required: true, }, + "order": { + Type: schema.TypeInt, + Optional: true, + Description: "The order determines the position of agent metadata in the UI/CLI presentation. The lowest order is shown first and parameters with equal order are sorted by key (ascending order).", + }, }, }, }, diff --git a/provider/agent_test.go b/provider/agent_test.go index a68b6580..afbaa05c 100644 --- a/provider/agent_test.go +++ b/provider/agent_test.go @@ -39,6 +39,7 @@ func TestAgent(t *testing.T) { motd_file = "/etc/motd" shutdown_script = "echo bye bye" shutdown_script_timeout = 120 + order = 7 } `, Check: func(state *terraform.State) error { @@ -60,6 +61,7 @@ func TestAgent(t *testing.T) { "motd_file", "shutdown_script", "shutdown_script_timeout", + "order", } { value := resource.Primary.Attributes[key] t.Logf("%q = %q", key, value) From 115be1c4f032f20f601a7de822db140eb8997a47 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 7 Feb 2024 14:10:07 +0100 Subject: [PATCH 2/3] gen --- docs/resources/agent.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/resources/agent.md b/docs/resources/agent.md index 066b21f6..d465c173 100644 --- a/docs/resources/agent.md +++ b/docs/resources/agent.md @@ -26,6 +26,23 @@ resource "coder_agent" "dev" { web_terminal = true ssh_helper = false } + + metadata { + display_name = "CPU Usage" + key = "cpu_usage" + script = "coder stat cpu" + interval = 10 + timeout = 1 + order = 2 + } + metadata { + display_name = "RAM Usage" + key = "ram_usage" + script = "coder stat mem" + interval = 10 + timeout = 1 + order = 1 + } } resource "kubernetes_pod" "dev" { From a133b26b3e838c4ec92ababfbeb15683cf544fb8 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 7 Feb 2024 14:19:43 +0100 Subject: [PATCH 3/3] fix tests --- provider/agent_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/provider/agent_test.go b/provider/agent_test.go index afbaa05c..f70a7f90 100644 --- a/provider/agent_test.go +++ b/provider/agent_test.go @@ -39,7 +39,6 @@ func TestAgent(t *testing.T) { motd_file = "/etc/motd" shutdown_script = "echo bye bye" shutdown_script_timeout = 120 - order = 7 } `, Check: func(state *terraform.State) error { @@ -61,7 +60,6 @@ func TestAgent(t *testing.T) { "motd_file", "shutdown_script", "shutdown_script_timeout", - "order", } { value := resource.Primary.Attributes[key] t.Logf("%q = %q", key, value) @@ -227,6 +225,7 @@ func TestAgent_Metadata(t *testing.T) { script = "ps aux | wc -l" interval = 5 timeout = 1 + order = 7 } } `, @@ -246,6 +245,7 @@ func TestAgent_Metadata(t *testing.T) { require.Equal(t, "ps aux | wc -l", attr["metadata.0.script"]) require.Equal(t, "5", attr["metadata.0.interval"]) require.Equal(t, "1", attr["metadata.0.timeout"]) + require.Equal(t, "7", attr["metadata.0.order"]) return nil }, }},