gapinc-fog 1.12.1.1 → 1.12.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -7
- data/bin/fog +22 -0
- data/fog.gemspec +1 -1
- data/lib/fog/aws.rb +11 -0
- data/lib/fog/aws/auto_scaling.rb +13 -18
- data/lib/fog/aws/beanstalk.rb +8 -10
- data/lib/fog/aws/cloud_formation.rb +9 -12
- data/lib/fog/aws/compute.rb +8 -10
- data/lib/fog/aws/credential_fetcher.rb +6 -6
- data/lib/fog/aws/elasticache.rb +13 -17
- data/lib/fog/aws/elb.rb +29 -31
- data/lib/fog/aws/iam.rb +10 -13
- data/lib/fog/aws/models/rds/server.rb +3 -1
- data/lib/fog/aws/models/rds/snapshot.rb +1 -0
- data/lib/fog/aws/parsers/rds/db_parser.rb +1 -1
- data/lib/fog/aws/parsers/ses/verify_domain_identity.rb +26 -0
- data/lib/fog/aws/rds.rb +19 -14
- data/lib/fog/aws/requests/compute/create_volume.rb +3 -3
- data/lib/fog/aws/requests/rds/create_db_instance.rb +3 -1
- data/lib/fog/aws/requests/ses/verify_domain_identity.rb +30 -0
- data/lib/fog/aws/ses.rb +1 -0
- data/lib/fog/aws/storage.rb +2 -1
- data/lib/fog/aws/sts.rb +9 -15
- data/lib/fog/core.rb +7 -2
- data/lib/fog/core/connection.rb +62 -29
- data/lib/fog/core/deprecated/connection.rb +24 -0
- data/lib/fog/core/parser.rb +1 -1
- data/lib/fog/google/compute.rb +31 -7
- data/lib/fog/google/models/compute/disk.rb +80 -0
- data/lib/fog/google/models/compute/disks.rb +28 -0
- data/lib/fog/google/models/compute/image.rb +36 -0
- data/lib/fog/google/models/compute/server.rb +46 -33
- data/lib/fog/google/models/compute/servers.rb +15 -8
- data/lib/fog/google/requests/compute/delete_server.rb +5 -2
- data/lib/fog/google/requests/compute/get_disk.rb +3 -0
- data/lib/fog/google/requests/compute/get_server.rb +7 -1
- data/lib/fog/google/requests/compute/insert_disk.rb +8 -2
- data/lib/fog/google/requests/compute/insert_server.rb +51 -22
- data/lib/fog/google/requests/compute/list_machine_types.rb +3 -2
- data/lib/fog/hp/storage.rb +26 -9
- data/lib/fog/{core/json.rb → json.rb} +13 -2
- data/lib/fog/openstack/models/compute/metadata.rb +1 -1
- data/lib/fog/openstack/models/image/images.rb +1 -1
- data/lib/fog/openstack/requests/compute/detach_volume.rb +2 -1
- data/lib/fog/openstack/requests/compute/list_security_groups.rb +1 -1
- data/lib/fog/rackspace.rb +5 -0
- data/lib/fog/rackspace/block_storage.rb +13 -28
- data/lib/fog/rackspace/cdn.rb +10 -24
- data/lib/fog/rackspace/compute.rb +17 -45
- data/lib/fog/rackspace/compute_v2.rb +13 -33
- data/lib/fog/rackspace/databases.rb +13 -29
- data/lib/fog/rackspace/dns.rb +20 -22
- data/lib/fog/rackspace/identity.rb +10 -26
- data/lib/fog/rackspace/load_balancers.rb +13 -29
- data/lib/fog/rackspace/mock_data.rb +3 -3
- data/lib/fog/rackspace/models/compute/server.rb +1 -1
- data/lib/fog/rackspace/models/identity/users.rb +2 -2
- data/lib/fog/rackspace/models/storage/file.rb +1 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +3 -1
- data/lib/fog/rackspace/service.rb +43 -1
- data/lib/fog/rackspace/storage.rb +9 -31
- data/lib/fog/xenserver/compute.rb +2 -0
- data/lib/fog/xenserver/models/compute/server.rb +9 -7
- data/lib/fog/xenserver/requests/compute/snapshot_revert.rb +22 -0
- data/lib/fog/xenserver/requests/compute/snapshot_server.rb +22 -0
- data/lib/fog/xml.rb +21 -0
- data/lib/fog/xml/sax_parser_connection.rb +43 -0
- data/tests/aws/requests/compute/volume_tests.rb +3 -3
- data/tests/aws/requests/rds/helper.rb +1 -0
- data/tests/aws/requests/ses/verified_domain_identity_tests.rb +16 -0
- data/tests/core/connection_tests.rb +26 -0
- data/tests/helper.rb +9 -7
- data/tests/rackspace/block_storage_tests.rb +9 -0
- data/tests/rackspace/compute_tests.rb +9 -0
- data/tests/rackspace/compute_v2_tests.rb +9 -0
- data/tests/rackspace/databases_tests.rb +9 -0
- data/tests/rackspace/dns_tests.rb +9 -0
- data/tests/rackspace/helper.rb +12 -1
- data/tests/rackspace/identity_tests.rb +25 -0
- data/tests/rackspace/load_balancer_tests.rb +10 -0
- data/tests/rackspace/models/block_storage/volume_tests.rb +2 -2
- data/tests/rackspace/models/compute_v2/metadata_tests.rb +2 -2
- data/tests/rackspace/models/compute_v2/server_tests.rb +22 -21
- data/tests/rackspace/models/storage/file_tests.rb +22 -6
- data/tests/rackspace/rackspace_tests.rb +35 -0
- data/tests/rackspace/requests/block_storage/snapshot_tests.rb +2 -3
- data/tests/rackspace/requests/block_storage/volume_type_tests.rb +4 -11
- data/tests/rackspace/requests/compute_v2/address_tests.rb +1 -1
- data/tests/rackspace/requests/compute_v2/attachment_tests.rb +8 -9
- data/tests/rackspace/requests/compute_v2/flavor_tests.rb +1 -1
- data/tests/rackspace/requests/compute_v2/metadata_tests.rb +4 -4
- data/tests/rackspace/requests/databases/database_tests.rb +23 -20
- data/tests/rackspace/requests/databases/user_tests.rb +6 -6
- data/tests/rackspace/requests/identity/user_tests.rb +4 -1
- data/tests/rackspace/requests/load_balancers/usage_tests.rb +4 -2
- data/tests/rackspace/service_tests.rb +83 -0
- data/tests/rackspace/storage_tests.rb +9 -0
- data/tests/xenserver/models/compute/server_tests.rb +11 -1
- metadata +19 -4
- data/tests/core/user_agent_tests.rb +0 -6
data/lib/fog/xml.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
require "fog/core/parser"
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
|
6
|
+
# @note Extracting XML components out of core is a work in progress.
|
7
|
+
#
|
8
|
+
# The {XML} module includes functionality that is common between APIs using
|
9
|
+
# XML to send and receive data.
|
10
|
+
#
|
11
|
+
# The intent is to provide common code for provider APIs using XML but not
|
12
|
+
# require it for those using JSON.
|
13
|
+
#
|
14
|
+
# @todo Add +require "fog/xml"+ and/or +include Fog::XML+ to providers using
|
15
|
+
# its services
|
16
|
+
#
|
17
|
+
module XML
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
require "fog/xml/sax_parser_connection"
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Fog
|
2
|
+
module XML
|
3
|
+
class SAXParserConnection < Fog::Core::Connection
|
4
|
+
|
5
|
+
# Makes a request using the connection using Excon
|
6
|
+
#
|
7
|
+
# @param [Hash] params
|
8
|
+
# @option params [String] :body text to be sent over a socket
|
9
|
+
# @option params [Hash<Symbol, String>] :headers The default headers to supply in a request
|
10
|
+
# @option params [String] :host The destination host's reachable DNS name or IP, in the form of a String
|
11
|
+
# @option params [String] :path appears after 'scheme://host:port/'
|
12
|
+
# @option params [Fixnum] :port The port on which to connect, to the destination host
|
13
|
+
# @option params [Hash] :query appended to the 'scheme://host:port/path/' in the form of '?key=value'
|
14
|
+
# @option params [String] :scheme The protocol; 'https' causes OpenSSL to be used
|
15
|
+
# @option params [Proc] :response_block
|
16
|
+
# @option params [Nokogiri::XML::SAX::Document] :parser
|
17
|
+
#
|
18
|
+
# @return [Excon::Response]
|
19
|
+
#
|
20
|
+
# @raise [Excon::Errors::StubNotFound]
|
21
|
+
# @raise [Excon::Errors::Timeout]
|
22
|
+
# @raise [Excon::Errors::SocketError]
|
23
|
+
#
|
24
|
+
def request(parser, params)
|
25
|
+
reset unless @persistent
|
26
|
+
|
27
|
+
# Prepare the SAX parser
|
28
|
+
data_stream = Nokogiri::XML::SAX::PushParser.new(parser)
|
29
|
+
params[:response_block] = lambda do |chunk, remaining, total|
|
30
|
+
data_stream << chunk
|
31
|
+
end
|
32
|
+
|
33
|
+
# Make request which read chunks into parser
|
34
|
+
response = @excon.request(params)
|
35
|
+
|
36
|
+
# Cease parsing and override response.body with parsed data
|
37
|
+
data_stream.finish
|
38
|
+
response.body = parser.response
|
39
|
+
response
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -192,9 +192,9 @@ Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
|
|
192
192
|
Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 99)
|
193
193
|
end
|
194
194
|
|
195
|
-
# iops invalid value (greater than
|
196
|
-
tests("#create_volume('#{@server.availability_zone}', 1024, 'VolumeType' => 'io1', 'Iops' =>
|
197
|
-
Fog::Compute[:aws].create_volume(@server.availability_zone, 1024, 'VolumeType' => 'io1', 'Iops' =>
|
195
|
+
# iops invalid value (greater than 4000)
|
196
|
+
tests("#create_volume('#{@server.availability_zone}', 1024, 'VolumeType' => 'io1', 'Iops' => 4001)").raises(Fog::Compute::AWS::Error) do
|
197
|
+
Fog::Compute[:aws].create_volume(@server.availability_zone, 1024, 'VolumeType' => 'io1', 'Iops' => 4001)
|
198
198
|
end
|
199
199
|
|
200
200
|
@volume.destroy
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Shindo.tests('AWS::SES | verified domain identity requests', ['aws', 'ses']) do
|
2
|
+
|
3
|
+
tests('success') do
|
4
|
+
|
5
|
+
tests("#verify_domain_identity('example.com')").formats(AWS::SES::Formats::BASIC) do
|
6
|
+
pending if Fog.mocking?
|
7
|
+
Fog::AWS[:ses].verify_domain_identity('example.com').body
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
tests('failure') do
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Shindo.tests('Fog::Core::Connection', ['core']) do
|
2
|
+
|
3
|
+
raises(ArgumentError, "raises ArgumentError when no arguments given") do
|
4
|
+
Fog::Core::Connection.new
|
5
|
+
end
|
6
|
+
|
7
|
+
tests('new("http://example.com")') do
|
8
|
+
@instance = Fog::Core::Connection.new("http://example.com")
|
9
|
+
responds_to([:request, :reset])
|
10
|
+
|
11
|
+
tests('user agent').returns("fog/#{Fog::VERSION}") do
|
12
|
+
@instance.instance_variable_get(:@excon).data[:headers]['User-Agent']
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
tests('new("http://example.com", true)') do
|
17
|
+
Fog::Core::Connection.new("http://example.com", true)
|
18
|
+
end
|
19
|
+
|
20
|
+
tests('new("http://example.com", false, options")') do
|
21
|
+
options = {
|
22
|
+
:debug_response => false
|
23
|
+
}
|
24
|
+
Fog::Core::Connection.new("http://example.com", true, options)
|
25
|
+
end
|
26
|
+
end
|
data/tests/helper.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'simplecov'
|
2
2
|
require 'coveralls'
|
3
3
|
|
4
|
-
|
5
|
-
SimpleCov.
|
6
|
-
SimpleCov::Formatter::
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
SimpleCov.
|
4
|
+
unless ENV['COVERAGE'] == 'false'
|
5
|
+
SimpleCov.command_name "shindo:#{Process.pid.to_s}"
|
6
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
7
|
+
SimpleCov::Formatter::HTMLFormatter,
|
8
|
+
Coveralls::SimpleCov::Formatter
|
9
|
+
]
|
10
|
+
SimpleCov.merge_timeout 3600
|
11
|
+
SimpleCov.start
|
12
|
+
end
|
11
13
|
|
12
14
|
ENV['FOG_RC'] = ENV['FOG_RC'] || File.expand_path('../.fog', __FILE__)
|
13
15
|
ENV['FOG_CREDENTIAL'] = ENV['FOG_CREDENTIAL'] || 'default'
|
@@ -101,4 +101,13 @@ Shindo.tests('Fog::Rackspace::BlockStorage', ['rackspace']) do
|
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
+
tests('reauthentication') do
|
105
|
+
pending if Fog.mocking?
|
106
|
+
|
107
|
+
@service = Fog::Rackspace::BlockStorage.new :rackspace_region => :ord
|
108
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
109
|
+
@service.instance_variable_set("@auth_token", "bad-token")
|
110
|
+
returns(200) { @service.list_volumes.status }
|
111
|
+
end
|
112
|
+
|
104
113
|
end
|
@@ -87,4 +87,13 @@ Shindo.tests('Rackspace | Compute', ['rackspace']) do
|
|
87
87
|
returns(true, "uses custom endpoint") { (@service.instance_variable_get("@uri").host =~ /snet-/) != nil }
|
88
88
|
end
|
89
89
|
end
|
90
|
+
|
91
|
+
tests('reauthentication') do
|
92
|
+
pending if Fog.mocking?
|
93
|
+
|
94
|
+
@service = Fog::Compute::Rackspace.new
|
95
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
96
|
+
@service.instance_variable_set("@auth_token", "bad-token")
|
97
|
+
returns(true) { [200, 203].include?(@service.list_flavors.status) }
|
98
|
+
end
|
90
99
|
end
|
@@ -100,4 +100,13 @@ Shindo.tests('Fog::Compute::RackspaceV2', ['rackspace']) do
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
+
tests('reauthentication') do
|
104
|
+
pending if Fog.mocking?
|
105
|
+
|
106
|
+
@service = Fog::Compute::RackspaceV2.new
|
107
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
108
|
+
@service.instance_variable_set("@auth_token", "bad_token")
|
109
|
+
returns(true) { [200, 203].include? @service.list_flavors.status }
|
110
|
+
end
|
111
|
+
|
103
112
|
end
|
@@ -102,6 +102,15 @@ Shindo.tests('Fog::Rackspace::Databases', ['rackspace']) do |variable|
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
tests('reauthentication') do
|
106
|
+
pending if Fog.mocking?
|
107
|
+
|
108
|
+
@service = Fog::Rackspace::Databases.new
|
109
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
110
|
+
@service.instance_variable_set("@auth_token", "bad_token")
|
111
|
+
returns(200) { @service.list_flavors.status }
|
112
|
+
end
|
113
|
+
|
105
114
|
@service = Fog::Rackspace::Databases.new
|
106
115
|
|
107
116
|
tests('#flavors').succeeds do
|
@@ -82,6 +82,15 @@ Shindo.tests('Fog::DNS::Rackspace', ['rackspace']) do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
tests('reauthentication') do
|
86
|
+
pending if Fog.mocking?
|
87
|
+
|
88
|
+
@service =Fog::DNS::Rackspace.new
|
89
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
90
|
+
@service.instance_variable_set("@auth_token", "bad_token")
|
91
|
+
returns(200) { @service.list_domains.status }
|
92
|
+
end
|
93
|
+
|
85
94
|
tests('array_to_query_string') do
|
86
95
|
pending if Fog.mocking?
|
87
96
|
|
data/tests/rackspace/helper.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
module Shindo
|
2
2
|
class Tests
|
3
|
-
|
3
|
+
|
4
|
+
unless Fog.mocking?
|
5
|
+
Fog.timeout = 2000
|
6
|
+
Fog::Logger.warning "Setting default fog timeout to #{Fog.timeout} seconds"
|
7
|
+
end
|
8
|
+
|
4
9
|
def given_a_load_balancer_service(&block)
|
5
10
|
@service = Fog::Rackspace::LoadBalancers.new
|
6
11
|
instance_eval(&block)
|
@@ -23,6 +28,12 @@ module Shindo
|
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
31
|
+
def wait_for_request(description = "waiting", &block)
|
32
|
+
return if Fog.mocking?
|
33
|
+
tests(description) do
|
34
|
+
Fog.wait_for &block
|
35
|
+
end
|
36
|
+
end
|
26
37
|
|
27
38
|
def wait_for_server_deletion(server)
|
28
39
|
return if Fog.mocking?
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Shindo.tests('Fog::Rackspace::Identity', ['rackspace']) do
|
2
|
+
|
3
|
+
tests('current authentication') do
|
4
|
+
pending if Fog.mocking?
|
5
|
+
|
6
|
+
tests('variables populated').returns(200) do
|
7
|
+
@service = Fog::Rackspace::Identity.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => {:ssl_verify_peer => true}
|
8
|
+
returns(true, "auth token populated") { !@service.auth_token.nil? }
|
9
|
+
returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
|
10
|
+
returns(false, "service catalog populated") { @service.service_catalog.nil? }
|
11
|
+
|
12
|
+
@service.list_tenants.status
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
tests('reauthentication') do
|
17
|
+
pending if Fog.mocking?
|
18
|
+
|
19
|
+
@service = Fog::Rackspace::Identity.new :rackspace_region => :ord
|
20
|
+
returns(true, "auth token populated") { !@service.auth_token.nil? }
|
21
|
+
@service.instance_variable_set("@auth_token", "bad-token")
|
22
|
+
returns(true) { [200, 203].include? @service.list_tenants.status }
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -101,6 +101,16 @@ Shindo.tests('Fog::Rackspace::LoadBalancers', ['rackspace']) do
|
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
+
|
105
|
+
tests('reauthentication') do
|
106
|
+
pending if Fog.mocking?
|
107
|
+
|
108
|
+
@service = Fog::Rackspace::LoadBalancers.new
|
109
|
+
returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
|
110
|
+
@service.instance_variable_set("@auth_token", "bad-token")
|
111
|
+
returns(200) { @service.list_load_balancers.status }
|
112
|
+
end
|
113
|
+
|
104
114
|
pending if Fog.mocking?
|
105
115
|
|
106
116
|
@service = Fog::Rackspace::LoadBalancers.new
|
@@ -4,7 +4,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume', ['rackspace']) do
|
|
4
4
|
options = { :display_name => "fog_#{Time.now.to_i.to_s}", :size => 100 }
|
5
5
|
|
6
6
|
model_tests(service.volumes, options, true) do
|
7
|
-
@instance.wait_for
|
7
|
+
@instance.wait_for{ ready? }
|
8
8
|
|
9
9
|
tests('double save').raises(Fog::Rackspace::BlockStorage::IdentifierTaken) do
|
10
10
|
@instance.save
|
@@ -18,7 +18,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume', ['rackspace']) do
|
|
18
18
|
tests('#snapshots').succeeds do
|
19
19
|
begin
|
20
20
|
snapshot = @instance.create_snapshot
|
21
|
-
snapshot.wait_for
|
21
|
+
snapshot.wait_for { ready? }
|
22
22
|
|
23
23
|
returns(true) { @instance.snapshots.first.id == snapshot.id }
|
24
24
|
ensure
|
@@ -11,7 +11,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
|
|
11
11
|
:flavor_id => rackspace_test_flavor_id(service),
|
12
12
|
:image_id => rackspace_test_image_id(service))
|
13
13
|
|
14
|
-
@server.wait_for
|
14
|
+
@server.wait_for { ready? }
|
15
15
|
|
16
16
|
tests('server') do
|
17
17
|
collection_tests(@server.metadata, {:key => 'my_key', :value => 'my_value'}) do
|
@@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
|
|
21
21
|
|
22
22
|
tests('image') do
|
23
23
|
@image = @server.create_image("fog_image_#{test_time}", :metadata => {:my_key => 'my_value'})
|
24
|
-
@image.wait_for
|
24
|
+
@image.wait_for { ready? }
|
25
25
|
tests("#all").succeeds do
|
26
26
|
pending if Fog.mocking? && !mocks_implemented
|
27
27
|
metadata = @image.metadata.all
|
@@ -66,7 +66,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
model_tests(service.servers, options, true) do
|
69
|
-
@instance.wait_for
|
69
|
+
@instance.wait_for { ready? }
|
70
70
|
|
71
71
|
tests('#metadata[\'fog_test\']').returns('true') do
|
72
72
|
@instance.metadata['fog_test']
|
@@ -79,12 +79,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
79
79
|
tests('#update').succeeds do
|
80
80
|
@instance.name = "fog_server_update"
|
81
81
|
@instance.access_ipv4_address= "10.10.0.1"
|
82
|
-
@instance.access_ipv6_address= "
|
82
|
+
@instance.access_ipv6_address= "::1"
|
83
83
|
@instance.save
|
84
84
|
sleep 60 unless Fog.mocking?
|
85
85
|
@instance.reload
|
86
86
|
returns("10.10.0.1") { @instance.access_ipv4_address }
|
87
|
-
returns("
|
87
|
+
returns("::1") { @instance.access_ipv6_address }
|
88
88
|
returns("fog_server_update") { @instance.name }
|
89
89
|
end
|
90
90
|
|
@@ -93,13 +93,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
93
93
|
returns('REBOOT') { @instance.state }
|
94
94
|
end
|
95
95
|
|
96
|
-
@instance.wait_for
|
96
|
+
@instance.wait_for { ready? }
|
97
97
|
tests('#reboot("HARD")').succeeds do
|
98
98
|
@instance.reboot('HARD')
|
99
99
|
returns('HARD_REBOOT') { @instance.state }
|
100
100
|
end
|
101
101
|
|
102
|
-
@instance.wait_for
|
102
|
+
@instance.wait_for { ready? }
|
103
103
|
@test_image = nil
|
104
104
|
begin
|
105
105
|
tests('#create_image').succeeds do
|
@@ -112,7 +112,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
112
112
|
end
|
113
113
|
|
114
114
|
sleep 30 unless Fog.mocking?
|
115
|
-
@instance.wait_for
|
115
|
+
@instance.wait_for { ready? }
|
116
116
|
sleep 60 unless Fog.mocking?
|
117
117
|
tests('#rebuild').succeeds do
|
118
118
|
@instance.rebuild rackspace_test_image_id(service)
|
@@ -120,7 +120,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
120
120
|
end
|
121
121
|
|
122
122
|
sleep 30 unless Fog.mocking?
|
123
|
-
@instance.wait_for
|
123
|
+
@instance.wait_for { ready? }
|
124
124
|
sleep 60 unless Fog.mocking?
|
125
125
|
tests('#resize').succeeds do
|
126
126
|
@instance.resize(3)
|
@@ -128,37 +128,37 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
128
128
|
end
|
129
129
|
|
130
130
|
sleep 30 unless Fog.mocking?
|
131
|
-
@instance.wait_for
|
131
|
+
@instance.wait_for { ready?('VERIFY_RESIZE', ['ACTIVE', 'ERROR']) }
|
132
132
|
sleep 60 unless Fog.mocking?
|
133
133
|
tests('#confirm_resize').succeeds do
|
134
134
|
@instance.confirm_resize
|
135
135
|
end
|
136
136
|
|
137
137
|
sleep 30 unless Fog.mocking?
|
138
|
-
@instance.wait_for
|
138
|
+
@instance.wait_for { ready? }
|
139
139
|
sleep 60 unless Fog.mocking?
|
140
140
|
tests('#resize').succeeds do
|
141
141
|
@instance.resize(2)
|
142
142
|
returns('RESIZE') { @instance.state }
|
143
143
|
end
|
144
144
|
|
145
|
-
@instance.wait_for
|
145
|
+
@instance.wait_for { ready?('VERIFY_RESIZE') }
|
146
146
|
sleep 60 unless Fog.mocking?
|
147
147
|
tests('#revert_resize').succeeds do
|
148
148
|
@instance.revert_resize
|
149
149
|
end
|
150
150
|
|
151
|
-
@instance.wait_for
|
151
|
+
@instance.wait_for { ready? }
|
152
152
|
tests('#rescue').succeeds do
|
153
153
|
@instance.rescue
|
154
154
|
end
|
155
155
|
|
156
|
-
@instance.wait_for
|
156
|
+
@instance.wait_for { ready?('RESCUE') }
|
157
157
|
tests('#unrescue').succeeds do
|
158
158
|
@instance.unrescue
|
159
159
|
end
|
160
160
|
|
161
|
-
@instance.wait_for
|
161
|
+
@instance.wait_for { ready? }
|
162
162
|
tests('#change_admin_password').succeeds do
|
163
163
|
@instance.change_admin_password('somerandompassword')
|
164
164
|
returns('PASSWORD') { @instance.state }
|
@@ -168,28 +168,29 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
168
168
|
tests('attachments') do
|
169
169
|
begin
|
170
170
|
@volume = cbs_service.volumes.create(:size => 100, :display_name => "fog-#{Time.now.to_i.to_s}")
|
171
|
-
@volume.wait_for
|
171
|
+
@volume.wait_for { ready? }
|
172
172
|
tests('#attach_volume').succeeds do
|
173
173
|
@instance.attach_volume(@volume)
|
174
174
|
end
|
175
175
|
tests('#attachments').returns(true) do
|
176
|
-
@instance.wait_for
|
176
|
+
@instance.wait_for do
|
177
177
|
!attachments.empty?
|
178
178
|
end
|
179
179
|
@instance.attachments.any? {|a| a.volume_id == @volume.id }
|
180
180
|
end
|
181
181
|
ensure
|
182
|
-
@volume.wait_for
|
182
|
+
@volume.wait_for { !attachments.empty? }
|
183
183
|
@instance.attachments.each {|a| a.detach }
|
184
|
-
@volume.wait_for
|
184
|
+
@volume.wait_for { ready? && attachments.empty? }
|
185
185
|
@volume.destroy if @volume
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
|
-
@instance.wait_for
|
189
|
+
@instance.wait_for { ready? }
|
190
190
|
end
|
191
191
|
|
192
192
|
wait_for_server_deletion(@instance)
|
193
|
+
sleep 60 unless Fog.mocking?
|
193
194
|
|
194
195
|
tests("delete network #{@network.label}").succeeds do
|
195
196
|
@network.destroy if @network
|
@@ -197,17 +198,17 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
|
|
197
198
|
|
198
199
|
#When after testing resize/resize_confirm we get a 409 when we try to resize_revert so I am going to split it into two blocks
|
199
200
|
model_tests(service.servers, options, true) do
|
200
|
-
@instance.wait_for
|
201
|
+
@instance.wait_for { ready? }
|
201
202
|
tests('#resize').succeeds do
|
202
203
|
@instance.resize(4)
|
203
204
|
returns('RESIZE') { @instance.state }
|
204
205
|
end
|
205
206
|
|
206
|
-
@instance.wait_for
|
207
|
+
@instance.wait_for { ready?('VERIFY_RESIZE') }
|
207
208
|
sleep 60 unless Fog.mocking?
|
208
209
|
tests('#revert_resize').succeeds do
|
209
210
|
@instance.revert_resize
|
210
211
|
end
|
211
|
-
@instance.wait_for
|
212
|
+
@instance.wait_for { ready? }
|
212
213
|
end
|
213
214
|
end
|