@@ -34,6 +34,21 @@ const (
34
34
UpdateDeploymentActionName = "update"
35
35
)
36
36
37
+ // parse timestamp in API response. Helper for resourceDeployment
38
+ func getParsedTime (d * schema.ResourceDiff , key string ) (time.Time , bool ) {
39
+ timeStr , ok := d .GetOk (key )
40
+ if ! ok {
41
+ log .Printf ("[INFO] Missing or invalid time string for key %s: %#v" , key , timeStr )
42
+ return time.Time {}, false
43
+ }
44
+ parsedTime , err := strfmt .ParseDateTime (timeStr .(string ))
45
+ if err != nil {
46
+ log .Printf ("[INFO] Failed to parse DateTime for key %s: %#v" , key , timeStr )
47
+ return time.Time {}, false
48
+ }
49
+ return time .Time (parsedTime ), true
50
+ }
51
+
37
52
func resourceDeployment () * schema.Resource {
38
53
return & schema.Resource {
39
54
CreateContext : resourceDeploymentCreate ,
@@ -44,25 +59,17 @@ func resourceDeployment() *schema.Resource {
44
59
CustomizeDiff : customdiff .ForceNewIf (
45
60
"recreate_if_expired_at" ,
46
61
func (ctx context.Context , d * schema.ResourceDiff , meta interface {}) bool {
47
- planTimeStr , ok := d .GetOk ("recreate_if_expired_at" )
48
- if ! ok {
49
- log .Printf ("[DEBUG] Don't special-handle expired deployment, recreate_if_expired_at = %#v" , planTimeStr )
50
- return false // don't check expiration
51
- }
52
- planTime , err := strfmt .ParseDateTime (planTimeStr .(string ))
53
- if err != nil {
54
- log .Printf ("[DEBUG] Failed to parse DateTime variable recreate_if_expired_at: %#v" , planTime )
62
+ planTime , valid := getParsedTime (d , "recreate_if_expired_at" )
63
+ if ! valid {
55
64
return false
56
65
}
57
- expirationTimeStr := d .Get ("lease_expire_at" )
58
- expirationTime , err := strfmt .ParseDateTime (expirationTimeStr .(string ))
59
- if err != nil {
60
- log .Printf ("[DEBUG] Failed to parse DateTime attribute lease_expire_at: %#v" , expirationTimeStr )
66
+ expirationTime , valid := getParsedTime (d , "lease_expire_at" )
67
+ if ! valid {
61
68
return false
62
69
}
63
- log . Printf ( "checking if expirationTime %s < planTime %s" , expirationTime , planTime )
64
- return time . Time ( expirationTime ). Before ( time . Time ( planTime ))
65
- } ),
70
+ return expirationTime . Before ( planTime )
71
+ },
72
+ ),
66
73
67
74
Importer : & schema.ResourceImporter {
68
75
StateContext : schema .ImportStatePassthroughContext ,
0 commit comments