provider/docker: don't crash with empty commands
If any of the entries in `commands` on `docker_container` resources was empty, the assertion to string panic'd. Since we can't use ValidateFunc on list elements, we can only really check this at apply time. If any value is nil (resolves to empty string during conversion), we fail with an error prior to creating the container. Fixes #6409.
This commit is contained in:
parent
7a49c2dfdd
commit
6913754191
|
@ -51,6 +51,11 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err
|
|||
|
||||
if v, ok := d.GetOk("command"); ok {
|
||||
createOpts.Config.Cmd = stringListToStringSlice(v.([]interface{}))
|
||||
for _, v := range createOpts.Config.Cmd {
|
||||
if v == "" {
|
||||
return fmt.Errorf("values for command may not be empty")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("entrypoint"); ok {
|
||||
|
@ -269,6 +274,10 @@ func resourceDockerContainerDelete(d *schema.ResourceData, meta interface{}) err
|
|||
func stringListToStringSlice(stringList []interface{}) []string {
|
||||
ret := []string{}
|
||||
for _, v := range stringList {
|
||||
if v == nil {
|
||||
ret = append(ret, "")
|
||||
continue
|
||||
}
|
||||
ret = append(ret, v.(string))
|
||||
}
|
||||
return ret
|
||||
|
|
Loading…
Reference in New Issue