module Kitchen::Pulumi::Command::Output

Class used to fetch stack outputs via '$ pulumi stack output –json'

Public Class Methods

run(directory:, stack:, logger:) { |outputs: stringified_hash( parse, )| ... } click to toggle source
# File lib/kitchen/pulumi/command/output.rb, line 15
def run(directory:, stack:, logger:)
  cmd = "stack -C #{directory} -s #{stack} output -j"

  ::Kitchen::Pulumi::ShellOut.run(cmd: cmd, logger: logger) do |stdout:|
    yield outputs: ::Kitchen::Util.stringified_hash(
      ::JSON.parse(stdout),
    )
  end
rescue ::JSON::ParserError => e
  raise(
    ::Kitchen::Pulumi::Error,
    "Parsing Pulumi stack output as JSON failed: #{e.message}",
  )
end