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/reboot_vm.rb,
lib/fog/softlayer/requests/compute/create_vms.rb,
lib/fog/softlayer/requests/compute/get_vm_tags.rb,
lib/fog/softlayer/requests/compute/power_on_vm.rb,
lib/fog/softlayer/requests/compute/get_key_pair.rb,
lib/fog/softlayer/requests/compute/power_off_vm.rb,
lib/fog/softlayer/requests/compute/describe_tags.rb,
lib/fog/softlayer/requests/compute/get_key_pairs.rb,
lib/fog/softlayer/requests/compute/create_vm_tags.rb,
lib/fog/softlayer/requests/compute/delete_vm_tags.rb,
lib/fog/softlayer/requests/compute/create_key_pair.rb,
lib/fog/softlayer/requests/compute/delete_key_pair.rb,
lib/fog/softlayer/requests/compute/update_key_pair.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/reboot_bare_metal_server.rb,
lib/fog/softlayer/requests/compute/get_references_by_tag_name.rb,
lib/fog/softlayer/requests/compute/power_on_bare_metal_server.rb,
lib/fog/softlayer/requests/compute/power_off_bare_metal_server.rb
Overview
Makes real connections to Softlayer.
Instance Attribute Summary collapse
-
#softlayer_default_datacenter ⇒ Object
Returns the value of attribute softlayer_default_datacenter.
-
#softlayer_default_domain ⇒ Object
Returns the value of attribute softlayer_default_domain.
Instance Method Summary collapse
- #create_bare_metal_server(opts) ⇒ Object
- #create_bare_metal_tags(id, tags = []) ⇒ Object
- #create_key_pair(opts) ⇒ 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_key_pair(id) ⇒ 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_key_pair(id) ⇒ Object
- #get_key_pairs ⇒ 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
- #power_off_bare_metal_server(id) ⇒ Object
- #power_off_vm(id, use_hard_poweroff) ⇒ Object
- #power_on_bare_metal_server(id) ⇒ Object
- #power_on_vm(id) ⇒ Object
- #reboot_bare_metal_server(id, use_hard_reboot) ⇒ Object
- #reboot_vm(id, use_hard_reboot) ⇒ Object
- #request(service, path, options = {}) ⇒ Object
- #update_key_pair(id, opts) ⇒ Object
Methods included from Softlayer::Compute::Shared
Methods included from Softlayer::Slapi
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
116 117 118 119 120 121 |
# File 'lib/fog/softlayer/compute.rb', line 116 def initialize(={}) @softlayer_api_key = [:softlayer_api_key] @softlayer_username = [:softlayer_username] @softlayer_default_domain = [:softlayer_default_domain] @softlayer_default_datacenter = [:softlayer_default_datacenter] end |
Instance Attribute Details
#softlayer_default_datacenter ⇒ Object
Returns the value of attribute softlayer_default_datacenter.
112 113 114 |
# File 'lib/fog/softlayer/compute.rb', line 112 def softlayer_default_datacenter @softlayer_default_datacenter end |
#softlayer_default_domain ⇒ Object
Returns the value of attribute softlayer_default_domain.
111 112 113 |
# File 'lib/fog/softlayer/compute.rb', line 111 def softlayer_default_domain @softlayer_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_key_pair(opts) ⇒ Object
34 35 36 |
# File 'lib/fog/softlayer/requests/compute/create_key_pair.rb', line 34 def create_key_pair(opts) request(:security_ssh_key, :create_object, :body => opts, :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]] # don't ask... 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_key_pair(id) ⇒ Object
30 31 32 |
# File 'lib/fog/softlayer/requests/compute/delete_key_pair.rb', line 30 def delete_key_pair(id) request(:security_ssh_key, id, :http_method => :delete) 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.softwareLicense.softwareDescription.referenceCode,sshKeys.id,privateNetworkOnlyFlag,userData,frontendNetworkComponents,backendNetworkComponents]') 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.softwareLicense.softwareDescription.referenceCode,sshKeys.id,privateNetworkOnlyFlag,userData,frontendNetworkComponents,backendNetworkComponents]') 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_key_pair(id) ⇒ Object
30 31 32 |
# File 'lib/fog/softlayer/requests/compute/get_key_pair.rb', line 30 def get_key_pair(id) request(:security_ssh_key, id) end |
#get_key_pairs ⇒ Object
23 24 25 |
# File 'lib/fog/softlayer/requests/compute/get_key_pairs.rb', line 23 def get_key_pairs request(:account, :get_ssh_keys) 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.softwareLicense.softwareDescription.referenceCode,sshKeys.id,privateNetworkOnlyFlag,userData,frontendNetworkComponents,backendNetworkComponents]') 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.softwareLicense.softwareDescription.referenceCode,primaryNetworkComponent.networkVlan,sshKeys.id,privateNetworkOnlyFlag,userData,frontendNetworkComponents,backendNetworkComponents]') end |
#list_servers ⇒ Object
128 129 130 |
# File 'lib/fog/softlayer/compute.rb', line 128 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 |
#power_off_bare_metal_server(id) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/power_off_bare_metal_server.rb', line 35 def (id) request(:hardware_server, "#{id.to_s}/powerOff", :http_method => :GET) end |
#power_off_vm(id, use_hard_poweroff) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/fog/softlayer/requests/compute/power_off_vm.rb', line 35 def power_off_vm(id, use_hard_poweroff) if use_hard_poweroff request(:virtual_guest, "#{id.to_s}/powerOff", :http_method => :GET) else request(:virtual_guest, "#{id.to_s}/powerOffSoft", :http_method => :GET) end end |
#power_on_bare_metal_server(id) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/power_on_bare_metal_server.rb', line 35 def (id) request(:hardware_server, "#{id.to_s}/powerOn", :http_method => :GET) end |
#power_on_vm(id) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/power_on_vm.rb', line 35 def power_on_vm(id) request(:virtual_guest, "#{id.to_s}/powerOn", :http_method => :GET) end |
#reboot_bare_metal_server(id, use_hard_reboot) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/fog/softlayer/requests/compute/reboot_bare_metal_server.rb', line 35 def (id, use_hard_reboot) if use_hard_reboot request(:hardware_server, "#{id.to_s}/rebootHard", :http_method => :GET) else request(:hardware_server, "#{id.to_s}/rebootSoft", :http_method => :GET) end end |
#reboot_vm(id, use_hard_reboot) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/fog/softlayer/requests/compute/reboot_vm.rb', line 35 def reboot_vm(id, use_hard_reboot) if use_hard_reboot request(:virtual_guest, "#{id.to_s}/rebootHard", :http_method => :GET) else request(:virtual_guest, "#{id.to_s}/rebootSoft", :http_method => :GET) end end |
#request(service, path, options = {}) ⇒ Object
123 124 125 126 |
# File 'lib/fog/softlayer/compute.rb', line 123 def request(service, path, = {}) = {:username => @softlayer_username, :api_key => @softlayer_api_key}.merge() Fog::Softlayer::Slapi.slapi_request(service, path, ) end |
#update_key_pair(id, opts) ⇒ Object
35 36 37 |
# File 'lib/fog/softlayer/requests/compute/update_key_pair.rb', line 35 def update_key_pair(id, opts) request(:security_ssh_key, id, :body => opts, :http_method => :put) end |