Skip to content

Commit a705dd1

Browse files
runtime env add
1 parent 2e3fd14 commit a705dd1

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

codefresh/resource_permission.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ The type of resources the permission applies to. Possible values:
4141
* pipeline
4242
* cluster
4343
* project
44+
* runtime-environment
4445
`,
4546
Type: schema.TypeString,
4647
Required: true,
4748
ValidateFunc: validation.StringInSlice([]string{
4849
"pipeline",
4950
"cluster",
5051
"project",
52+
"runtime-environment",
5153
}, false),
5254
},
5355
"related_resource": {
@@ -65,7 +67,7 @@ Specifies the resource to use when evaluating the tags. Possible values:
6567
Description: `
6668
Action to be allowed. Possible values:
6769
* create
68-
* read
70+
* read (For runtime-environment resource, 'read' means 'assign')
6971
* update
7072
* delete
7173
* run (Only valid for pipeline resource)

codefresh/resource_permission_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ func TestAccCodefreshPermissionConfig(t *testing.T) {
4242
resource.TestCheckResourceAttr(resourceName, "tags.1", "production"),
4343
),
4444
},
45+
{
46+
Config: testAccCodefreshNoRelatedResourcePermissionConfig("create", "runtime-environment", []string{"production", "*"}),
47+
Check: resource.ComposeTestCheckFunc(
48+
testAccCheckCodefreshPermissionExists(resourceName),
49+
resource.TestCheckResourceAttr(resourceName, "action", "create"),
50+
resource.TestCheckResourceAttr(resourceName, "resource", "runtime-environment"),
51+
resource.TestCheckResourceAttr(resourceName, "tags.0", "*"),
52+
resource.TestCheckResourceAttr(resourceName, "tags.1", "production"),
53+
),
54+
},
4555
{
4656
ResourceName: resourceName,
4757
ImportState: true,
@@ -96,3 +106,26 @@ func testAccCodefreshPermissionConfig(action, resource, relatedResource string,
96106
}
97107
`, escapeString(action), escapeString(resource), escapeString(relatedResource), strings.Join(tagsEscaped[:], ","))
98108
}
109+
110+
func testAccCodefreshNoRelatedResourcePermissionConfig(action, resource string, tags []string) string {
111+
escapeString := func(str string) string {
112+
if str == "null" {
113+
return str // null means Terraform should ignore this field
114+
}
115+
return fmt.Sprintf(`"%s"`, str)
116+
}
117+
tagsEscaped := funk.Map(tags, escapeString).([]string)
118+
119+
return fmt.Sprintf(`
120+
data "codefresh_team" "users" {
121+
name = "users"
122+
}
123+
124+
resource "codefresh_permission" "test" {
125+
team = data.codefresh_team.users.id
126+
action = %s
127+
resource = %s
128+
tags = [%s]
129+
}
130+
`, escapeString(action), escapeString(resource), strings.Join(tagsEscaped[:], ","))
131+
}

0 commit comments

Comments
 (0)