Sha256: 39b61081d0debcf585ecfadbec955ba7dba3f1ecac60a905c75611277880bac3
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module DLDInternet module AWS module EC2 module Instance_Types DEBUG = true class AWSPricingAPIClient attr_reader :instance_types def initialize @instance_types = {} end # --------------------------------------------------------------------------------------------------------------- def get_instance_types(options={}) unless @instance_types.size > 0 require 'net/http' # url = options[:url] || 'https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json' url = options[:url] || 'https://ec2instances.info/instances.json' uri = URI(url) # params = { :limit => 10, :page => 3 } # uri.query = URI.encode_www_form(params) while true response = Net::HTTP.get_response(uri) case response when Net::HTTPSuccess then require 'json' data = JSON.parse(response.body) @instance_types = data break when Net::HTTPRedirection then uri = URI(response['location']) # warn "redirected to #{location}" # fetch(location, limit - 1) else raise response.inspect end end end @instance_types end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aws-ec2-instance_types-2.0.0 | lib/dldinternet/aws/ec2/instance_types/aws-pricing-api-client.rb |