class Fog::Compute::ProfitBricks::Datacenter
Attributes
options[RW]
Public Class Methods
new(attributes = {})
click to toggle source
Calls superclass method
# File lib/fog/profitbricks/models/compute/datacenter.rb, line 36 def initialize(attributes = {}) super end
Public Instance Methods
delete()
click to toggle source
# File lib/fog/profitbricks/models/compute/datacenter.rb, line 90 def delete requires :id data = service.delete_datacenter(id) true end
save()
click to toggle source
# File lib/fog/profitbricks/models/compute/datacenter.rb, line 40 def save requires :name, :location options = {} options[:name] = name options[:location] = location options[:description] = description if description options[:servers] = servers if servers options[:volumes] = volumes if volumes options[:loadbalancers] = loadbalancers if loadbalancers options[:lans] = lans if lans entities = {} # Retrieve servers collection if present and generate appropriate JSON. if options.key?(:servers) entities[:servers] = collect_entities(options.delete(:servers)) end # Retrieve volumes collection if present and generate appropriate JSON. if options.key?(:volumes) entities[:volumes] = collect_entities(options.delete(:volumes)) end # Retrieve volumes collection if present and generate appropriate JSON. if options.key?(:loadbalancers) entities[:loadbalancers] = collect_entities(options.delete(:loadbalancers)) end # Retrieve volumes collection if present and generate appropriate JSON. if options.key?(:lans) entities[:lans] = collect_entities(options.delete(:lans)) end data = service.create_datacenter(options, entities) merge_attributes(flatten(data.body)) true end
update()
click to toggle source
# File lib/fog/profitbricks/models/compute/datacenter.rb, line 79 def update requires :id options = {} options[:name] = name if name options[:description] = description if description data = service.update_datacenter(id, options) merge_attributes(flatten(data.body)) true end
Private Instance Methods
collect_entities(entities)
click to toggle source
# File lib/fog/profitbricks/models/compute/datacenter.rb, line 98 def collect_entities(entities) if entities.is_a?(Array) && entities.length > 0 items = [] entities.each do |entity| if entity.key?(:volumes) subentities = collect_entities(entity.delete(:volumes)) items << { properties: entity, entities: {volumes: subentities} } else items << {properties: entity} end end {items: items} end end