class Inspec::Resources::OpaApi
Public Class Methods
new(opts = {})
click to toggle source
Calls superclass method
Inspec::Resources::Opa::new
# File lib/inspec/resources/opa_api.rb, line 9 def initialize(opts = {}) @url = opts[:url] || nil @data = opts[:data] || nil fail_resource "OPA url and data are mandatory." if @url.nil? || @url.empty? || @data.nil? || @data.empty? @content = load_result super(@content) end
Public Instance Methods
allow()
click to toggle source
# File lib/inspec/resources/opa_api.rb, line 17 def allow @content["result"] end
to_s()
click to toggle source
# File lib/inspec/resources/opa_api.rb, line 21 def to_s "OPA api" end
Private Instance Methods
load_result()
click to toggle source
# File lib/inspec/resources/opa_api.rb, line 27 def load_result raise Inspec::Exceptions::ResourceFailed, "#{resource_exception_message}" if resource_failed? result = inspec.command("curl -X POST #{@url} -d @#{@data} -H 'Content-Type: application/json'") if result.exit_status == 0 result.stdout.gsub("\n", "") else error = result.stdout + "\n" + result.stderr raise Inspec::Exceptions::ResourceFailed, "Error while executing OPA query: #{error}" end end