amazon-pricing 0.1.106 → 0.1.107
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 +8 -8
- data/lib/amazon-pricing/definitions/database-type.rb +22 -0
- data/lib/amazon-pricing/version.rb +1 -1
- data/solano.yml +2 -0
- data/spec/lib/amazon-pricing/rds_pricing_spec.rb +78 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDdiNTFmMjM1ZWFlYWU2ZTdiYjg2ZWE4ZmQ0ODcyNTA3OGQ3MmY0NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjJhNjA2ZjUyNjFkNTBmMjcwOGVhYmEwMWNkZDIzNzI2NTc3NGZjYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Yjg5OTA4ZTk1YmZhZjFkNjQ3Y2YwMDQ4MjA5NmI1ZDQxZTRmZmE3MmE4ODVk
|
10
|
+
M2Q0NTRlMTYzMzhlNWYzYzRhODU0YWJhZjExOTdlYmM2ZDkwMDFlZDE4MWNh
|
11
|
+
OWY0NjJhODYzODE2ZGJhZWVkOGViNTk2M2M0Y2QxODkyOGE4Yjg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MmMxNGFkOTAzZjc4ZmE5ZTAwODMwYjc0ZTU5NTQwOTU0MWJmZmQzYjBjNTU5
|
14
|
+
MzIyNzA1Yjg4ZmM1ZTZiODgwMTg1OTc5NzJmODA4ZjNiNGVhOWNhYWFmNTcx
|
15
|
+
YmFjZDdjOTZiOWIxNDE1Mzg2YmQ0OTVkMjY3ODQ5YjgzYzkyMDE=
|
@@ -232,6 +232,28 @@ module AwsPricing
|
|
232
232
|
database_name.include? 'byol'
|
233
233
|
end
|
234
234
|
|
235
|
+
# example: database_sf_from_engine_name_and_license_type?('mysql', false) returns true
|
236
|
+
# Returns BOOL if database is RDS SF
|
237
|
+
# params:
|
238
|
+
# - engine_name[String]: product description database name string
|
239
|
+
# - is_byol[Bool]: true if the database is using a BYOL license
|
240
|
+
def self.database_sf_from_engine_name_and_license_type?(engine_name, is_byol)
|
241
|
+
engine_name_sym = engine_name.gsub('-', '_').to_sym
|
242
|
+
if @@DB_Deploy_Types[engine_name_sym] && @@DB_Deploy_Types[engine_name_sym].include?(:byol)
|
243
|
+
product_name = is_byol ? "#{engine_name}(byol)" : "#{engine_name}(li)"
|
244
|
+
else
|
245
|
+
product_name = engine_name
|
246
|
+
end
|
247
|
+
database_sf_from_product_name?(product_name)
|
248
|
+
end
|
249
|
+
# example: database_sf_from_product_name?('oracle-ee(byol)') returns true
|
250
|
+
# Returns BOOL if database is RDS SF
|
251
|
+
# params:
|
252
|
+
# - product_name[String]: product description database name string including license type
|
253
|
+
def self.database_sf_from_product_name?(product_name)
|
254
|
+
# Just look up by single-az because deployment type doesn't affect size-flex eligibility
|
255
|
+
database_sf?(db_mapping(product_name, false))
|
256
|
+
end
|
235
257
|
# example: database_sf?('MySQL Community Edition (Multi-AZ)') returns true
|
236
258
|
# Returns BOOL if database string is RDS SF
|
237
259
|
# params:
|
data/solano.yml
CHANGED
@@ -41,6 +41,8 @@ describe AwsPricing::RdsPriceList do
|
|
41
41
|
puts "rds_sf_database-1: display_name:#{display_name}"
|
42
42
|
#
|
43
43
|
expect(AwsPricing::DatabaseType.database_sf?(display_name)).to be true
|
44
|
+
expect(AwsPricing::DatabaseType.database_sf_from_product_name?(product_name)).to be true
|
45
|
+
expect(AwsPricing::DatabaseType.database_sf_from_engine_name_and_license_type?('oracle-se2', true)).to be true
|
44
46
|
expect(AwsPricing::DatabaseType.database_multiaz?(display_name)).to be true
|
45
47
|
expect(AwsPricing::DatabaseType.database_nf(display_name)).to eq(2)
|
46
48
|
|
@@ -50,15 +52,86 @@ describe AwsPricing::RdsPriceList do
|
|
50
52
|
puts "rds_sf_database-2: display_name:#{display_name}"
|
51
53
|
#
|
52
54
|
expect(AwsPricing::DatabaseType.database_sf?(display_name)).to be false
|
55
|
+
expect(AwsPricing::DatabaseType.database_sf_from_product_name?(product_name)).to be false
|
56
|
+
expect(AwsPricing::DatabaseType.database_sf_from_engine_name_and_license_type?('sqlserver-se', true)).to be false
|
57
|
+
expect(AwsPricing::DatabaseType.database_multiaz?(display_name)).to be false
|
58
|
+
expect(AwsPricing::DatabaseType.database_nf(display_name)).to eq(1)
|
59
|
+
|
60
|
+
product_name = 'sqlserver-se(li)' # known NOT RDS SF example: 'Microsoft SQL Server Standard Edition'
|
61
|
+
multiaz = false
|
62
|
+
display_name = AwsPricing::DatabaseType.db_mapping(product_name, multiaz)
|
63
|
+
puts "rds_sf_database-2: display_name:#{display_name}"
|
64
|
+
#
|
65
|
+
expect(AwsPricing::DatabaseType.database_sf?(display_name)).to be false
|
66
|
+
expect(AwsPricing::DatabaseType.database_sf_from_product_name?(product_name)).to be false
|
67
|
+
expect(AwsPricing::DatabaseType.database_sf_from_engine_name_and_license_type?('sqlserver-se', false)).to be false
|
53
68
|
expect(AwsPricing::DatabaseType.database_multiaz?(display_name)).to be false
|
54
69
|
expect(AwsPricing::DatabaseType.database_nf(display_name)).to eq(1)
|
55
70
|
|
56
71
|
display_name = 'NuoDB' # unknown db, returns default non RDS SF values
|
57
72
|
#
|
58
73
|
expect(AwsPricing::DatabaseType.database_sf?(display_name)).to be false
|
74
|
+
expect(AwsPricing::DatabaseType.database_sf_from_product_name?(product_name)).to be false
|
75
|
+
expect(AwsPricing::DatabaseType.database_sf_from_engine_name_and_license_type?('NuoDB', false)).to be false
|
59
76
|
expect(AwsPricing::DatabaseType.database_multiaz?(display_name)).to be false
|
60
77
|
expect(AwsPricing::DatabaseType.database_nf(display_name)).to eq(1)
|
61
78
|
end
|
79
|
+
|
80
|
+
it 'verifies RDS SF api for product name' do
|
81
|
+
product_name_to_size_flex_map = {
|
82
|
+
'mysql' => true,
|
83
|
+
'postgres' => true,
|
84
|
+
'postgresql' => true,
|
85
|
+
'oracle-se1(li)' => false,
|
86
|
+
'oracle-se1(byol)' => true,
|
87
|
+
'oracle-se2(li)' => false,
|
88
|
+
'oracle-se2(byol)' => true,
|
89
|
+
'oracle-se(byol)' => true,
|
90
|
+
'oracle-ee(byol)' => true,
|
91
|
+
'sqlserver-ex(li)' => false,
|
92
|
+
'sqlserver-web(li)' => false,
|
93
|
+
'sqlserver-se(li)' => false,
|
94
|
+
'sqlserver-se(byol)' => false,
|
95
|
+
'sqlserver-ee(li)' => false,
|
96
|
+
'sqlserver-ee(byol)' => false,
|
97
|
+
'aurora' => true,
|
98
|
+
'aurora-postgresql' => true,
|
99
|
+
'mariadb' => true
|
100
|
+
}
|
101
|
+
|
102
|
+
product_name_to_size_flex_map.each do |product_name, expected_value|
|
103
|
+
expect(AwsPricing::DatabaseType.database_sf_from_product_name?(product_name)).to be expected_value
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'verifies RDS SF api for engine name and license type' do
|
108
|
+
engine_name_and_license_type_to_size_flex_map = {
|
109
|
+
['mysql', false] => true,
|
110
|
+
['postgres', false] => true,
|
111
|
+
['postgresql', false] => true,
|
112
|
+
['oracle-se1', false] => false,
|
113
|
+
['oracle-se1', true] => true,
|
114
|
+
['oracle-se2', false] => false,
|
115
|
+
['oracle-se2', true] => true,
|
116
|
+
['oracle-se', true] => true,
|
117
|
+
['oracle-ee', true] => true,
|
118
|
+
['sqlserver-ex', false] => false,
|
119
|
+
['sqlserver-web', false] => false,
|
120
|
+
['sqlserver-se', false] => false,
|
121
|
+
['sqlserver-se', true] => false,
|
122
|
+
['sqlserver-ee', false] => false,
|
123
|
+
['sqlserver-ee', true] => false,
|
124
|
+
['aurora', false] => true,
|
125
|
+
['aurora-postgresql', false] => true,
|
126
|
+
['mariadb', false] => true
|
127
|
+
}
|
128
|
+
|
129
|
+
engine_name_and_license_type_to_size_flex_map.each do |engine_and_license, expected_value|
|
130
|
+
engine = engine_and_license.first
|
131
|
+
license = engine_and_license.last
|
132
|
+
expect(AwsPricing::DatabaseType.database_sf_from_engine_name_and_license_type?(engine, license)).to be expected_value
|
133
|
+
end
|
134
|
+
end
|
62
135
|
end
|
63
136
|
|
64
137
|
describe 'rds_sf_operation' do
|
@@ -93,7 +166,7 @@ describe AwsPricing::RdsPriceList do
|
|
93
166
|
end
|
94
167
|
end
|
95
168
|
|
96
|
-
describe 'get_breakeven_months' do
|
169
|
+
describe 'get_breakeven_months' do
|
97
170
|
it "test_fetch_all_breakeven_months" do
|
98
171
|
@pricing.regions.each do |region|
|
99
172
|
region.rds_instance_types.each do |instance|
|
@@ -112,15 +185,15 @@ describe AwsPricing::RdsPriceList do
|
|
112
185
|
if deploy_type == :byol_multiaz
|
113
186
|
next if not instance.available?(db, res_type, true, true)
|
114
187
|
instance.get_breakeven_month(db, res_type, term, true, true).should_not be_nil
|
115
|
-
else
|
188
|
+
else
|
116
189
|
next if not instance.available?(db, res_type, deploy_type == :multiaz, deploy_type == :byol)
|
117
190
|
instance.get_breakeven_month(db, res_type, term, deploy_type == :multiaz, deploy_type == :byol).should_not be_nil
|
118
|
-
end
|
191
|
+
end
|
119
192
|
end
|
120
|
-
end
|
193
|
+
end
|
121
194
|
end
|
122
195
|
end
|
123
|
-
end
|
196
|
+
end
|
124
197
|
end
|
125
198
|
end
|
126
199
|
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.107
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Kinsella
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby library for retrieving pricing for Amazon Web Services
|
14
14
|
email:
|