@@ -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