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 +5 -13
- data/lib/amazon-pricing/definitions/ec2-instance-type.rb +3 -0
- data/lib/amazon-pricing/definitions/instance-type.rb +15 -0
- data/lib/amazon-pricing/ec2-dhi-price-list.rb +3 -1
- data/lib/amazon-pricing/helpers/instance-type.rb +29 -4
- data/lib/amazon-pricing/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
M2U5ZWU1MjIzM2IzNmI3ZTI0YzM3ODIxMDZlZDYxY2I0ZWNhYzI2NQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c09f9adf580b4be60a4c4044c5d7c72064f5bc7d
|
4
|
+
data.tar.gz: 15dbc1e40985deaed835c25787e17a7db3ee7ab2
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
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
|
-
|
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"
|
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
|
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.
|
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-
|
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: []
|