amazon-pricing 0.1.140 → 0.1.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTRhZDhmZjNiNzRlNzhlODA3ZTE3NjRjNjE2ZGNmNjZiNTdiNTk4OQ==
4
+ YjU5NTVhZjFmYTFjYWFhODhjYjdkY2ZmNDdlMTA0NjFhNjk5YWE4OQ==
5
5
  data.tar.gz: !binary |-
6
- ZjZiMzg1NGUxYTZlZTk5OGQ4NzhlOWExNDU3NmFlMjdkOGUwNWM0MQ==
6
+ NjZiNzAyMTMyZDgyZmYzY2NmOTI2MWM0YjVmYWQyNzQ3NzEzODIyOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjExOWY0NzlkNDY0MjY0Y2FhOWU1NWI4YjAwMmFhM2UwZDlhNGQ2MTc1NmFh
10
- YTBiZjMwMDk2ODkyZDJiZjgyYTU5NjNiNzllMDNhZjlmNmFhODIwY2ZiNTk1
11
- NGIxZjEyMzY2NjM2ZGFmOGUzMjVmODdmMWI2ZGEwNTUxMGM3MmM=
9
+ MmVmY2IyYjU4YmU1MWViN2QzMjAyOWViMzcxYTg4ZDZjNWRkYmRlZjc1ZjAw
10
+ NTJlMThmYmM1YzQ0Mjc0MGM5OTI4NTZhODVkZjA3ZDFkZTk0YzNhOTk0YWVm
11
+ ZDYzNTExYzY0ZTAzZWFlMTZlNzM4ZjRlMjFkMTM3NTNhZjBiNzA=
12
12
  data.tar.gz: !binary |-
13
- MGU1MTU5ZTI3YTUwM2E1ZWI1MTg3NzlkMTIzYWJlZmQwNDE1Y2E2MzQ5ZDk2
14
- NzE0ZWZiZjgxN2JjOTI4MTJlODBhYzFkZDIyNThiYzkwZmU5MjhkZGJkMzMx
15
- YzhlNGI2YzEzMTI0ZDgwNTU3MjIxNzY4OWIyNzAyYzNjYzhlZDA=
13
+ NjA5NWNiNThmNjk0NjJiZjFjODhmMjg0NmFkNGRhNzk1NDkwYTQxZWQ5YmIw
14
+ YjQyOGU4MTg3NTViYjRiZDg2YTA1NWU5NWQzYWEzMTVmYzU0MDEwMDRmYTJi
15
+ YjFlZWIzYWZjZWYzMjRlODE3ZDFiYTZmYWFmMDE0Njk3NjhiNDE=
data/Rakefile CHANGED
@@ -41,13 +41,6 @@ task :print_ec2_di_price_list do
41
41
  print_ec2_table(pricing)
42
42
  end
43
43
 
44
- desc "Prints current EC2 Dedicated Host Instance pricing in CSV format"
45
- task :print_ec2_dhi_price_list do
46
- require 'amazon-pricing'
47
- pricing = AwsPricing::Ec2DedicatedHostInstancePriceList.new
48
- print_ec2_table(pricing)
49
- end
50
-
51
44
  desc "Prints current EC2 Dedicated Host pricing in CSV format"
52
45
  task :print_ec2_dh_price_list do
53
46
  require 'amazon-pricing'
@@ -8,7 +8,6 @@ require 'amazon-pricing/common/ec2_common'
8
8
  require 'amazon-pricing/aws-price-list'
9
9
  require 'amazon-pricing/ec2-price-list'
10
10
  require 'amazon-pricing/ec2-di-price-list'
11
- require 'amazon-pricing/ec2-dhi-price-list'
12
11
  require 'amazon-pricing/ec2-dh-price-list'
13
12
  require 'amazon-pricing/rds-price-list'
14
13
  require 'amazon-pricing/dynamo-db-price-list'
@@ -8,8 +8,8 @@ module AwsPricing
8
8
  def get_operating_system(type)
9
9
  get_category_type(type)
10
10
  end
11
-
12
- # Returns whether an instance_type is available.
11
+
12
+ # Returns whether an instance_type is available.
13
13
  # operating_system = :linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb
14
14
  # type_of_instance = :ondemand, :light, :medium, :heavy
15
15
  def available?(type_of_instance = :ondemand, operating_system = :linux)
@@ -90,22 +90,6 @@ module AwsPricing
90
90
  end
91
91
  end
92
92
 
93
- # operating_system = :linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb
94
- # dhprice is a string representing the price per hour for the Dedicated Host
95
- # capacity is the number of this type of instancess supported on this Dedicated Host
96
- def update_dhi_pricing(operating_system, dhprice, capacity)
97
- os = get_category_type(operating_system)
98
- if os.nil?
99
- os = OperatingSystem.new(self, operating_system)
100
- @category_types[operating_system] = os
101
- end
102
-
103
- category = operating_system.to_s
104
- values = { category => dhprice }
105
- price = coerce_price(values[category])
106
- os.set_price_per_hour(:ondemand, nil, price/capacity)
107
- end
108
-
109
93
  def update_pricing2(operating_system, res_type, ondemand_pph = nil, year1_prepay = nil, year3_prepay = nil, year1_pph = nil, year3_pph = nil)
110
94
 
111
95
  os = get_category_type(operating_system)
@@ -126,15 +110,6 @@ module AwsPricing
126
110
  @category_types
127
111
  end
128
112
 
129
- # aws does not provide any json-sourced network_capacity, so for now we provide this hardcoded lookup
130
- # see https://aws.amazon.com/ec2/instance-types/, under 'Instance Types Matrix', under 'Networking Performance'
131
- def self.get_network_capacity(api_name)
132
- throughput = @Network_Performance[api_name]
133
- if not throughput
134
- $stderr.puts "Unknown network throughput for instance type #{api_name}"
135
- end
136
- throughput
137
- end
138
113
  def self.get_network_mbps(throughput)
139
114
  network_mbps = @Network_Throughput_MBits_Per_Second[throughput]
140
115
  if not network_mbps
@@ -207,298 +182,5 @@ module AwsPricing
207
182
  '100 Gigabit' => :one_hundred_gigabit
208
183
  }
209
184
 
210
- # handy summary here: www.ec2instances.info
211
- @Network_Performance = {
212
- 'a1.medium' => :ten_gigabit, # up to 10G
213
- 'a1.large' => :ten_gigabit, # up to 10G
214
- 'a1.xlarge' => :ten_gigabit, # up to 10G
215
- 'a1.2xlarge' => :ten_gigabit, # up to 10G
216
- 'a1.4xlarge' => :ten_gigabit, # up to 10G
217
- 'c1.medium' => :moderate,
218
- 'c1.xlarge' => :high,
219
- 'c3.2xlarge' => :high,
220
- 'c3.4xlarge' => :high,
221
- 'c3.8xlarge' => :ten_gigabit,
222
- 'c3.large' => :moderate,
223
- 'c3.xlarge' => :moderate,
224
- 'c4.2xlarge' => :high,
225
- 'c4.4xlarge' => :high,
226
- 'c4.8xlarge' => :ten_gigabit,
227
- 'c4.large' => :moderate,
228
- 'c4.xlarge' => :high,
229
- 'c5.18xlarge' => :twentyfive_gigabit,
230
- 'c5.2xlarge' => :ten_gigabit, # upto 10G
231
- 'c5.4xlarge' => :ten_gigabit, # upto 10G
232
- 'c5.9xlarge' => :ten_gigabit,
233
- 'c5.large' => :ten_gigabit, # upto 10G
234
- 'c5.xlarge' => :ten_gigabit, # upto 10G
235
- 'c5d.18xlarge' => :twentyfive_gigabit,
236
- 'c5d.2xlarge' => :ten_gigabit, # upto 10G
237
- 'c5d.4xlarge' => :ten_gigabit, # upto 10G
238
- 'c5d.9xlarge' => :ten_gigabit,
239
- 'c5d.large' => :ten_gigabit, # upto 10G
240
- 'c5d.xlarge' => :ten_gigabit, # upto 10G
241
- 'c5n.large' => :twentyfive_gigabit, # up to 25gb
242
- 'c5n.xlarge' => :twentyfive_gigabit, # up to 25gb
243
- 'c5n.2xlarge' => :twentyfive_gigabit, # up to 25gb
244
- 'c5n.4xlarge' => :twentyfive_gigabit, # up to 25gb
245
- 'c5n.9xlarge' => :fifty_gigabit,
246
- 'c5n.18xlarge' => :one_hundred_gigabit,
247
- 'cache.c1.xlarge' => :high,
248
- 'cache.m1.large' => :moderate,
249
- 'cache.m1.medium' => :moderate,
250
- 'cache.m1.small' => :low,
251
- 'cache.m1.xlarge' => :high,
252
- 'cache.m2.2xlarge' => :moderate,
253
- 'cache.m2.4xlarge' => :high,
254
- 'cache.m2.xlarge' => :moderate,
255
- 'cache.m3.2xlarge' => :high,
256
- 'cache.m3.large' => :moderate,
257
- 'cache.m3.medium' => :moderate,
258
- 'cache.m3.xlarge' => :high,
259
- 'cache.m4.large' => :moderate,
260
- 'cache.m4.xlarge' => :high,
261
- 'cache.m4.2xlarge' => :high,
262
- 'cache.m4.4xlarge' => :high,
263
- 'cache.m4.10xlarge' => :ten_gigabit,
264
- 'cache.r3.2xlarge' => :high,
265
- 'cache.r3.4xlarge' => :high,
266
- 'cache.r3.8xlarge' => :ten_gigabit,
267
- 'cache.r3.large' => :moderate,
268
- 'cache.r3.xlarge' => :moderate,
269
- 'cache.r4.16xlarge' => :twentyfive_gigabit,
270
- 'cache.r4.2xlarge' => :ten_gigabit, # upto 10G
271
- 'cache.r4.4xlarge' => :ten_gigabit, # upto 10G
272
- 'cache.r4.8xlarge' => :ten_gigabit,
273
- 'cache.r4.large' => :ten_gigabit, # upto 10G
274
- 'cache.r4.xlarge' => :ten_gigabit, # upto 10G
275
- 'cache.x1.16xlarge' => :ten_gigabit,
276
- 'cache.x1.32xlarge' => :ten_gigabit,
277
- 'cache.t1.micro' => :very_low,
278
- 'cache.t2.medium' => :low_to_moderate,
279
- 'cache.t2.micro' => :low_to_moderate,
280
- 'cache.t2.small' => :low_to_moderate,
281
- 'cc1.4xlarge' => :ten_gigabit,
282
- 'cc2.8xlarge' => :ten_gigabit,
283
- 'cg1.4xlarge' => :ten_gigabit,
284
- 'cr1.8xlarge' => :ten_gigabit,
285
- 'd2.2xlarge' => :high,
286
- 'd2.4xlarge' => :high,
287
- 'd2.8xlarge' => :ten_gigabit,
288
- 'd2.xlarge' => :moderate,
289
- 'db.cr1.8xlarge' => :ten_gigabit,
290
- 'db.m1.large' => :moderate,
291
- 'db.m1.medium' => :moderate,
292
- 'db.m1.small' => :low,
293
- 'db.m1.xlarge' => :high,
294
- 'db.m2.2xlarge' => :moderate,
295
- 'db.m2.4xlarge' => :high,
296
- 'db.m2.xlarge' => :moderate,
297
- 'db.m3.2xlarge' => :high,
298
- 'db.m3.large' => :moderate,
299
- 'db.m3.medium' => :moderate,
300
- 'db.m3.xlarge' => :high,
301
- 'db.m4.10xlarge' => :ten_gigabit,
302
- 'db.m4.2xlarge' => :high,
303
- 'db.m4.4xlarge' => :high,
304
- 'db.m4.large' => :moderate,
305
- 'db.m4.xlarge' => :high,
306
- 'db.m4.16xlarge' => :twentyfive_gigabit,
307
- 'db.r3.2xlarge' => :high,
308
- 'db.r3.4xlarge' => :high,
309
- 'db.r3.8xlarge' => :ten_gigabit,
310
- 'db.r3.large' => :moderate,
311
- 'db.r3.xlarge' => :moderate,
312
- 'db.r4.large' => :ten_gigabit,
313
- 'db.r4.xlarge' => :ten_gigabit,
314
- 'db.r4.2xlarge' => :ten_gigabit,
315
- 'db.r4.4xlarge' => :ten_gigabit,
316
- 'db.r4.8xlarge' => :ten_gigabit,
317
- 'db.r4.16xlarge' => :twentyfive_gigabit,
318
- 'db.r5.large' => :ten_gigabit,
319
- 'db.r5.xlarge' => :ten_gigabit,
320
- 'db.r5.2xlarge' => :ten_gigabit,
321
- 'db.r5.4xlarge' => :ten_gigabit,
322
- 'db.r5.12xlarge' => :ten_gigabit,
323
- 'db.r5.24xlarge' => :twentyfive_gigabit,
324
- 'db.t1.micro' => :very_low,
325
- 'db.t2.large' => :low_to_moderate,
326
- 'db.t2.medium' => :low_to_moderate,
327
- 'db.t2.micro' => :low,
328
- 'db.t2.small' => :low_to_moderate,
329
- 'db.t2.xlarge' => :moderate,
330
- 'db.t2.2xlarge' => :moderate,
331
- 'db.t3.micro' => :low_to_moderate,
332
- 'db.t3.small' => :low_to_moderate,
333
- 'db.t3.medium' => :low_to_moderate,
334
- 'db.t3.large' => :low_to_moderate,
335
- 'db.t3.xlarge' => :moderate,
336
- 'db.t3.2xlarge' => :moderate,
337
- 'db.x1.16xlarge' => :ten_gigabit,
338
- 'db.x1.32xlarge' => :ten_gigabit,
339
- 'f1.2xlarge' => :high,
340
- 'f1.4xlarge' => :high,
341
- 'f1.16xlarge' => :twentyfive_gigabit,
342
- 'g2.2xlarge' => :high,
343
- 'g2.8xlarge' => :ten_gigabit,
344
- 'g3.4xlarge' => :ten_gigabit,
345
- 'g3.8xlarge' => :ten_gigabit,
346
- 'g3.16xlarge' => :twenty_gigabit,
347
- 'g3s.xlarge' => :ten_gigabit,
348
- 'h1.2xlarge' => :ten_gigabit, # upto 10G
349
- 'h1.4xlarge' => :ten_gigabit, # upto 10G
350
- 'h1.8xlarge' => :ten_gigabit,
351
- 'h1.16xlarge' => :twentyfive_gigabit,
352
- 'hi1.4xlarge' => :ten_gigabit,
353
- 'hs1.8xlarge' => :ten_gigabit,
354
- 'i2.2xlarge' => :high,
355
- 'i2.4xlarge' => :high,
356
- 'i2.8xlarge' => :ten_gigabit,
357
- 'i2.xlarge' => :moderate,
358
- 'i3.16xlarge' => :twentyfive_gigabit,
359
- 'i3.2xlarge' => :ten_gigabit,
360
- 'i3.4xlarge' => :ten_gigabit,
361
- 'i3.8xlarge' => :ten_gigabit,
362
- 'i3.large' => :ten_gigabit,
363
- 'i3.metal' => :twentyfive_gigabit,
364
- 'i3p.16xlarge' => :twentyfive_gigabit,
365
- 'i3.xlarge' => :ten_gigabit,
366
- 'i3en.large'=> :twentyfive_gigabit,
367
- 'i3en.xlarge'=> :twentyfive_gigabit,
368
- 'i3en.2xlarge'=> :twentyfive_gigabit,
369
- 'i3en.3xlarge'=> :twentyfive_gigabit,
370
- 'i3en.6xlarge'=> :twentyfive_gigabit,
371
- 'i3en.12xlarge'=> :fifty_gigabit,
372
- 'i3en.24xlarge'=> :one_hundred_gigabit,
373
- 'm1.large' => :moderate,
374
- 'm1.medium' => :moderate,
375
- 'm1.small' => :low,
376
- 'm1.xlarge' => :high,
377
- 'm2.2xlarge' => :moderate,
378
- 'm2.4xlarge' => :high,
379
- 'm2.xlarge' => :moderate,
380
- 'm3.2xlarge' => :high,
381
- 'm3.large' => :moderate,
382
- 'm3.medium' => :moderate,
383
- 'm3.xlarge' => :high,
384
- 'm4.16xlarge' => :twentyfive_gigabit,
385
- 'm4.10xlarge' => :ten_gigabit,
386
- 'm4.2xlarge' => :high,
387
- 'm4.4xlarge' => :high,
388
- 'm4.large' => :moderate,
389
- 'm4.xlarge' => :high,
390
- 'm5.large' => :ten_gigabit, # upto 10G
391
- 'm5.xlarge' => :ten_gigabit, # upto 10G
392
- 'm5.2xlarge' => :ten_gigabit, # upto 10G
393
- 'm5.4xlarge' => :ten_gigabit, # upto 10G
394
- 'm5.12xlarge' => :ten_gigabit,
395
- 'm5.24xlarge' => :twentyfive_gigabit,
396
- 'm5.metal' => :twentyfive_gigabit,
397
- 'm5d.large' => :ten_gigabit, # upto 10G
398
- 'm5d.xlarge' => :ten_gigabit, # upto 10G
399
- 'm5d.2xlarge' => :ten_gigabit, # upto 10G
400
- 'm5d.4xlarge' => :ten_gigabit, # upto 10G
401
- 'm5d.12xlarge' => :ten_gigabit,
402
- 'm5d.24xlarge' => :twentyfive_gigabit,
403
- 'm5d.metal' => :twentyfive_gigabit,
404
- 'm5a.large' => :ten_gigabit, # upto 10G
405
- 'm5a.xlarge' => :ten_gigabit, # upto 10G
406
- 'm5a.2xlarge' => :ten_gigabit, # upto 10G
407
- 'm5a.4xlarge' => :ten_gigabit, # upto 10G
408
- 'm5a.12xlarge' => :ten_gigabit,
409
- 'm5a.24xlarge' => :twenty_gigabit,
410
- 'm5ad.large' => :ten_gigabit, # upto 10G
411
- 'm5ad.xlarge' => :ten_gigabit, # upto 10G
412
- 'm5ad.2xlarge' => :ten_gigabit, # upto 10G
413
- 'm5ad.4xlarge' => :ten_gigabit, # upto 10G
414
- 'm5ad.12xlarge' => :ten_gigabit,
415
- 'm5ad.24xlarge' => :twenty_gigabit,
416
- 'p2.xlarge' => :high,
417
- 'p2.8xlarge' => :ten_gigabit,
418
- 'p2.16xlarge' => :twenty_gigabit,
419
- 'p3.2xlarge' => :ten_gigabit,
420
- 'p3.8xlarge' => :ten_gigabit,
421
- 'p3.16xlarge' => :twentyfive_gigabit,
422
- 'p3dn.24xlarge' => :one_hundred_gigabit,
423
- 'r3.2xlarge' => :high,
424
- 'r3.4xlarge' => :high,
425
- 'r3.8xlarge' => :ten_gigabit,
426
- 'r3.large' => :moderate,
427
- 'r3.xlarge' => :moderate,
428
- 'r4.16xlarge' => :twentyfive_gigabit,
429
- 'r4.2xlarge' => :ten_gigabit,
430
- 'r4.4xlarge' => :ten_gigabit,
431
- 'r4.8xlarge' => :ten_gigabit,
432
- 'r4.large' => :ten_gigabit,
433
- 'r4.xlarge' => :ten_gigabit,
434
- 'r5.large' => :ten_gigabit, # upto 10G
435
- 'r5.xlarge' => :ten_gigabit, # upto 10G
436
- 'r5.2xlarge' => :ten_gigabit, # upto 10G
437
- 'r5.4xlarge' => :ten_gigabit, # upto 10G
438
- 'r5.12xlarge' => :ten_gigabit,
439
- 'r5.24xlarge' => :twentyfive_gigabit,
440
- 'r5.metal' => :twentyfive_gigabit,
441
- 'r5d.large' => :ten_gigabit, # upto 10G
442
- 'r5d.xlarge' => :ten_gigabit, # upto 10G
443
- 'r5d.2xlarge' => :ten_gigabit, # upto 10G
444
- 'r5d.4xlarge' => :ten_gigabit, # upto 10G
445
- 'r5d.12xlarge' => :ten_gigabit,
446
- 'r5d.24xlarge' => :twentyfive_gigabit,
447
- 'r5d.metal' => :twentyfive_gigabit,
448
- 'r5a.large' => :ten_gigabit, # upto 10G
449
- 'r5a.xlarge' => :ten_gigabit, # upto 10G
450
- 'r5a.2xlarge' => :ten_gigabit, # upto 10G
451
- 'r5a.4xlarge' => :ten_gigabit, # upto 10G
452
- 'r5a.12xlarge' => :ten_gigabit,
453
- 'r5a.24xlarge' => :twenty_gigabit,
454
- 'r5ad.large' => :ten_gigabit, # upto 10G
455
- 'r5ad.xlarge' => :ten_gigabit, # upto 10G
456
- 'r5ad.2xlarge' => :ten_gigabit, # upto 10G
457
- 'r5ad.4xlarge' => :ten_gigabit, # upto 10G
458
- 'r5ad.12xlarge' => :ten_gigabit,
459
- 'r5ad.24xlarge' => :twenty_gigabit,
460
- 't1.micro' => :very_low,
461
- 't2.large' => :low_to_moderate,
462
- 't2.medium' => :low_to_moderate,
463
- 't2.micro' => :low_to_moderate,
464
- 't2.nano' => :low,
465
- 't2.small' => :low_to_moderate,
466
- 't2.xlarge' => :moderate, # same as c4.2xlarge, cf:https://aws.amazon.com/blogs/aws/new-t2-xlarge-and-t2-2xlarge-instances/
467
- 't2.2xlarge' => :moderate, # same as m4.xlarge, cf:https://aws.amazon.com/blogs/aws/new-t2-xlarge-and-t2-2xlarge-instances/
468
- 't3.nano' => :low,
469
- 't3.micro' => :low_to_moderate,
470
- 't3.small' => :low_to_moderate,
471
- 't3.medium' => :low_to_moderate,
472
- 't3.large' => :low_to_moderate,
473
- 't3.xlarge' => :moderate,
474
- 't3.2xlarge' => :moderate,
475
- 't3a.nano' => :low_to_moderate,
476
- 't3a.micro' => :low_to_moderate,
477
- 't3a.small' => :low_to_moderate,
478
- 't3a.medium' => :low_to_moderate,
479
- 't3a.large' => :low_to_moderate,
480
- 't3a.xlarge' => :low_to_moderate,
481
- 't3a.2xlarge' => :low_to_moderate,
482
- 'x1.16xlarge' => :ten_gigabit,
483
- 'x1.32xlarge' => :twenty_gigabit,
484
- 'x1e.16xlarge' => :ten_gigabit,
485
- 'x1e.2xlarge' => :ten_gigabit, # upto 10G
486
- 'x1e.32xlarge' => :twentyfive_gigabit,
487
- 'x1e.4xlarge' => :ten_gigabit, # upto 10G
488
- 'x1e.8xlarge' => :ten_gigabit, # upto 10G
489
- 'x1e.xlarge' => :ten_gigabit, # upto 10G
490
- 'z1d.large' => :ten_gigabit, # upto 10G
491
- 'z1d.xlarge' => :ten_gigabit, # upto 10G
492
- 'z1d.2xlarge' => :ten_gigabit, # upto 10G
493
- 'z1d.3xlarge' => :ten_gigabit, # upto 10G
494
- 'z1d.6xlarge' => :ten_gigabit,
495
- 'z1d.12xlarge' => :twentyfive_gigabit,
496
- 'z1d.metal' => :twentyfive_gigabit,
497
- 'u-6tb1.metal' => :twentyfive_gigabit,
498
- 'u-9tb1.metal' => :twentyfive_gigabit,
499
- 'u-12tb1.metal' => :twentyfive_gigabit,
500
- }
501
-
502
185
  end
503
-
504
186
  end
@@ -9,6 +9,6 @@
9
9
  #++
10
10
  module AwsPricing
11
11
 
12
- VERSION = '0.1.140' # [major,minor.fix]: Adding support for i3en instances
12
+ VERSION = '0.1.141' # [major,minor.fix]: Removing unused code
13
13
 
14
14
  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.140
4
+ version: 0.1.141
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Kinsella
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-14 00:00:00.000000000 Z
11
+ date: 2019-05-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library for retrieving pricing for Amazon Web Services
14
14
  email:
@@ -50,7 +50,6 @@ files:
50
50
  - lib/amazon-pricing/definitions/region.rb
51
51
  - lib/amazon-pricing/dynamo-db-price-list.rb
52
52
  - lib/amazon-pricing/ec2-dh-price-list.rb
53
- - lib/amazon-pricing/ec2-dhi-price-list.rb
54
53
  - lib/amazon-pricing/ec2-di-price-list.rb
55
54
  - lib/amazon-pricing/ec2-price-list.rb
56
55
  - lib/amazon-pricing/elasticache-price-list.rb
@@ -59,7 +58,6 @@ files:
59
58
  - lib/amazon-pricing/version.rb
60
59
  - spec/lib/amazon-pricing/definitions/database-type_spec.rb
61
60
  - spec/lib/amazon-pricing/ec2_dh_pricing_spec.rb
62
- - spec/lib/amazon-pricing/ec2_dhi_pricing_spec.rb
63
61
  - spec/lib/amazon-pricing/elasticache_pricing_spec.rb
64
62
  - spec/lib/amazon-pricing/helpers/instance-type-spec.rb
65
63
  - spec/lib/amazon-pricing/rds_pricing_spec.rb
@@ -99,7 +97,6 @@ summary: Amazon Web Services Pricing Ruby gem
99
97
  test_files:
100
98
  - spec/lib/amazon-pricing/definitions/database-type_spec.rb
101
99
  - spec/lib/amazon-pricing/ec2_dh_pricing_spec.rb
102
- - spec/lib/amazon-pricing/ec2_dhi_pricing_spec.rb
103
100
  - spec/lib/amazon-pricing/elasticache_pricing_spec.rb
104
101
  - spec/lib/amazon-pricing/helpers/instance-type-spec.rb
105
102
  - spec/lib/amazon-pricing/rds_pricing_spec.rb
@@ -1,107 +0,0 @@
1
- module AwsPricing
2
- class Ec2DedicatedHostInstancePriceList < PriceList
3
- include AwsPricing::Ec2Common
4
-
5
- def initialize
6
- super
7
- InstanceType.populate_lookups
8
- get_ec2_dhi_od_pricing
9
- end
10
-
11
- def os_types
12
- @@OS_TYPES
13
- end
14
-
15
- protected
16
-
17
- @@OS_TYPES = [ 'linux', 'rhel', 'sles', 'mswin',
18
- 'mswinSQL', 'mswinSQLWeb', 'mswinSQLEnterprise',
19
- 'linuxSQL', 'linuxSQLWeb', 'linuxSQLEnterprise',
20
- ]
21
-
22
- @@CAPACITY_HASH = { # number of instances a host can run, by definition largest size can only run one instance/host
23
- 'a1' => {"medium" =>16, "large"=>8, "xlarge"=>4, "2xlarge"=>2, "4xlarge"=>1},
24
- 'c3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
25
- 'c4' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
26
- 'c5' => { "large"=>36, "xlarge"=>18, "2xlarge"=>8, "4xlarge"=>4,"9xlarge"=>2, "18xlarge"=>1 },
27
- 'c5d' => { "large"=>36, "xlarge"=>18, "2xlarge"=>8, "4xlarge"=>4,"9xlarge"=>2, "18xlarge"=>1 },
28
- 'c5n' => { "large"=>36, "xlarge"=>18, "2xlarge"=>8, "4xlarge"=>4, "9xlarge"=>2, "18xlarge" =>1 },
29
- 'p2' => { "xlarge"=>16, "8xlarge"=>2, "16xlarge"=>1 },
30
- 'p3' => { "2xlarge"=>8, "8xlarge"=>2, "16xlarge"=>1 },
31
- 'p3dn' => { "24xlarge"=>1 },
32
- 'g2' => { "2xlarge"=>4, "8xlarge"=>1 },
33
- 'g3' => { "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
34
- 'g3s' => { "xlarge" => 1},
35
- 'f1' => { "2xlarge"=>8, "4xlarge"=>4, "16xlarge" =>1 },
36
- 'm3' => { "medium"=>32, "large"=>16, "xlarge"=>8, "2xlarge"=>4 },
37
- 'd2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
38
- 'h1' => { "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
39
- 'r3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
40
- 'r4' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
41
- 'r5' => { "large"=> 48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1, "metal"=>1 },
42
- 'r5d' => { "large"=> 48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1, "metal"=>1 },
43
- 'r5a' => { "large"=> 48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1 },
44
- 'r5ad' => { "large"=> 48, "xlarge"=> 24, "2xlarge"=> 12, "4xlarge"=> 6, "12xlarge"=> 2, "24xlarge" => 1},
45
- 'm4' => { "large"=>22, "xlarge"=>11, "2xlarge"=>5, "4xlarge"=>4, "10xlarge"=>1, "16xlarge"=>1 },
46
- 'm5' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1, "metal"=>1 },
47
- 'm5d' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1, "metal"=>1 },
48
- 'm5a' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1 },
49
- 'm5ad' => { "large"=> 48, "xlarge"=> 24, "2xlarge"=> 12, "4xlarge"=> 6, "12xlarge"=> 2, "24xlarge" => 1},
50
- 'i2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1, "16xlarge"=>1 },
51
- 'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1, "metal"=>1},
52
- 'i3p' => {"16xlarge"=>1},
53
- 'x1' => { "16xlarge"=>2, "32xlarge"=>1 },
54
- 'x1e' =>{ "xlarge"=>32, "2xlarge"=>16, "4xlarge"=>8, "8xlarge"=>4, "16xlarge"=>2, "32xlarge"=>1 },
55
- 'z1d' => {"large"=> 24, "xlarge"=> 12, "2xlarge"=> 6, "3xlarge"=> 4, "6xlarge"=> 2, "12xlarge"=> 1, "metal"=> 1},
56
- 'u-6tb1' => {"metal" => 1},
57
- 'u-9tb1' => {"metal" => 1},
58
- 'u-12tb1' => {"metal" => 1},
59
- }
60
-
61
- def get_ec2_dhi_od_pricing
62
- @@OS_TYPES.each do |os|
63
- fetch_ec2_dedicated_host_instance_pricing(DH_OD_BASE_URL + "dh-od.min.js", os.to_sym)
64
- end
65
- end
66
-
67
- def fetch_ec2_dedicated_host_instance_pricing(url, operating_system)
68
- res = PriceList.fetch_url(url)
69
- res['config']['regions'].each do |reg|
70
- begin
71
- region_name = reg['region']
72
- region = get_region(region_name)
73
- if region.nil?
74
- $stderr.puts "[fetch_ec2_dedicated_host_instance_pricing] WARNING: unable to find region #{region_name}"
75
- next
76
- end
77
- reg['types'].each do |type|
78
- type_name = type['name']
79
- tiers = type['tiers']
80
- next if tiers.nil?
81
- tiers.each do |tier|
82
- family = tier['name']
83
-
84
- # hack for now until I can get capacity for fpga instances
85
- next if family == 'f1'
86
- if @@CAPACITY_HASH[family].nil?
87
- # 2017-11-08 family == 'c5' not supported for DH
88
- $stderr.puts "[fetch_ec2_dedicated_host_instance_pricing] WARNING: unable to find CAPACITY_HASH for #{family}"
89
- next
90
- end
91
-
92
- dhprice = tier['prices']['USD']
93
- @@CAPACITY_HASH[family].each do |inst_size,capacity|
94
- api_name, name = Ec2InstanceType.get_name(family, "#{family}.#{inst_size}", false)
95
- instance_type = region.add_or_update_ec2_instance_type(api_name, name)
96
- instance_type.update_dhi_pricing(operating_system, dhprice, capacity)
97
- end
98
- end
99
- end
100
-
101
- rescue UnknownTypeError
102
- $stderr.puts "[fetch_ec2_dedicated_host_instance_pricing] WARNING: encountered #{$!.message}"
103
- end
104
- end
105
- end
106
- end
107
- end
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AwsPricing::Ec2DedicatedHostInstancePriceList do
4
-
5
- before(:all) do
6
- @pricing = AwsPricing::Ec2DedicatedHostInstancePriceList.new
7
- @dh_pricing = AwsPricing::Ec2DedicatedHostPriceList.new
8
- end
9
-
10
- def validate_price_in_region region
11
- # Result have valid node name
12
- region.ec2_instance_types.each do |inst_type|
13
- expect(inst_type.api_name).to match(/[[:alpha:]][[:alpha:]]./)
14
- expect(inst_type.category_types).to have_exactly(@pricing.os_types.length).items
15
- expect(inst_type.category_types[0].price_per_hour.class).to eq(Float)
16
-
17
- family_name = inst_type.api_name.split('.').first
18
- dh_region_arr = @dh_pricing.regions.select { |reg| reg.name == region.name }
19
- expect(dh_region_arr).to have_exactly(1).items
20
- dh_region = dh_region_arr[0]
21
- dh_price_per_hour = dh_region.ec2_dh_types[0].price_per_hour(:linux, :ondemand)
22
- dh_dh_type_arr = dh_region.ec2_dh_types.select { |type| type.api_name == family_name }
23
- expect(dh_dh_type_arr).to have_exactly(1).items
24
- dh_dh_type = dh_dh_type_arr[0]
25
- expect(inst_type.category_types[0].price_per_hour).to be <= dh_dh_type.category_types[:linux].ondemand_price_per_hour
26
- end
27
- end
28
-
29
- describe 'new' do
30
- it 'Ec2DedicatedHostInstancePriceList.new should return valid response' do
31
- @pricing.regions.each do |region|
32
- validate_price_in_region region
33
- end
34
- end
35
- end
36
-
37
- end