fog-aws 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/lib/fog/aws/models/auto_scaling/activities.rb +2 -2
- data/lib/fog/aws/models/auto_scaling/configuration.rb +2 -1
- data/lib/fog/aws/models/auto_scaling/group.rb +2 -13
- data/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb +10 -5
- data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +5 -0
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +1 -0
- data/lib/fog/aws/requests/dns/get_hosted_zone.rb +2 -1
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +4 -3
- data/lib/fog/aws/requests/iam/delete_group_policy.rb +17 -0
- data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +23 -23
- data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +15 -0
- data/lib/fog/aws/requests/storage/put_bucket_policy.rb +17 -0
- data/lib/fog/aws/storage.rb +55 -14
- data/lib/fog/aws/version.rb +1 -1
- data/tests/models/elasticache/cluster_tests.rb +4 -4
- data/tests/models/elb/model_tests.rb +1 -1
- data/tests/models/rds/tagging_tests.rb +2 -2
- data/tests/models/storage/url_tests.rb +21 -3
- data/tests/requests/elasticache/cache_cluster_tests.rb +5 -5
- data/tests/requests/rds/tagging_tests.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63e0bc6ed8840b40f95208a3254e449f22cf295e
|
4
|
+
data.tar.gz: 566b518ff636d7b6f2e2572da30a1959155c0da7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9445b6c2d33ad2d37476237fe18c4637a59d4b7179e60ab90403a172b4a36945dc394ea6dce655261cbc07c9db7d3412bd7a078a4b9d8377804b8c4914f00bf
|
7
|
+
data.tar.gz: 036d202d04d82ac75435c2b3267d7d6909646ebccdc7058839a096fab118d8b5fd2303cee2b4811d6c2eb80e85983a7edf12dc8187c8c99de9467d7f0560bbeb
|
data/Gemfile
CHANGED
@@ -22,7 +22,8 @@ module Fog
|
|
22
22
|
attribute :user_data, :aliases => 'UserData'
|
23
23
|
attribute :spot_price, :aliases => 'SpotPrice'
|
24
24
|
attribute :placement_tenancy, :aliases => 'PlacementTenancy'
|
25
|
-
|
25
|
+
attribute :classic_link_vpc_id, :aliases => 'ClassicLinkVPCId'
|
26
|
+
attribute :classic_link_security_groups, :aliases => 'ClassicLinkVPCSecurityGroups'
|
26
27
|
|
27
28
|
def initialize(attributes={})
|
28
29
|
#attributes[:availability_zones] ||= %w(us-east-1a us-east-1b us-east-1c us-east-1d)
|
@@ -42,19 +42,8 @@ module Fog
|
|
42
42
|
|
43
43
|
def activities
|
44
44
|
requires :id
|
45
|
-
|
46
|
-
|
47
|
-
loop do
|
48
|
-
result = service.describe_scaling_activities('AutoScalingGroupName' => id, 'NextToken' => next_token).body['DescribeScalingActivitiesResult']
|
49
|
-
data += result['Activities']
|
50
|
-
next_token = result['NextToken']
|
51
|
-
break if next_token.nil?
|
52
|
-
end
|
53
|
-
Fog::AWS::AutoScaling::Activities.new({
|
54
|
-
:data => data,
|
55
|
-
:service => service,
|
56
|
-
#:load_balancer => self
|
57
|
-
})
|
45
|
+
|
46
|
+
activities = Fog::AWS::AutoScaling::Activities.new(:service => service, :filters => {'AutoScalingGroupName' => id})
|
58
47
|
end
|
59
48
|
|
60
49
|
def configuration
|
@@ -12,7 +12,7 @@ module Fog
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def reset_launch_configuration
|
15
|
-
@launch_configuration = { 'BlockDeviceMappings' => [], 'InstanceMonitoring' => {}, 'SecurityGroups' => [] }
|
15
|
+
@launch_configuration = { 'BlockDeviceMappings' => [], 'InstanceMonitoring' => {}, 'SecurityGroups' => [], 'ClassicLinkVPCSecurityGroups' => []}
|
16
16
|
end
|
17
17
|
|
18
18
|
def reset_block_device_mapping
|
@@ -30,6 +30,8 @@ module Fog
|
|
30
30
|
@in_block_device_mappings = true
|
31
31
|
when 'SecurityGroups'
|
32
32
|
@in_security_groups = true
|
33
|
+
when 'ClassicLinkVPCSecurityGroups'
|
34
|
+
@in_classic_link_security_groups = true
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
@@ -41,6 +43,8 @@ module Fog
|
|
41
43
|
reset_block_device_mapping
|
42
44
|
elsif @in_security_groups
|
43
45
|
@launch_configuration['SecurityGroups'] << value
|
46
|
+
elsif @in_classic_link_security_groups
|
47
|
+
@launch_configuration['ClassicLinkVPCSecurityGroups'] << value
|
44
48
|
else
|
45
49
|
@results['LaunchConfigurations'] << @launch_configuration
|
46
50
|
reset_launch_configuration
|
@@ -49,7 +53,7 @@ module Fog
|
|
49
53
|
when 'DeviceName', 'VirtualName'
|
50
54
|
@block_device_mapping[name] = value
|
51
55
|
|
52
|
-
when 'SnapshotId', 'VolumeSize'
|
56
|
+
when 'SnapshotId', 'VolumeSize', 'VolumeType', 'Iops'
|
53
57
|
@ebs[name] = value
|
54
58
|
when 'Ebs'
|
55
59
|
@block_device_mapping[name] = @ebs
|
@@ -62,11 +66,11 @@ module Fog
|
|
62
66
|
@launch_configuration[name] = Time.parse(value)
|
63
67
|
when 'ImageId', 'InstanceType', 'KeyName'
|
64
68
|
@launch_configuration[name] = value
|
65
|
-
when 'LaunchConfigurationARN', 'LaunchConfigurationName'
|
69
|
+
when 'LaunchConfigurationARN', 'LaunchConfigurationName', 'ClassicLinkVPCId'
|
66
70
|
@launch_configuration[name] = value
|
67
71
|
when 'KernelId', 'RamdiskId', 'UserData'
|
68
72
|
@launch_configuration[name] = value
|
69
|
-
when 'IamInstanceProfile'
|
73
|
+
when 'IamInstanceProfile', 'PlacementTenancy'
|
70
74
|
@launch_configuration[name] = value
|
71
75
|
when 'SpotPrice'
|
72
76
|
@launch_configuration[name] = value.to_f
|
@@ -79,7 +83,8 @@ module Fog
|
|
79
83
|
@in_launch_configurations = false
|
80
84
|
when 'SecurityGroups'
|
81
85
|
@in_security_groups = false
|
82
|
-
|
86
|
+
when 'ClassicLinkVPCSecurityGroups'
|
87
|
+
@in_classic_link_security_groups = false
|
83
88
|
when 'NextToken'
|
84
89
|
@results[name] = value
|
85
90
|
|
@@ -64,6 +64,11 @@ module Fog
|
|
64
64
|
if security_groups = options.delete('SecurityGroups')
|
65
65
|
options.merge!(AWS.indexed_param('SecurityGroups.member.%d', [*security_groups]))
|
66
66
|
end
|
67
|
+
|
68
|
+
if classic_link_groups = options.delete('ClassicLinkVPCSecurityGroups')
|
69
|
+
options.merge!(AWS.indexed_param('ClassicLinkVPCSecurityGroups.member.%d', [*classic_link_groups]))
|
70
|
+
end
|
71
|
+
|
67
72
|
if options['UserData']
|
68
73
|
options['UserData'] = Base64.encode64(options['UserData'])
|
69
74
|
end
|
@@ -141,6 +141,7 @@ module Fog
|
|
141
141
|
body = %Q{<?xml version="1.0" encoding="UTF-8"?><ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/#{@version}/">#{changes}</ChangeResourceRecordSetsRequest>}
|
142
142
|
request({
|
143
143
|
:body => body,
|
144
|
+
:idempotent => true,
|
144
145
|
:parser => Fog::Parsers::DNS::AWS::ChangeResourceRecordSets.new,
|
145
146
|
:expects => 200,
|
146
147
|
:method => 'POST',
|
@@ -48,11 +48,12 @@ module Fog
|
|
48
48
|
end
|
49
49
|
|
50
50
|
request({
|
51
|
-
:query => parameters,
|
52
|
-
:parser => Fog::Parsers::DNS::AWS::ListResourceRecordSets.new,
|
53
51
|
:expects => 200,
|
52
|
+
:idempotent => true,
|
54
53
|
:method => 'GET',
|
55
|
-
:
|
54
|
+
:parser => Fog::Parsers::DNS::AWS::ListResourceRecordSets.new,
|
55
|
+
:path => "hostedzone/#{zone_id}/rrset",
|
56
|
+
:query => parameters
|
56
57
|
})
|
57
58
|
end
|
58
59
|
end
|
@@ -27,6 +27,23 @@ module Fog
|
|
27
27
|
)
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
class Mock
|
32
|
+
def delete_group_policy(group_name, policy_name)
|
33
|
+
if !data[:groups].key? group_name
|
34
|
+
raise Fog::AWS::IAM::NotFound.new("The group with name #{group_name} cannot be found.")
|
35
|
+
elsif !data[:groups][group_name][:policies].key? policy_name
|
36
|
+
raise Fog::AWS::IAM::NotFound.new("The group policy with name #{policy_name} cannot be found.")
|
37
|
+
else
|
38
|
+
data[:groups][group_name][:policies].delete(policy_name)
|
39
|
+
|
40
|
+
Excon::Response.new.tap do |response|
|
41
|
+
response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
|
42
|
+
response.status = 200
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
30
47
|
end
|
31
48
|
end
|
32
49
|
end
|
@@ -33,29 +33,29 @@ module Fog
|
|
33
33
|
|
34
34
|
source = self.data[:servers][source_identifier]
|
35
35
|
data = {
|
36
|
-
'AllocatedStorage'
|
37
|
-
'AutoMinorVersionUpgrade'
|
38
|
-
'AvailabilityZone'
|
39
|
-
'DBInstanceClass'
|
40
|
-
'DBInstanceIdentifier'
|
41
|
-
'DBInstanceStatus'
|
42
|
-
'DBName'
|
43
|
-
'DBParameterGroups'
|
44
|
-
'DBSecurityGroups'
|
45
|
-
'Endpoint'
|
46
|
-
'Engine'
|
47
|
-
'EngineVersion'
|
48
|
-
'InstanceCreateTime'
|
49
|
-
'Iops'
|
50
|
-
'LatestRestorableTime'
|
51
|
-
'LicenseModel'
|
52
|
-
'MasterUsername'
|
53
|
-
'MultiAZ'
|
54
|
-
'PendingModifiedValues'
|
55
|
-
'PreferredBackupWindow'=> '08:00-08:30',
|
56
|
-
'PreferredMaintenanceWindow'=> "mon:04:30-mon:05:00",
|
57
|
-
'ReadReplicaDBInstanceIdentifiers'=> [],
|
58
|
-
'ReadReplicaSourceDBInstanceIdentifier'=> source_identifier
|
36
|
+
'AllocatedStorage' => source['AllocatedStorage'],
|
37
|
+
'AutoMinorVersionUpgrade' => options.key?('AutoMinorVersionUpgrade') ? options['AutoMinorVersionUpgrade'] : true,
|
38
|
+
'AvailabilityZone' => options['AvailabilityZone'],
|
39
|
+
'DBInstanceClass' => options['DBInstanceClass'] || 'db.m1.small',
|
40
|
+
'DBInstanceIdentifier' => instance_identifier,
|
41
|
+
'DBInstanceStatus' => 'creating',
|
42
|
+
'DBName' => source['DBName'],
|
43
|
+
'DBParameterGroups' => source['DBParameterGroups'],
|
44
|
+
'DBSecurityGroups' => source['DBSecurityGroups'],
|
45
|
+
'Endpoint' => {},
|
46
|
+
'Engine' => source['Engine'],
|
47
|
+
'EngineVersion' => source['EngineVersion'],
|
48
|
+
'InstanceCreateTime' => nil,
|
49
|
+
'Iops' => source['Iops'],
|
50
|
+
'LatestRestorableTime' => nil,
|
51
|
+
'LicenseModel' => 'general-public-license',
|
52
|
+
'MasterUsername' => source['MasterUsername'],
|
53
|
+
'MultiAZ' => false,
|
54
|
+
'PendingModifiedValues' => {},
|
55
|
+
'PreferredBackupWindow' => '08:00-08:30',
|
56
|
+
'PreferredMaintenanceWindow' => "mon:04:30-mon:05:00",
|
57
|
+
'ReadReplicaDBInstanceIdentifiers' => [],
|
58
|
+
'ReadReplicaSourceDBInstanceIdentifier' => source_identifier
|
59
59
|
}
|
60
60
|
self.data[:servers][instance_identifier] = data
|
61
61
|
self.data[:servers][source_identifier]['ReadReplicaDBInstanceIdentifiers'] << instance_identifier
|
@@ -21,6 +21,21 @@ module Fog
|
|
21
21
|
})
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
class Mock
|
26
|
+
def delete_bucket_policy(bucket_name)
|
27
|
+
if bucket = data[:buckets][bucket_name]
|
28
|
+
bucket[:policy] = nil
|
29
|
+
|
30
|
+
Excon::Response.new.tap do |response|
|
31
|
+
response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
|
32
|
+
response.status = 200
|
33
|
+
end
|
34
|
+
else
|
35
|
+
raise Fog::AWS::IAM::NotFound.new("The bucket with name #{bucket_name} cannot be found.")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
24
39
|
end
|
25
40
|
end
|
26
41
|
end
|
@@ -20,6 +20,23 @@ module Fog
|
|
20
20
|
})
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
class Mock
|
25
|
+
#FIXME: You can't actually use the credentials for anything elsewhere in Fog
|
26
|
+
#FIXME: Doesn't do any validation on the policy
|
27
|
+
def put_bucket_policy(bucket_name, policy)
|
28
|
+
if bucket = data[:buckets][bucket_name]
|
29
|
+
bucket[:policy] = policy
|
30
|
+
|
31
|
+
Excon::Response.new.tap do |response|
|
32
|
+
response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
|
33
|
+
response.status = 200
|
34
|
+
end
|
35
|
+
else
|
36
|
+
raise Fog::AWS::IAM::NotFound.new("The bucket with name #{bucket_name} cannot be found.")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
23
40
|
end
|
24
41
|
end
|
25
42
|
end
|
data/lib/fog/aws/storage.rb
CHANGED
@@ -141,9 +141,28 @@ module Fog
|
|
141
141
|
|
142
142
|
def signed_url(params, expires)
|
143
143
|
#convert expires from a point in time to a delta to now
|
144
|
+
expires = expires.to_i
|
145
|
+
if @signature_version == 4
|
146
|
+
params = v4_signed_params_for_url(params, expires)
|
147
|
+
else
|
148
|
+
params = v2_signed_params_for_url(params, expires)
|
149
|
+
end
|
150
|
+
|
151
|
+
params_to_url(params)
|
152
|
+
end
|
153
|
+
|
154
|
+
private
|
155
|
+
|
156
|
+
def validate_signature_version!
|
157
|
+
unless @signature_version == 2 || @signature_version == 4
|
158
|
+
raise "Unknown signature version #{@signature_version}; valid versions are 2 or 4"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def v4_signed_params_for_url(params, expires)
|
144
163
|
now = Fog::Time.now
|
145
164
|
|
146
|
-
expires = expires
|
165
|
+
expires = expires - now.to_i
|
147
166
|
params[:headers] ||= {}
|
148
167
|
|
149
168
|
params[:query]||= {}
|
@@ -157,14 +176,29 @@ module Fog
|
|
157
176
|
params = request_params(params)
|
158
177
|
params[:headers][:host] = params[:host]
|
159
178
|
|
160
|
-
|
179
|
+
signature_query_params = @signer.signature_parameters(params, now, "UNSIGNED-PAYLOAD")
|
180
|
+
params[:query] = (params[:query] || {}).merge(signature_query_params)
|
181
|
+
params
|
182
|
+
end
|
161
183
|
|
162
|
-
|
184
|
+
def v2_signed_params_for_url(params, expires)
|
185
|
+
if @aws_session_token
|
186
|
+
params[:headers]||= {}
|
187
|
+
params[:headers]['x-amz-security-token'] = @aws_session_token
|
188
|
+
end
|
189
|
+
signature = signature_v2(params, expires)
|
163
190
|
|
164
|
-
|
165
|
-
end
|
191
|
+
params = request_params(params)
|
166
192
|
|
167
|
-
|
193
|
+
signature_query_params = {
|
194
|
+
'AWSAccessKeyId' => @aws_access_key_id,
|
195
|
+
'Signature' => signature,
|
196
|
+
'Expires' => expires,
|
197
|
+
}
|
198
|
+
params[:query] = (params[:query] || {}).merge(signature_query_params)
|
199
|
+
params[:query]['x-amz-security-token'] = @aws_session_token if @aws_session_token
|
200
|
+
params
|
201
|
+
end
|
168
202
|
|
169
203
|
def region_to_host(region=nil)
|
170
204
|
case region.to_s
|
@@ -365,18 +399,24 @@ module Fog
|
|
365
399
|
|
366
400
|
def initialize(options={})
|
367
401
|
@use_iam_profile = options[:use_iam_profile]
|
402
|
+
|
403
|
+
@region = options[:region] || DEFAULT_REGION
|
404
|
+
|
368
405
|
if @endpoint = options[:endpoint]
|
369
406
|
endpoint = URI.parse(@endpoint)
|
370
407
|
@host = endpoint.host
|
371
408
|
@scheme = endpoint.scheme
|
372
409
|
@port = endpoint.port
|
373
410
|
else
|
374
|
-
@region = options[:region] || DEFAULT_REGION
|
375
411
|
@host = options[:host] || region_to_host(@region)
|
376
412
|
@scheme = options[:scheme] || DEFAULT_SCHEME
|
377
413
|
@port = options[:port] || DEFAULT_SCHEME_PORT[@scheme]
|
378
414
|
end
|
415
|
+
|
416
|
+
|
379
417
|
@path_style = options[:path_style] || false
|
418
|
+
@signature_version = options.fetch(:aws_signature_version, 4)
|
419
|
+
validate_signature_version!
|
380
420
|
setup_credentials(options)
|
381
421
|
end
|
382
422
|
|
@@ -396,6 +436,11 @@ module Fog
|
|
396
436
|
|
397
437
|
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 's3')
|
398
438
|
end
|
439
|
+
|
440
|
+
def signature_v2(params, expires)
|
441
|
+
'foo'
|
442
|
+
end
|
443
|
+
|
399
444
|
end
|
400
445
|
|
401
446
|
class Real
|
@@ -430,13 +475,14 @@ module Fog
|
|
430
475
|
validate_signature_version!
|
431
476
|
@path_style = options[:path_style] || false
|
432
477
|
|
478
|
+
@region = options[:region] || DEFAULT_REGION
|
479
|
+
|
433
480
|
if @endpoint = options[:endpoint]
|
434
481
|
endpoint = URI.parse(@endpoint)
|
435
482
|
@host = endpoint.host
|
436
483
|
@scheme = endpoint.scheme
|
437
484
|
@port = endpoint.port
|
438
485
|
else
|
439
|
-
@region = options[:region] || DEFAULT_REGION
|
440
486
|
@host = options[:host] || region_to_host(@region)
|
441
487
|
@scheme = options[:scheme] || DEFAULT_SCHEME
|
442
488
|
@port = options[:port] || DEFAULT_SCHEME_PORT[@scheme]
|
@@ -451,11 +497,6 @@ module Fog
|
|
451
497
|
|
452
498
|
private
|
453
499
|
|
454
|
-
def validate_signature_version!
|
455
|
-
unless @signature_version == 2 || @signature_version == 4
|
456
|
-
raise "Unknown signature version #{@signature_version}; valid versions are 2 or 4"
|
457
|
-
end
|
458
|
-
end
|
459
500
|
|
460
501
|
def setup_credentials(options)
|
461
502
|
@aws_access_key_id = options[:aws_access_key_id]
|
@@ -554,7 +595,7 @@ module Fog
|
|
554
595
|
new_params[:bucket_name] = %r{<Bucket>([^<]*)</Bucket>}.match(body).captures.first
|
555
596
|
new_params[:host] = %r{<Endpoint>([^<]*)</Endpoint>}.match(body).captures.first
|
556
597
|
# some errors provide it directly
|
557
|
-
@new_region = %r{<Region>([^<]*)</Region>}.match(body).captures.first
|
598
|
+
@new_region = %r{<Region>([^<]*)</Region>}.match(body) ? Regexp.last_match.captures.first : nil
|
558
599
|
end
|
559
600
|
Fog::Logger.warning("fog: followed redirect to #{host}, connecting to the matching region will be more performant")
|
560
601
|
original_region, original_signer = @region, @signer
|
data/lib/fog/aws/version.rb
CHANGED
@@ -9,20 +9,20 @@ Shindo.tests('AWS::Elasticache | cache clusters', ['aws', 'elasticache']) do
|
|
9
9
|
|
10
10
|
pending if Fog.mocking?
|
11
11
|
|
12
|
-
Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
|
12
|
+
Fog::Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
|
13
13
|
model_tests(Fog::AWS[:elasticache].clusters, cluster_params, false) do
|
14
14
|
@instance.reload # Reload to get the cluster info from AWS
|
15
|
-
Formatador.display_line "Waiting for #{@instance.id} "+
|
15
|
+
Fog::Formatador.display_line "Waiting for #{@instance.id} "+
|
16
16
|
"to become available (#{@instance.status})..."
|
17
17
|
@instance.wait_for {ready?}
|
18
18
|
end
|
19
19
|
|
20
20
|
# Single model is still deleting, so re-randomize the cluster ID
|
21
21
|
cluster_params[:id] = "fog-test-cluster-#{rand(999).to_s}"
|
22
|
-
Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
|
22
|
+
Fog::Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
|
23
23
|
collection_tests(Fog::AWS[:elasticache].clusters, cluster_params, false) do
|
24
24
|
@instance.reload # Reload to get the cluster info from AWS
|
25
|
-
Formatador.display_line "Waiting for #{@instance.id} "+
|
25
|
+
Fog::Formatador.display_line "Waiting for #{@instance.id} "+
|
26
26
|
"to become available (#{@instance.status})..."
|
27
27
|
@instance.wait_for {ready?}
|
28
28
|
end
|
@@ -69,7 +69,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
69
69
|
Fog::Compute[:aws].disable_ec2_classic if Fog.mocking?
|
70
70
|
|
71
71
|
if Fog::Compute[:aws].supported_platforms.include?("EC2")
|
72
|
-
Formatador.display_line("[yellow]Skipping test [bold]with default vpc[/][yellow] due to AWS account having EC2 available[/]")
|
72
|
+
Fog::Formatador.display_line("[yellow]Skipping test [bold]with default vpc[/][yellow] due to AWS account having EC2 available[/]")
|
73
73
|
else
|
74
74
|
elb2 = Fog::AWS[:elb].load_balancers.create(:id => "#{elb_id}-2", :availability_zones => @availability_zones[0])
|
75
75
|
tests("elb source group should start with default_elb_").returns(true) { !!(elb2.source_group["GroupName"] =~ /default_elb_/) }
|
@@ -1,8 +1,8 @@
|
|
1
1
|
Shindo.tests("AWS::RDS | tagging", ['aws', 'rds']) do
|
2
2
|
|
3
3
|
@server = Fog::AWS[:rds].servers.create(rds_default_server_params)
|
4
|
-
Formatador.display_line "Creating RDS instance #{@server.id}"
|
5
|
-
Formatador.display_line "Waiting for instance #{@server.id} to be ready"
|
4
|
+
Fog::Formatador.display_line "Creating RDS instance #{@server.id}"
|
5
|
+
Fog::Formatador.display_line "Waiting for instance #{@server.id} to be ready"
|
6
6
|
@server.wait_for { ready? }
|
7
7
|
|
8
8
|
tags1 = {'key1' => 'val1'}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
|
3
2
|
Shindo.tests('AWS | url', ["aws"]) do
|
4
3
|
|
5
4
|
|
@@ -14,11 +13,30 @@ Shindo.tests('AWS | url', ["aws"]) do
|
|
14
13
|
|
15
14
|
now = Fog::Time.now
|
16
15
|
if RUBY_VERSION > '1.8.7' # ruby 1.8.x doesn't provide hash ordering
|
17
|
-
tests('#url w/ response-cache-control').returns(
|
16
|
+
tests('#v4 url w/ response-cache-control').returns(
|
18
17
|
"https://fognonbucket.s3.amazonaws.com/test.txt?response-cache-control=No-cache&X-Amz-Expires=500&X-Amz-Date=#{now.to_iso8601_basic}&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=123/#{now.utc.strftime('%Y%m%d')}/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature="
|
19
18
|
) do
|
20
19
|
|
21
|
-
@file.url(
|
20
|
+
@file.url(now + 500, :query => { 'response-cache-control' => 'No-cache' }).gsub(/(X-Amz-Signature=)[0-9a-f]+\z/,'\\1')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
@storage = Fog::Storage.new(
|
25
|
+
:provider => 'AWS',
|
26
|
+
:aws_access_key_id => '123',
|
27
|
+
:aws_secret_access_key => 'abc',
|
28
|
+
:aws_signature_version => 2,
|
29
|
+
:region => 'us-east-1'
|
30
|
+
)
|
31
|
+
|
32
|
+
@file = @storage.directories.new(:key => 'fognonbucket').files.new(:key => 'test.txt')
|
33
|
+
|
34
|
+
if RUBY_VERSION > '1.8.7' # ruby 1.8.x doesn't provide hash ordering
|
35
|
+
tests('#v2 url w/ response-cache-control').returns(
|
36
|
+
"https://fognonbucket.s3.amazonaws.com/test.txt?response-cache-control=No-cache&AWSAccessKeyId=123&Signature=foo&Expires=#{now.to_i + 500}"
|
37
|
+
) do
|
38
|
+
|
39
|
+
@file.url(now + 500, :query => { 'response-cache-control' => 'No-cache' })
|
22
40
|
end
|
23
41
|
end
|
24
42
|
|
@@ -46,7 +46,7 @@ Shindo.tests('AWS::Elasticache | cache cluster requests', ['aws', 'elasticache']
|
|
46
46
|
body
|
47
47
|
end
|
48
48
|
|
49
|
-
Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
49
|
+
Fog::Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
50
50
|
Fog::AWS[:elasticache].clusters.get(CLUSTER_ID).wait_for {ready?}
|
51
51
|
|
52
52
|
tests(
|
@@ -77,7 +77,7 @@ Shindo.tests('AWS::Elasticache | cache cluster requests', ['aws', 'elasticache']
|
|
77
77
|
).formats(AWS::Elasticache::Formats::CACHE_CLUSTER_RUNNING) do
|
78
78
|
c = Fog::AWS[:elasticache].clusters.get(CLUSTER_ID)
|
79
79
|
node_id = c.nodes.last['CacheNodeId']
|
80
|
-
Formatador.display_line "Rebooting node #{node_id}..."
|
80
|
+
Fog::Formatador.display_line "Rebooting node #{node_id}..."
|
81
81
|
body = Fog::AWS[:elasticache].reboot_cache_cluster(c.id, [ node_id ]).body
|
82
82
|
returns('rebooting cache cluster nodes') do
|
83
83
|
body['CacheCluster']['CacheClusterStatus']
|
@@ -85,7 +85,7 @@ Shindo.tests('AWS::Elasticache | cache cluster requests', ['aws', 'elasticache']
|
|
85
85
|
body['CacheCluster']
|
86
86
|
end
|
87
87
|
|
88
|
-
Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
88
|
+
Fog::Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
89
89
|
Fog::AWS[:elasticache].clusters.get(CLUSTER_ID).wait_for {ready?}
|
90
90
|
|
91
91
|
tests(
|
@@ -93,7 +93,7 @@ Shindo.tests('AWS::Elasticache | cache cluster requests', ['aws', 'elasticache']
|
|
93
93
|
).formats(AWS::Elasticache::Formats::CACHE_CLUSTER_RUNNING) do
|
94
94
|
c = Fog::AWS[:elasticache].clusters.get(CLUSTER_ID)
|
95
95
|
node_id = c.nodes.last['CacheNodeId']
|
96
|
-
Formatador.display_line "Removing node #{node_id}..."
|
96
|
+
Fog::Formatador.display_line "Removing node #{node_id}..."
|
97
97
|
body = Fog::AWS[:elasticache].modify_cache_cluster(c.id,
|
98
98
|
{
|
99
99
|
:num_nodes => NUM_NODES - 1,
|
@@ -106,7 +106,7 @@ Shindo.tests('AWS::Elasticache | cache cluster requests', ['aws', 'elasticache']
|
|
106
106
|
body['CacheCluster']
|
107
107
|
end
|
108
108
|
|
109
|
-
Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
109
|
+
Fog::Formatador.display_line "Waiting for cluster #{CLUSTER_ID}..."
|
110
110
|
Fog::AWS[:elasticache].clusters.get(CLUSTER_ID).wait_for {ready?}
|
111
111
|
|
112
112
|
tests(
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Shindo.tests('AWS::RDS | tagging requests', ['aws', 'rds']) do
|
2
2
|
@rds = Fog::AWS[:rds]
|
3
3
|
@db_instance_id = "fog-test-#{rand(65536).to_s(16)}"
|
4
|
-
Formatador.display_line "Creating RDS instance #{@db_instance_id}"
|
4
|
+
Fog::Formatador.display_line "Creating RDS instance #{@db_instance_id}"
|
5
5
|
@rds.create_db_instance(@db_instance_id, 'AllocatedStorage' => 5,
|
6
6
|
'DBInstanceClass' => 'db.t1.micro', 'Engine' => 'mysql',
|
7
7
|
'MasterUsername' => 'foguser', 'MasterUserPassword' => 'fogpassword')
|
8
|
-
Formatador.display_line "Waiting for instance #{@db_instance_id} to be ready"
|
8
|
+
Fog::Formatador.display_line "Waiting for instance #{@db_instance_id} to be ready"
|
9
9
|
@db = @rds.servers.get(@db_instance_id)
|
10
10
|
@db.wait_for { ready? }
|
11
11
|
|
@@ -73,6 +73,6 @@ Shindo.tests('AWS::RDS | tagging requests', ['aws', 'rds']) do
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
Formatador.display_line "Destroying DB instance #{@db_instance_id}"
|
76
|
+
Fog::Formatador.display_line "Destroying DB instance #{@db_instance_id}"
|
77
77
|
@db.destroy
|
78
78
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Lane
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-01-
|
12
|
+
date: 2015-01-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|