mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
46 lines
1.7 KiB
Ruby
46 lines
1.7 KiB
Ruby
module Fog
|
|
module Compute
|
|
class Ecloud
|
|
class Monitor < Fog::Ecloud::Model
|
|
identity :href
|
|
|
|
attribute :type, :aliases => :Type
|
|
attribute :other_links, :aliases => :Links
|
|
attribute :interval, :aliases => :Interval, :type => :integer
|
|
attribute :response_timeout, :aliases => :ResponseTimeout, :type => :integer
|
|
attribute :retries, :aliases => :Retries, :type => :integer
|
|
attribute :downtime, :aliases => :Downtime, :type => :integer
|
|
attribute :enabled, :aliases => :Enabled, :type => :boolean
|
|
attribute :request_uri, :aliases => :RequestUri
|
|
attribute :http_headers, :aliases => :HttpHeaders
|
|
attribute :response_codes, :aliases => :ResponseCodes
|
|
attribute :send_string, :aliases => :SendString
|
|
attribute :receive_string, :aliases => :ReceiveString
|
|
|
|
def edit(options = {})
|
|
href = "/cloudapi/ecloud/internetServices/#{internet_service_id}/monitor?type="
|
|
case type
|
|
when "application/vnd.tmrk.cloud.pingMonitor"
|
|
options[:uri] = href + "ping"
|
|
data = connection.monitors_edit_ping(options).body
|
|
when "application/vnd.tmrk.cloud.httpMonitor"
|
|
options[:uri] = href + "http"
|
|
data = connection.monitors_edit_http(options).body
|
|
when "application/vnd.tmrk.cloud.ecvMonitor"
|
|
options[:uri] = href + "ecv"
|
|
data = connection.monitors_edit_ecv(options).body
|
|
end
|
|
object = collection.from_data(data)
|
|
end
|
|
|
|
def internet_service_id
|
|
other_links[:Link][:href].scan(/\d+/)[0]
|
|
end
|
|
|
|
def id
|
|
href.scan(/\d+/)[0]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|