Skip to content

Commit d658cfa

Browse files
authored
Feat: resource template has 'terraform' type default value - change to 'opentofu' (#990)
1 parent 8f43f97 commit d658cfa

File tree

2 files changed

+55
-35
lines changed

2 files changed

+55
-35
lines changed

env0/resource_template.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func getTemplateSchema(prefix string) map[string]*schema.Schema {
104104
Type: schema.TypeString,
105105
Description: fmt.Sprintf("template type (allowed values: %s)", strings.Join(allowedTemplateTypes, ", ")),
106106
Optional: true,
107-
Default: client.TERRAFORM,
107+
Default: client.OPENTOFU,
108108
ValidateDiagFunc: NewStringInValidator(allowedTemplateTypes),
109109
},
110110
"revision": {

env0/resource_template_test.go

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ func TestUnitTemplateResource(t *testing.T) {
1818

1919
const defaultVersion = "0.15.1"
2020

21-
const defaultType = "terraform"
21+
const defaultType = client.OPENTOFU
22+
23+
const defaultOpentofuVersion = "1.6.0"
2224

2325
var resourceFullName = resourceAccessor(resourceType, resourceName)
2426

@@ -814,13 +816,15 @@ func TestUnitTemplateResource(t *testing.T) {
814816
Repository: template.Repository,
815817
TerraformVersion: defaultVersion,
816818
Type: string(defaultType),
819+
OpentofuVersion: defaultOpentofuVersion,
817820
}
818821

819822
basicTemplateResourceConfig := func(resourceType string, resourceName string, template client.Template) string {
820823
return resourceConfigCreate(resourceType, resourceName, map[string]interface{}{
821824
"name": template.Name,
822825
"repository": template.Repository,
823826
"terraform_version": defaultVersion,
827+
"opentofu_version": defaultOpentofuVersion,
824828
})
825829
}
826830

@@ -834,6 +838,7 @@ func TestUnitTemplateResource(t *testing.T) {
834838
resource.TestCheckResourceAttr(resourceFullName, "repository", template.Repository),
835839
resource.TestCheckResourceAttr(resourceFullName, "type", string(defaultType)),
836840
resource.TestCheckResourceAttr(resourceFullName, "terraform_version", defaultVersion),
841+
resource.TestCheckResourceAttr(resourceFullName, "opentofu_version", defaultOpentofuVersion),
837842
),
838843
},
839844
},
@@ -842,10 +847,10 @@ func TestUnitTemplateResource(t *testing.T) {
842847
runUnitTest(t, testCase, func(mock *client.MockApiClientInterface) {
843848
mock.EXPECT().Template(template.Id).AnyTimes().Return(templateWithDefaults, nil)
844849
mock.EXPECT().TemplateCreate(client.TemplateCreatePayload{
845-
Name: template.Name,
846-
Repository: template.Repository,
847-
Type: defaultType,
848-
TerraformVersion: defaultVersion,
850+
Name: template.Name,
851+
Repository: template.Repository,
852+
Type: defaultType,
853+
OpentofuVersion: defaultOpentofuVersion,
849854
}).Times(1).Return(template, nil)
850855
mock.EXPECT().TemplateDelete(template.Id).Times(1).Return(nil)
851856
})
@@ -898,6 +903,7 @@ func TestUnitTemplateResource(t *testing.T) {
898903
TerraformVersion: defaultVersion,
899904
Type: string(defaultType),
900905
SshKeys: []client.TemplateSshKey{initialSshKey1, initialSshKey2},
906+
OpentofuVersion: defaultOpentofuVersion,
901907
}
902908

903909
updatedTemplate := client.Template{
@@ -907,6 +913,7 @@ func TestUnitTemplateResource(t *testing.T) {
907913
TerraformVersion: defaultVersion,
908914
Type: string(defaultType),
909915
SshKeys: []client.TemplateSshKey{updatedSshKey1, updatedSshKey2},
916+
OpentofuVersion: defaultOpentofuVersion,
910917
}
911918

912919
sshKeyTemplateResourceConfig := func(name string, repository string, sshKey1 client.TemplateSshKey, sshKey2 client.TemplateSshKey) string {
@@ -916,14 +923,15 @@ func TestUnitTemplateResource(t *testing.T) {
916923
repository = "%s"
917924
terraform_version = "%s"
918925
type = "%s"
926+
opentofu_version = "%s"
919927
ssh_keys = [{
920928
id = "%s"
921929
name = "%s"
922930
}, {
923931
id = "%s"
924932
name = "%s"
925933
}]
926-
}`, name, repository, defaultVersion, string(defaultType), sshKey1.Id, sshKey1.Name, sshKey2.Id, sshKey2.Name)
934+
}`, name, repository, defaultVersion, string(defaultType), defaultOpentofuVersion, sshKey1.Id, sshKey1.Name, sshKey2.Id, sshKey2.Name)
927935
}
928936

929937
sshTemplateResourceCheck := func(resourceFullName string, template client.Template, sshKey1 client.TemplateSshKey, sshKey2 client.TemplateSshKey) resource.TestCheckFunc {
@@ -957,18 +965,18 @@ func TestUnitTemplateResource(t *testing.T) {
957965
mock.EXPECT().Template(template.Id).Times(1).Return(updatedTemplate, nil), // 1 after update
958966
)
959967
mock.EXPECT().TemplateCreate(client.TemplateCreatePayload{
960-
Name: template.Name,
961-
Repository: template.Repository,
962-
Type: defaultType,
963-
TerraformVersion: defaultVersion,
964-
SshKeys: template.SshKeys,
968+
Name: template.Name,
969+
Repository: template.Repository,
970+
Type: defaultType,
971+
SshKeys: template.SshKeys,
972+
OpentofuVersion: defaultOpentofuVersion,
965973
}).Times(1).Return(template, nil)
966974
mock.EXPECT().TemplateUpdate(updatedTemplate.Id, client.TemplateCreatePayload{
967-
Name: updatedTemplate.Name,
968-
Repository: updatedTemplate.Repository,
969-
Type: defaultType,
970-
TerraformVersion: defaultVersion,
971-
SshKeys: updatedTemplate.SshKeys,
975+
Name: updatedTemplate.Name,
976+
Repository: updatedTemplate.Repository,
977+
Type: defaultType,
978+
SshKeys: updatedTemplate.SshKeys,
979+
OpentofuVersion: defaultOpentofuVersion,
972980
}).Times(1).Return(updatedTemplate, nil)
973981
mock.EXPECT().TemplateDelete(template.Id).Times(1).Return(nil)
974982
})
@@ -1083,13 +1091,15 @@ func TestUnitTemplateResource(t *testing.T) {
10831091
Repository: template.Repository,
10841092
TerraformVersion: defaultVersion,
10851093
Type: string(defaultType),
1094+
OpentofuVersion: defaultOpentofuVersion,
10861095
}
10871096
templateWithDefaultsUpdate := client.Template{
10881097
Id: updateTemplate.Id,
10891098
Name: updateTemplate.Name,
10901099
Repository: updateTemplate.Repository,
10911100
TerraformVersion: defaultVersion,
10921101
Type: string(defaultType),
1102+
OpentofuVersion: defaultOpentofuVersion,
10931103
}
10941104

10951105
templateWithDrift := client.Template{
@@ -1099,13 +1109,15 @@ func TestUnitTemplateResource(t *testing.T) {
10991109
Repository: template.Repository,
11001110
TerraformVersion: defaultVersion,
11011111
Type: string(defaultType),
1112+
OpentofuVersion: defaultOpentofuVersion,
11021113
}
11031114

11041115
basicTemplateResourceConfig := func(resourceType string, resourceName string, template client.Template) string {
11051116
return resourceConfigCreate(resourceType, resourceName, map[string]interface{}{
11061117
"name": template.Name,
11071118
"repository": template.Repository,
11081119
"terraform_version": defaultVersion,
1120+
"opentofu_version": defaultOpentofuVersion,
11091121
})
11101122
}
11111123

@@ -1119,6 +1131,7 @@ func TestUnitTemplateResource(t *testing.T) {
11191131
resource.TestCheckResourceAttr(resourceFullName, "repository", template.Repository),
11201132
resource.TestCheckResourceAttr(resourceFullName, "type", string(defaultType)),
11211133
resource.TestCheckResourceAttr(resourceFullName, "terraform_version", defaultVersion),
1134+
resource.TestCheckResourceAttr(resourceFullName, "opentofu_version", defaultOpentofuVersion),
11221135
),
11231136
},
11241137
{
@@ -1129,24 +1142,25 @@ func TestUnitTemplateResource(t *testing.T) {
11291142
resource.TestCheckResourceAttr(resourceFullName, "repository", updateTemplate.Repository),
11301143
resource.TestCheckResourceAttr(resourceFullName, "type", string(defaultType)),
11311144
resource.TestCheckResourceAttr(resourceFullName, "terraform_version", defaultVersion),
1145+
resource.TestCheckResourceAttr(resourceFullName, "opentofu_version", defaultOpentofuVersion),
11321146
),
11331147
},
11341148
},
11351149
}
11361150

11371151
runUnitTest(t, testCase, func(mock *client.MockApiClientInterface) {
11381152
mock.EXPECT().TemplateCreate(client.TemplateCreatePayload{
1139-
Name: template.Name,
1140-
Repository: template.Repository,
1141-
Type: defaultType,
1142-
TerraformVersion: defaultVersion,
1153+
Name: template.Name,
1154+
Repository: template.Repository,
1155+
Type: defaultType,
1156+
OpentofuVersion: defaultOpentofuVersion,
11431157
}).Times(1).Return(template, nil)
11441158

11451159
mock.EXPECT().TemplateCreate(client.TemplateCreatePayload{
1146-
Name: updateTemplate.Name,
1147-
Repository: updateTemplate.Repository,
1148-
Type: defaultType,
1149-
TerraformVersion: defaultVersion,
1160+
Name: updateTemplate.Name,
1161+
Repository: updateTemplate.Repository,
1162+
Type: defaultType,
1163+
OpentofuVersion: defaultOpentofuVersion,
11501164
}).Times(1).Return(updateTemplate, nil)
11511165

11521166
gomock.InOrder(
@@ -1167,6 +1181,7 @@ func TestUnitTemplateResource(t *testing.T) {
11671181
Repository: "repo",
11681182
TerraformVersion: string(defaultVersion),
11691183
Type: string(defaultType),
1184+
OpentofuVersion: defaultOpentofuVersion,
11701185
}
11711186

11721187
updatedPathTemplate := client.Template{
@@ -1176,6 +1191,7 @@ func TestUnitTemplateResource(t *testing.T) {
11761191
Repository: "repo",
11771192
TerraformVersion: string(defaultVersion),
11781193
Type: string(defaultType),
1194+
OpentofuVersion: defaultOpentofuVersion,
11791195
}
11801196

11811197
testCase := resource.TestCase{
@@ -1186,6 +1202,7 @@ func TestUnitTemplateResource(t *testing.T) {
11861202
"path": "/" + pathTemplate.Path,
11871203
"repository": pathTemplate.Repository,
11881204
"terraform_version": pathTemplate.TerraformVersion,
1205+
"opentofu_version": defaultOpentofuVersion,
11891206
}),
11901207
Check: resource.ComposeAggregateTestCheckFunc(
11911208
resource.TestCheckResourceAttr(resourceFullName, "id", pathTemplate.Id),
@@ -1194,6 +1211,7 @@ func TestUnitTemplateResource(t *testing.T) {
11941211
resource.TestCheckResourceAttr(resourceFullName, "type", pathTemplate.Type),
11951212
resource.TestCheckResourceAttr(resourceFullName, "terraform_version", pathTemplate.TerraformVersion),
11961213
resource.TestCheckResourceAttr(resourceFullName, "path", "/"+pathTemplate.Path),
1214+
resource.TestCheckResourceAttr(resourceFullName, "opentofu_version", defaultOpentofuVersion),
11971215
),
11981216
},
11991217
{
@@ -1202,6 +1220,7 @@ func TestUnitTemplateResource(t *testing.T) {
12021220
"path": "/" + updatedPathTemplate.Path,
12031221
"repository": updatedPathTemplate.Repository,
12041222
"terraform_version": updatedPathTemplate.TerraformVersion,
1223+
"opentofu_version": defaultOpentofuVersion,
12051224
}),
12061225
Check: resource.ComposeAggregateTestCheckFunc(
12071226
resource.TestCheckResourceAttr(resourceFullName, "id", updatedPathTemplate.Id),
@@ -1210,6 +1229,7 @@ func TestUnitTemplateResource(t *testing.T) {
12101229
resource.TestCheckResourceAttr(resourceFullName, "type", updatedPathTemplate.Type),
12111230
resource.TestCheckResourceAttr(resourceFullName, "terraform_version", updatedPathTemplate.TerraformVersion),
12121231
resource.TestCheckResourceAttr(resourceFullName, "path", "/"+updatedPathTemplate.Path),
1232+
resource.TestCheckResourceAttr(resourceFullName, "opentofu_version", defaultOpentofuVersion),
12131233
),
12141234
},
12151235
},
@@ -1218,19 +1238,19 @@ func TestUnitTemplateResource(t *testing.T) {
12181238
runUnitTest(t, testCase, func(mock *client.MockApiClientInterface) {
12191239
gomock.InOrder(
12201240
mock.EXPECT().TemplateCreate(client.TemplateCreatePayload{
1221-
Path: "/" + pathTemplate.Path,
1222-
Name: pathTemplate.Name,
1223-
Type: pathTemplate.Type,
1224-
TerraformVersion: pathTemplate.TerraformVersion,
1225-
Repository: pathTemplate.Repository,
1241+
Path: "/" + pathTemplate.Path,
1242+
Name: pathTemplate.Name,
1243+
Type: pathTemplate.Type,
1244+
Repository: pathTemplate.Repository,
1245+
OpentofuVersion: defaultOpentofuVersion,
12261246
}).Times(1).Return(pathTemplate, nil),
12271247
mock.EXPECT().Template(pathTemplate.Id).Times(2).Return(pathTemplate, nil),
12281248
mock.EXPECT().TemplateUpdate(updatedPathTemplate.Id, client.TemplateCreatePayload{
1229-
Path: "/" + updatedPathTemplate.Path,
1230-
Name: updatedPathTemplate.Name,
1231-
Type: updatedPathTemplate.Type,
1232-
TerraformVersion: updatedPathTemplate.TerraformVersion,
1233-
Repository: updatedPathTemplate.Repository,
1249+
Path: "/" + updatedPathTemplate.Path,
1250+
Name: updatedPathTemplate.Name,
1251+
Type: updatedPathTemplate.Type,
1252+
Repository: updatedPathTemplate.Repository,
1253+
OpentofuVersion: defaultOpentofuVersion,
12341254
}).Times(1).Return(updatedPathTemplate, nil),
12351255
mock.EXPECT().Template(pathTemplate.Id).Times(1).Return(updatedPathTemplate, nil),
12361256
mock.EXPECT().TemplateDelete(pathTemplate.Id).Times(1).Return(nil),

0 commit comments

Comments
 (0)