amazon-pricing 0.1.79 → 0.1.80

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmQyMjM5MmQ3ZWRjMTIxYzk2MTMzNzQ0OTI1ODMxZWI4NmNlOWIxYw==
5
- data.tar.gz: !binary |-
6
- MWIzYmE4ZWJlNDZlMDY5MGZhZWFjMWUxNWFjMjIyNTYwNzNjYzFmYQ==
2
+ SHA1:
3
+ metadata.gz: b5ff36ef9d065335f01c797f71e0f94c133403a7
4
+ data.tar.gz: ff0dd6b03824b91e55635338252c7b81090a297a
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZTVkZDY4NmIyNDM4NzExZWQxNmFhODQ1NjY1ZjJhNTQ3NTQ5NzE0OTgxNWQz
10
- NjQyYjE2MGI5MmE3NWU2ZTM1ZGIyNDI4ZDY0NGE1NTY4OGZiNTcyODRmZDJi
11
- MjY4MDgzYjZhYjgxMWI0MmNkMjY2MGVhYzM2ZjgwZDg0YmM4MjU=
12
- data.tar.gz: !binary |-
13
- NmU5YzMzN2RhZjhlMGYyYTFiMWNhYjI2OGM2NjM5NjMxZjEyMmEzOTUzNTY1
14
- ZmE4ZjA0NTY4ZDAyNjA4MzY2NTE5ODU0ZmRhYmY3ZjhiZTFiOGU0YTVlNmQy
15
- Y2YxOTRlZjJiNjI3YzAzMTBmN2MxMDQwYTNkYTlmYWM0N2MzZDA=
6
+ metadata.gz: 77d7a74737d375018197cb1387193e3eed503d118c0d1178e9cbc1e4000bcdfe4970632060b9fcf9a7702b4542fd457561ecb9f59d4f9ba54749486beaa61b1e
7
+ data.tar.gz: 76c4cd522a0438b13de357832d0f7b7250e7a672693740a6b7d854e9fc08b0f82e5332545898d60a7b97d7138b3184f868bb4959f01a516b47fc7c8b1dae3115
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- amazon-pricing (0.1.79)
4
+ amazon-pricing (0.1.80)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -116,12 +116,18 @@ module AwsPricing
116
116
  end
117
117
  end
118
118
 
119
+ # Returns the bytes/s capacity if defined, `nil` otherwise
119
120
  def self.disk_bytes_per_sec_capacity(api_name)
120
- PER_SEC_CAPACITIES[api_name][0] * 1024 * 1024
121
+ if PER_SEC_CAPACITIES[api_name]
122
+ PER_SEC_CAPACITIES[api_name][0] * 1024 * 1024
123
+ end
121
124
  end
122
125
 
126
+ # Returns the ops/s capacity if defined, `nil` otherwise
123
127
  def self.disk_ops_per_sec_capacity(api_name)
124
- PER_SEC_CAPACITIES[api_name][1]
128
+ if PER_SEC_CAPACITIES[api_name]
129
+ PER_SEC_CAPACITIES[api_name][1]
130
+ end
125
131
  end
126
132
 
127
133
  protected
@@ -119,6 +119,8 @@ module AwsPricing
119
119
  when 'upfront'
120
120
  db.set_prepay(type_of_instance, years, p.to_f) unless type_of_instance == :noupfront || p == "N/A"
121
121
  when 'monthlyStar'
122
+ # note for partialupfront, this purposely differs from AWS' "effective hourly" since we do not
123
+ # include the amortization of the partialupfront cost into this rate.
122
124
  db.set_price_per_hour(type_of_instance, years, p.to_f * 12 / 365 / 24) unless type_of_instance == :allupfront || p == "N/A"
123
125
  else
124
126
  # Do nothing for other names
@@ -39,12 +39,18 @@ module AwsPricing
39
39
  :sqlserver=> {:sqlserver_ex=>["li-ex"], :sqlserver_web=>["li-web"], :sqlserver_se=>["li-se","byol"], :sqlserver_ee=>["byol"]}
40
40
  }
41
41
 
42
+ # the following cli will extract all the URLs referenced on the AWS pricing page that fetch_reserved_rds_instance_pricing2 uses:
43
+ # curl http://aws.amazon.com/rds/pricing/ 2>/dev/null | grep 'pricing' |grep reserved-instances
42
44
  @@RESERVED_DB_DEPLOY_TYPE2 = {
43
45
  :mysql => {:mysql=>["standard","multiAZ"]},
44
46
  :postgresql => {:postgresql=>["standard","multiAZ"]},
45
47
  :oracle => {:oracle_se1=>["license-included-standard", "license-included-multiAZ"],
46
48
  :oracle_se=>["byol-standard", "byol-multiAZ"]},
47
- :sqlserver => {:sqlserver_se=>["byol-standard", "byol-multiAZ"]},
49
+ :sqlserver => {
50
+ :sqlserver_ex =>["license-included-standard"],
51
+ :sqlserver_web=>["license-included-standard"],
52
+ :sqlserver_se =>["byol-standard", "byol-multiAZ", "license-included-standard", "license-included-multiAZ"],
53
+ :sqlserver_ee =>["byol-standard", "byol-multiAZ", "license-included-standard", "license-included-multiAZ"]},
48
54
  :aurora => {:aurora => ["multiAZ"]},
49
55
  :mariadb => {:mariadb => ["standard", "multiAZ"]}
50
56
  }
@@ -53,8 +59,11 @@ module AwsPricing
53
59
  :mysql => [:mysql],
54
60
  :postgresql => [:postgresql],
55
61
  :oracle_se1 => [:oracle_se1],
56
- :oracle_se => [:oracle_se, :oracle_se1, :oracle_ee],
57
- :sqlserver_se => [:sqlserver_se, :sqlserver_ee],
62
+ :oracle_se => [:oracle_se, :oracle_ee],
63
+ :sqlserver_ex => [:sqlserver_ex],
64
+ :sqlserver_web=> [:sqlserver_web],
65
+ :sqlserver_se => [:sqlserver_se],
66
+ :sqlserver_ee => [:sqlserver_ee],
58
67
  :aurora => [:aurora],
59
68
  :mariadb => [:mariadb]
60
69
  }
@@ -119,7 +128,23 @@ module AwsPricing
119
128
  # We believe Amazon made a mistake by hosting aurora's prices on a url that follows the multi-az pattern.
120
129
  # Therefore we'll construct the URL as multi-az, but still treat the prices as for single-az.
121
130
  is_multi_az = deploy_type.upcase.include?("MULTIAZ") && db != :aurora
122
- db_str = db == :sqlserver_se ? 'sql-server-se' : db.to_s.gsub(/_/, '-')
131
+
132
+ # map sqlserver to aws strings (notice '-' between sql-server)
133
+ case db
134
+ when :sqlserver_se
135
+ db_str = 'sql-server-se'
136
+ when :sqlserver_ee
137
+ db_str = 'sql-server-ee'
138
+ when :sqlserver_web
139
+ db_str = 'sql-server-web'
140
+ when :sqlserver_ex
141
+ db_str = 'sql-server-express'
142
+ else
143
+ db_str = db.to_s.gsub(/_/, '-')
144
+ end
145
+
146
+ # nb: the intersection of @@RESERVED_DB_DEPLOY_TYPE2 and @@RESERVED_DB_WITH_SAME_PRICING2 should
147
+ # not overlap, since they have different pricings
123
148
  dbs_with_same_pricing = @@RESERVED_DB_WITH_SAME_PRICING2[db]
124
149
  fetch_reserved_rds_instance_pricing2(RDS_BASE_URL+"reserved-instances/#{db_str}-#{deploy_type}.min.js", dbs_with_same_pricing, is_multi_az, is_byol)
125
150
  end
@@ -128,6 +153,7 @@ module AwsPricing
128
153
  end
129
154
 
130
155
  def fetch_reserved_rds_instance_pricing2(url, dbs, is_multi_az, is_byol)
156
+ #logger.debug "[#{__method__}] fetched #{url}"
131
157
  res = PriceList.fetch_url(url)
132
158
  res['config']['regions'].each do |reg|
133
159
  region_name = reg['region']
@@ -211,6 +237,7 @@ module AwsPricing
211
237
  end
212
238
 
213
239
  def fetch_on_demand_rds_instance_pricing(url, type_of_rds_instance, db_type, is_byol, is_multi_az = false)
240
+ #logger.debug "[#{__method__}] fetched #{url}"
214
241
  res = PriceList.fetch_url(url)
215
242
  res['config']['regions'].each do |reg|
216
243
  region_name = reg['region']
@@ -242,6 +269,7 @@ module AwsPricing
242
269
  end
243
270
 
244
271
  def fetch_reserved_rds_instance_pricing(url, type_of_rds_instance, db_type, is_byol)
272
+ #logger.debug "[#{__method__}] fetched #{url}"
245
273
  res = PriceList.fetch_url(url)
246
274
  res['config']['regions'].each do |reg|
247
275
  region_name = reg['region']
@@ -8,5 +8,5 @@
8
8
  # Home:: http://github.com/CloudHealth/amazon-pricing
9
9
  #++
10
10
  module AwsPricing
11
- VERSION = '0.1.79'
11
+ VERSION = '0.1.80'
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon-pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.79
4
+ version: 0.1.80
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Kinsella
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-21 00:00:00.000000000 Z
11
+ date: 2016-06-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library for retrieving pricing for Amazon Web Services
14
14
  email:
@@ -19,7 +19,7 @@ extra_rdoc_files:
19
19
  - LICENSE
20
20
  - README.md
21
21
  files:
22
- - .gitignore
22
+ - ".gitignore"
23
23
  - CHANGELOG.md
24
24
  - Gemfile
25
25
  - Gemfile.lock
@@ -64,21 +64,21 @@ licenses:
64
64
  metadata: {}
65
65
  post_install_message:
66
66
  rdoc_options:
67
- - --title
67
+ - "--title"
68
68
  - amazon-pricing documentation
69
- - --line-numbers
70
- - --main
69
+ - "--line-numbers"
70
+ - "--main"
71
71
  - README.md
72
72
  require_paths:
73
73
  - lib
74
74
  required_ruby_version: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ! '>='
76
+ - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ! '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  requirements: []