class Fog::Rackspace::LoadBalancers::LoadBalancer
Constants
- ACTIVE
States
- BUILD
- DELETED
- ERROR
- PENDING_DELTE
- PENDING_UPDATE
- SUSPENDED
Public Class Methods
new(attributes)
click to toggle source
Calls superclass method
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 31 def initialize(attributes) #HACK - Since we are hacking how sub-collections work, we have to make sure the service is valid first. # Old 'connection' is renamed as service and should be used instead @service = attributes[:service] || attributes[:connection] super end
Public Instance Methods
access_rules()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 38 def access_rules unless @access_rules @access_rules = Fog::Rackspace::LoadBalancers::AccessRules.new({ :service => service, :load_balancer => self}) # prevents loading access rules from non-existent load balancers @access_rules.clear unless persisted? end @access_rules end
access_rules=(new_access_rules=[])
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 50 def access_rules=(new_access_rules=[]) access_rules.load(new_access_rules) end
connection_throttling()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 146 def connection_throttling requires :identity throttle = service.get_connection_throttling(identity).body['connectionThrottle'] throttle.count == 0 ? nil : throttle end
content_caching()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 111 def content_caching requires :identity service.get_content_caching(identity).body['contentCaching']['enabled'] end
destroy()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 182 def destroy requires :identity service.delete_load_balancer(identity) true end
disable_connection_logging()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 122 def disable_connection_logging requires :identity service.set_connection_logging identity, false attributes[:connection_logging] = false end
disable_connection_throttling()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 158 def disable_connection_throttling requires :identity service.remove_connection_throttling(identity) true end
disable_content_caching()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 105 def disable_content_caching requires :identity service.set_content_caching identity, false true end
disable_health_monitor()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 140 def disable_health_monitor requires :identity service.remove_monitor(identity) true end
disable_session_persistence()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 176 def disable_session_persistence requires :identity service.remove_session_persistence(identity) true end
disable_ssl_termination()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 82 def disable_ssl_termination requires :identity service.remove_ssl_termination(identity) end
enable_connection_logging()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 116 def enable_connection_logging requires :identity service.set_connection_logging identity, true attributes[:connection_logging] = true end
enable_connection_throttling(max_connections, min_connections, max_connection_rate, rate_interval)
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 152 def enable_connection_throttling(max_connections, min_connections, max_connection_rate, rate_interval) requires :identity service.set_connection_throttling(identity, max_connections, min_connections, max_connection_rate, rate_interval) true end
enable_content_caching()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 99 def enable_content_caching requires :identity service.set_content_caching identity, true true end
enable_health_monitor(type, delay, timeout, attempsBeforeDeactivation, options = {})
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 134 def enable_health_monitor(type, delay, timeout, attempsBeforeDeactivation, options = {}) requires :identity service.set_monitor(identity, type, delay, timeout, attempsBeforeDeactivation, options) true end
enable_session_persistence(type)
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 170 def enable_session_persistence(type) requires :identity service.set_session_persistence(identity, type) true end
enable_ssl_termination(securePort, privatekey, certificate, options = {})
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 77 def enable_ssl_termination(securePort, privatekey, certificate, options = {}) requires :identity service.set_ssl_termination(identity, securePort, privatekey, certificate, options) end
error_page()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 211 def error_page requires :identity service.get_error_page(identity).body['errorpage']['content'] end
error_page=(content)
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 216 def error_page=(content) requires :identity service.set_error_page identity, content end
health_monitor()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 128 def health_monitor requires :identity monitor = service.get_monitor(identity).body['healthMonitor'] monitor.count == 0 ? nil : monitor end
nodes()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 54 def nodes unless @nodes @nodes = Fog::Rackspace::LoadBalancers::Nodes.new({ :service => service, :load_balancer => self}) # prevents loading nodes from non-existent load balancers @nodes.clear unless persisted? end @nodes end
nodes=(new_nodes=[])
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 66 def nodes=(new_nodes=[]) nodes.load(new_nodes) end
ready?()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 188 def ready? state == ACTIVE end
reset_error_page()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 221 def reset_error_page requires :identity service.remove_error_page identity end
save()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 192 def save if persisted? update else create end true end
session_persistence()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 164 def session_persistence requires :identity persistence = service.get_session_persistence(identity).body['sessionPersistence'] persistence.count == 0 ? nil : persistence end
ssl_termination()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 70 def ssl_termination requires :identity ssl_termination = service.get_ssl_termination(identity).body['sslTermination'] rescue Fog::Rackspace::LoadBalancers::NotFound nil end
stats()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 206 def stats requires :identity service.get_stats(identity).body end
usage(options = {})
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 201 def usage(options = {}) requires :identity service.get_load_balancer_usage(identity, options).body end
virtual_ips()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 87 def virtual_ips @virtual_ips ||= begin Fog::Rackspace::LoadBalancers::VirtualIps.new({ :service => service, :load_balancer => self}) end end
virtual_ips=(new_virtual_ips=[])
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 95 def virtual_ips=(new_virtual_ips=[]) virtual_ips.load(new_virtual_ips) end
Private Instance Methods
connection_logging=(new_value)
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 264 def connection_logging=(new_value) if !new_value.nil? and new_value.is_a?(Hash) attributes[:connection_logging] = case new_value['enabled'] when true,'true' true when false,'false' false end else attributes[:connection_logging] = new_value end end
create()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 227 def create requires :name, :protocol, :port, :virtual_ips, :nodes options = {} options[:algorithm] = algorithm if algorithm options[:timeout] = timeout if timeout data = service.create_load_balancer(name, protocol, port, virtual_ips_hash, nodes_hash, options) merge_attributes(data.body['loadBalancer']) end
nodes_hash()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 258 def nodes_hash nodes.map do |node| { :address => node.address, :port => node.port, :condition => node.condition, :weight => node.weight } end end
update()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 238 def update requires :name, :protocol, :port, :algorithm, :timeout options = { :name => name, :algorithm => algorithm, :protocol => protocol, :port => port, :timeout => timeout } service.update_load_balancer(identity, options) #TODO - Should this bubble down to nodes? Without tracking changes this would be very inefficient. # For now, individual nodes will have to be saved individually after saving an LB end
virtual_ips_hash()
click to toggle source
# File lib/fog/rackspace/models/load_balancers/load_balancer.rb, line 252 def virtual_ips_hash virtual_ips.map do |virtual_ip| { :type => virtual_ip.type } end end