rundeck/terraform-provider-rundeck

Empty option in `value_choices` within `option` block causes crash

mengesb opened this issue · 0 comments

Terraform Version

v0.11.14

Affected Resource(s)

Please list the resources as a list, for example:

  • rundeck_job

Terraform Configuration Files

resource "rundeck_job" "environment_power" {
  count                       = "${length(rundeck_project.environments.*.name)}"
  name                        = "Environment power switch"
  allow_concurrent_executions = "false"
  description                 = "Power on/off an environment"
  preserve_options_order      = true
  project_name                = "${element(rundeck_project.environments.*.name, count.index)}"

  command {
    script_file      = "/usr/local/bin/aws_power.bash"
    script_file_args = "$${option.force} $${option.debug} -e ${element(rundeck_project.environments.*.name, count.index)} -a $${option.action} -r $${option.region} -p default"
  }

  lifecycle {
    ignore_changes = ["max_thread_count", "rank_order"]
  }

  option {
    name                      = "force"
    value_choices             = ["", "-f"]
    require_predefined_choice = true
    required                  = false
    exposed_to_scripts        = true
  }

  option {
    name                      = "debug"
    value_choices             = ["", "-d"]
    require_predefined_choice = true
    required                  = false
    exposed_to_scripts        = true
  }

  option {
    name                      = "action"
    default_value             = "display"
    value_choices             = ["display", "start", "stop"]
    require_predefined_choice = true
    required                  = true
    exposed_to_scripts        = true
  }

  option {
    name                      = "region"
    default_value             = "us-east-1"
    value_choices             = ["us-east-1", "eu-west-1"]
    require_predefined_choice = true
    required                  = true
    exposed_to_scripts        = true
  }
}

Debug Output

https://gist.github.com/mengesb/5e38dc393fbdb62b0586e21e1a9bbce0

Panic Output

https://gist.github.com/mengesb/5e38dc393fbdb62b0586e21e1a9bbce0

Expected Behavior

Graceful message or handled nil

Actual Behavior

crash

Steps to Reproduce

  1. Create rundeck_job resource with an options block that has an empty element in value_choices
  2. terraform apply

Important Factoids

The old provider handled this and allowed a nil/empty/"" entry

References

  • N/A