Class: Fog::Compute::Softlayer::Real
- Inherits:
-
Object
- Object
- Fog::Compute::Softlayer::Real
- Includes:
- Softlayer::Compute::Shared, Softlayer::Slapi
- Defined in:
- lib/fog/softlayer/compute.rb,
lib/fog/softlayer/requests/compute/get_vm.rb,
lib/fog/softlayer/requests/compute/get_tag.rb,
lib/fog/softlayer/requests/compute/get_vms.rb,
lib/fog/softlayer/requests/compute/create_vm.rb,
lib/fog/softlayer/requests/compute/delete_vm.rb,
lib/fog/softlayer/requests/compute/create_vms.rb,
lib/fog/softlayer/requests/compute/get_vm_tags.rb,
lib/fog/softlayer/requests/compute/describe_tags.rb,
lib/fog/softlayer/requests/compute/create_vm_tags.rb,
lib/fog/softlayer/requests/compute/delete_vm_tags.rb,
lib/fog/softlayer/requests/compute/get_bare_metal_tags.rb,
lib/fog/softlayer/requests/compute/get_bare_metal_server.rb,
lib/fog/softlayer/requests/compute/create_bare_metal_tags.rb,
lib/fog/softlayer/requests/compute/delete_bare_metal_tags.rb,
lib/fog/softlayer/requests/compute/get_bare_metal_servers.rb,
lib/fog/softlayer/requests/compute/create_bare_metal_server.rb,
lib/fog/softlayer/requests/compute/delete_bare_metal_server.rb,
lib/fog/softlayer/requests/compute/get_references_by_tag_name.rb
Overview
Makes real connections to Softlayer.
Instance Attribute Summary collapse
-
#default_domain ⇒ Object
Returns the value of attribute default_domain.
Instance Method Summary collapse
- #create_bare_metal_server(opts) ⇒ Object
- #create_bare_metal_tags(id, tags = []) ⇒ Object
- #create_vm(opts) ⇒ Object
- #create_vm_tags(id, tags = []) ⇒ Object
- #create_vms(opts) ⇒ Object
- #delete_bare_metal_server(id) ⇒ Object
- #delete_bare_metal_tags(id, tags = []) ⇒ Object
- #delete_vm(id) ⇒ Object
- #delete_vm_tags(id, tags = []) ⇒ Object
- #describe_tags ⇒ Object
- #get_bare_metal_server(identifier) ⇒ Object
- #get_bare_metal_servers ⇒ Object
- #get_bare_metal_tags(id) ⇒ Object
- #get_references_by_tag_name(tag_list) ⇒ Object
- #get_tag(id) ⇒ Object
- #get_vm(identifier) ⇒ Object
- #get_vm_tags(id) ⇒ Object
- #get_vms ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #list_servers ⇒ Object
- #request(service, path, options = {}) ⇒ Object
Methods included from Softlayer::Compute::Shared
Methods included from Softlayer::Slapi
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
101 102 103 104 |
# File 'lib/fog/softlayer/compute.rb', line 101 def initialize(={}) @softlayer_api_key = [:softlayer_api_key] @softlayer_username = [:softlayer_username] end |
Instance Attribute Details
#default_domain ⇒ Object
Returns the value of attribute default_domain.
97 98 99 |
# File 'lib/fog/softlayer/compute.rb', line 97 def default_domain @default_domain end |
Instance Method Details
#create_bare_metal_server(opts) ⇒ Object
77 78 79 80 |
# File 'lib/fog/softlayer/requests/compute/create_bare_metal_server.rb', line 77 def (opts) raise ArgumentError, "Fog::Compute::Softlayer#create_bare_metal_server expects argument of type Hash" unless opts.kind_of?(Hash) request(:hardware_server, :create_object, :body => opts, :http_method => :POST) end |
#create_bare_metal_tags(id, tags = []) ⇒ Object
43 44 45 46 |
# File 'lib/fog/softlayer/requests/compute/create_bare_metal_tags.rb', line 43 def (id, = []) raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless .is_a?(Array) self.request(:hardware_server, "#{id}/set_tags", :body => .join(','), :http_method => :post) end |
#create_vm(opts) ⇒ Object
44 45 46 47 48 |
# File 'lib/fog/softlayer/requests/compute/create_vm.rb', line 44 def create_vm(opts) raise ArgumentError, "Fog::Compute::Softlayer#create_vm expects argument of type Hash" unless opts.kind_of?(Hash) opts = [opts] self.create_vms(opts) end |
#create_vm_tags(id, tags = []) ⇒ Object
43 44 45 46 |
# File 'lib/fog/softlayer/requests/compute/create_vm_tags.rb', line 43 def (id, = []) raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless .is_a?(Array) self.request(:virtual_guest, "#{id}/set_tags", :body => .join(','), :http_method => :post) end |
#create_vms(opts) ⇒ Object
88 89 90 91 |
# File 'lib/fog/softlayer/requests/compute/create_vms.rb', line 88 def create_vms(opts) raise ArgumentError, "Fog::Compute::Softlayer#create_vms expects argument of type Array" unless opts.kind_of?(Array) request(:virtual_guest, :create_objects, :body => opts, :http_method => :POST) end |
#delete_bare_metal_server(id) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/delete_bare_metal_server.rb', line 35 def (id) request(:hardware_server, id.to_s, :http_method => :DELETE) end |
#delete_bare_metal_tags(id, tags = []) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/fog/softlayer/requests/compute/delete_bare_metal_tags.rb', line 36 def (id, = []) raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless .is_a?(Array) subset = self.(id).body['tagReferences'].map do |i| i['tag']['name'] unless .include?(i['tag']['name']) end.compact self.(id, subset) end |
#delete_vm(id) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/delete_vm.rb', line 35 def delete_vm(id) request(:virtual_guest, id.to_s, :http_method => :DELETE) end |
#delete_vm_tags(id, tags = []) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/fog/softlayer/requests/compute/delete_vm_tags.rb', line 36 def (id, = []) raise ArgumentError, "Tags argument for #{self.class.name}##{__method__} must be Array." unless .is_a?(Array) subset = self.(id).body['tagReferences'].map do |i| i['tag']['name'] unless .include?(i['tag']['name']) end.compact self.(id, subset) end |
#describe_tags ⇒ Object
24 25 26 |
# File 'lib/fog/softlayer/requests/compute/describe_tags.rb', line 24 def self.request(:account, :get_tags, :query => 'objectMask=mask[referenceCount]') end |
#get_bare_metal_server(identifier) ⇒ Object
28 29 30 |
# File 'lib/fog/softlayer/requests/compute/get_bare_metal_server.rb', line 28 def (identifier) request(:hardware_server, identifier, :expected => [200, 404], :query => 'objectMask=mask[datacenter,tagReferences,memory,provisionDate,processorCoreAmount,hardDrives,datacenter,hourlyBillingFlag,operatingSystem.passwords.password]') end |
#get_bare_metal_servers ⇒ Object
22 23 24 |
# File 'lib/fog/softlayer/requests/compute/get_bare_metal_servers.rb', line 22 def request(:account, :get_hardware, :query => 'objectMask=mask[datacenter,tagReferences,memory,processorCoreAmount,hardDrives,datacenter,hourlyBillingFlag,operatingSystem.passwords.password]') end |
#get_bare_metal_tags(id) ⇒ Object
41 42 43 |
# File 'lib/fog/softlayer/requests/compute/get_bare_metal_tags.rb', line 41 def (id) self.request(:hardware_server, id, :query => 'objectMask=id;tagReferences') end |
#get_references_by_tag_name(tag_list) ⇒ Object
36 37 38 |
# File 'lib/fog/softlayer/requests/compute/get_references_by_tag_name.rb', line 36 def get_references_by_tag_name(tag_list) self.request(:tag, "get_tag_by_tag_name/#{tag_list}", :query => 'objectMask=references') end |
#get_tag(id) ⇒ Object
21 22 23 |
# File 'lib/fog/softlayer/requests/compute/get_tag.rb', line 21 def get_tag(id) self.request(:tag, "#{id}/get_object", :query => "objectMask=references;references.tagType") end |
#get_vm(identifier) ⇒ Object
28 29 30 |
# File 'lib/fog/softlayer/requests/compute/get_vm.rb', line 28 def get_vm(identifier) request(:virtual_guest, identifier, :expected => [200, 404], :query => 'objectMask=mask[datacenter,tagReferences,blockDevices,blockDeviceTemplateGroup.globalIdentifier,operatingSystem.passwords.password]') end |
#get_vm_tags(id) ⇒ Object
41 42 43 |
# File 'lib/fog/softlayer/requests/compute/get_vm_tags.rb', line 41 def (id) self.request(:virtual_guest, id, :query => 'objectMask=mask[tagReferences]') end |
#get_vms ⇒ Object
22 23 24 |
# File 'lib/fog/softlayer/requests/compute/get_vms.rb', line 22 def get_vms request(:account, :get_virtual_guests, :query => 'objectMask=mask[datacenter,tagReferences,blockDevices,blockDeviceTemplateGroup.globalIdentifier,operatingSystem.passwords.password,primaryNetworkComponent.networkVlan]') end |
#list_servers ⇒ Object
112 113 114 |
# File 'lib/fog/softlayer/compute.rb', line 112 def list_servers (self.get_vms.body.map {|s| s['bare_metal'] = false; s } << self..body.map {|s| s['bare_metal'] = true; s}).flatten end |
#request(service, path, options = {}) ⇒ Object
106 107 108 109 |
# File 'lib/fog/softlayer/compute.rb', line 106 def request(service, path, = {}) = {:username => @softlayer_username, :api_key => @softlayer_api_key}.merge() Fog::Softlayer::Slapi.slapi_request(service, path, ) end |