Class: Fog::AWS::RDS::Server

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/aws/models/rds/server.rb

Instance Attribute Summary collapse

Attributes inherited from Model

#collection, #connection

Instance Method Summary collapse

Methods inherited from Model

#initialize, #inspect, #reload, #symbolize_keys, #to_json, #wait_for

Methods included from Fog::Attributes::ClassMethods

#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes

Methods included from Fog::Attributes::InstanceMethods

#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #requires, #requires_one

Constructor Details

This class inherits a constructor from Fog::Model

Instance Attribute Details

#parameter_group_nameObject

Returns the value of attribute parameter_group_name.



33
34
35
# File 'lib/fog/aws/models/rds/server.rb', line 33

def parameter_group_name
  @parameter_group_name
end

#passwordObject

Returns the value of attribute password.



33
34
35
# File 'lib/fog/aws/models/rds/server.rb', line 33

def password
  @password
end

#portObject

Returns the value of attribute port.



33
34
35
# File 'lib/fog/aws/models/rds/server.rb', line 33

def port
  @port
end

#security_group_namesObject

Returns the value of attribute security_group_names.



33
34
35
# File 'lib/fog/aws/models/rds/server.rb', line 33

def security_group_names
  @security_group_names
end

Instance Method Details

#attributes_to_paramsObject

Converts attributes to a parameter hash suitable for requests



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/fog/aws/models/rds/server.rb', line 84

def attributes_to_params
  options = {
    'AllocatedStorage'              => allocated_storage,
    'AutoMinorVersionUpgrade'       => auto_minor_version_upgrade,
    'BackupRetentionPeriod'         => backup_retention_period,
    'DBName'                        => db_name,
    'DBParameterGroupName'          => parameter_group_name || attributes['DBParameterGroupName'],
    'DBSecurityGroups'              => security_group_names,
    'DBInstanceIdentifier'          => id,
    'AvailabilityZone'              => availability_zone,
    'DBInstanceClass'               => flavor_id,
    'Port'                          => port || attributes['Port'],
    'Engine'                        => engine,
    'EngineVersion'                 => engine_version,
    'MasterUsername'                => master_username,
    'MasterUserPassword'            => password || attributes['MasterUserPassword'],
    'PreferredMaintenanceWindow'    => preferred_maintenance_window,
    'PreferredBackupWindow'         => preferred_backup_window,
    'MultiAZ'                       => multi_az,
    'LicenseModel'                  => license_model
  }

  options.delete_if {|key, value| value.nil?}
end

#create_read_replica(replica_id, options = {}) ⇒ Object



35
36
37
38
39
40
# File 'lib/fog/aws/models/rds/server.rb', line 35

def create_read_replica(replica_id, options={})
  options[:security_group_names] ||= options['DBSecurityGroups']
  params = self.class.new(options).attributes_to_params
  connection.create_db_instance_read_replica(replica_id, id, params)
  connection.servers.get(replica_id)
end

#destroy(snapshot_identifier = nil) ⇒ Object



46
47
48
49
50
# File 'lib/fog/aws/models/rds/server.rb', line 46

def destroy(snapshot_identifier=nil)
  requires :id
  connection.delete_db_instance(id, snapshot_identifier, snapshot_identifier.nil?)
  true
end

#modify(immediately, options) ⇒ Object



62
63
64
65
66
67
68
# File 'lib/fog/aws/models/rds/server.rb', line 62

def modify(immediately, options)
  options[:security_group_names] ||= options['DBSecurityGroups']
  params = self.class.new(options).attributes_to_params
  data = connection.modify_db_instance(id, immediately, params)
  merge_attributes(data.body['ModifyDBInstanceResult']['DBInstance'])
  true
end

#ready?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/fog/aws/models/rds/server.rb', line 42

def ready?
  state == 'available'
end

#rebootObject



52
53
54
55
# File 'lib/fog/aws/models/rds/server.rb', line 52

def reboot
  connection.reboot_db_instance(id)
  true
end

#saveObject



70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/fog/aws/models/rds/server.rb', line 70

def save
  requires :engine
  requires :allocated_storage
  requires :master_username
  requires :password

  self.flavor_id ||= 'db.m1.small'

  data = connection.create_db_instance(id, attributes_to_params)
  merge_attributes(data.body['CreateDBInstanceResult']['DBInstance'])
  true
end

#snapshotsObject



57
58
59
60
# File 'lib/fog/aws/models/rds/server.rb', line 57

def snapshots
  requires :id
  connection.snapshots(:server => self)
end