ManageIQ / manageiq-providers-embedded_terraform

ManageIQ plugin for the Embedded Terraform provider.
Apache License 2.0
0 stars 10 forks source link

Parse dialog options as Extra Vars #53

Closed agrare closed 3 months ago

agrare commented 3 months ago

When you have a dialog pass a value for a service order it comes in as:

options
{:dialog=>{"dialog_text_box_1"=>"hello world"}

We need to extract this and pass through to the Terraform::Runner as Extra Vars

With this change the Job options now look like:

 options:
  {:template_id=>4,
   :env_vars=>{},
   :input_vars=>{"execution_ttl"=>"", "extra_vars"=>{"text_box_1"=>"hello world"}, "verbosity"=>"0"},
   :credentials=>[3],
   :poll_interval=>1 minute,
   :git_checkout_tempdir=>"/tmp/embedded-terraform-runner-git20240603-334161-40j3os"},
Fryguy commented 3 months ago

@agrare This now returns a different thing than the original commit (can't tell if intentional or not)

  def decrypt_input_vars(input_vars)
    result = input_vars.deep_dup
    result.fetch("extra_vars", {}).transform_values! { |val| val.kind_of?(String) ? ManageIQ::Password.try_decrypt(val) : val }
    result
  end

  def decrypt_input_vars_orig(input_vars)
    input_vars
      .dup
      .fetch("extra_vars", {})
      .transform_values { |val| val.kind_of?(String) ? ManageIQ::Password.try_decrypt(val) : val }
  end
[7] pry(main)> decrypt_input_vars("extra_vars" => {"foo" => "bar"}, "flarp" => {})
=> {"extra_vars"=>{"foo"=>"bar"}, "flarp"=>{}}
[8] pry(main)> decrypt_input_vars_orig("extra_vars" => {"foo" => "bar"}, "flarp" => {})
=> {"foo"=>"bar"}
agrare commented 3 months ago

@Fryguy I originally intended to return the entire input_vars payload since that is what embedded_ansible is doing

agrare commented 3 months ago

Actually looking at the Terraform::Runner.run_async docs they might want the extra_vars passed in rather than the whole input_vars

agrare commented 3 months ago

Okay updated, should be good to go now.

miq-bot commented 3 months ago

Checked commit https://github.com/agrare/manageiq-providers-embedded_terraform/commit/cd750cddf91538fe6ac5fa45651c7bc95d8feafb with ruby 2.7.8, rubocop 1.56.3, haml-lint 0.51.0, and yamllint 2 files checked, 0 offenses detected Everything looks fine. :cookie:

Fryguy commented 3 months ago

Backported to radjabov in commit 4830ad3a3f2ccfd8cc541ed43a04fdb158ee9cab.

commit 4830ad3a3f2ccfd8cc541ed43a04fdb158ee9cab
Author: Jason Frey <fryguy9@gmail.com>
Date:   Mon Jun 3 15:29:43 2024 -0400

    Merge pull request #53 from agrare/parse_dialog_options_as_extra_vars

    Parse dialog options as Extra Vars

    (cherry picked from commit 41c4a5c946ef88b0841bfe17eaa3e7cea393620e)