class Backup::Notifier::HttpPost
Attributes
Hash of additional HTTP headers to send.
This notifier sets the following headers: { 'User-Agent' => “Backup/#{ Backup::VERSION }”,
'Content-Type' => 'x-www-form-urlencoded' }
'Content-Type' may not be changed. 'User-Agent' may be overridden or omitted by setting it to nil
. e.g. { 'Authorization' => 'my_auth_info', 'User-Agent' => nil }
Hash of additional POST parameters to send.
This notifier will set two parameters: { 'status' => 'success|warning|failure',
'message' => '[Backup::(Success|Warning|Failure)] label (trigger)' }
'status' may not be changed. 'message' may be overridden or omitted by setting a nil
value. e.g. { 'auth_token' => 'my_token', 'message' => nil }
Path to a cacert.pem
file to use for ssl_verify_peer
.
This is provided (via Excon), but may be specified if needed.
Verify the server's certificate when using SSL.
This will default to true
for most systems. It may be forced by setting to true
, or disabled by setting to false
.
Successful HTTP Status Code(s) that should be returned.
This may be a single code or an Array of acceptable codes. e.g. [200, 201, 204]
If any other response code is returned, the request will be retried using `max_retries` and `retry_waitsec`.
Default: 200
URI to post notification to.
URI scheme may be `http` or `https`.
If Basic Authentication is needed, supply the `user:password` in the URI. e.g. 'user:pass@www.example.com/path'
Port may also be supplied. e.g. 'www.example.com:8080/path'
Public Class Methods
Backup::Notifier::Base::new
# File lib/backup/notifier/http_post.rb, line 69 def initialize(model, &block) super instance_eval(&block) if block_given? @headers ||= {} @params ||= {} @success_codes ||= 200 end
Private Instance Methods
Notify the user of the backup operation results.
`status` indicates one of the following:
`:success` : The backup completed successfully. : Notification will be sent if `on_success` is `true`.
`:warning` : The backup completed successfully, but warnings were logged. : Notification will be sent if `on_warning` or `on_success` is `true`.
`:failure` : The backup operation failed. : Notification will be sent if `on_warning` or `on_success` is `true`.
# File lib/backup/notifier/http_post.rb, line 97 def notify!(status) msg = message.call(model, :status => status_data_for(status)) opts = { :headers => { 'User-Agent' => "Backup/#{ VERSION }" }. merge(headers).reject {|k,v| v.nil? }. merge('Content-Type' => 'application/x-www-form-urlencoded'), :body => URI.encode_www_form({ 'message' => msg }. merge(params).reject {|k,v| v.nil? }. merge('status' => status.to_s)), :expects => success_codes # raise error if unsuccessful } opts.merge!(:ssl_verify_peer => ssl_verify_peer) unless ssl_verify_peer.nil? opts.merge!(:ssl_ca_file => ssl_ca_file) if ssl_ca_file Excon.post(uri, opts) end