Skip to content

Commit 88833b4

Browse files
committed
WIP
1 parent 70fd2e2 commit 88833b4

File tree

1 file changed

+133
-31
lines changed

1 file changed

+133
-31
lines changed

octopusdeploy_framework/resource_lifecycle_retention_test.go

Lines changed: 133 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
2020
Steps: []resource.TestStep{
2121
// 1 create lifecycle without retention settings
2222
{
23-
Config: lifecycleBasic(lifecycleName),
23+
Config: lifecycle_noRetention(lifecycleName),
2424
Check: resource.ComposeTestCheckFunc(
2525
testAccCheckLifecycleExists(lifecycleResource),
2626
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.#", "0"),
@@ -30,9 +30,9 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
3030
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
3131
),
3232
},
33-
//2 update the retention block without strategy to the default (forever) retention policies
33+
//2 update retentionWithoutStrategy to the default (forever) retention policies
3434
{
35-
Config: lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName, "", "", "true"),
35+
Config: lifecycle_retentionWithoutStrategy_defaultUsingQuantityToKeepDEPRECATED(lifecycleName),
3636
Check: resource.ComposeTestCheckFunc(
3737
testAccCheckLifecycleExists(lifecycleResource),
3838
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.#", "1"),
@@ -49,29 +49,29 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
4949
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
5050
),
5151
},
52-
// 3 update the retention block without strategy to Count retention policies using days
52+
// 3 update retentionWithoutStrategy to Count retention policies using days
5353
{
54-
Config: lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName, "1", "days", "false"),
54+
Config: lifecycle_retentionWithoutStrategy_count_DEPRECATED(lifecycleName, "Days"),
5555
Check: resource.ComposeTestCheckFunc(
5656
testAccCheckLifecycleExists(lifecycleResource),
5757

5858
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.#", "1"),
5959
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.quantity_to_keep", "1"),
6060
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.should_keep_forever", "false"),
61-
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.unit", "days"),
61+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.unit", "Days"),
6262

6363
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.#", "1"),
6464
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.quantity_to_keep", "1"),
6565
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.should_keep_forever", "false"),
66-
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.unit", "days"),
66+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.unit", "Days"),
6767

6868
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.#", "0"),
6969
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
7070
),
7171
},
72-
// 4 update retention block without strategy to Count retention policies using items
72+
// 4 update retentionWithoutStrategy to Count retention policies using items
7373
{
74-
Config: lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName, "1", "Items", "false"),
74+
Config: lifecycle_retentionWithoutStrategy_count_DEPRECATED(lifecycleName, "Items"),
7575
Check: resource.ComposeTestCheckFunc(
7676
testAccCheckLifecycleExists(lifecycleResource),
7777

@@ -90,10 +90,41 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
9090
),
9191
},
9292

93-
// 5 update the retention block without strategy to Default retention policies
93+
// 5 update retentionWithoutStrategy to the default (forever) retention policies
94+
{
95+
Config: lifecycle_retentionWithoutStrategy_defaultNotUsingQuantityToKeepDEPRECATED(lifecycleName),
96+
Check: resource.ComposeTestCheckFunc(
97+
testAccCheckLifecycleExists(lifecycleResource),
98+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.#", "1"),
99+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.quantity_to_keep", "0"),
100+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.should_keep_forever", "true"),
101+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.unit", "Items"),
102+
103+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.#", "1"),
104+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.quantity_to_keep", "0"),
105+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.should_keep_forever", "true"),
106+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.0.unit", "Items"),
94107

95-
// 6 set retention without strategy only for release
108+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.#", "0"),
109+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
110+
),
111+
},
112+
113+
// 6 set retentionWithoutStrategy only for release
114+
{
115+
Config: lifecycle_ReleaseRetentionWithoutStrategy_DEPRECATED(lifecycleName, "1", "Days", "false"),
116+
Check: resource.ComposeTestCheckFunc(
117+
testAccCheckLifecycleExists(lifecycleResource),
118+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.#", "1"),
119+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.quantity_to_keep", "1"),
120+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.should_keep_forever", "false"),
121+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_policy.0.unit", "Days"),
96122

123+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_policy.#", "0"),
124+
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.#", "0"),
125+
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
126+
),
127+
},
97128
// 7 set new retention block to default
98129
{
99130
Config: lifecycle_newRetention_DEPRECATED(lifecycleName, "Default", "", "", ""),
@@ -141,7 +172,7 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
141172
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.0.unit", "Days"),
142173
),
143174
},
144-
// 5 set new retention block to count using items
175+
// 10 set new retention block to count using items
145176
{
146177
Config: lifecycle_newRetention_DEPRECATED(lifecycleName, "Count", "1", "Items", ""),
147178
Check: resource.ComposeTestCheckFunc(
@@ -160,7 +191,7 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
160191
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.0.unit", "Items"),
161192
),
162193
},
163-
// 6 set new retention block to default only for release
194+
// 11 set new retention block to default only for release
164195
{
165196
Config: lifecycle_newReleaseRetention_DEPRECATED(lifecycleName, "Default", "", "", ""),
166197
Check: resource.ComposeTestCheckFunc(
@@ -170,10 +201,11 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
170201

171202
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.#", "1"),
172203
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.0.strategy", "Default"),
204+
173205
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
174206
),
175207
},
176-
// 7 change only release retention to count
208+
// 12 change new retention block to count only for release
177209
{
178210
Config: lifecycle_newReleaseRetention_DEPRECATED(lifecycleName, "Count", "3", "Items", ""),
179211
Check: resource.ComposeTestCheckFunc(
@@ -185,6 +217,7 @@ func TestAccLifecycleRetentionUpdatesDEPRECATED(t *testing.T) {
185217
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.0.strategy", "Count"),
186218
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.0.quantity_to_keep", "3"),
187219
resource.TestCheckResourceAttr(lifecycleResource, "release_retention_with_strategy.0.unit", "Items"),
220+
188221
resource.TestCheckResourceAttr(lifecycleResource, "tentacle_retention_with_strategy.#", "0"),
189222
),
190223
},
@@ -290,7 +323,7 @@ func TestAccLifecycleWithPhaseInheritingRetentionsDEPRECATED(t *testing.T) {
290323
ProtoV6ProviderFactories: ProtoV6ProviderFactories(),
291324
Steps: []resource.TestStep{
292325
{
293-
Config: lifecycle_withBasicPhase(lifecycleName, phaseName),
326+
Config: lifecycle_phaseAndNoRetention(lifecycleName, phaseName),
294327
Check: resource.ComposeTestCheckFunc(
295328
testAccCheckLifecycleExists(lifecycleResource),
296329
resource.TestCheckResourceAttrSet(lifecycleResource, "id"),
@@ -307,13 +340,56 @@ func TestAccLifecycleWithPhaseInheritingRetentionsDEPRECATED(t *testing.T) {
307340
})
308341
}
309342

310-
func lifecycleBasic(lifecycleName string) string {
343+
func lifecycle_retentionWithoutStrategy_count_DEPRECATED(lifecycleName string, unit string) string {
344+
return fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
345+
name = "%s"
346+
release_retention_policy {
347+
should_keep_forever = "false"
348+
quantity_to_keep = "1"
349+
unit = "%s"
350+
}
351+
tentacle_retention_policy {
352+
quantity_to_keep = "1"
353+
unit = "%s"
354+
}
355+
}`, lifecycleName, lifecycleName, unit, unit)
356+
}
357+
358+
func lifecycle_retentionWithoutStrategy_defaultUsingQuantityToKeepDEPRECATED(lifecycleName string) string {
359+
return fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
360+
name = "%s"
361+
release_retention_policy {
362+
quantity_to_keep = "0"
363+
should_keep_forever = "true"
364+
unit = "Items"
365+
}
366+
tentacle_retention_policy {
367+
should_keep_forever = "true"
368+
quantity_to_keep = "0"
369+
}
370+
}`, lifecycleName, lifecycleName)
371+
}
372+
373+
func lifecycle_retentionWithoutStrategy_defaultNotUsingQuantityToKeepDEPRECATED(lifecycleName string) string {
374+
return fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
375+
name = "%s"
376+
release_retention_policy {
377+
should_keep_forever = "true"
378+
}
379+
tentacle_retention_policy {
380+
should_keep_forever = "true"
381+
unit = "Items"
382+
}
383+
}`, lifecycleName, lifecycleName)
384+
}
385+
386+
func lifecycle_noRetention(lifecycleName string) string {
311387
return fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
312388
name = "%s"
313389
}`, lifecycleName, lifecycleName)
314390
}
315391

316-
func lifecycle_withBasicPhase(lifecycleName string, phaseName string) string {
392+
func lifecycle_phaseAndNoRetention(lifecycleName string, phaseName string) string {
317393
return fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
318394
name = "%s"
319395
phase {
@@ -322,12 +398,38 @@ func lifecycle_withBasicPhase(lifecycleName string, phaseName string) string {
322398
}`, lifecycleName, lifecycleName, phaseName)
323399
}
324400

325-
func lifecycle_newReleaseRetention_DEPRECATED(lifecycleName string, strategy string, quantityToKeep string, unit string, shouldKeepForever string) string {
326-
var strategyAttribute string
327-
if strategy != "" {
328-
strategyAttribute = fmt.Sprintf(`strategy = "%s"`, strategy)
401+
func lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName string, quantityToKeep string, unit string, shouldKeepForever string) string {
402+
var quantityToKeepAttribute string
403+
if quantityToKeep != "" {
404+
quantityToKeepAttribute = fmt.Sprintf(`quantity_to_keep = "%s"`, quantityToKeep)
405+
}
406+
var shouldKeepForeverAttribute string
407+
if shouldKeepForever != "" {
408+
shouldKeepForeverAttribute = fmt.Sprintf(`should_keep_forever = "%s"`, shouldKeepForever)
409+
}
410+
var unitAttribute string
411+
if unit != "" {
412+
unitAttribute = fmt.Sprintf(`unit = "%s"`, unit)
329413
}
414+
resource := fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
415+
name = "%s"
416+
release_retention_policy {
417+
%s
418+
%s
419+
%s
420+
}
421+
tentacle_retention_policy {
422+
%s
423+
%s
424+
%s
425+
}
330426
427+
}`, lifecycleName, lifecycleName, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute)
428+
429+
return resource
430+
}
431+
432+
func lifecycle_ReleaseRetentionWithoutStrategy_DEPRECATED(lifecycleName string, quantityToKeep string, unit string, shouldKeepForever string) string {
331433
var quantityToKeepAttribute string
332434
if quantityToKeep != "" {
333435
quantityToKeepAttribute = fmt.Sprintf(`quantity_to_keep = "%s"`, quantityToKeep)
@@ -342,14 +444,13 @@ func lifecycle_newReleaseRetention_DEPRECATED(lifecycleName string, strategy str
342444
}
343445
resource := fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
344446
name = "%s"
345-
release_retention_with_strategy {
447+
release_retention_policy {
346448
%s
347449
%s
348450
%s
349-
%s
350451
}
351452
352-
}`, lifecycleName, lifecycleName, strategyAttribute, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute)
453+
}`, lifecycleName, lifecycleName, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute)
353454

354455
return resource
355456
}
@@ -392,7 +493,12 @@ func lifecycle_newRetention_DEPRECATED(lifecycleName string, strategy string, qu
392493
return resource
393494
}
394495

395-
func lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName string, quantityToKeep string, unit string, shouldKeepForever string) string {
496+
func lifecycle_newReleaseRetention_DEPRECATED(lifecycleName string, strategy string, quantityToKeep string, unit string, shouldKeepForever string) string {
497+
var strategyAttribute string
498+
if strategy != "" {
499+
strategyAttribute = fmt.Sprintf(`strategy = "%s"`, strategy)
500+
}
501+
396502
var quantityToKeepAttribute string
397503
if quantityToKeep != "" {
398504
quantityToKeepAttribute = fmt.Sprintf(`quantity_to_keep = "%s"`, quantityToKeep)
@@ -407,18 +513,14 @@ func lifecycle_retentionWithoutStrategy_DEPRECATED(lifecycleName string, quantit
407513
}
408514
resource := fmt.Sprintf(`resource "octopusdeploy_lifecycle" "%s" {
409515
name = "%s"
410-
release_retention_policy {
516+
release_retention_with_strategy {
411517
%s
412518
%s
413519
%s
414-
}
415-
tentacle_retention_policy {
416-
%s
417-
%s
418520
%s
419521
}
420522
421-
}`, lifecycleName, lifecycleName, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute)
523+
}`, lifecycleName, lifecycleName, strategyAttribute, quantityToKeepAttribute, unitAttribute, shouldKeepForeverAttribute)
422524

423525
return resource
424526
}

0 commit comments

Comments
 (0)