Class: Httpapi
- Inherits:
-
Chef::Handler
- Object
- Chef::Handler
- Httpapi
- Defined in:
- lib/chef/handler/Httpapi.rb
Instance Method Summary collapse
- #formatted_run_list ⇒ Object
-
#initialize(api_url, api_user, api_pass, api_ssl_verify, api_ssl_version, api_data_message, api_data_success, api_data_failed) ⇒ Httpapi
constructor
A new instance of Httpapi.
- #report ⇒ Object
Constructor Details
#initialize(api_url, api_user, api_pass, api_ssl_verify, api_ssl_version, api_data_message, api_data_success, api_data_failed) ⇒ Httpapi
Returns a new instance of Httpapi.
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/chef/handler/Httpapi.rb', line 14 def initialize(api_url, api_user, api_pass, api_ssl_verify, api_ssl_version, , api_data_success, api_data_failed) @api_url = api_url @api_ssl_verify = api_ssl_verify @api_ssl_version = api_ssl_version @api_user = api_user @api_pass = api_pass = @api_data_success = api_data_success @api_data_failed = api_data_failed end |
Instance Method Details
#formatted_run_list ⇒ Object
25 26 27 |
# File 'lib/chef/handler/Httpapi.rb', line 25 def formatted_run_list node.run_list.map { |r| r.type == :role ? r.name : r.to_s }.join(", ") end |
#report ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/chef/handler/Httpapi.rb', line 29 def report uri = URI(@api_url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.set_debug_output $stderr http.use_ssl = true if @api_ssl_verify == "none" http.verify_mode = OpenSSL::SSL::VERIFY_NONE end http.ssl_version = @api_ssl_version request = Net::HTTP::Post.new(uri.request_uri) request.basic_auth(@api_user, @api_pass) if run_status.success? api_data_info = { => "Chef successfull on #{node.name}\n\nrun_list:\n#{formatted_run_list}\n\ntotal_resources:\n#{run_status.all_resources.length}\n\nupdated_resources:\n#{run_status.updated_resources.length}\n\nelapsed_time:\n#{run_status.elapsed_time}" } api_data = @api_data_success.merge(api_data_info) else api_data_info = { => "Chef failed on #{node.name}\n\nrun_list:\n#{formatted_run_list}\n\nexception:\n#{run_status.exception}\n\nbacktrace:\n#{Array(backtrace).join('\n')}" } api_data = @api_data_failed.merge(api_data_info) end request.body = URI.encode_www_form(api_data) response = http.request request puts response end |