class ProfitBricks::Datacenter
Datacenter
class
Public Class Methods
create(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 86 def create(options = {}) 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 response = ProfitBricks.request( method: :post, path: '/datacenters', body: { properties: options, entities: entities }.to_json, expects: 202 ) instantiate_objects(response) end
get(datacenter_id)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 127 def get(datacenter_id) response = ProfitBricks.request( method: :get, path: "/datacenters/#{datacenter_id}", expects: 200 ) instantiate_objects(response) end
list()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 118 def list response = ProfitBricks.request( method: :get, path: '/datacenters', expects: 200 ) instantiate_objects(response) end
Private Class Methods
collect_entities(entities)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 139 def self.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
Public Instance Methods
create_lan(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 72 def create_lan(options = {}) ProfitBricks::LAN.create(id, options) end
create_loadbalancer(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 60 def create_loadbalancer(options = {}) ProfitBricks::Loadbalancer.create(id, options) end
create_server(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 36 def create_server(options = {}) ProfitBricks::Server.create(id, options) end
create_volume(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 48 def create_volume(options = {}) ProfitBricks::Volume.create(id, options) end
delete()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 4 def delete response = ProfitBricks.request( method: :delete, path: "/datacenters/#{id}", expects: 202 ) self.requestId = response[:requestId] self end
get_lan(lan_id)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 68 def get_lan(lan_id) ProfitBricks::LAN.get(id, lan_id) end
Also aliased as: lan
get_loadbalancer(loadbalancer_id)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 56 def get_loadbalancer(loadbalancer_id) ProfitBricks::Loadbalancer.get(id, loadbalancer_id) end
Also aliased as: loadbalancer
get_server(server_id)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 32 def get_server(server_id) ProfitBricks::Server.get(id, server_id) end
Also aliased as: server
get_volume(volume_id)
click to toggle source
# File lib/profitbricks/datacenter.rb, line 44 def get_volume(volume_id) ProfitBricks::Volume.get(id, nil, volume_id) end
Also aliased as: volume
list_lans()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 64 def list_lans ProfitBricks::LAN.list(id) end
Also aliased as: lans
list_loadbalancers()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 52 def list_loadbalancers ProfitBricks::Loadbalancer.list(id) end
Also aliased as: loadbalancers
list_servers()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 28 def list_servers ProfitBricks::Server.list(id) end
Also aliased as: servers
list_volumes()
click to toggle source
# File lib/profitbricks/datacenter.rb, line 40 def list_volumes ProfitBricks::Volume.list(id) end
Also aliased as: volumes
update(options = {})
click to toggle source
# File lib/profitbricks/datacenter.rb, line 14 def update(options = {}) response = ProfitBricks.request( path: "/datacenters/#{id}", method: :patch, expects: 202, body: options.to_json ) if response self.requestId = response['requestId'] @properties.merge!(response['properties']) end self end