mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
additional attributes, new rds api version
This commit is contained in:
parent
956f53e274
commit
0c79f2f836
5 changed files with 53 additions and 46 deletions
|
@ -3,33 +3,34 @@ module Fog
|
|||
class RDS
|
||||
class Server < Fog::Model
|
||||
identity :id, :aliases => 'DBInstanceIdentifier'
|
||||
attribute :engine, :aliases => 'Engine'
|
||||
attribute :engine_version, :aliases => 'EngineVersion'
|
||||
attribute :state, :aliases => 'DBInstanceStatus'
|
||||
attribute :allocated_storage, :aliases => 'AllocatedStorage', :type => :integer
|
||||
attribute :iops, :aliases => 'Iops'
|
||||
attribute :availability_zone , :aliases => 'AvailabilityZone'
|
||||
attribute :flavor_id, :aliases => 'DBInstanceClass'
|
||||
attribute :endpoint, :aliases => 'Endpoint'
|
||||
attribute :read_replica_source, :aliases => 'ReadReplicaSourceDBInstanceIdentifier'
|
||||
attribute :read_replica_identifiers, :aliases => 'ReadReplicaDBInstanceIdentifiers', :type => :array
|
||||
attribute :master_username, :aliases => 'MasterUsername'
|
||||
attribute :multi_az, :aliases => 'MultiAZ'
|
||||
attribute :created_at, :aliases => 'InstanceCreateTime', :type => :time
|
||||
attribute :last_restorable_time, :aliases => 'LatestRestorableTime', :type => :time
|
||||
attribute :auto_minor_version_upgrade, :aliases => 'AutoMinorVersionUpgrade'
|
||||
attribute :pending_modified_values, :aliases => 'PendingModifiedValues'
|
||||
attribute :preferred_backup_window, :aliases => 'PreferredBackupWindow'
|
||||
|
||||
attribute :allocated_storage, :aliases => 'AllocatedStorage', :type => :integer
|
||||
attribute :auto_minor_version_upgrade, :aliases => 'AutoMinorVersionUpgrade'
|
||||
attribute :availability_zone, :aliases => 'AvailabilityZone'
|
||||
attribute :backup_retention_period, :aliases => 'BackupRetentionPeriod', :type => :integer
|
||||
attribute :created_at, :aliases => 'InstanceCreateTime', :type => :time
|
||||
attribute :db_name, :aliases => 'DBName'
|
||||
attribute :db_parameter_groups, :aliases => 'DBParameterGroups'
|
||||
attribute :db_security_groups, :aliases => 'DBSecurityGroups', :type => :array
|
||||
attribute :db_subnet_group_name, :aliases => 'DBSubnetGroupName'
|
||||
attribute :endpoint, :aliases => 'Endpoint'
|
||||
attribute :engine, :aliases => 'Engine'
|
||||
attribute :engine_version, :aliases => 'EngineVersion'
|
||||
attribute :flavor_id, :aliases => 'DBInstanceClass'
|
||||
attribute :iops, :aliases => 'Iops'
|
||||
attribute :last_restorable_time, :aliases => 'LatestRestorableTime', :type => :time
|
||||
attribute :license_model, :aliases => 'LicenseModel'
|
||||
attribute :master_username, :aliases => 'MasterUsername'
|
||||
attribute :multi_az, :aliases => 'MultiAZ'
|
||||
attribute :pending_modified_values, :aliases => 'PendingModifiedValues'
|
||||
attribute :preferred_backup_window, :aliases => 'PreferredBackupWindow'
|
||||
attribute :preferred_maintenance_window, :aliases => 'PreferredMaintenanceWindow'
|
||||
attribute :db_name, :aliases => 'DBName'
|
||||
attribute :db_security_groups, :aliases => 'DBSecurityGroups', :type => :array
|
||||
attribute :db_parameter_groups, :aliases => 'DBParameterGroups'
|
||||
attribute :backup_retention_period, :aliases => 'BackupRetentionPeriod', :type => :integer
|
||||
attribute :license_model, :aliases => 'LicenseModel'
|
||||
attribute :db_subnet_group_name, :aliases => 'DBSubnetGroupName'
|
||||
attribute :publicly_accessible, :aliases => 'PubliclyAccessible'
|
||||
attribute :vpc_security_groups, :aliases => 'VpcSecurityGroups', :type => :array
|
||||
attribute :storage_type, :aliases => 'StorageType'
|
||||
attribute :publicly_accessible, :aliases => 'PubliclyAccessible'
|
||||
attribute :read_replica_identifiers, :aliases => 'ReadReplicaDBInstanceIdentifiers', :type => :array
|
||||
attribute :read_replica_source, :aliases => 'ReadReplicaSourceDBInstanceIdentifier'
|
||||
attribute :state, :aliases => 'DBInstanceStatus'
|
||||
attribute :storage_type, :aliases => 'StorageType'
|
||||
attribute :vpc_security_groups, :aliases => 'VpcSecurityGroups', :type => :array
|
||||
|
||||
attr_accessor :password, :parameter_group_name, :security_group_names, :port
|
||||
|
||||
|
|
|
@ -46,14 +46,11 @@ module Fog
|
|||
when 'Engine', 'DBInstanceStatus', 'DBInstanceIdentifier',
|
||||
'PreferredBackupWindow', 'PreferredMaintenanceWindow',
|
||||
'AvailabilityZone', 'MasterUsername', 'DBName', 'LicenseModel',
|
||||
'DBSubnetGroupName', 'StorageType'
|
||||
'DBSubnetGroupName', 'StorageType', 'KmsKeyId', 'TdeCredentialArn',
|
||||
'SecondaryAvailabilityZone', 'DbiResourceId'
|
||||
@db_instance[name] = value
|
||||
when 'MultiAZ', 'AutoMinorVersionUpgrade', 'PubliclyAccessible'
|
||||
if value == 'false'
|
||||
@db_instance[name] = false
|
||||
else
|
||||
@db_instance[name] = true
|
||||
end
|
||||
when 'MultiAZ', 'AutoMinorVersionUpgrade', 'PubliclyAccessible', 'StorageEncrypted'
|
||||
@db_instance[name] = (value == 'true')
|
||||
when 'DBParameterGroups'
|
||||
@in_db_parameter_groups = false
|
||||
@db_instance['DBParameterGroups'] = @db_parameter_groups
|
||||
|
@ -64,7 +61,6 @@ module Fog
|
|||
if @in_db_parameter_groups
|
||||
@db_parameter_group[name] = value
|
||||
end
|
||||
|
||||
when 'BackupRetentionPeriod'
|
||||
if @in_pending_modified_values
|
||||
@pending_modified_values[name] = value.to_i
|
||||
|
@ -86,7 +82,6 @@ module Fog
|
|||
when 'DBSecurityGroup'
|
||||
@db_security_groups << @db_security_group
|
||||
@db_security_group = {}
|
||||
|
||||
when 'VpcSecurityGroups'
|
||||
@in_vpc_security_groups = false
|
||||
@db_instance['VpcSecurityGroups'] = @vpc_security_groups
|
||||
|
@ -95,7 +90,6 @@ module Fog
|
|||
@vpc_security_group = {}
|
||||
when 'VpcSecurityGroupId'
|
||||
@vpc_security_group[name] = value
|
||||
|
||||
when 'Status'
|
||||
# Unfortunately, status is used in VpcSecurityGroupMemebership and
|
||||
# DBSecurityGroups
|
||||
|
@ -105,7 +99,6 @@ module Fog
|
|||
if @in_vpc_security_groups
|
||||
@vpc_security_group[name] = value
|
||||
end
|
||||
|
||||
when 'Address'
|
||||
@endpoint[name] = value
|
||||
when 'Port'
|
||||
|
@ -114,7 +107,6 @@ module Fog
|
|||
elsif @in_endpoint
|
||||
@endpoint[name] = value.to_i
|
||||
end
|
||||
|
||||
when 'PendingModifiedValues'
|
||||
@in_pending_modified_values = false
|
||||
@db_instance['PendingModifiedValues'] = @pending_modified_values
|
||||
|
|
|
@ -197,7 +197,7 @@ module Fog
|
|||
@port = options[:port] || 443
|
||||
@scheme = options[:scheme] || 'https'
|
||||
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
||||
@version = options[:version] || '2013-05-15'
|
||||
@version = options[:version] || '2014-10-31'
|
||||
|
||||
setup_credentials(options)
|
||||
end
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
def rds_default_server_params
|
||||
{ :id => uniq_id, :allocated_storage => 5, :engine => 'mysql',
|
||||
:master_username => 'foguser', :password => 'fogpassword',
|
||||
:backup_retention_period => 0 }
|
||||
{
|
||||
:allocated_storage => 5,
|
||||
:backup_retention_period => 0,
|
||||
:engine => 'mysql',
|
||||
:version => '5.6.22',
|
||||
:id => uniq_id,
|
||||
:master_username => 'foguser',
|
||||
:password => 'fogpassword',
|
||||
:flavor_id => 'db.m3.medium',
|
||||
}
|
||||
end
|
||||
|
|
|
@ -13,22 +13,29 @@ Shindo.tests("AWS::RDS | server", ['aws', 'rds']) do
|
|||
snapshot = nil
|
||||
|
||||
tests('#create').succeeds do
|
||||
snapshot = @instance.snapshots.create(:id => 'fog-test-snapshot')
|
||||
snapshot = @instance.snapshots.create(:id => uniq_id('fog-snapshot-test'))
|
||||
end
|
||||
|
||||
snapshot.wait_for { ready?}
|
||||
|
||||
@instance.wait_for { ready? }
|
||||
|
||||
returns(true) { @instance.snapshots.map{|s| s.id}.include?(snapshot.id) }
|
||||
returns(true) { @instance.snapshots.map{ |s| s.id }.include?(snapshot.id) }
|
||||
snapshot.destroy
|
||||
end
|
||||
|
||||
tests("#modify").succeeds do
|
||||
pending if Fog.mocking?
|
||||
|
||||
engine = rds_default_server_params.fetch(:engine)
|
||||
version = rds_default_server_params.fetch(:version).match(/\d+\.\d+/).to_s
|
||||
|
||||
family = "#{engine}#{version}"
|
||||
|
||||
puts family
|
||||
|
||||
orig_parameter_group = @instance.db_parameter_groups.first['DBParameterGroupName']
|
||||
parameter_group = Fog::AWS[:rds].parameter_groups.create(:id => uniq_id, :family => 'mysql5.5', :description => 'fog-test')
|
||||
parameter_group = Fog::AWS[:rds].parameter_groups.create(:id => uniq_id, :family => family, :description => 'fog-test')
|
||||
|
||||
orig_security_groups = @instance.db_security_groups.map{|h| h['DBSecurityGroupName']}
|
||||
security_group = Fog::AWS[:rds].security_groups.create(:id => uniq_id, :description => 'fog-test')
|
||||
|
@ -94,7 +101,7 @@ Shindo.tests("AWS::RDS | server", ['aws', 'rds']) do
|
|||
end
|
||||
|
||||
test("Destroying with a final snapshot") do
|
||||
final_snapshot_id = 'fog-test-snapshot'
|
||||
final_snapshot_id = uniq_id('fog-test-snapshot')
|
||||
|
||||
@instance_with_final_snapshot.wait_for { ready? }
|
||||
@instance_with_final_snapshot.destroy(final_snapshot_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue