amazon-pricing 0.1.129 → 0.1.130

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
- NTcwYjNiYjFmZTNjNTIzMWE4ZDE4Njc2ZGVlZGU5OTgwNjcyMDI1Ng==
5
- data.tar.gz: !binary |-
6
- M2U5ZWU1MjIzM2IzNmI3ZTI0YzM3ODIxMDZlZDYxY2I0ZWNhYzI2NQ==
2
+ SHA1:
3
+ metadata.gz: c09f9adf580b4be60a4c4044c5d7c72064f5bc7d
4
+ data.tar.gz: 15dbc1e40985deaed835c25787e17a7db3ee7ab2
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjA4ZTY2MzE3MzFhOTE4MzkxOWIzNjI5OTAzMzg1N2JhOWZiM2EwOWQyMmJm
10
- YTE4ZDhmNDllZmNkODdiZDBiYWEzYTIxZWE1ODI0YWViZDhjNzEwY2U0OTc4
11
- NjkxZDY1YWVmYzkwMGYwZWFiOGFiYzJiZTZjYWI1NDRkODE5ZTg=
12
- data.tar.gz: !binary |-
13
- N2JjNDY1Y2M0MzcwNzI3Y2IwMzU1ZTMyN2RhMzAwOTg1MDMwNGFjN2VkMGY1
14
- ZmE5ZTJiY2NhNjllYmQwZTQxNmI4ZWMzOWEzOThkNjRkNjNlZDZiOTliOTRk
15
- NTdjZTQ0YjljZGVhYWFkOTkxMjg3ZmRmYWM1OTFjNGU2ODA1NWY=
6
+ metadata.gz: 5612b47fe5eefcd2a7ed94aac3ca0b76f01b424a42aea034d06667aa4aaca648bee7614137846b503243114223c3602e0263288fb67eb12024838ce4fd4106ec
7
+ data.tar.gz: 0756f6b8f2e15584ba8f551a7fd48efa8bb9de2c28ae11730d925eb45cd5b3e064eadf619d9476237276ebea7789bc855a57635379a917327421876547fdd75a
@@ -451,6 +451,9 @@ module AwsPricing
451
451
  'r5a.4xlarge' => :ten_gigabit, # upto 10G
452
452
  'r5a.12xlarge' => :ten_gigabit,
453
453
  'r5a.24xlarge' => :twenty_gigabit,
454
+ 'u-6tb1.metal' => :twentyfive_gigabit,
455
+ 'u-9tb1.metal' => :twentyfive_gigabit,
456
+ 'u-12tb1.metal' => :twentyfive_gigabit,
454
457
 
455
458
  }
456
459
 
@@ -252,6 +252,9 @@ module AwsPricing
252
252
  'm5a.12xlarge' => 'General Purpose M5A Twelve Extra Large', 'm5a.24xlarge' => 'General Purpose M5A Twenty Four Extra Large',
253
253
  'r5a.large' => 'Memory Optimized R5A Large', 'r5a.xlarge' => 'Memory Optimized R5A Extra Large', 'r5a.2xlarge' => 'Memory Optimized R5A Double Extra Large', 'r5a.4xlarge' => 'Memory Optimized R5A Quadruple Extra Large',
254
254
  'r5a.12xlarge' => 'Memory Optimized R5A Twelve Extra Large', 'r5a.24xlarge' => 'Memory Optimized R5A Twenty Four Extra Large',
255
+ 'u-6tb1.metal' => "Memory Optimized u-6tb1 Metal",
256
+ 'u-9tb1.metal' => "Memory Optimized u-9tb1 Metal",
257
+ 'u-12tb1.metal' => "Memory Optimized u-12tb1 Metal",
255
258
  }
256
259
  @@Disk_Lookup = { # size of disk supported (local disk size) TOTAL size in gb
257
260
  'a1.medium' => 0, 'a1.large' => 0, 'a1.xlarge' => 0, 'a1.2xlarge' => 0, 'a1.4xlarge' => 0, # ebs-optimized
@@ -298,6 +301,9 @@ module AwsPricing
298
301
  'z1d.large' => 75, 'z1d.xlarge' => 150, 'z1d.2xlarge' => 300, 'z1d.3xlarge' => 450, 'z1d.6xlarge' => 900, 'z1d.12xlarge' => 1800, # NVMe
299
302
  'm5a.large' => 0, 'm5a.xlarge' => 0, 'm5a.2xlarge' => 0, 'm5a.4xlarge' => 0, 'm5a.12xlarge' => 0, 'm5a.24xlarge' => 0, #ebs-only
300
303
  'r5a.large' => 0, 'r5a.xlarge' => 0, 'r5a.2xlarge' => 0, 'r5a.4xlarge' => 0, 'r5a.12xlarge' => 0, 'r5a.24xlarge' => 0, #ebs-only
304
+ 'u-6tb1.metal' => 0, #ebs-only
305
+ 'u-9tb1.metal' => 0, #ebs-only
306
+ 'u-12tb1.metal' => 0, #ebs-only
301
307
  }
302
308
  @@Platform_Lookup = { #bit width of cpu
303
309
  'a1.medium' => 64, 'a1.large' => 64, 'a1.xlarge' => 64, 'a1.2xlarge' => 64, 'a1.4xlarge' => 64,
@@ -343,6 +349,9 @@ module AwsPricing
343
349
  'z1d.large' => 64, 'z1d.xlarge' => 64, 'z1d.2xlarge' => 64, 'z1d.3xlarge' => 64, 'z1d.6xlarge' => 64, 'z1d.12xlarge' => 64,
344
350
  'm5a.large' => 64, 'm5a.xlarge' => 64, 'm5a.2xlarge' => 64, 'm5a.4xlarge' => 64, 'm5a.12xlarge' => 64, 'm5a.24xlarge' => 64,
345
351
  'r5a.large' => 64, 'r5a.xlarge' => 64, 'r5a.2xlarge' => 64, 'r5a.4xlarge' => 64, 'r5a.12xlarge' => 64, 'r5a.24xlarge' => 64,
352
+ 'u-6tb1.metal' => 64,
353
+ 'u-9tb1.metal' => 64,
354
+ 'u-12tb1.metal' => 64,
346
355
  }
347
356
  @@Disk_Type_Lookup = { #type of local storage for the disk
348
357
  'a1.medium' => :ebs,'a1.large' => :ebs, 'a1.xlarge' => :ebs, 'a1.2xlarge' => :ebs, 'a1.4xlarge' => :ebs,
@@ -390,6 +399,9 @@ module AwsPricing
390
399
  'z1d.large' => :ssd, 'z1d.xlarge' => :ssd, 'z1d.2xlarge' => :ssd, 'z1d.3xlarge' => :ssd, 'z1d.6xlarge' => :ssd, 'z1d.12xlarge' => :ssd,
391
400
  'm5a.large' => :ebs, 'm5a.xlarge' => :ebs, 'm5a.2xlarge' => :ebs, 'm5a.4xlarge' => :ebs, 'm5a.12xlarge' => :ebs, 'm5a.24xlarge' => :ebs,
392
401
  'r5a.large' => :ebs, 'r5a.xlarge' => :ebs, 'r5a.2xlarge' => :ebs, 'r5a.4xlarge' => :ebs, 'r5a.12xlarge' => :ebs, 'r5a.24xlarge' => :ebs,
402
+ 'u-6tb1.metal' => :ebs,
403
+ 'u-9tb1.metal' => :ebs,
404
+ 'u-12tb1.metal' => :ebs,
393
405
  }
394
406
 
395
407
  # NOTE: These are populated by "populate_lookups"
@@ -641,6 +653,9 @@ module AwsPricing
641
653
  'r5a.4xlarge' => [ 265, 16000 ], #EBSOptimized
642
654
  'r5a.12xlarge' => [ 625, 30000 ], #EBSOptimized
643
655
  'r5a.24xlarge' => [ 1250, 60000 ], #EBSOptimized
656
+ 'u-6tb1.metal' => [ 1750, 80000], #EBSOptimized
657
+ 'u-9tb1.metal' => [ 1750, 80000], #EBSOptimized
658
+ 'u-12tb1.metal' => [ 1750, 80000], #EBSOptimized
644
659
  }
645
660
  end
646
661
  end
@@ -51,7 +51,9 @@ module AwsPricing
51
51
  'x1' => { "16xlarge"=>2, "32xlarge"=>1 },
52
52
  'x1e' =>{ "xlarge"=>32, "2xlarge"=>16, "4xlarge"=>8, "8xlarge"=>4, "16xlarge"=>2, "32xlarge"=>1 },
53
53
  'z1d' => {"large"=> 24, "xlarge"=> 12, "2xlarge"=> 6, "3xlarge"=> 4, "6xlarge"=> 2, "12xlarge"=> 1},
54
-
54
+ 'u-6tb1' => {"metal" => 1},
55
+ 'u-9tb1' => {"metal" => 1},
56
+ 'u-12tb1' => {"metal" => 1},
55
57
  }
56
58
 
57
59
  def get_ec2_dhi_od_pricing
@@ -46,7 +46,10 @@ module AwsPricing
46
46
  'R5A' => ['r5a.large', 'r5a.xlarge', 'r5a.2xlarge', 'r5a.4xlarge', 'r5a.12xlarge', 'r5a.24xlarge'],
47
47
  'X1' => ['x1.16xlarge', 'x1.32xlarge'],
48
48
  'X1E' => ['x1e.xlarge', 'x1e.2xlarge', 'x1e.4xlarge', 'x1e.8xlarge', 'x1e.16xlarge', 'x1e.32xlarge'],
49
- 'Z1D' => ['z1d.large', 'z1d.xlarge', 'z1d.2xlarge', 'z1d.3xlarge', 'z1d.6xlarge', 'z1d.12xlarge']
49
+ 'Z1D' => ['z1d.large', 'z1d.xlarge', 'z1d.2xlarge', 'z1d.3xlarge', 'z1d.6xlarge', 'z1d.12xlarge'],
50
+ 'U-6TB1' => ['u-6tb1.metal'],
51
+ 'U-9TB1' => ['u-9tb1.metal'],
52
+ 'U-12TB1' => ['u-12tb1.metal'],
50
53
  },
51
54
  'PreviousGen' => {
52
55
  'M2' => ['m2.xlarge', 'm2.2xlarge', 'm2.4xlarge'],
@@ -167,16 +170,26 @@ module AwsPricing
167
170
  all_instances.select { |family, instances| instances.include?(api_name) }.values.first
168
171
  end
169
172
 
170
-
171
173
  def api_name_to_nf(name)
172
174
  type = name.split('.').last
173
175
  if (type == METAL)
176
+ # See if our metal instance has a hard-coded nf value
177
+ if !metal_to_nf[name].nil?
178
+ return metal_to_nf[name]
179
+ end
174
180
  # try to get largest size supported for family: presumes METAL is *not* in size_to_nf hash
175
181
  # assumes family_members are sorted by size
176
182
  sizes = family_members(name)
183
+ # Return nil if we have a bogus instance type
184
+ if sizes.nil?
185
+ return nil
186
+ end
177
187
  type = sizes[-1].split('.').last # 'metal' defaults to largest size
178
188
  if sizes[-1].split('.').last == METAL
179
- type = sizes[-2].split('.').last # 'metal' already largest, so 2nd largest
189
+ if sizes.size == 1 # We have an instance family with only metals but no NF associated; raise an error
190
+ raise UnknownTypeError, "Unknown metal type #{name}", caller
191
+ end
192
+ type = sizes[-2].split('.').last # 'metal' already largest, so 2nd largest
180
193
  end
181
194
  end
182
195
  size_to_nf[type]
@@ -210,6 +223,11 @@ module AwsPricing
210
223
  NF_TO_SIZE_TABLE
211
224
  end
212
225
 
226
+ def metal_to_nf
227
+ METAL_TO_NF_TABLE
228
+ end
229
+
230
+ # Remove metal from this array? force adoption of this
213
231
  # NB: 'metal' is not in this table (since it's family specific), see #api_name_to_nf
214
232
  SIZE_TO_NF_TABLE = {
215
233
  "nano" => 0.25,
@@ -227,13 +245,20 @@ module AwsPricing
227
245
  "10xlarge" => 80,
228
246
  "12xlarge" => 96,
229
247
  "16xlarge" => 128,
230
- "metal" => 128, # temporary (for _direct_ users of this hash), as only applies to i3.metal
248
+ "metal" => 128, # We will be removing this once size_to_nf is deprecated.
231
249
  "18xlarge" => 144,
232
250
  "24xlarge" => 192,
233
251
  "32xlarge" => 256,
234
252
  }
235
253
  NF_TO_SIZE_TABLE = SIZE_TO_NF_TABLE.invert
236
254
 
255
+ METAL_TO_NF_TABLE = {
256
+ 'u-6tb1.metal' => 896,
257
+ 'u-9tb1.metal' => 896,
258
+ 'u-12tb1.metal' => 896,
259
+ 'i3.metal' => 128,
260
+ }
261
+
237
262
  end
238
263
  end
239
264
  end
@@ -9,6 +9,6 @@
9
9
  #++
10
10
  module AwsPricing
11
11
 
12
- VERSION = '0.1.129' # [major,minor.fix]: Adding eu-north-1 region
12
+ VERSION = '0.1.130' # [major,minor.fix]: Support for all metal instances
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.129
4
+ version: 0.1.130
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-01-02 00:00:00.000000000 Z
11
+ date: 2019-01-16 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
@@ -71,21 +71,21 @@ licenses:
71
71
  metadata: {}
72
72
  post_install_message:
73
73
  rdoc_options:
74
- - --title
74
+ - "--title"
75
75
  - amazon-pricing documentation
76
- - --line-numbers
77
- - --main
76
+ - "--line-numbers"
77
+ - "--main"
78
78
  - README.md
79
79
  require_paths:
80
80
  - lib
81
81
  required_ruby_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - ! '>='
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ! '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  requirements: []