Skip to content

Commit

Permalink
Safely access maps in storage transfer
Browse files Browse the repository at this point in the history
  • Loading branch information
rileykarson committed Mar 4, 2019
1 parent ff19205 commit 3ce0d8e
Showing 1 changed file with 36 additions and 11 deletions.
47 changes: 36 additions & 11 deletions third_party/terraform/resources/resource_storage_transfer_job.go
Original file line number Diff line number Diff line change
Expand Up @@ -491,12 +491,23 @@ func expandDates(dates []interface{}) *storagetransfer.Date {
return nil
}

date := dates[0].([]interface{})
return &storagetransfer.Date{
Day: int64(extractFirstMapConfig(date)["day"].(int)),
Month: int64(extractFirstMapConfig(date)["month"].(int)),
Year: int64(extractFirstMapConfig(date)["year"].(int)),
dateElem := dates[0].([]interface{})
date := &storagetransfer.Date{}

dateMap := extractFirstMapConfig(dateElem)
if v, ok := dateMap["day"]; ok {
date.Day = int64(v.(int))
}

if v, ok := dateMap["month"]; ok {
date.Month = int64(v.(int))
}

if v, ok := dateMap["year"]; ok {
date.Year = int64(v.(int))
}

return date
}

func flattenDate(date *storagetransfer.Date) []map[string]interface{} {
Expand All @@ -514,13 +525,27 @@ func expandTimeOfDays(times []interface{}) *storagetransfer.TimeOfDay {
return nil
}

time := times[0].([]interface{})
return &storagetransfer.TimeOfDay{
Hours: int64(extractFirstMapConfig(time)["hours"].(int)),
Minutes: int64(extractFirstMapConfig(time)["minutes"].(int)),
Seconds: int64(extractFirstMapConfig(time)["seconds"].(int)),
Nanos: int64(extractFirstMapConfig(time)["nanos"].(int)),
timeElem := times[0].([]interface{})
time := &storagetransfer.TimeOfDay{}

timeMap := extractFirstMapConfig(timeElem)
if v, ok := timeMap["hours"]; ok {
time.Hours = int64(v.(int))
}

if v, ok := timeMap["minutes"]; ok {
time.Minutes = int64(v.(int))
}

if v, ok := timeMap["seconds"]; ok {
time.Seconds = int64(v.(int))
}

if v, ok := timeMap["nanos"]; ok {
time.Nanos = int64(v.(int))
}

return time
}

func flattenTimeOfDay(timeOfDay *storagetransfer.TimeOfDay) []map[string]interface{} {
Expand Down

0 comments on commit 3ce0d8e

Please sign in to comment.