165 lines
4.2 KiB
Plaintext
165 lines
4.2 KiB
Plaintext
module Dalmatian
|
|
class Rds
|
|
def initialize(cluster:, reference:)
|
|
@cluster = cluster
|
|
@reference = reference
|
|
end
|
|
|
|
attr_reader :cluster, :reference
|
|
|
|
def identifier
|
|
reference["identifier"]
|
|
end
|
|
|
|
def in_use_by
|
|
reference["in_use_by"] || []
|
|
end
|
|
|
|
def clusters_in_use
|
|
clusters_in_use = {}
|
|
cluster_environments.each do |env_name, _env_config|
|
|
clusters_in_use[env_name] = []
|
|
services.each do |service|
|
|
in_use_by.each do |service_name|
|
|
next if service.name != service_name
|
|
clusters_in_use[env_name] << if service.launch_on_cluster.empty?
|
|
"default_dalmatian_ecs_cluster"
|
|
else
|
|
service.launch_on_cluster
|
|
end
|
|
end
|
|
end
|
|
if in_use_by.empty?
|
|
clusters_in_use[env_name] << "default_dalmatian_ecs_cluster" ## fails SimpleCov
|
|
end
|
|
clusters_in_use[env_name] = clusters_in_use[env_name].uniq
|
|
end
|
|
clusters_in_use
|
|
end
|
|
|
|
def instance_class
|
|
instance_class = {}
|
|
reference["instance_class"] = {} if reference["instance_class"].nil?
|
|
cluster_environments.each do |env_name, _env_config|
|
|
instance_class[env_name] = reference["instance_class"][env_name] || ""
|
|
end
|
|
instance_class
|
|
end
|
|
|
|
def engine
|
|
reference["engine"]
|
|
end
|
|
|
|
def engine_version
|
|
reference["engine_version"]
|
|
end
|
|
|
|
def allocated_storage
|
|
reference["allocated_storage"] || ""
|
|
end
|
|
|
|
def storage_encrypted
|
|
reference["storage_encrypted"].nil? || reference["storage_encrypted"]
|
|
end
|
|
|
|
def storage_type
|
|
reference["storage_type"] || "gp3"
|
|
end
|
|
|
|
def db_name
|
|
reference["db_name"]
|
|
end
|
|
|
|
def port
|
|
reference["port"] || ""
|
|
end
|
|
|
|
def maintenance_window
|
|
reference["maintenance_window"] || ""
|
|
end
|
|
|
|
def backup_window
|
|
reference["backup_window"] || ""
|
|
end
|
|
|
|
def backup_retention_period
|
|
reference["backup_retention_period"] || ""
|
|
end
|
|
|
|
def force_ssl
|
|
reference["force_ssl"] || "false"
|
|
end
|
|
|
|
def parameter_store_path_db_url_name
|
|
reference["parameter_store_path_db_url_name"] || ""
|
|
end
|
|
|
|
def sql_backup_scheduled_task_environment_variables
|
|
reference["sql_backup_scheduled_task_environment_variables"] || []
|
|
end
|
|
|
|
def check_sql_backup_scheduled_task_environment_variables
|
|
reference["check_sql_backup_scheduled_task_environment_variables"] || []
|
|
end
|
|
|
|
def sync_sql_backup_to_azure
|
|
reference["sync_sql_backup_to_azure"] || false
|
|
end
|
|
|
|
def replication_bucket_destination_arn
|
|
reference["replication_bucket_destination_arn"] || ""
|
|
end
|
|
|
|
def replication_kms_key_id
|
|
reference["replication_kms_key_id"] || ""
|
|
end
|
|
|
|
def codebuild_access
|
|
reference["codebuild_access"] || []
|
|
end
|
|
|
|
def cluster_id
|
|
cluster.id
|
|
end
|
|
|
|
def cluster_environments
|
|
cluster.environments
|
|
end
|
|
|
|
def account_id
|
|
cluster.account_id
|
|
end
|
|
|
|
def services
|
|
cluster.services
|
|
end
|
|
|
|
def to_params
|
|
{
|
|
"identifier" => identifier,
|
|
"in_use_by" => in_use_by,
|
|
"clusters_in_use" => clusters_in_use,
|
|
"instance_class" => instance_class,
|
|
"engine" => engine,
|
|
"engine_version" => engine_version,
|
|
"allocated_storage" => allocated_storage,
|
|
"storage_encrypted" => storage_encrypted,
|
|
"storage_type" => storage_type,
|
|
"db_name" => db_name,
|
|
"port" => port,
|
|
"maintenance_window" => maintenance_window,
|
|
"backup_window" => backup_window,
|
|
"backup_retention_period" => backup_retention_period,
|
|
"force_ssl" => force_ssl,
|
|
"parameter_store_path_db_url_name" => parameter_store_path_db_url_name,
|
|
"sql_backup_scheduled_task_environment_variables" => sql_backup_scheduled_task_environment_variables,
|
|
"check_sql_backup_scheduled_task_environment_variables" => check_sql_backup_scheduled_task_environment_variables,
|
|
"sync_sql_backup_to_azure" => sync_sql_backup_to_azure,
|
|
"replication_bucket_destination_arn" => replication_bucket_destination_arn,
|
|
"replication_kms_key_id" => replication_kms_key_id,
|
|
"codebuild_access" => codebuild_access
|
|
}
|
|
end
|
|
end
|
|
end
|