mirror of
https://github.com/inspec/inspec
synced 2024-11-27 07:00:39 +00:00
Properly return postgres query errors on failure (#2179)
When using the `query` method in the `postgres_session` resource, if the query fails, the `query` method attempts to call `skip_resource` with an error message. Not only does the `skip_resource` not properly work, but it also returns a `String` object back to the test which is probably going to try and call the `output` method on it to run the test. This results in an error like this: ``` Can't read ∅ undefined method `output' for "output":String ``` This change returns the full psql output as a Lines object to the user, including stderr, so they can at least get the error in their test output and avoids undefined method errors. Signed-off-by: Adam Leff <adam@leff.co>
This commit is contained in:
parent
75e1331618
commit
d029f7f58c
1 changed files with 1 additions and 1 deletions
|
@ -52,7 +52,7 @@ module Inspec::Resources
|
||||||
cmd = inspec.command(psql_cmd)
|
cmd = inspec.command(psql_cmd)
|
||||||
out = cmd.stdout + "\n" + cmd.stderr
|
out = cmd.stdout + "\n" + cmd.stderr
|
||||||
if cmd.exit_status != 0 || out =~ /could not connect to .*/ || out.downcase =~ /^error:.*/
|
if cmd.exit_status != 0 || out =~ /could not connect to .*/ || out.downcase =~ /^error:.*/
|
||||||
skip_resource "Can't read run query #{query.inspect} on postgres_session: #{out}"
|
Lines.new(out, "PostgreSQL query with errors: #{query}")
|
||||||
else
|
else
|
||||||
Lines.new(cmd.stdout.strip, "PostgreSQL query: #{query}")
|
Lines.new(cmd.stdout.strip, "PostgreSQL query: #{query}")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue