# File lib/fog/linode/compute.rb, line 82 def initialize(options={}) @linode_api_key = options[:linode_api_key] @host = options[:host] || "api.linode.com" @port = options[:port] || 443 @scheme = options[:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent]) end
Get available data centers
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/avail_datacenters.rb, line 12 def avail_datacenters request( :expects => 200, :method => 'GET', :query => { :api_action => 'avail.datacenters' } ) end
Get available distributions
distributionId<~Integer>: id to limit results to
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/avail_distributions.rb, line 15 def avail_distributions(distribution_id=nil) options = {} if distribution_id options.merge!(:distributionId => distribution_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'avail.distributions' }.merge!(options) ) end
Get available kernels
kernelId<~Integer>: id to limit results to
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/avail_kernels.rb, line 15 def avail_kernels(kernel_id=nil) options = {} if kernel_id options.merge!(:kernelId => kernel_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'avail.kernels' }.merge!(options) ) end
Get available plans
linodeplanId<~Integer>: id to limit results to
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/avail_linodeplans.rb, line 15 def avail_linodeplans(linodeplan_id = nil) options = {} if linodeplan_id options.merge!(:planId => linodeplan_id) end result = request( :expects => 200, :method => 'GET', :query => { :api_action => 'avail.linodeplans' }.merge!(options) ) #hack for plans not filtering by id like they should above, remove when they fix it. result.body["DATA"] = result.body["DATA"].select { |item| item['PLANID'] == linodeplan_id } if linodeplan_id result end
# File lib/fog/linode/requests/compute/avail_stackscripts.rb, line 6 def avail_stackscripts(options={}) result = request( :expects => 200, :method => 'GET', :query => { :api_action => 'avail.stackscripts' }.merge!(options) ) result.body['DATA'].each { |r| r['DISTRIBUTIONIDLIST'] = r['DISTRIBUTIONIDLIST'].to_s } result end
# File lib/fog/linode/requests/compute/linode_boot.rb, line 6 def linode_boot(linode_id, config_id) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.boot', :linodeId => linode_id, :configId => config_id } ) end
# File lib/fog/linode/requests/compute/linode_config_create.rb, line 6 def linode_config_create(linode_id, kernel_id, name, disk_list) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.config.create', :linodeId => linode_id, :kernelId => kernel_id, :label => name, :diskList => disk_list } ) end
# File lib/fog/linode/requests/compute/linode_config_list.rb, line 6 def linode_config_list(linode_id, config_id=nil, options={}) if config_id options.merge!(:configid => config_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.config.list', :linodeId => linode_id }.merge!(options) ) end
Creates a linode and assigns you full privileges
datacenter_id<~Integer>: id of datacenter to place new linode in
plan_id<~Integer>: id of plan to boot new linode with
payment_term<~Integer>: Subscription term in months, in [1, 12, 24]
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/linode_create.rb, line 17 def linode_create(datacenter_id, plan_id, payment_term) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.create', :datacenterId => datacenter_id, :paymentTerm => payment_term, :planId => plan_id } ) end
List all linodes user has access or delete to
linode_id<~Integer>: id of linode to delete
options<~Hash>:
skipChecks<~Boolean>: skips safety checks and always deletes
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/linode_delete.rb, line 17 def linode_delete(linode_id, options={}) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.delete', :linodeId => linode_id }.merge!(options) ) end
# File lib/fog/linode/requests/compute/linode_disk_create.rb, line 6 def linode_disk_create(linode_id, name, type, size) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.disk.create', :linodeId => linode_id, :label => name, :type => type, :size => size } ) end
# File lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb, line 6 def linode_disk_createfromdistribution(linode_id, distro_id, name, size, password) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.disk.createfromdistribution', :linodeId => linode_id, :distributionId => distro_id, :label => name, :size => size, :rootPass => password } ) end
# File lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb, line 6 def linode_disk_createfromstackscript(linode_id, script_id, distro_id, name, size, password, options={}) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.disk.createfromstackscript', :linodeId => linode_id, :stackScriptID => script_id, :distributionId => distro_id, :label => name, :size => size, :rootPass => password, :stackScriptUDFResponses => Fog::JSON.encode(options) } ) end
# File lib/fog/linode/requests/compute/linode_disk_delete.rb, line 6 def linode_disk_delete(linode_id, disk_id) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.disk.delete', :linodeId => linode_id, :diskId => disk_id } ) end
# File lib/fog/linode/requests/compute/linode_disk_list.rb, line 6 def linode_disk_list(linode_id, disk_id=nil) options = {} if disk_id options.merge!(:diskId => disk_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.disk.list', :linodeId => linode_id }.merge!(options) ) end
# File lib/fog/linode/requests/compute/linode_ip_addprivate.rb, line 6 def linode_ip_addprivate(linode_id) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.ip.addprivate', :linodeId => linode_id } ) end
# File lib/fog/linode/requests/compute/linode_ip_list.rb, line 6 def linode_ip_list(linode_id, ip_id=nil) options = {} if ip_id options.merge!(:ipaddressId => ip_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.ip.list', :linodeId => linode_id }.merge!(options) ) end
List all linodes user has access or delete to
linodeId<~Integer>: Limit the list to the specified LinodeID
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/linode_list.rb, line 15 def linode_list(linode_id=nil) options = {} if linode_id options.merge!(:linodeId => linode_id) end request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.list' }.merge!(options) ) end
Issues a shutdown, and then a boot job for a given linode
linode_id<~Integer>: id of linode to reboot
options<~Hash>:
configId<~Boolean>: id of config to boot server with
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/linode_reboot.rb, line 17 def linode_reboot(linode_id, options={}) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.reboot', :linodeId => linode_id }.merge!(options) ) end
# File lib/fog/linode/requests/compute/linode_shutdown.rb, line 6 def linode_shutdown(linode_id) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.shutdown', :linodeId => linode_id } ) end
# File lib/fog/linode/requests/compute/linode_update.rb, line 6 def linode_update(linode_id, options={}) request( :expects => 200, :method => 'GET', :query => { :api_action => 'linode.update', :linodeId => linode_id }.merge!(options) ) end
# File lib/fog/linode/compute.rb, line 90 def reload @connection.reset end
# File lib/fog/linode/compute.rb, line 94 def request(params) params[:query] ||= {} params[:query].merge!(:api_key => @linode_api_key) response = @connection.request(params.merge!({:host => @host})) unless response.body.empty? response.body = Fog::JSON.decode(response.body) if data = response.body['ERRORARRAY'].first error = case data['ERRORCODE'] when 5 Fog::Compute::Linode::NotFound else Fog::Compute::Linode::Error end raise error.new(data['ERRORMESSAGE']) end end response end
Get available stack scripts
scriptId<~Integer>: id to limit results to
response<~Excon::Response>:
body<~Array>:
TODO: docs
# File lib/fog/linode/requests/compute/stackscript_list.rb, line 15 def stackscript_list(script_id=nil) options = {} if script_id options.merge!(:stackScriptID => script_id) end result = request( :expects => 200, :method => 'GET', :query => { :api_action => 'stackscript.list' }.merge!(options) ) result.body['DATA'].each { |r| r['DISTRIBUTIONIDLIST'] = r['DISTRIBUTIONIDLIST'].to_s } result end
Generated with the Darkfish Rdoc Generator 2.