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

Commit90633db

Browse files
feat: addenabled computed field tocoder_ai_task
As discussed, we want to enable a way for consumers to know if theirtemplate is being provisioned as a task or not. We know that`CODER_TASK_ID` is set by the provisioner, it is being provisioned asa task, and not as a usual workspace. We use this knowledge to seta computed field `enabled` to reflect this.fix: testsfix: maybe fix?does this fix it?
1 parentfc9724b commit90633db

File tree

5 files changed

+78
-15
lines changed

5 files changed

+78
-15
lines changed

‎docs/resources/ai_task.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Use this resource to define Coder tasks.
2222

2323
###Read-Only
2424

25+
-`enabled` (Boolean) The field is true if the template is being provisioned as a task.
2526
-`id` (String) A unique identifier for this resource.
2627
-`prompt` (String) The prompt text provided to the task by Coder.
2728

‎integration/coder-ai-task/main.tf‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ resource "coder_ai_task" "task" {
4141
locals {
4242
# NOTE: these must all be strings in the output
4343
output={
44-
"ai_task.id"= coder_ai_task.task.id
45-
"ai_task.app_id"= coder_ai_task.task.app_id
46-
"ai_task.prompt"= coder_ai_task.task.prompt
47-
"app.id"= coder_app.ai_interface.id
44+
"ai_task.id"= coder_ai_task.task.id
45+
"ai_task.app_id"= coder_ai_task.task.app_id
46+
"ai_task.prompt"= coder_ai_task.task.prompt
47+
"ai_task.enabled"=tostring(coder_ai_task.task.enabled)
48+
"app.id"= coder_app.ai_interface.id
4849
}
4950
}
5051

‎integration/integration_test.go‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,11 @@ func TestIntegration(t *testing.T) {
215215
name:"coder-ai-task",
216216
minVersion:"v2.26.0",
217217
expectedOutput:map[string]string{
218-
"ai_task.id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
219-
"ai_task.prompt":"",
220-
"ai_task.app_id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
221-
"app.id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
218+
"ai_task.id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
219+
"ai_task.prompt":"",
220+
"ai_task.app_id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
221+
"ai_task.enabled":"false",
222+
"app.id":`^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`,
222223
},
223224
},
224225
} {

‎provider/ai_task.go‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,12 @@ func aiTaskResource() *schema.Resource {
3232
CreateContext:func(c context.Context,resourceData*schema.ResourceData,iany) diag.Diagnostics {
3333
vardiags diag.Diagnostics
3434

35-
ifidStr:=os.Getenv("CODER_TASK_ID");idStr!="" {
36-
resourceData.SetId(idStr)
35+
ifid,err:=uuid.Parse(os.Getenv("CODER_TASK_ID"));err==nil&&id!=uuid.Nil {
36+
resourceData.SetId(id.String())
37+
resourceData.Set("enabled",true)
3738
}else {
3839
resourceData.SetId(uuid.NewString())
39-
40-
diags=append(diags, diag.Diagnostic{
41-
Severity:diag.Warning,
42-
Summary:"`CODER_TASK_ID` should be set. If you are seeing this message, the version of the Coder Terraform provider you are using is likely too new for your current Coder version.",
43-
})
40+
resourceData.Set("enabled",false)
4441
}
4542

4643
ifprompt:=os.Getenv("CODER_TASK_PROMPT");prompt!="" {
@@ -110,6 +107,11 @@ func aiTaskResource() *schema.Resource {
110107
ValidateFunc:validation.IsUUID,
111108
ConflictsWith: []string{"sidebar_app"},
112109
},
110+
"enabled": {
111+
Type:schema.TypeBool,
112+
Description:"The field is true if the template is being provisioned as a task.",
113+
Computed:true,
114+
},
113115
},
114116
}
115117
}

‎provider/ai_task_test.go‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,62 @@ import (
99
"github.com/stretchr/testify/require"
1010
)
1111

12+
funcTestAITask_Enabled(t*testing.T) {
13+
t.Run("EnabledWhenTask",func(t*testing.T) {
14+
t.Setenv("CODER_TASK_ID","7d8d4c2e-fb57-44f9-a183-22509819c2e7")
15+
16+
resource.Test(t, resource.TestCase{
17+
ProviderFactories:coderFactory(),
18+
IsUnitTest:true,
19+
Steps: []resource.TestStep{{
20+
Config:`
21+
provider "coder" {
22+
}
23+
resource "coder_ai_task" "test" {
24+
app_id = "9a3ff7b4-4b3f-48c6-8d3a-a8118ac921fc"
25+
}
26+
`,
27+
Check:func(state*terraform.State)error {
28+
require.Len(t,state.Modules,1)
29+
resource:=state.Modules[0].Resources["coder_ai_task.test"]
30+
require.NotNil(t,resource)
31+
32+
require.Equal(t,"true",resource.Primary.Attributes["enabled"])
33+
34+
returnnil
35+
},
36+
}},
37+
})
38+
})
39+
40+
t.Run("DisabledWhenWorkspace",func(t*testing.T) {
41+
t.Setenv("CODER_TASK_ID","")
42+
43+
resource.Test(t, resource.TestCase{
44+
ProviderFactories:coderFactory(),
45+
IsUnitTest:true,
46+
Steps: []resource.TestStep{{
47+
Config:`
48+
provider "coder" {
49+
}
50+
resource "coder_ai_task" "test" {
51+
app_id = "9a3ff7b4-4b3f-48c6-8d3a-a8118ac921fc"
52+
}
53+
`,
54+
Check:func(state*terraform.State)error {
55+
require.Len(t,state.Modules,1)
56+
resource:=state.Modules[0].Resources["coder_ai_task.test"]
57+
require.NotNil(t,resource)
58+
59+
require.Equal(t,"false",resource.Primary.Attributes["enabled"])
60+
61+
returnnil
62+
},
63+
}},
64+
})
65+
})
66+
}
67+
1268
funcTestAITask(t*testing.T) {
1369
t.Setenv("CODER_TASK_ID","7d8d4c2e-fb57-44f9-a183-22509819c2e7")
1470
t.Setenv("CODER_TASK_PROMPT","some task prompt")
@@ -35,6 +91,7 @@ func TestAITask(t *testing.T) {
3591
"id",
3692
"prompt",
3793
"app_id",
94+
"enabled",
3895
} {
3996
value:=resource.Primary.Attributes[key]
4097
require.NotNil(t,value)
@@ -97,6 +154,7 @@ func TestAITask(t *testing.T) {
97154
"id",
98155
"prompt",
99156
"app_id",
157+
"enabled",
100158
} {
101159
value:=resource.Primary.Attributes[key]
102160
require.NotNil(t,value)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp