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, #service

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 Core::DeprecatedConnectionAccessors

#connection, #connection=, #prepare_service_value

Methods included from Fog::Attributes::InstanceMethods

#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #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.



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

def parameter_group_name
  @parameter_group_name
end

#passwordObject

Returns the value of attribute password.



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

def password
  @password
end

#portObject

Returns the value of attribute port.



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

def port
  @port
end

#security_group_namesObject

Returns the value of attribute security_group_names.



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

def security_group_names
  @security_group_names
end

Instance Method Details

#add_tags(new_tags) ⇒ Object



71
72
73
74
75
# File 'lib/fog/aws/models/rds/server.rb', line 71

def add_tags(new_tags)
  requires :id
  service.add_tags_to_resource(id, new_tags)
  tags
end

#attributes_to_paramsObject

Converts attributes to a parameter hash suitable for requests



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/fog/aws/models/rds/server.rb', line 105

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,
    'DBSubnetGroupName'             => db_subnet_group_name,
    'PubliclyAccessible'            => publicly_accessible
  }

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

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



38
39
40
41
42
43
# File 'lib/fog/aws/models/rds/server.rb', line 38

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

#destroy(snapshot_identifier = nil) ⇒ Object



49
50
51
52
53
# File 'lib/fog/aws/models/rds/server.rb', line 49

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

#modify(immediately, options) ⇒ Object



83
84
85
86
87
88
89
# File 'lib/fog/aws/models/rds/server.rb', line 83

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

#ready?Boolean

Returns:

  • (Boolean)


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

def ready?
  state == 'available'
end

#rebootObject



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

def reboot
  service.reboot_db_instance(id)
  true
end

#remove_tags(tag_keys) ⇒ Object



77
78
79
80
81
# File 'lib/fog/aws/models/rds/server.rb', line 77

def remove_tags(tag_keys)
  requires :id
  service.remove_tags_from_resource(id, tag_keys)
  tags
end

#saveObject



91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/fog/aws/models/rds/server.rb', line 91

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

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

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

#snapshotsObject



60
61
62
63
# File 'lib/fog/aws/models/rds/server.rb', line 60

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

#tagsObject



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

def tags
  requires :id
  service.list_tags_for_resource(id).
    body['ListTagsForResourceResult']['TagList']
end