Skip to content

Commit

Permalink
Merge pull request #38716 from aristosvo/b-aws_job_defition-nilcheck
Browse files Browse the repository at this point in the history
[BUG] `aws_batch_job_definition`: add extra nil checks
  • Loading branch information
jar-b authored Aug 7, 2024
2 parents 118618a + d0db897 commit 6ed0de6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
3 changes: 3 additions & 0 deletions .changelog/38716.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_batch_job_definition: Fix panic when checking `eks_properties` for job updates
```
14 changes: 7 additions & 7 deletions internal/service/batch/job_definition.go
Original file line number Diff line number Diff line change
Expand Up @@ -516,14 +516,14 @@ func needsJobDefUpdate(d *schema.ResourceDiff) bool {
}

var oeks, neks *batch.EksPodProperties
if len(o.([]interface{})) > 0 {
if len(o.([]interface{})) > 0 && o.([]interface{})[0] != nil {
oProps := o.([]interface{})[0].(map[string]interface{})
if opodProps, ok := oProps["pod_properties"].([]interface{}); ok && len(opodProps) > 0 {
oeks = expandEKSPodProperties(opodProps[0].(map[string]interface{}))
}
}

if len(n.([]interface{})) > 0 {
if len(n.([]interface{})) > 0 && n.([]interface{})[0] != nil {
nProps := n.([]interface{})[0].(map[string]interface{})
if npodProps, ok := nProps["pod_properties"].([]interface{}); ok && len(npodProps) > 0 {
neks = expandEKSPodProperties(npodProps[0].(map[string]interface{}))
Expand All @@ -540,12 +540,12 @@ func needsJobDefUpdate(d *schema.ResourceDiff) bool {
}

var ors, nrs *batch.RetryStrategy
if len(o.([]interface{})) > 0 {
if len(o.([]interface{})) > 0 && o.([]interface{})[0] != nil {
oProps := o.([]interface{})[0].(map[string]interface{})
ors = expandRetryStrategy(oProps)
}

if len(n.([]interface{})) > 0 {
if len(n.([]interface{})) > 0 && n.([]interface{})[0] != nil {
nProps := n.([]interface{})[0].(map[string]interface{})
nrs = expandRetryStrategy(nProps)
}
Expand All @@ -560,12 +560,12 @@ func needsJobDefUpdate(d *schema.ResourceDiff) bool {
}

var ors, nrs *batch.JobTimeout
if len(o.([]interface{})) > 0 {
if len(o.([]interface{})) > 0 && o.([]interface{})[0] != nil {
oProps := o.([]interface{})[0].(map[string]interface{})
ors = expandJobTimeout(oProps)
}

if len(n.([]interface{})) > 0 {
if len(n.([]interface{})) > 0 && n.([]interface{})[0] != nil {
nProps := n.([]interface{})[0].(map[string]interface{})
nrs = expandJobTimeout(nProps)
}
Expand Down Expand Up @@ -616,7 +616,7 @@ func resourceJobDefinitionCreate(ctx context.Context, d *schema.ResourceData, me
}
}

if v, ok := d.GetOk("eks_properties"); ok && len(v.([]interface{})) > 0 {
if v, ok := d.GetOk("eks_properties"); ok && len(v.([]interface{})) > 0 && v.([]interface{})[0] != nil {
eksProps := v.([]interface{})[0].(map[string]interface{})
if podProps, ok := eksProps["pod_properties"].([]interface{}); ok && len(podProps) > 0 {
if aws.StringValue(input.Type) == batch.JobDefinitionTypeContainer {
Expand Down

0 comments on commit 6ed0de6

Please sign in to comment.