lib/fog/vcloud/terremark/ecloud/models/internet_service.rb in fog-0.2.20 vs lib/fog/vcloud/terremark/ecloud/models/internet_service.rb in fog-0.2.21
- old
+ new
@@ -32,18 +32,39 @@
else
connection.configure_internet_service( href, _compose_service_data, _compose_ip_data )
end
end
+ def monitor=(new_monitor = {})
+ if new_monitor.nil?
+ @monitor = nil
+ elsif new_monitor.is_a?(Hash)
+ @monitor = {}
+ @monitor[:type] = new_monitor[:MonitorType] || new_monitor[:type]
+ @monitor[:url_send_string] = new_monitor[:UrlSendString] || new_monitor[:url_send_string]
+ @monitor[:http_headers] = new_monitor[:HttpHeader] || new_monitor[:http_headers]
+ @monitor[:http_headers] = @monitor[:http_headers].split("\n") unless @monitor[:http_headers].is_a?(Array)
+ @monitor[:receive_string] = new_monitor[:ReceiveString] || new_monitor[:receive_string]
+ @monitor[:interval] = new_monitor[:Interval] || new_monitor[:interval]
+ @monitor[:response_timeout] = new_monitor[:ResponseTimeOut] || new_monitor[:response_timeout]
+ @monitor[:downtime] = new_monitor[:DownTime] || new_monitor[:downtime]
+ @monitor[:retries] = new_monitor[:Retries] || new_monitor[:retries]
+ @monitor[:is_enabled] = new_monitor[:IsEnabled] || new_monitor[:is_enabled]
+ else
+ raise RuntimeError.new("monitor needs to either be nil or a Hash")
+ end
+ end
+
def nodes
@nodes ||= Fog::Vcloud::Terremark::Ecloud::Nodes.new( :connection => connection, :href => href + "/nodeServices" )
end
private
def _compose_service_data
+ #For some reason inject didn't work
service_data = {}
- self.class.attributes.select{ |attribute| !send(attribute).nil? }.each { |attribute| service_data[attribute] = send(attribute).to_s }
+ self.class.attributes.select{ |attribute| !send(attribute).nil? }.each { |attribute| service_data[attribute] = send(attribute) }
service_data
end
def _compose_ip_data
if public_ip.nil?