class DrawCloud::RDSInstance

Attributes

allocated_storage[RW]
auto_minor_version_upgrade[RW]
backup_retention_period[RW]
db_instance_class[RW]
db_security_groups[RW]
db_snapshot_identifier[RW]
engine[RW]
engine_version[RW]
instance_class[RW]
instance_class=[RW]
iops[RW]
master_password[RW]
master_password=[RW]
master_user_password[RW]
master_username[RW]
multi_az[RW]
name[RW]
rds_subnets[RW]

Public Class Methods

new(name, options={}, &block) click to toggle source
Calls superclass method DrawCloud::Base::new
# File lib/draw_cloud/rds_instance.rb, line 60
def initialize(name, options={}, &block)
  @name = name
  @db_security_groups = []
  @rds_subnets = []
  super(options, &block)
end

Public Instance Methods

db_security_group(name, description, options={}, &block) click to toggle source
# File lib/draw_cloud/rds_instance.rb, line 88
def db_security_group(name, description, options={}, &block)
  d = RDSSecurityGroup.new(name, description, options.merge(:parent => self), &block)
  db_security_groups << d
  d
end
load_into_config(config) click to toggle source
Calls superclass method DrawCloud::Base#load_into_config
# File lib/draw_cloud/rds_instance.rb, line 71
def load_into_config(config)
  config.cf_add_resource resource_name, self
  db_security_groups.each {|g| g.load_into_config(config) }
  unless rds_subnets.empty?
    config.cf_add_resource subnet_group.resource_name, subnet_group
  end
  super(config)
end
rds() click to toggle source
# File lib/draw_cloud/rds_instance.rb, line 67
def rds
  self
end
resource_name() click to toggle source
# File lib/draw_cloud/rds_instance.rb, line 80
def resource_name
  resource_style(name) + "RDS"
end
subnet_group() click to toggle source
# File lib/draw_cloud/rds_instance.rb, line 84
def subnet_group
  RDSSubnetGroup.new(self, rds_subnets)
end
to_h() click to toggle source
# File lib/draw_cloud/rds_instance.rb, line 94
def to_h
  h = {
    "Type" => "AWS::RDS::DBInstance",
    "Properties" => {
      "DBSecurityGroups" => db_security_groups.collect { |g| DrawCloud.ref(g)},
      "AllocatedStorage" => DrawCloud.ref(allocated_storage),
      "Engine" => DrawCloud.ref(engine),
      "DBInstanceClass" => DrawCloud.ref(db_instance_class),
      "MasterUsername" => DrawCloud.ref(master_username),
      "MasterUserPassword" => DrawCloud.ref(master_user_password),
    }
  }
  p = h["Properties"]
  p["DBSnapshotIdentifier"] = DrawCloud.ref(db_snapshot_identifier) if db_snapshot_identifier
  p["MultiAZ"] = multi_az unless multi_az.nil?
  p["EngineVersion"] = DrawCloud.ref(engine_version) unless engine_version.nil?
  p["Iops"] = DrawCloud.ref(iops) if iops
  p["DBSubnetGroupName"] = DrawCloud.ref(subnet_group) unless rds_subnets.empty?
  p["AutoMinorVersionUpgrade"] = DrawCloud.ref(auto_minor_version_upgrade) unless auto_minor_version_upgrade.nil?
  p["BackupRetentionPeriod"] = DrawCloud.ref(backup_retention_period) unless backup_retention_period.nil?
  add_standard_properties(h)
end