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/rackspace/models/load_balancers/node.rb
2013-01-07 21:01:20 +00:00

58 lines
1.3 KiB
Ruby

require 'fog/core/model'
module Fog
module Rackspace
class LoadBalancers
class Node < Fog::Model
identity :id
attribute :address
attribute :status
attribute :weight
attribute :port
attribute :condition
def destroy
requires :identity, :load_balancer
service.delete_node(load_balancer.identity, identity)
true
end
def save
if persisted?
update
else
create
end
true
end
private
def load_balancer
collection.load_balancer
end
def create
requires :load_balancer, :address, :condition, :port
options = {}
unless weight.nil?
options[:weight] = weight
end
data = service.create_node(load_balancer.id, address, port, condition, options)
merge_attributes(data.body['nodes'][0])
end
def update
requires :load_balancer, :identity
options = {
:condition => condition
}
unless weight.nil?
options[:weight] = weight
end
service.update_node(load_balancer.id, identity, options)
end
end
end
end
end