amazon-pricing 0.1.25 → 0.1.26

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- amazon-pricing (0.1.25)
4
+ amazon-pricing (0.1.26)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -19,7 +19,6 @@ GEM
19
19
  test-unit (2.5.5)
20
20
 
21
21
  PLATFORMS
22
- java
23
22
  ruby
24
23
 
25
24
  DEPENDENCIES
@@ -74,8 +74,9 @@ module AwsPricing
74
74
  region
75
75
  end
76
76
 
77
- EC2_BASE_URL = "http://aws-assets-pricing-prod.s3.amazonaws.com/pricing/ec2/"
78
- RDS_BASE_URL = "http://aws-assets-pricing-prod.s3.amazonaws.com/pricing/rds/"
77
+ EC2_BASE_URL = "http://a0.awsstatic.com/pricing/1/ec2/"
78
+ EBS_BASE_URL = "http://a0.awsstatic.com/pricing/1/ebs/"
79
+ RDS_BASE_URL = "http://a0.awsstatic.com/pricing/1/rds/"
79
80
 
80
81
  # Lookup allows us to map to AWS API region names
81
82
  @@Region_Lookup = {
@@ -109,14 +110,14 @@ module AwsPricing
109
110
 
110
111
  def get_ec2_on_demand_instance_pricing
111
112
  @@OS_TYPES.each do |os|
112
- fetch_ec2_instance_pricing(EC2_BASE_URL + "#{os}-od.js", :ondemand, os)
113
+ fetch_ec2_instance_pricing(EC2_BASE_URL + "#{os}-od.min.js", :ondemand, os)
113
114
  end
114
115
  end
115
116
 
116
117
  def get_ec2_reserved_instance_pricing
117
118
  @@OS_TYPES.each do |os|
118
119
  @@RES_TYPES.each do |res_type|
119
- fetch_ec2_instance_pricing(EC2_BASE_URL + "#{os}-ri-#{res_type}.js", res_type, os)
120
+ fetch_ec2_instance_pricing(EC2_BASE_URL + "#{os}-ri-#{res_type}.min.js", res_type, os)
120
121
  end
121
122
  end
122
123
  end
@@ -148,7 +149,7 @@ module AwsPricing
148
149
  end
149
150
 
150
151
  def fetch_ec2_ebs_pricing
151
- res = PriceList.fetch_url(EC2_BASE_URL + "pricing-ebs.js")
152
+ res = PriceList.fetch_url(EBS_BASE_URL + "pricing-ebs.min.js")
152
153
  res["config"]["regions"].each do |ebs_types|
153
154
  region = get_region(ebs_types["region"])
154
155
  region.ebs_price = EbsPrice.new(region, ebs_types)
@@ -204,9 +205,9 @@ module AwsPricing
204
205
  is_byol = is_byol? dp_type
205
206
 
206
207
  if [:mysql, :postgresql, :oracle].include? db
207
- fetch_on_demand_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{dp_type}-deployments.js",:ondemand, db_type, is_byol)
208
+ fetch_on_demand_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{dp_type}-deployments.min.js",:ondemand, db_type, is_byol)
208
209
  elsif db == :sqlserver
209
- fetch_on_demand_rds_instance_pricing(RDS_BASE_URL+"#{db}/sqlserver-#{dp_type}-ondemand.js",:ondemand, db_type, is_byol)
210
+ fetch_on_demand_rds_instance_pricing(RDS_BASE_URL+"#{db}/sqlserver-#{dp_type}-ondemand.min.js",:ondemand, db_type, is_byol)
210
211
  end
211
212
  end
212
213
  }
@@ -218,9 +219,9 @@ module AwsPricing
218
219
  if [:mysql, :postgresql].include? db
219
220
  @@RES_TYPES.each do |res_type|
220
221
  if db == :postgresql and res_type == :heavy
221
- fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{res_type}-utilization-reserved-instances.js", res_type, db, false)
222
+ fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{res_type}-utilization-reserved-instances.min.js", res_type, db, false)
222
223
  elsif db == :mysql
223
- fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{res_type}-utilization-reserved-instances.js", res_type, db, false)
224
+ fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{res_type}-utilization-reserved-instances.min.js", res_type, db, false)
224
225
  end
225
226
  end
226
227
  else
@@ -229,9 +230,9 @@ module AwsPricing
229
230
  db_instance.each do |dp_type|
230
231
  is_byol = is_byol? dp_type
231
232
  if db == :oracle
232
- fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{dp_type}-#{res_type}-utilization-reserved-instances.js", res_type, db_type, is_byol)
233
+ fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/pricing-#{dp_type}-#{res_type}-utilization-reserved-instances.min.js", res_type, db_type, is_byol)
233
234
  elsif db == :sqlserver
234
- fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/sqlserver-#{dp_type}-#{res_type}-ri.js", res_type, db_type, is_byol)
235
+ fetch_reserved_rds_instance_pricing(RDS_BASE_URL+"#{db}/sqlserver-#{dp_type}-#{res_type}-ri.min.js", res_type, db_type, is_byol)
235
236
  end
236
237
  end
237
238
  end
@@ -250,7 +251,7 @@ module AwsPricing
250
251
  begin
251
252
  #
252
253
  # this is special case URL, it is oracle - multiAZ type of deployment but it doesn't have mutliAZ attributes in json.
253
- if url == "http://aws.amazon.com/rds/pricing/oracle/pricing-li-multiAZ-deployments.js"
254
+ if url == "http://aws.amazon.com/rds/pricing/oracle/pricing-li-multiAZ-deployments.min.js"
254
255
  is_multi_az = true
255
256
  else
256
257
  is_multi_az = is_multi_az? type["name"]
@@ -171,6 +171,8 @@ module AwsPricing
171
171
  'g2.2xlarge' => 'Cluster GPU Double Extra Large',
172
172
  'c3.large' => 'High-Compute Large', 'c3.xlarge' => 'High-Compute Extra Large', 'c3.2xlarge' => 'High-Compute Double Extra Large', 'c3.4xlarge' => 'High-Compute Quadruple Extra Large', 'c3.8xlarge' => 'High-Compute Eight Extra Large',
173
173
  'i2.xlarge' => 'High I/O Extra Large', 'i2.2xlarge' => 'High I/O Double Extra Large', 'i2.4xlarge' => 'High I/O Quadruple Extra Large', 'i2.8xlarge' => 'High I/O Eight Extra Large',
174
+ # Remove asterisk when this is released instance type
175
+ #'r3.large *' => 'Memory Optimized Large', 'r3.xlarge *' => 'Memory Optimized Extra Large', 'r3.2xlarge *' => 'Memory Optimized Double Extra Large', 'r3.4xlarge *' => 'Memory Optimized Quadruple Extra Large', 'r3.8xlarge *' => 'Memory Optimized Eight Extra Large',
174
176
  }
175
177
  @@Disk_Lookup = {
176
178
  'm1.small' => 160, 'm1.medium' => 410, 'm1.large' =>850, 'm1.xlarge' => 1690,
@@ -189,6 +191,8 @@ module AwsPricing
189
191
  'db.t1.micro' => 160,
190
192
  'c3.large' => 32, 'c3.xlarge' => 80, 'c3.2xlarge' => 160, 'c3.4xlarge' => 320, 'c3.8xlarge' => 640,
191
193
  'i2.large' => 360, 'i2.xlarge' => 720, 'i2.2xlarge' => 1440, 'i2.4xlarge' => 2880, 'i2.8xlarge' => 5760,
194
+ # Remove asterisk when this is released instance type
195
+ #'r3.large *' => 0, 'r3.xlarge *' => 0, 'r3.2xlarge *' => 0, 'r3.4xlarge *' => 0, 'r3.8xlarge *' => 0,
192
196
  }
193
197
  @@Platform_Lookup = {
194
198
  'm1.small' => 32, 'm1.medium' => 32, 'm1.large' => 64, 'm1.xlarge' => 64,
@@ -207,6 +211,8 @@ module AwsPricing
207
211
  'db.t1.micro' => 64,
208
212
  'c3.large' => 64, 'c3.xlarge' => 64, 'c3.2xlarge' => 64, 'c3.4xlarge' => 64, 'c3.8xlarge' => 64,
209
213
  'i2.large' => 64, 'i2.xlarge' => 64, 'i2.2xlarge' => 64, 'i2.4xlarge' => 64, 'i2.8xlarge' => 64,
214
+ # Remove asterisk when this is released instance type
215
+ #'r3.large *' => 64, 'r3.xlarge *' => 64, 'r3.2xlarge *' => 64, 'r3.4xlarge *' => 64, 'r3.8xlarge *' => 64,
210
216
  }
211
217
  @@Disk_Type_Lookup = {
212
218
  'm1.small' => :ephemeral, 'm1.medium' => :ephemeral, 'm1.large' => :ephemeral, 'm1.xlarge' => :ephemeral,
@@ -226,6 +232,8 @@ module AwsPricing
226
232
  'db.t1.micro' => :ebs,
227
233
  'c3.large' => :ssd, 'c3.xlarge' => :ssd, 'c3.2xlarge' => :ssd, 'c3.4xlarge' => :ssd, 'c3.8xlarge' => :ssd,
228
234
  'i2.large' => :ssd, 'i2.xlarge' => :ssd, 'i2.2xlarge' => :ssd, 'i2.4xlarge' => :ssd, 'i2.8xlarge' => :ssd,
235
+ # Remove asterisk when this is released instance type
236
+ #'r3.large *' => :ssd, 'r3.xlarge *' => :ssd, 'r3.2xlarge *' => :ssd, 'r3.4xlarge *' => :ssd, 'r3.8xlarge *' => :ssd,
229
237
  }
230
238
 
231
239
  # Due to fact AWS pricing API only reports these for EC2, we will fetch from EC2 and keep around for lookup
@@ -8,5 +8,5 @@
8
8
  # Home:: http://github.com/CloudHealth/amazon-pricing
9
9
  #++
10
10
  module AwsPricing
11
- VERSION = '0.1.25'
11
+ VERSION = '0.1.26'
12
12
  end
@@ -70,7 +70,7 @@ class TestEc2InstanceTypes < Test::Unit::TestCase
70
70
  region = @@ec2_pricing.get_region('us-east')
71
71
  instance = region.get_ec2_instance_type('m1.large')
72
72
  bem = instance.get_breakeven_month(:linux, :heavy, :year1)
73
- assert bem == 6
73
+ assert bem == 8
74
74
  end
75
75
 
76
76
  def test_memory
@@ -88,8 +88,8 @@ class TestEc2InstanceTypes < Test::Unit::TestCase
88
88
 
89
89
  def test_ebs
90
90
  region = @@ec2_pricing.get_region('us-east')
91
- assert region.ebs_price.standard_per_gb == 0.10
92
- assert region.ebs_price.standard_per_million_io == 0.10
91
+ assert region.ebs_price.standard_per_gb == 0.05
92
+ assert region.ebs_price.standard_per_million_io == 0.05
93
93
  assert region.ebs_price.preferred_per_gb == 0.125
94
94
  assert region.ebs_price.preferred_per_iops == 0.10
95
95
  assert region.ebs_price.s3_snaps_per_gb == 0.095
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon-pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
5
- prerelease:
4
+ version: 0.1.26
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Joe Kinsella
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-26 00:00:00.000000000 Z
12
+ date: 2014-04-01 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A Ruby library for retrieving pricing for Amazon Web Services
15
15
  email:
@@ -47,39 +47,44 @@ files:
47
47
  homepage: http://github.com/CloudHealth/amazon-pricing
48
48
  licenses:
49
49
  - MIT
50
- post_install_message:
50
+ post_install_message:
51
51
  rdoc_options:
52
- - "--title"
52
+ - --title
53
53
  - amazon-pricing documentation
54
- - "--line-numbers"
55
- - "--main"
54
+ - --line-numbers
55
+ - --main
56
56
  - README.md
57
57
  require_paths:
58
58
  - lib
59
59
  required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
60
61
  requirements:
61
- - - ">="
62
+ - - ! '>='
62
63
  - !ruby/object:Gem::Version
64
+ version: '0'
63
65
  segments:
64
66
  - 0
65
- version: !binary |-
66
- MA==
67
- hash: 2
68
- none: false
67
+ hash: -1099421878339302140
69
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
70
  requirements:
71
- - - ">="
71
+ - - ! '>='
72
72
  - !ruby/object:Gem::Version
73
+ version: '0'
73
74
  segments:
74
75
  - 0
75
- version: !binary |-
76
- MA==
77
- hash: 2
78
- none: false
76
+ hash: -1099421878339302140
79
77
  requirements: []
80
78
  rubyforge_project: amazon-pricing
81
- rubygems_version: 1.8.24
82
- signing_key:
79
+ rubygems_version: 1.8.25
80
+ signing_key:
83
81
  specification_version: 3
84
82
  summary: Amazon Web Services Pricing Ruby gem
85
- test_files: []
83
+ test_files:
84
+ - spec/instance_type_spec.rb
85
+ - spec/price_list_spec.rb
86
+ - spec/rds_pricing_spec.rb
87
+ - spec/spec_helper.rb
88
+ - spec/support/.gitignore
89
+ - test/ec2_instance_types_test.rb
90
+ - test/helper.rb