class AwsPricing::DatabaseType
Constants
- AURORA_MYSQL
- AURORA_POSTGRESQL
- MARIADB_MULTIAZ
- MARIADB_STANDARD
- MYSQL_MULTIAZ
- MYSQL_STANDARD
Display Name, as seen in DBR/CUR
- NEPTUNE_MULTIAZ
- NEPTUNE_STANDARD
- ORACLE_EE_BYOL_MULTIAZ
- ORACLE_EE_BYOL_STANDARD
- ORACLE_SE1_BYOL_MULTIAZ
- ORACLE_SE1_BYOL_STANDARD
- ORACLE_SE1_MULTIAZ
- ORACLE_SE1_STANDARD
- ORACLE_SE2_BYOL_MULTIAZ
- ORACLE_SE2_BYOL_STANDARD
- ORACLE_SE2_MULTIAZ
- ORACLE_SE2_STANDARD
- ORACLE_SE_BYOL_MULTIAZ
- ORACLE_SE_BYOL_STANDARD
- POSTGRESQL_MULTIAZ
- POSTGRESQL_STANDARD
- SQLSERVER_EE_BYOL_MULTIAZ
- SQLSERVER_EE_BYOL_STANDARD
- SQLSERVER_EE_MULTIAZ
- SQLSERVER_EE_STANDARD
- SQLSERVER_EX
- SQLSERVER_SE_BYOL_MULTIAZ
- SQLSERVER_SE_BYOL_STANDARD
- SQLSERVER_SE_MULTIAZ
- SQLSERVER_SE_STANDARD
- SQLSERVER_WEB
Public Class Methods
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
# File lib/amazon-pricing/definitions/database-type.rb 303 def self.database_multiaz?(display_name) 304 db = @@DB_ENGINE_MAP[display_name] 305 return false unless db # unknown db is presumed non sf 306 db[:multiaz] 307 end
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
# File lib/amazon-pricing/definitions/database-type.rb 314 def self.database_nf(display_name) 315 db = @@DB_ENGINE_MAP[display_name] 316 return 1 unless db # unknown db is presumed non sf 317 return 2 if db[:sizeflex] && db[:multiaz] 318 319 1 320 end
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
# File lib/amazon-pricing/definitions/database-type.rb 273 def self.database_sf?(display_name) 274 db = @@DB_ENGINE_MAP[display_name] 275 return false unless db # unknown db is presumed non sf 276 db[:sizeflex] 277 end
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
# File lib/amazon-pricing/definitions/database-type.rb 252 def self.database_sf_from_engine_name_and_license_type?(engine_name, is_byol) 253 engine_name_sym = engine_name.gsub('-', '_').to_sym 254 if @@DB_Deploy_Types[engine_name_sym] && @@DB_Deploy_Types[engine_name_sym].include?(:byol) 255 product_name = is_byol ? "#{engine_name}(byol)" : "#{engine_name}(li)" 256 else 257 product_name = engine_name 258 end 259 database_sf_from_product_name?(product_name) 260 end
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
# File lib/amazon-pricing/definitions/database-type.rb 265 def self.database_sf_from_product_name?(product_name) 266 # Just look up by single-az because deployment type doesn't affect size-flex eligibility 267 database_sf?(db_mapping(product_name, false)) 268 end
example: databases_sf
() returns [MYSQL_STANDARD, … ] Returns BOOL if operation string is RDS SF params: none
# File lib/amazon-pricing/definitions/database-type.rb 291 def self.databases_sf 292 dbs = [] 293 @@DB_ENGINE_MAP.each do |key,value| 294 dbs << key if value[:sizeflex] 295 end 296 dbs 297 end
# File lib/amazon-pricing/definitions/database-type.rb 215 def self.db_mapping(product, is_multi_az) 216 product = product.gsub(/\s+/,"") # remove extraneous spaces, e.g. sometimes AWS adds a SP before '(byol)' 217 if is_multi_az 218 display_name(@@ProductDescription["#{product}_multiaz"]) 219 else 220 display_name(@@ProductDescription["#{product}"]) 221 end 222 end
# File lib/amazon-pricing/definitions/database-type.rb 200 def self.display_name(name) 201 @@Database_Name_Lookup[name] 202 end
# File lib/amazon-pricing/definitions/database-type.rb 242 def self.display_name_is_byol?(display_name) 243 database_name = self.display_name_to_qualified_database_name(display_name) 244 database_name.include? 'byol' 245 end
# File lib/amazon-pricing/definitions/database-type.rb 237 def self.display_name_is_multi_az?(display_name) 238 database_name = self.display_name_to_qualified_database_name(display_name) 239 database_name.include? 'multiaz' 240 end
# File lib/amazon-pricing/definitions/database-type.rb 232 def self.display_name_to_database_name(display_name) 233 database_name = self.display_name_to_qualified_database_name(display_name) 234 database_name.gsub('_standard', '').gsub('_multiaz', '').gsub('_byol', '') 235 end
# File lib/amazon-pricing/definitions/database-type.rb 224 def self.display_name_to_qualified_database_name(display_name) 225 database_name = @@Display_Name_To_Qualified_Database_Name[display_name] 226 if database_name.nil? 227 raise "Unknown display_name '#{display_name}'. Valid names are #{@@Display_Name_To_Qualified_Database_Name.keys.join(', ')}" 228 end 229 database_name 230 end
# File lib/amazon-pricing/definitions/database-type.rb 211 def self.get_available_types(db) 212 @@DB_Deploy_Types[db] 213 end
# File lib/amazon-pricing/definitions/database-type.rb 204 def self.get_database_name 205 [:mysql, :postgresql, :oracle_se1, :oracle_se, :oracle_ee, :sqlserver_ex, :sqlserver_web, 206 :sqlserver_se, :sqlserver_ee, :aurora, :aurora_postgresql, :mariadb, :neptune, 207 :oracle_se2 # oracle_se2 license included prices are collected, and BYOL prices are copied from oracle_se 208 ] 209 end
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
# File lib/amazon-pricing/definitions/database-type.rb 327 def self.operation_nf(operation_name, multiaz) 328 display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name] 329 return 1 unless display_name # unknown operation is presumed non sf 330 return 2 if self.operation_sf?(operation_name,multiaz) && multiaz 331 332 1 333 end
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)
# File lib/amazon-pricing/definitions/database-type.rb 283 def self.operation_sf?(operation_name,multiaz=false) 284 display_name = @@DB_OPERATION_TO_DESCRIPTION[operation_name] 285 return false unless display_name # unknown operation is presumed non sf 286 self.database_sf?(display_name) 287 end
Public Instance Methods
# File lib/amazon-pricing/definitions/database-type.rb 335 def display_name 336 self.class.display_name(name) 337 end