Class: AwsPricing::DatabaseType
- Inherits:
-
CategoryType
- Object
- CategoryType
- AwsPricing::DatabaseType
- Defined in:
- lib/amazon-pricing/definitions/database-type.rb
Constant Summary collapse
- MYSQL_STANDARD =
Display Name, as seen in DBR/CUR
'MySQL Community Edition'.freeze
- MYSQL_MULTIAZ =
'MySQL Community Edition (Multi-AZ)'.freeze
- POSTGRESQL_STANDARD =
'PostgreSql Community Edition(Beta)'.freeze
- POSTGRESQL_MULTIAZ =
'PostgreSql Community Edition(Beta) (Multi-AZ)'.freeze
- ORACLE_SE1_STANDARD =
'Oracle Database Standard Edition One'.freeze
- ORACLE_SE1_MULTIAZ =
'Oracle Database Standard Edition One (Multi-AZ)'.freeze
- ORACLE_SE1_BYOL_STANDARD =
'Oracle Database Standard Edition One (BYOL)'.freeze
- ORACLE_SE1_BYOL_MULTIAZ =
'Oracle Database Standard Edition One (BYOL Multi-AZ)'.freeze
- ORACLE_SE2_STANDARD =
'Oracle Database Standard Edition Two'.freeze
- ORACLE_SE2_MULTIAZ =
'Oracle Database Standard Edition Two (Multi-AZ)'.freeze
- ORACLE_SE2_BYOL_STANDARD =
'Oracle Database Standard Edition Two (BYOL)'.freeze
- ORACLE_SE2_BYOL_MULTIAZ =
'Oracle Database Standard Edition Two (BYOL Multi-AZ)'.freeze
- ORACLE_SE_BYOL_STANDARD =
'Oracle Database Standard Edition (BYOL)'.freeze
- ORACLE_SE_BYOL_MULTIAZ =
'Oracle Database Standard Edition (BYOL Multi-AZ)'.freeze
- ORACLE_EE_BYOL_STANDARD =
'Oracle Database Enterprise Edition (BYOL)'.freeze
- ORACLE_EE_BYOL_MULTIAZ =
'Oracle Database Enterprise Edition (BYOL Multi-AZ)'.freeze
- SQLSERVER_EX =
'Microsoft SQL Server Express Edition'.freeze
- SQLSERVER_WEB =
'Microsoft SQL Server Web Edition'.freeze
- SQLSERVER_SE_STANDARD =
'Microsoft SQL Server Standard Edition'.freeze
- SQLSERVER_SE_MULTIAZ =
'Microsoft SQL Server Standard Edition (Multi-AZ)'.freeze
- SQLSERVER_SE_BYOL_STANDARD =
'Microsoft SQL Server Standard Edition (BYOL)'.freeze
- SQLSERVER_SE_BYOL_MULTIAZ =
'Microsoft SQL Server Standard Edition (BYOL Multi-AZ)'.freeze
- SQLSERVER_EE_STANDARD =
'Microsoft SQL Server Enterprise Edition'.freeze
- SQLSERVER_EE_MULTIAZ =
'Microsoft SQL Server Enterprise Edition (Multi-AZ)'.freeze
- SQLSERVER_EE_BYOL_STANDARD =
'Microsoft SQL Server Enterprise Edition (BYOL)'.freeze
- SQLSERVER_EE_BYOL_MULTIAZ =
'Microsoft SQL Server Enterprise Edition (BYOL Multi-AZ)'- AURORA_MYSQL =
multiaz not distinguished, MySQL not distinguished
'Amazon Aurora'.freeze
- AURORA_POSTGRESQL =
multiaz not distinguished
'Amazon Aurora PostgreSQL'.freeze
- MARIADB_STANDARD =
'MariaDB'.freeze
- MARIADB_MULTIAZ =
'MariaDB (Multi-AZ)'.freeze
- NEPTUNE_STANDARD =
'Amazon Neptune'.freeze
- NEPTUNE_MULTIAZ =
'Amazon Neptune (Multi-AZ)'.freeze
- @@DB_ENGINE_MAP =
maps RDS description to [ engine, license, multiaz, sizeflex ]
{ MYSQL_STANDARD => { engine: "mysql", license: "none", multiaz: false, sizeflex: true }, MYSQL_MULTIAZ => { engine: "mysql", license: "none", multiaz: true, sizeflex: true }, POSTGRESQL_STANDARD => { engine: "postgresql", license: "none", multiaz: false, sizeflex: true }, POSTGRESQL_MULTIAZ => { engine: "postgresql", license: "none", multiaz: true, sizeflex: true }, ORACLE_SE1_STANDARD => { engine: "oracle-se1", license: "li", multiaz: false, sizeflex: false }, ORACLE_SE1_MULTIAZ => { engine: "oracle-se1", license: "li", multiaz: true, sizeflex: false }, ORACLE_SE1_BYOL_STANDARD => { engine: "oracle-se1", license: "byol", multiaz: false, sizeflex: true }, ORACLE_SE1_BYOL_MULTIAZ => { engine: "oracle-se1", license: "byol", multiaz: true, sizeflex: true }, ORACLE_SE2_STANDARD => { engine: "oracle-se2", license: "li", multiaz: false, sizeflex: false }, ORACLE_SE2_MULTIAZ => { engine: "oracle-se2", license: "li", multiaz: true, sizeflex: false }, ORACLE_SE2_BYOL_STANDARD => { engine: "oracle-se2", license: "byol", multiaz: false, sizeflex: true }, ORACLE_SE2_BYOL_MULTIAZ => { engine: "oracle-se2", license: "byol", multiaz: true, sizeflex: true }, ORACLE_SE_BYOL_STANDARD => { engine: "oracle-se", license: "byol", multiaz: false, sizeflex: true }, ORACLE_SE_BYOL_MULTIAZ => { engine: "oracle-se", license: "byol", multiaz: true, sizeflex: true }, ORACLE_EE_BYOL_STANDARD => { engine: "oracle-ee", license: "byol", multiaz: false, sizeflex: true }, ORACLE_EE_BYOL_MULTIAZ => { engine: "oracle-ee", license: "byol", multiaz: true, sizeflex: true }, SQLSERVER_EX => { engine: "sqlserver-ex", license: "li", multiaz: false, sizeflex: false }, SQLSERVER_WEB => { engine: "sqlserver-web", license: "li", multiaz: false, sizeflex: false }, SQLSERVER_SE_STANDARD => { engine: "sqlserver-se", license: "li", multiaz: false, sizeflex: false }, SQLSERVER_SE_MULTIAZ => { engine: "sqlserver-se", license: "li", multiaz: true, sizeflex: false }, SQLSERVER_SE_BYOL_STANDARD=> { engine: "sqlserver-se", license: "byol", multiaz: false, sizeflex: false }, SQLSERVER_SE_BYOL_MULTIAZ => { engine: "sqlserver-se", license: "byol", multiaz: true, sizeflex: false }, SQLSERVER_EE_STANDARD => { engine: "sqlserver-ee", license: "li", multiaz: false, sizeflex: false }, SQLSERVER_EE_MULTIAZ => { engine: "sqlserver-ee", license: "li", multiaz: true, sizeflex: false }, SQLSERVER_EE_BYOL_STANDARD=> { engine: "sqlserver-ee", license: "byol", multiaz: false, sizeflex: false }, SQLSERVER_EE_BYOL_MULTIAZ => { engine: "sqlserver-ee", license: "byol", multiaz: true, sizeflex: false }, AURORA_MYSQL => { engine: "aurora", license: "none", multiaz: true, sizeflex: true }, AURORA_POSTGRESQL => { engine: "aurora-postgresql", license: "none", multiaz: true, sizeflex: true }, MARIADB_STANDARD => { engine: "mariadb", license: "none", multiaz: false, sizeflex: true }, MARIADB_MULTIAZ => { engine: "mariadb", license: "none", multiaz: true, sizeflex: true }, # Neptune isn't SF, since it doesn't support RI's (yet) NEPTUNE_STANDARD => { engine: "neptune", license: "none", multiaz: false, sizeflex: false }, NEPTUNE_MULTIAZ => { engine: "neptune", license: "none", multiaz: true, sizeflex: false }, }.freeze
- @@DB_OPERATION_TO_DESCRIPTION =
maps Operation to Description
{ 'CreateDBInstance:0002'.freeze => MYSQL_STANDARD, # MySQL 'CreateDBInstance:0003'.freeze => ORACLE_SE1_BYOL_STANDARD, # Oracle SE1 (BYOL) 'CreateDBInstance:0004'.freeze => ORACLE_SE_BYOL_STANDARD, # Oracle SE (BYOL) 'CreateDBInstance:0005'.freeze => ORACLE_EE_BYOL_STANDARD, # Oracle EE (BYOL) 'CreateDBInstance:0006'.freeze => ORACLE_SE1_STANDARD, # Oracle SE1 (LI) 'CreateDBInstance:0008'.freeze => SQLSERVER_SE_BYOL_STANDARD, # SQL Server SE (BYOL) 'CreateDBInstance:0009'.freeze => SQLSERVER_EE_BYOL_STANDARD, # SQL Server EE (BYOL) 'CreateDBInstance:0010'.freeze => SQLSERVER_EX, # SQL Server Exp (LI) 'CreateDBInstance:0011'.freeze => SQLSERVER_WEB, # SQL Server Web (LI) 'CreateDBInstance:0012'.freeze => SQLSERVER_SE_STANDARD, # SQL Server SE (LI) 'CreateDBInstance:0014'.freeze => POSTGRESQL_STANDARD, # PostgreSQL 'CreateDBInstance:0015'.freeze => SQLSERVER_EE_STANDARD, # SQL Server EE (LI) 'CreateDBInstance:0016'.freeze => AURORA_MYSQL, # Aurora MySQL 'CreateDBInstance:0018'.freeze => MARIADB_STANDARD, # MariaDB 'CreateDBInstance:0019'.freeze => ORACLE_SE2_BYOL_STANDARD, # Oracle SE2 (BYOL) 'CreateDBInstance:0020'.freeze => ORACLE_SE2_STANDARD, # Oracle SE2 (LI) 'CreateDBInstance:0021'.freeze => AURORA_POSTGRESQL, # Aurora PostgreSQL 'CreateDBInstance:0022'.freeze => NEPTUNE_STANDARD, # Neptune }.freeze
- @@Database_Name_Lookup =
{ 'mysql_standard'.freeze => MYSQL_STANDARD, 'mysql_multiaz'.freeze => MYSQL_MULTIAZ, 'postgresql_standard'.freeze => POSTGRESQL_STANDARD, 'postgresql_multiaz'.freeze => POSTGRESQL_MULTIAZ, 'oracle_se1_standard'.freeze => ORACLE_SE1_STANDARD, 'oracle_se1_multiaz'.freeze => ORACLE_SE1_MULTIAZ, 'oracle_se1_byol'.freeze => ORACLE_SE1_BYOL_STANDARD, 'oracle_se1_byol_multiaz'.freeze => ORACLE_SE1_BYOL_MULTIAZ, 'oracle_se_byol'.freeze => ORACLE_SE_BYOL_STANDARD, 'oracle_se_byol_multiaz'.freeze => ORACLE_SE_BYOL_MULTIAZ, 'oracle_ee_byol'.freeze => ORACLE_EE_BYOL_STANDARD, 'oracle_ee_byol_multiaz'.freeze => ORACLE_EE_BYOL_MULTIAZ, 'sqlserver_ex'.freeze => SQLSERVER_EX, 'sqlserver_web'.freeze => SQLSERVER_WEB, 'sqlserver_se_standard'.freeze => SQLSERVER_SE_STANDARD, 'sqlserver_se_multiaz'.freeze => SQLSERVER_SE_MULTIAZ, 'sqlserver_se_byol'.freeze => SQLSERVER_SE_BYOL_STANDARD, 'sqlserver_se_byol_multiaz'.freeze => SQLSERVER_SE_BYOL_MULTIAZ, 'sqlserver_ee_standard'.freeze => SQLSERVER_EE_STANDARD, 'sqlserver_ee_multiaz'.freeze => SQLSERVER_EE_MULTIAZ, 'sqlserver_ee_byol'.freeze => SQLSERVER_EE_BYOL_STANDARD, 'sqlserver_ee_byol_multiaz'.freeze => SQLSERVER_EE_BYOL_MULTIAZ, 'aurora_standard'.freeze => AURORA_MYSQL, 'aurora_postgresql_standard'.freeze=> AURORA_POSTGRESQL, 'mariadb_standard'.freeze => MARIADB_STANDARD, 'mariadb_multiaz'.freeze => MARIADB_MULTIAZ, 'neptune_standard'.freeze => NEPTUNE_STANDARD, 'neptune_multiaz'.freeze => NEPTUNE_MULTIAZ, 'oracle_se2_standard'.freeze => ORACLE_SE2_STANDARD, 'oracle_se2_multiaz'.freeze => ORACLE_SE2_MULTIAZ, # Oracle SE2 BYOL prices are copied from Enterprise BYOL prices and not collected # (so no need to add rds-price-list.rb) 'oracle_se2_byol'.freeze => ORACLE_SE2_BYOL_STANDARD, 'oracle_se2_byol_multiaz'.freeze => ORACLE_SE2_BYOL_MULTIAZ, }
- @@Display_Name_To_Qualified_Database_Name =
@@Database_Name_Lookup.invert
- @@ProductDescription =
{ 'mysql'.freeze => 'mysql_standard'.freeze, 'mysql_multiaz'.freeze => 'mysql_multiaz'.freeze, 'postgres'.freeze => 'postgresql_standard'.freeze, 'postgres_multiaz'.freeze => 'postgresql_multiaz'.freeze, 'postgresql'.freeze => 'postgresql_standard'.freeze, 'postgresql_multiaz'.freeze => 'postgresql_multiaz'.freeze, 'oracle-se(byol)'.freeze => 'oracle_se_byol'.freeze, 'oracle-se(byol)_multiaz'.freeze => 'oracle_se_byol_multiaz'.freeze, 'oracle-ee(byol)'.freeze => 'oracle_ee_byol'.freeze, 'oracle-ee(byol)_multiaz'.freeze => 'oracle_ee_byol_multiaz'.freeze, 'oracle-se1(li)'.freeze => 'oracle_se1_standard'.freeze, 'oracle-se1(li)_multiaz'.freeze => 'oracle_se1_multiaz'.freeze, 'oracle-se1(byol)'.freeze => 'oracle_se1_byol'.freeze, 'oracle-se1(byol)_multiaz'.freeze => 'oracle_se1_byol_multiaz'.freeze, 'oracle-se2(li)'.freeze => 'oracle_se2_standard'.freeze, 'oracle-se2(li)_multiaz'.freeze => 'oracle_se2_multiaz'.freeze, 'oracle-se2(byol)'.freeze => 'oracle_se2_byol'.freeze, 'oracle-se2(byol)_multiaz'.freeze => 'oracle_se2_byol_multiaz'.freeze, 'sqlserver-ee(byol)'.freeze => 'sqlserver_ee_byol'.freeze, 'sqlserver-ee(byol)_multiaz'.freeze => 'sqlserver_ee_byol_multiaz'.freeze, 'sqlserver-ee(li)'.freeze => 'sqlserver_ee_standard'.freeze, 'sqlserver-ee(li)_multiaz'.freeze => 'sqlserver_ee_multiaz'.freeze, 'sqlserver-ex(li)'.freeze => 'sqlserver_ex'.freeze, 'sqlserver-se(byol)'.freeze => 'sqlserver_se_byol'.freeze, 'sqlserver-se(byol)_multiaz'.freeze => 'sqlserver_se_byol_multiaz'.freeze, 'sqlserver-se(li)'.freeze => 'sqlserver_se_standard'.freeze, 'sqlserver-se(li)_multiaz'.freeze => 'sqlserver_se_multiaz'.freeze, 'sqlserver-web(li)'.freeze => 'sqlserver_web'.freeze, 'aurora'.freeze => 'aurora_standard'.freeze, 'aurora-postgresql'.freeze => 'aurora_postgresql_standard'.freeze, 'mariadb'.freeze => 'mariadb_standard'.freeze, 'mariadb_multiaz'.freeze => 'mariadb_multiaz'.freeze, 'neptune'.freeze => 'neptune_standard'.freeze, 'neptune_multiaz'.freeze => 'neptune_multiaz'.freeze, }
- @@DB_Deploy_Types =
{ :mysql => [:standard, :multiaz], :postgresql => [:standard, :multiaz], :oracle_se1 => [:standard, :multiaz, :byol, :byol_multiaz], :oracle_se2 => [:standard, :multiaz, :byol, :byol_multiaz], :oracle_se => [:byol, :byol_multiaz], :oracle_ee => [:byol, :byol_multiaz], :sqlserver_se => [:standard, :multiaz, :byol, :byol_multiaz], :sqlserver_ee => [:byol, :byol_multiaz, :standard, :multiaz], :aurora => [:standard, :multiaz], # checking to see distinguished standard/multiaz :aurora_postgresql => [:standard, :multiaz], :mariadb => [:standard, :multiaz], :neptune => [:standard, :multiaz], }
Instance Attribute Summary
Attributes inherited from CategoryType
#allupfront_prepay_1_year, #allupfront_prepay_3_year, #convertible_allupfront_prepay_1_year, #convertible_allupfront_prepay_3_year, #convertible_noupfront_price_per_hour_1_year, #convertible_noupfront_price_per_hour_3_year, #convertible_partialupfront_prepay_1_year, #convertible_partialupfront_prepay_3_year, #convertible_partialupfront_price_per_hour_1_year, #convertible_partialupfront_price_per_hour_3_year, #heavy_prepay_1_year, #heavy_prepay_3_year, #heavy_price_per_hour_1_year, #heavy_price_per_hour_3_year, #instance_type, #light_prepay_1_year, #light_prepay_3_year, #light_price_per_hour_1_year, #light_price_per_hour_3_year, #medium_prepay_1_year, #medium_prepay_3_year, #medium_price_per_hour_1_year, #medium_price_per_hour_3_year, #name, #noupfront_price_per_hour_1_year, #noupfront_price_per_hour_3_year, #ondemand_price_per_hour, #partialupfront_prepay_1_year, #partialupfront_prepay_3_year, #partialupfront_price_per_hour_1_year, #partialupfront_price_per_hour_3_year
Class Method Summary collapse
-
.database_multiaz?(display_name) ⇒ Boolean
example: database_multiaz?(‘MySQL Community Edition (Multi-AZ)’) returns true Returns BOOL if database string is RDS SF params: - operation_name: fully qualified operation string.
-
.database_nf(display_name) ⇒ Object
example: database_nf(‘MySQL Community Edition (Multi-AZ)’) returns 2 Returns INT (nf factor) for given database string params: - operation_name: fully qualified operation string.
-
.database_sf?(display_name) ⇒ Boolean
example: database_sf?(‘MySQL Community Edition (Multi-AZ)’) returns true Returns BOOL if database string is RDS SF params: - display_name: fully qualified database string.
-
.database_sf_from_engine_name_and_license_type?(engine_name, is_byol) ⇒ Boolean
example: database_sf_from_engine_name_and_license_type?(‘mysql’, false) returns true Returns BOOL if database is RDS SF params: - engine_name: product description database name string - is_byol: true if the database is using a BYOL license.
-
.database_sf_from_product_name?(product_name) ⇒ Boolean
example: database_sf_from_product_name?(‘oracle-ee(byol)’) returns true Returns BOOL if database is RDS SF params: - product_name: product description database name string including license type.
-
.databases_sf ⇒ Object
example: databases_sf() returns [MYSQL_STANDARD, … ] Returns BOOL if operation string is RDS SF params: none.
- .db_mapping(product, is_multi_az) ⇒ Object
- .display_name(name) ⇒ Object
- .display_name_is_byol?(display_name) ⇒ Boolean
- .display_name_is_multi_az?(display_name) ⇒ Boolean
- .display_name_to_database_name(display_name) ⇒ Object
- .display_name_to_qualified_database_name(display_name) ⇒ Object
- .get_available_types(db) ⇒ Object
- .get_database_name ⇒ Object
-
.operation_nf(operation_name, multiaz) ⇒ Object
example: database_nf(‘MySQL Community Edition (Multi-AZ)’,true) returns 2 i.e.
-
.operation_sf?(operation_name, multiaz = false) ⇒ Boolean
example: operation_sf?(‘CreateDBInstance:0016’,true) returns true Returns BOOL if operation string is RDS SF params: - operation_name: fully qualified operation string - multiaz: if operation is multi-az (api for consistency purposes).
Instance Method Summary collapse
Methods inherited from CategoryType
#allupfront_effective_rate_1_year, #allupfront_effective_rate_3_year, #available?, #get_breakeven_month, #initialize, #noupfront_effective_rate_1_year, #partialupfront_effective_rate_1_year, #partialupfront_effective_rate_3_year, #prepay, #price_per_hour, #set_prepay, #set_price_per_hour
Constructor Details
This class inherits a constructor from AwsPricing::CategoryType
Class Method Details
.database_multiaz?(display_name) ⇒ Boolean
example: database_multiaz?(‘MySQL Community Edition (Multi-AZ)’) returns true Returns BOOL if database string is RDS SF params:
-
operation_name: fully qualified operation string
303 304 305 306 307 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 303 def self.database_multiaz?(display_name) db = @@DB_ENGINE_MAP[display_name] return false unless db # unknown db is presumed non sf db[:multiaz] end |
.database_nf(display_name) ⇒ Object
example: database_nf(‘MySQL Community Edition (Multi-AZ)’) returns 2 Returns INT (nf factor) for given database string params:
-
operation_name: fully qualified operation string
314 315 316 317 318 319 320 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 314 def self.database_nf(display_name) db = @@DB_ENGINE_MAP[display_name] return 1 unless db # unknown db is presumed non sf return 2 if db[:sizeflex] && db[:multiaz] 1 end |
.database_sf?(display_name) ⇒ Boolean
example: database_sf?(‘MySQL Community Edition (Multi-AZ)’) returns true Returns BOOL if database string is RDS SF params:
-
display_name: fully qualified database string
273 274 275 276 277 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 273 def self.database_sf?(display_name) db = @@DB_ENGINE_MAP[display_name] return false unless db # unknown db is presumed non sf db[:sizeflex] end |
.database_sf_from_engine_name_and_license_type?(engine_name, is_byol) ⇒ Boolean
example: database_sf_from_engine_name_and_license_type?(‘mysql’, false) returns true Returns BOOL if database is RDS SF params:
-
engine_name: product description database name string
-
is_byol: true if the database is using a BYOL license
252 253 254 255 256 257 258 259 260 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 252 def self.database_sf_from_engine_name_and_license_type?(engine_name, is_byol) engine_name_sym = engine_name.gsub('-', '_').to_sym if @@DB_Deploy_Types[engine_name_sym] && @@DB_Deploy_Types[engine_name_sym].include?(:byol) product_name = is_byol ? "#{engine_name}(byol)" : "#{engine_name}(li)" else product_name = engine_name end database_sf_from_product_name?(product_name) end |
.database_sf_from_product_name?(product_name) ⇒ Boolean
example: database_sf_from_product_name?(‘oracle-ee(byol)’) returns true Returns BOOL if database is RDS SF params:
-
product_name: product description database name string including license type
265 266 267 268 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 265 def self.database_sf_from_product_name?(product_name) # Just look up by single-az because deployment type doesn't affect size-flex eligibility database_sf?(db_mapping(product_name, false)) end |
.databases_sf ⇒ Object
example: databases_sf() returns [MYSQL_STANDARD, … ] Returns BOOL if operation string is RDS SF params: none
291 292 293 294 295 296 297 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 291 def self.databases_sf dbs = [] @@DB_ENGINE_MAP.each do |key,value| dbs << key if value[:sizeflex] end dbs end |
.db_mapping(product, is_multi_az) ⇒ Object
215 216 217 218 219 220 221 222 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 215 def self.db_mapping(product, is_multi_az) product = product.gsub(/\s+/,"") # remove extraneous spaces, e.g. sometimes AWS adds a SP before '(byol)' if is_multi_az display_name(@@ProductDescription["#{product}_multiaz"]) else display_name(@@ProductDescription["#{product}"]) end end |
.display_name(name) ⇒ Object
200 201 202 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 200 def self.display_name(name) @@Database_Name_Lookup[name] end |
.display_name_is_byol?(display_name) ⇒ Boolean
242 243 244 245 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 242 def self.display_name_is_byol?(display_name) database_name = self.display_name_to_qualified_database_name(display_name) database_name.include? 'byol' end |
.display_name_is_multi_az?(display_name) ⇒ Boolean
237 238 239 240 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 237 def self.display_name_is_multi_az?(display_name) database_name = self.display_name_to_qualified_database_name(display_name) database_name.include? 'multiaz' end |
.display_name_to_database_name(display_name) ⇒ Object
232 233 234 235 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 232 def self.display_name_to_database_name(display_name) database_name = self.display_name_to_qualified_database_name(display_name) database_name.gsub('_standard', '').gsub('_multiaz', '').gsub('_byol', '') end |
.display_name_to_qualified_database_name(display_name) ⇒ Object
224 225 226 227 228 229 230 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 224 def self.display_name_to_qualified_database_name(display_name) database_name = @@Display_Name_To_Qualified_Database_Name[display_name] if database_name.nil? raise "Unknown display_name '#{display_name}'. Valid names are #{@@Display_Name_To_Qualified_Database_Name.keys.join(', ')}" end database_name end |
.get_available_types(db) ⇒ Object
211 212 213 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 211 def self.get_available_types(db) @@DB_Deploy_Types[db] end |
.get_database_name ⇒ Object
204 205 206 207 208 209 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 204 def self.get_database_name [:mysql, :postgresql, :oracle_se1, :oracle_se, :oracle_ee, :sqlserver_ex, :sqlserver_web, :sqlserver_se, :sqlserver_ee, :aurora, :aurora_postgresql, :mariadb, :neptune, :oracle_se2 # oracle_se2 license included prices are collected, and BYOL prices are copied from oracle_se ] end |
.operation_nf(operation_name, multiaz) ⇒ Object
example: database_nf(‘MySQL Community Edition (Multi-AZ)’,true) returns 2 i.e. inst_nf = RDS_NF * operation_nf(operation_name,multiaz) Returns INT (nf factor) for given operation string and multiaz params:
-
operation_name: fully qualified operation string
-
multiaz: if operation is multi-az
327 328 329 330 331 332 333 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 327 def self.operation_nf(operation_name, multiaz) display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name] return 1 unless display_name # unknown operation is presumed non sf return 2 if self.operation_sf?(operation_name,multiaz) && multiaz 1 end |
.operation_sf?(operation_name, multiaz = false) ⇒ Boolean
example: operation_sf?(‘CreateDBInstance:0016’,true) returns true Returns BOOL if operation string is RDS SF params:
-
operation_name: fully qualified operation string
-
multiaz: if operation is multi-az (api for consistency purposes)
283 284 285 286 287 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 283 def self.operation_sf?(operation_name,multiaz=false) display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name] return false unless display_name # unknown operation is presumed non sf self.database_sf?(display_name) end |
Instance Method Details
#display_name ⇒ Object
335 336 337 |
# File 'lib/amazon-pricing/definitions/database-type.rb', line 335 def display_name self.class.display_name(name) end |