amazon-pricing 0.1.129 → 0.1.130
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 +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: []
|