right_aws 2.1.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,7 @@ module RightAws
27
27
 
28
28
  include RightAwsBaseInterface
29
29
 
30
- API_VERSION = "2010-07-28"
30
+ API_VERSION = "2011-04-01"
31
31
  DEFAULT_HOST = 'rds.amazonaws.com'
32
32
  DEFAULT_PORT = 443
33
33
  DEFAULT_PROTOCOL = 'https'
@@ -35,6 +35,7 @@ module RightAws
35
35
 
36
36
  DEFAULT_INSTANCE_CLASS = 'db.m1.small'
37
37
  INSTANCE_CLASSES = ['db.m1.small', 'db.m1.large', 'db.m1.xlarge', 'db.m2.2xlarge', 'db.m2.2xlarge', 'db.m2.4xlarge']
38
+ LICENSE_MODELS = ['bring-your-own-license', 'license-included', 'general-public-license']
38
39
 
39
40
  @@bench = AwsBenchmarkingBlock.new
40
41
  def self.bench_xml
@@ -161,7 +162,7 @@ module RightAws
161
162
  def describe_db_instances(*params, &block)
162
163
  item, params = AwsUtils::split_items_and_params(params)
163
164
  params = params.dup
164
- params['DBInstanceIdentifier'] = item if item
165
+ params['DBInstanceIdentifier'] = item.first unless item.right_blank?
165
166
  result = []
166
167
  incrementally_list_items('DescribeDBInstances', DescribeDbInstancesParser, params) do |response|
167
168
  result += response[:db_instances]
@@ -175,10 +176,11 @@ module RightAws
175
176
  # Mandatory arguments: +aws_id+, +master_username+, +master_user_password+
176
177
  # Optional params: +:allocated_storage+ (25 by def), +:instance_class+, +:engine+ ('MySQL' by def),
177
178
  # +:endpoint_port+, +:db_name+, +:db_security_groups+, +:db_parameter_group+, +:availability_zone+, +:preferred_maintenance_window+
178
- # +:backup_retention_period+, +:preferred_backup_window+, +:multi_az+, +:engine_version+, +:auto_minor_version_upgrade+
179
+ # +:backup_retention_period+, +:preferred_backup_window+, +:multi_az+, +:engine_version+, +:auto_minor_version_upgrade+,
180
+ # +:license_model+
179
181
  #
180
182
  # rds.create_db_instance('kd-delete-me-01', 'username', 'password',
181
- # :db_instance_class => 'db.m1.small',
183
+ # :instance_class => 'db.m1.small',
182
184
  # :multi_az => true,
183
185
  # :auto_minor_version_upgrade => false ) #=>
184
186
  # {:instance_class=>"db.m1.small",
@@ -219,6 +221,7 @@ module RightAws
219
221
  request_hash['DBParameterGroupName'] = params[:db_parameter_group] unless params[:db_parameter_group].right_blank?
220
222
  request_hash['EngineVersion'] = params[:engine_version] unless params[:engine_version].right_blank?
221
223
  request_hash['AutoMinorVersionUpgrade'] = params[:auto_minor_version_upgrade].to_s unless params[:auto_minor_version_upgrade].nil?
224
+ request_hash['LicenseModel'] = params[:license_model] unless params[:license_model].right_blank?
222
225
  request_hash.merge!(amazonize_list('DBSecurityGroups.member', params[:db_security_groups]))
223
226
  link = generate_request('CreateDBInstance', request_hash)
224
227
  request_info(link, DescribeDbInstancesParser.new(:logger => @logger))[:db_instances].first
@@ -636,6 +639,31 @@ module RightAws
636
639
  result
637
640
  end
638
641
 
642
+ # Describe a list of orderable DB Instance options for the specified engine.
643
+ # Optionals: +:instance_class+, +:engine_version+ , +:license_model+
644
+ #
645
+ # rds.describe_orderable_db_instance_options('oracle-ee', :engine_version => '11.2.0.2.v2') #=>
646
+ # [{:read_replica_capable=>false,
647
+ # :instance_class=>"db.m1.large",
648
+ # :availability_zones=>["us-east-1a", "us-east-1b", "us-east-1d"],
649
+ # :engine=>"oracle-ee",
650
+ # :license_model=>"bring-your-own-license",
651
+ # :engine_version=>"11.2.0.2.v2",
652
+ # :multi_az_capable=>"false"}, ... ]
653
+ #
654
+ def describe_orderable_db_instance_options(engine, params={}, &block)
655
+ request_hash = { 'Engine' => engine }
656
+ request_hash['DBInstanceClass'] = params[:instance_class] unless params[:instance_class].right_blank?
657
+ request_hash['EngineVersion'] = params[:engine_version] unless params[:engine_version].right_blank?
658
+ request_hash['LicenseModel'] = params[:license_model] unless params[:license_model].right_blank?
659
+ result = []
660
+ incrementally_list_items('DescribeOrderableDBInstanceOptions', DescribeOrderableDBInstanceOptionsParser, request_hash) do |response|
661
+ result += response[:items]
662
+ block ? block.call(response) : true
663
+ end
664
+ result
665
+ end
666
+
639
667
  # --------------------------------------------
640
668
  # DB Snapshots
641
669
  # --------------------------------------------
@@ -717,7 +745,7 @@ module RightAws
717
745
  # in the "Available" state. The new RDS instance is created with the Default security group.
718
746
  #
719
747
  # Optional params: +:instance_class+, +:endpoint_port+, +:availability_zone+, +:multi_az+,
720
- # +:auto_minor_version_upgrade+
748
+ # +:auto_minor_version_upgrade+, +:license_model+, +:db_name+, +:engine+
721
749
  #
722
750
  # rds.restore_db_instance_from_db_snapshot('ahahahaha-final-snapshot-20090828081159', 'q1') #=>
723
751
  # {:status=>"creating",
@@ -741,6 +769,9 @@ module RightAws
741
769
  request_hash['AvailabilityZone'] = params[:availability_zone] unless params[:availability_zone].right_blank?
742
770
  request_hash['MultiAZ'] = params[:multi_az] unless params[:multi_az].nil?
743
771
  request_hash['AutoMinorVersionUpgrade'] = params[:auto_minor_version_upgrade] unless params[:auto_minor_version_upgrade].nil?
772
+ request_hash['LicenseModel'] = params[:license_model] unless params[:license_model].right_blank?
773
+ request_hash['DBName'] = params[:db_name] unless params[:db_name].right_blank?
774
+ request_hash['Engine'] = params[:engine] unless params[:enginel].right_blank?
744
775
  link = generate_request('RestoreDBInstanceFromDBSnapshot', request_hash)
745
776
  request_info(link, DescribeDbInstancesParser.new(:logger => @logger))[:db_instances].first
746
777
  end
@@ -751,7 +782,7 @@ module RightAws
751
782
  # security group.
752
783
  #
753
784
  # Optional params: +:instance_class+, +:endpoint_port+, +:availability_zone+, +:multi_az+, +:restore_time+,
754
- # +:auto_minor_version_upgrade+, +:use_latest_restorable_time+
785
+ # +:auto_minor_version_upgrade+, +:use_latest_restorable_time+, +:license_model+, +:db_name+, +:engine+
755
786
  #
756
787
  def restore_db_instance_to_point_in_time(instance_aws_id, new_instance_aws_id, params={})
757
788
  request_hash = { 'SourceDBInstanceIdentifier' => instance_aws_id,
@@ -763,6 +794,9 @@ module RightAws
763
794
  request_hash['Port'] = params[:endpoint_port] unless params[:endpoint_port].right_blank?
764
795
  request_hash['AvailabilityZone'] = params[:availability_zone] unless params[:availability_zone].right_blank?
765
796
  request_hash['AutoMinorVersionUpgrade'] = params[:auto_minor_version_upgrade] unless params[:auto_minor_version_upgrade].nil?
797
+ request_hash['LicenseModel'] = params[:license_model] unless params[:license_model].right_blank?
798
+ request_hash['DBName'] = params[:db_name] unless params[:db_name].right_blank?
799
+ request_hash['Engine'] = params[:engine] unless params[:enginel].right_blank?
766
800
  link = generate_request('RestoreDBInstanceToPointInTime', request_hash)
767
801
  request_info(link, DescribeDbInstancesParser.new(:logger => @logger))[:db_instances].first
768
802
  end
@@ -844,15 +878,17 @@ module RightAws
844
878
  # Optional params: +:db_parameter_group_family+, +:default_only+, +:engine+, +:engine_version+
845
879
  #
846
880
  # rds.describe_db_engine_versions #=>
847
- # [{:engine=>"mysql",
848
- # :db_parameter_group_family=>"mysql5.1",
881
+ # [{:db_parameter_group_family=>"mysql5.1",
882
+ # :engine=>"mysql",
883
+ # :db_engine_description=>"MySQL Community Edition",
884
+ # :db_engine_version_description=>"Mysql 5.1.45",
849
885
  # :engine_version=>"5.1.45"},
850
- # {:engine=>"mysql",
851
- # :db_parameter_group_family=>"mysql5.1",
852
- # :engine_version=>"5.1.49"},
853
- # {:engine=>"mysql",
854
- # :db_parameter_group_family=>"mysql5.1",
855
- # :engine_version=>"5.1.50"}]
886
+ # {:db_parameter_group_family=>"oracle-se1-11.2",
887
+ # :engine=>"oracle-se1",
888
+ # :db_engine_description=>"Oracle Database Standard Edition One",
889
+ # :db_engine_version_description=>
890
+ # "Oracle Standard Edition One - DB Engine Version 11.2.0.2.v2",
891
+ # :engine_version=>"11.2.0.2.v2"}]
856
892
  #
857
893
  def describe_db_engine_versions(params={}, &block)
858
894
  params = params.dup
@@ -874,10 +910,10 @@ module RightAws
874
910
 
875
911
  # Create a DB Instance that acts as a Read Replica of a source DB Instance.
876
912
  #
877
- # Optional params: +:endpoint_port+, +:availability_zone+, +:db_instance_class+, +:auto_minor_version_upgrade+
913
+ # Optional params: +:endpoint_port+, +:availability_zone+, +:instance_class+, +:auto_minor_version_upgrade+
878
914
  #
879
915
  # rds.create_db_instance_read_replica('kd-delete-me-01-replica-01', 'kd-delete-me-01',
880
- # :db_instance_class => 'db.m1.small',
916
+ # :instance_class => 'db.m1.small',
881
917
  # :endpoint_port => '11000',
882
918
  # :auto_minor_version_upgrade => false ) #=>
883
919
  # {:auto_minor_version_upgrade=>false,
@@ -903,7 +939,7 @@ module RightAws
903
939
  'SourceDBInstanceIdentifier' => source_db_instance_identifier}
904
940
  request_hash['Port'] = params[:endpoint_port] unless params[:endpoint_port].right_blank?
905
941
  request_hash['AvailabilityZone'] = params[:availability_zone] unless params[:availability_zone].right_blank?
906
- request_hash['DBInstanceClass'] = params[:db_instance_class] unless params[:db_instance_class].right_blank?
942
+ request_hash['DBInstanceClass'] = params[:instance_class] unless params[:instance_class].right_blank?
907
943
  request_hash['AutoMinorVersionUpgrade'] = params[:auto_minor_version_upgrade].to_s unless params[:auto_minor_version_upgrade].nil?
908
944
  link = generate_request('CreateDBInstanceReadReplica', request_hash)
909
945
  request_info(link, DescribeDbInstancesParser.new(:logger => @logger))[:db_instances].first
@@ -918,26 +954,29 @@ module RightAws
918
954
  # Options: :aws_id, :instance_class, :duration, :product_description, :multi_az
919
955
  #
920
956
  # rds.describe_reserved_db_instances_offerings #=>
921
- # [{:multi_az=>false,
957
+ # [{:usage_price=>0.262,
958
+ # :offering_aws_id=>"248e7b75-2451-4381-9025-b5553d421c7b",
959
+ # :multi_az=>false,
922
960
  # :duration=>31536000,
923
- # :fixed_price=>1325.0,
924
- # :usage_price=>0.262,
925
- # :aws_id=>"248e7b75-2451-4381-9025-b5553d421c7b",
961
+ # :currency_code=>"USD",
926
962
  # :instance_class=>"db.m2.xlarge",
927
- # :product_description=>"mysql"},
928
- # {:multi_az=>true,
963
+ # :product_description=>"mysql",
964
+ # :fixed_price=>1325.0},
965
+ # {:usage_price=>0.092,
966
+ # :offering_aws_id=>"248e7b75-49a7-4cd7-9a9b-354f4906a9b1",
967
+ # :multi_az=>true,
929
968
  # :duration=>94608000,
930
- # :fixed_price=>700.0,
931
- # :usage_price=>0.092,
932
- # :aws_id=>"248e7b75-49a7-4cd7-9a9b-354f4906a9b1",
969
+ # :currency_code=>"USD",
933
970
  # :instance_class=>"db.m1.small",
934
- # :product_description=>"mysql"}, ... ]
971
+ # :product_description=>"mysql",
972
+ # :fixed_price=>700.0}, ...]
935
973
  #
936
974
  # rds.describe_reserved_db_instances_offerings(:aws_id => "248e7b75-49a7-4cd7-9a9b-354f4906a9b1") #=>
937
975
  # [{:duration=>94608000,
938
976
  # :multi_az=>true,
939
977
  # :fixed_price=>700.0,
940
978
  # :usage_price=>0.092,
979
+ # :currency_code=>"USD",
941
980
  # :aws_id=>"248e7b75-49a7-4cd7-9a9b-354f4906a9b1",
942
981
  # :instance_class=>"db.m1.small",
943
982
  # :product_description=>"mysql"}]
@@ -1033,6 +1072,8 @@ module RightAws
1033
1072
  when 'MasterUsername' then @item[:master_username] = @text
1034
1073
  when 'AvailabilityZone' then @item[:availability_zone] = @text
1035
1074
  when 'LatestRestorableTime' then @item[:latest_restorable_time] = @text
1075
+ when 'LicenseModel' then @item[:license_model] = @text
1076
+ when 'DBName' then @item[:db_name] = @text
1036
1077
  when 'ReadReplicaSourceDBInstanceIdentifier' then @item[:read_replica_source_db_instance_identifier] = @text
1037
1078
  when 'ReadReplicaDBInstanceIdentifier' then @item[:read_replica_db_instance_identifiers] << @text
1038
1079
  when 'DBSecurityGroupName' then @db_security_group[:name] = @text
@@ -1069,6 +1110,31 @@ module RightAws
1069
1110
  end
1070
1111
  end
1071
1112
 
1113
+ class DescribeOrderableDBInstanceOptionsParser < RightAWSParser # :nodoc:
1114
+ def reset
1115
+ @result = { :items => [] }
1116
+ end
1117
+ def tagstart(name, attributes)
1118
+ case name
1119
+ when 'OrderableDBInstanceOption' then @item = { :availability_zones => [] }
1120
+ end
1121
+ end
1122
+ def tagend(name)
1123
+ case name
1124
+ when 'Marker' then @result[:marker] = @text
1125
+ when 'MaxRecords' then @result[:max_records] = @text.to_i
1126
+ when 'DBInstanceClass' then @item[:instance_class] = @text
1127
+ when 'Engine' then @item[:engine] = @text
1128
+ when 'EngineVersion' then @item[:engine_version] = @text
1129
+ when 'LicenseModel' then @item[:license_model] = @text
1130
+ when 'MultiAZCapable' then @item[:multi_az_capable] = @text
1131
+ when 'ReadReplicaCapable' then @item[:read_replica_capable] = @text == 'true'
1132
+ when 'Name' then @item[:availability_zones] << @text
1133
+ when 'OrderableDBInstanceOption' then @result[:items] << @item
1134
+ end
1135
+ end
1136
+ end
1137
+
1072
1138
  # --------------------------------------------
1073
1139
  # DB Security Groups
1074
1140
  # --------------------------------------------
@@ -1157,6 +1223,8 @@ module RightAws
1157
1223
  when 'Description' then @item[:description] = @text
1158
1224
  when 'IsModifiable' then @item[:is_modifiable] = (@text == 'true')
1159
1225
  when 'ApplyType' then @item[:apply_type] = @text
1226
+ when 'ApplyMethod' then @item[:apply_method] = @text
1227
+ when 'MinimumEngineVersion' then @item[:minimum_engine_version] = @text
1160
1228
  when 'AllowedValues' then @item[:allowed_values] = @text
1161
1229
  when 'ParameterName' then @item[:name] = @text
1162
1230
  when 'ParameterValue' then @item[:value] = @text
@@ -1193,6 +1261,7 @@ module RightAws
1193
1261
  when 'SnapshotCreateTime' then @item[:create_time] = @text
1194
1262
  when 'DBInstanceIdentifier' then @item[:instance_aws_id] = @text
1195
1263
  when 'DBSnapshotIdentifier' then @item[:aws_id] = @text
1264
+ when 'LicenseModel' then @item[:license_model] = @text
1196
1265
  when 'DBSnapshot' then @result[:db_snapshots] << @item
1197
1266
  end
1198
1267
  end
@@ -1244,6 +1313,8 @@ module RightAws
1244
1313
  when 'DBParameterGroupFamily' then @item[:db_parameter_group_family] = @text
1245
1314
  when 'Engine' then @item[:engine] = @text
1246
1315
  when 'EngineVersion' then @item[:engine_version] = @text
1316
+ when 'DBEngineDescription' then @item[:db_engine_description] = @text
1317
+ when 'DBEngineVersionDescription' then @item[:db_engine_version_description] = @text
1247
1318
  when 'DBEngineVersion' then @result[:db_engine_versions] << @item
1248
1319
  end
1249
1320
  end
@@ -1266,6 +1337,7 @@ module RightAws
1266
1337
  case name
1267
1338
  when 'Marker' then @result[:marker] = @text
1268
1339
  when 'MaxRecords' then @result[:max_records] = @text.to_i
1340
+ when 'CurrencyCode' then @item[:currency_code] = @text
1269
1341
  when 'DBInstanceClass' then @item[:instance_class] = @text
1270
1342
  when 'Duration' then @item[:duration] = @text.to_i
1271
1343
  when 'FixedPrice' then @item[:fixed_price] = @text.to_f
@@ -1292,6 +1364,7 @@ module RightAws
1292
1364
  when 'Marker' then @result[:marker] = @text
1293
1365
  when 'MaxRecords' then @result[:max_records] = @text.to_i
1294
1366
  when 'DBInstanceClass' then @item[:instance_class] = @text
1367
+ when 'CurrencyCode' then @item[:currency_code] = @text
1295
1368
  when 'Duration' then @item[:duration] = @text.to_i
1296
1369
  when 'FixedPrice' then @item[:fixed_price] = @text.to_f
1297
1370
  when 'UsagePrice' then @item[:usage_price] = @text.to_f
@@ -1300,6 +1373,8 @@ module RightAws
1300
1373
  when 'ReservedDBInstancesOfferingId' then @item[:offering_aws_id] = @text
1301
1374
  when 'ReservedDBInstanceId' then @item[:aws_id] = @text
1302
1375
  when 'State' then @item[:state] = @text
1376
+ when 'DBInstanceCount' then @item[:instance_count] = @text.to_i
1377
+ when 'StartTime' then @item[:start_time] = @text
1303
1378
  when 'ReservedDBInstance' then @result[:reserved_db_instances] << @item
1304
1379
  end
1305
1380
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright (c) 2007-2008 RightScale Inc
2
+ # Copyright (c) 2007-2011 RightScale Inc
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -47,11 +47,13 @@ require 'ec2/right_ec2_spot_instances'
47
47
  require 'ec2/right_ec2_ebs'
48
48
  require 'ec2/right_ec2_reserved_instances'
49
49
  require 'ec2/right_ec2_vpc'
50
+ require 'ec2/right_ec2_vpc2'
50
51
  require 'ec2/right_ec2_monitoring'
51
52
  require 'ec2/right_ec2_placement_groups'
52
53
  require 'ec2/right_ec2_windows_mobility'
53
54
  require 'ec2/right_ec2_tags'
54
55
  require 'elb/right_elb_interface'
56
+ require 'emr/right_emr_interface'
55
57
  require 'acw/right_acw_interface'
56
58
  require 'as/right_as_interface'
57
59
  require 's3/right_s3_interface'
@@ -72,6 +74,7 @@ require 'iam/right_iam_users'
72
74
  require 'iam/right_iam_access_keys'
73
75
  require 'iam/right_iam_mfa_devices'
74
76
  require 'route_53/right_route_53_interface'
77
+ require 'sns/right_sns_interface'
75
78
 
76
79
  #-
77
80
 
@@ -158,7 +158,7 @@ module RightAws
158
158
 
159
159
  include RightAwsBaseInterface
160
160
 
161
- API_VERSION = "2010-10-01"
161
+ API_VERSION = "2011-05-05"
162
162
  DEFAULT_HOST = "route53.amazonaws.com"
163
163
  DEFAULT_PATH = '/'
164
164
  DEFAULT_PROTOCOL = 'https'
@@ -295,11 +295,22 @@ module RightAws
295
295
  " <Action>#{AwsUtils::xml_escape(change[:action].to_s.upcase)}</Action>\n" +
296
296
  " <ResourceRecordSet>\n" +
297
297
  " <Name>#{AwsUtils::xml_escape(change[:name])}</Name>\n" +
298
- " <Type>#{AwsUtils::xml_escape(change[:type].to_s.upcase)}</Type>\n" +
298
+ " <Type>#{AwsUtils::xml_escape(change[:type].to_s.upcase)}</Type>\n"
299
+ if change[:alias_target]
300
+ alias_target = change[:alias_target]
301
+ xml_changes +=
302
+ " <AliasTarget>\n" +
303
+ " <HostedZoneId>#{AwsUtils::xml_escape(alias_target[:hosted_zone_id].to_s)}</HostedZoneId>\n" +
304
+ " <DNSName>#{AwsUtils::xml_escape(alias_target[:dns_name].to_s)}</DNSName>\n" +
305
+ " </AliasTarget>\n"
306
+ else
307
+ xml_changes +=
299
308
  " <TTL>#{AwsUtils::xml_escape(change[:ttl].to_s)}</TTL>\n" +
300
309
  " <ResourceRecords>\n" +
301
310
  xml_resource_records +
302
- " </ResourceRecords>\n" +
311
+ " </ResourceRecords>\n"
312
+ end
313
+ xml_changes +=
303
314
  " </ResourceRecordSet>\n" +
304
315
  " </Change>\n"
305
316
  end
@@ -416,7 +427,6 @@ module RightAws
416
427
  # Options: :type, :name, :max_items
417
428
  #
418
429
  # r53.list_resource_record_sets("/hostedzone/ZWEC7PPVACGQ4") #=>
419
- # {:items=>
420
430
  # [{:type=>"NS",
421
431
  # :ttl=>172800,
422
432
  # :name=>"mysite.patch-island.com.",
@@ -433,9 +443,7 @@ module RightAws
433
443
  # {:type=>"NS",
434
444
  # :ttl=>600,
435
445
  # :resource_records=>["xxx.mysite.com"],
436
- # :name=>"m1.mysite.patch-island.com."}],
437
- # :is_truncated=>false,
438
- # :max_items=>100}
446
+ # :name=>"m1.mysite.patch-island.com."}]
439
447
  #
440
448
  # PS: http://docs.amazonwebservices.com/Route53/latest/APIReference/API_ListResourceRecordSets.html
441
449
  #
@@ -451,7 +459,7 @@ module RightAws
451
459
 
452
460
  # Create or delete DNS records.
453
461
  #
454
- # resource_record_sets = { :action => :create,
462
+ # resource_record_sets = [{ :action => :create,
455
463
  # :name => 'm3.mysite.patch-island.com',
456
464
  # :type => 'NS',
457
465
  # :ttl => 600,
@@ -460,7 +468,7 @@ module RightAws
460
468
  # :name => 'm2.mysite.patch-island.com',
461
469
  # :type => 'A',
462
470
  # :ttl => 600,
463
- # :resource_records => ['10.0.0.1'] }
471
+ # :resource_records => ['10.0.0.1'] }]
464
472
  # r53.change_resource_record_sets("/hostedzone/Z1K6NCF0EB26FB", resource_record_sets, 'KD: Comment#1') #=>
465
473
  # {:status=>"PENDING",
466
474
  # :submitted_at=>"2011-01-18T20:21:56.828Z",
@@ -476,14 +484,14 @@ module RightAws
476
484
 
477
485
  # Create DNS records.
478
486
  #
479
- # resource_record_sets = { :name => 'm3.mysite.patch-island.com',
487
+ # resource_record_sets = [{ :name => 'm3.mysite.patch-island.com',
480
488
  # :type => 'NS',
481
489
  # :ttl => 600,
482
490
  # :resource_records => 'xxx.mysite.com' },
483
491
  # { :name => 'm2.mysite.patch-island.com',
484
492
  # :type => 'A',
485
493
  # :ttl => 600,
486
- # :resource_records => ['10.0.0.1'] }
494
+ # :resource_records => ['10.0.0.1'] }]
487
495
  # r53.create_resource_record_sets("/hostedzone/Z1K6NCF0EB26FB", resource_record_sets, 'KD: Comment#1') #=>
488
496
  # {:status=>"PENDING",
489
497
  # :submitted_at=>"2011-01-18T20:21:56.828Z",
@@ -498,14 +506,14 @@ module RightAws
498
506
 
499
507
  # Delete DNS records.
500
508
  #
501
- # resource_record_sets = { :name => 'm3.mysite.patch-island.com',
509
+ # resource_record_sets = [{ :name => 'm3.mysite.patch-island.com',
502
510
  # :type => 'NS',
503
511
  # :ttl => 600,
504
512
  # :resource_records => 'xxx.mysite.com' },
505
513
  # { :name => 'm2.mysite.patch-island.com',
506
514
  # :type => 'A',
507
515
  # :ttl => 600,
508
- # :resource_records => ['10.0.0.1'] }
516
+ # :resource_records => ['10.0.0.1'] }]
509
517
  # r53.create_resource_record_sets("/hostedzone/Z1K6NCF0EB26FB", resource_record_sets, 'KD: Comment#1') #=>
510
518
  # {:status=>"PENDING",
511
519
  # :submitted_at=>"2011-01-18T20:21:56.828Z",
@@ -606,7 +614,9 @@ module RightAws
606
614
  when 'ResourceRecordSet' then @result[:items] << @item
607
615
  else
608
616
  case full_tag_name
609
- when %r{/ResourceRecord/Value} then (@item[:resource_records] ||= []) << @text
617
+ when %r{/ResourceRecord/Value} then (@item[:resource_records] ||= []) << @text
618
+ when %r{/AliasTarget/DNSName} then (@item[:alias_target] ||= {})[:dns_name] = @text
619
+ when %r{/AliasTarget/HostedZoneId} then (@item[:alias_target] ||= {})[:hosted_zone_id] = @text
610
620
  end
611
621
  end
612
622
  end
@@ -220,18 +220,19 @@ module RightAws
220
220
  #
221
221
  def keys_and_service(options={}, head=false)
222
222
  opt = {}; options.each{ |key, value| opt[key.to_s] = value }
223
- thislist = {}
224
- list = []
225
- @s3.interface.incrementally_list_bucket(@name, opt) do |thislist|
226
- thislist[:contents].each do |entry|
223
+ service = {}
224
+ keys = []
225
+ @s3.interface.incrementally_list_bucket(@name, opt) do |_service|
226
+ service = _service
227
+ service[:contents].each do |entry|
227
228
  owner = Owner.new(entry[:owner_id], entry[:owner_display_name])
228
229
  key = Key.new(self, entry[:key], nil, {}, {}, entry[:last_modified], entry[:e_tag], entry[:size], entry[:storage_class], owner)
229
230
  key.head if head
230
- list << key
231
+ keys << key
231
232
  end
232
233
  end
233
- thislist.delete(:contents)
234
- [list, thislist]
234
+ service.delete(:contents)
235
+ [keys, service]
235
236
  end
236
237
 
237
238
  # Retrieve key information from Amazon.
@@ -272,12 +273,12 @@ module RightAws
272
273
  key.put(data, perms, headers)
273
274
  end
274
275
 
275
- # Retrieve object data from Amazon.
276
+ # Retrieve data object from Amazon.
276
277
  # The +key+ is a +String+ or Key.
277
- # Returns Key instance.
278
+ # Returns String instance.
278
279
  #
279
- # key = bucket.get('logs/today/1.log') #=>
280
- # puts key.data #=> 'sasfasfasdf'
280
+ # data = bucket.get('logs/today/1.log') #=>
281
+ # puts data #=> 'sasfasfasdf'
281
282
  #
282
283
  def get(key, headers={})
283
284
  key = Key.create(self, key.to_s) unless key.is_a?(Key)
@@ -1041,8 +1042,8 @@ module RightAws
1041
1042
  #
1042
1043
  # bucket.get('logs/today/1.log', 1.hour)
1043
1044
  #
1044
- def get(key, expires=nil, headers={})
1045
- @s3.interface.get_link(@name, key.to_s, expires, headers)
1045
+ def get(key, expires=nil, headers={}, response_params={})
1046
+ @s3.interface.get_link(@name, key.to_s, expires, headers, response_params)
1046
1047
  end
1047
1048
 
1048
1049
  # Generate link to delete bucket.
@@ -1098,8 +1099,8 @@ module RightAws
1098
1099
  #
1099
1100
  # bucket.get('logs/today/1.log', 1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=h...M%3D&Expires=1180820032&AWSAccessKeyId=1...2
1100
1101
  #
1101
- def get(expires=nil, headers={})
1102
- @bucket.s3.interface.get_link(@bucket.to_s, @name, expires, headers)
1102
+ def get(expires=nil, headers={}, response_params={})
1103
+ @bucket.s3.interface.get_link(@bucket.to_s, @name, expires, headers, response_params)
1103
1104
  end
1104
1105
 
1105
1106
  # Generate link to delete key.