1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ecloud/requests/compute/monitors_create_http.rb
2012-06-07 12:50:11 -04:00

44 lines
1.2 KiB
Ruby

module Fog
module Compute
class Ecloud
class Real
include Shared
def monitors_create_http(data)
validate_data([:interval, :response_timeout, :retries, :downtime, :enabled, :request_uri, :response_codes], data)
request(
:body => generate_http_monitor_request(data),
:expects => 201,
:method => "POST",
:headers => {},
:uri => data[:uri],
:parse => true
)
end
private
def generate_http_monitor_request(data)
xml = Builder::XmlMarkup.new
xml.CreateHttpMonitor do
xml.Interval data[:interval]
xml.ResponseTimeout data[:response_timeout]
xml.Retries data[:retries]
xml.Downtime data[:downtime]
xml.Enabled data[:enabled]
xml.RequestUri data[:request_uri]
if data[:http_headers]
xml.HttpHeaders data[:http_headers]
end
xml.ResponseCodes do
data[:response_codes].each do |c|
xml.ResponseCode c
end
end
end
end
end
end
end
end