fog-core 2.1.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +2 -0
- data/.github/dependabot.yml +10 -0
- data/.github/workflows/ci.yml +32 -0
- data/.rubocop.yml +16 -12
- data/.rubocop_todo.yml +724 -0
- data/CONTRIBUTING.md +5 -1
- data/Gemfile +1 -1
- data/README.md +2 -1
- data/Rakefile +2 -14
- data/SECURITY.md +6 -0
- data/changelog.md +241 -141
- data/fog-core.gemspec +13 -9
- data/lib/fog/account.rb +0 -16
- data/lib/fog/billing.rb +0 -11
- data/lib/fog/compute/models/server.rb +7 -3
- data/lib/fog/compute.rb +3 -25
- data/lib/fog/core/association.rb +1 -0
- data/lib/fog/core/attributes/default.rb +7 -0
- data/lib/fog/core/attributes.rb +42 -5
- data/lib/fog/core/cache.rb +58 -55
- data/lib/fog/core/collection.rb +9 -3
- data/lib/fog/core/connection.rb +4 -6
- data/lib/fog/core/current_machine.rb +1 -1
- data/lib/fog/core/errors.rb +1 -1
- data/lib/fog/core/logger.rb +5 -2
- data/lib/fog/core/mock.rb +7 -2
- data/lib/fog/core/model.rb +34 -5
- data/lib/fog/core/provider.rb +37 -4
- data/lib/fog/core/scp.rb +16 -11
- data/lib/fog/core/service.rb +5 -5
- data/lib/fog/core/services_mixin.rb +62 -10
- data/lib/fog/core/ssh.rb +49 -25
- data/lib/fog/core/stringify_keys.rb +0 -2
- data/lib/fog/core/time.rb +2 -2
- data/lib/fog/core/uuid.rb +2 -8
- data/lib/fog/core/version.rb +3 -1
- data/lib/fog/core/wait_for.rb +2 -1
- data/lib/fog/core/wait_for_defaults.rb +2 -0
- data/lib/fog/core.rb +57 -59
- data/lib/fog/dns.rb +0 -11
- data/lib/fog/formatador.rb +9 -8
- data/lib/fog/monitoring.rb +0 -11
- data/lib/fog/network.rb +0 -12
- data/lib/fog/schema/data_validator.rb +1 -0
- data/lib/fog/storage.rb +15 -30
- data/lib/fog/support.rb +0 -12
- data/lib/fog/test_helpers/collection_helper.rb +2 -0
- data/lib/fog/test_helpers/formats_helper.rb +2 -2
- data/lib/fog/test_helpers/helper.rb +3 -3
- data/lib/fog/test_helpers/minitest/assertions.rb +1 -1
- data/lib/fog/test_helpers/minitest/expectations.rb +1 -1
- data/lib/fog/test_helpers/mock_helper.rb +84 -84
- data/lib/fog/test_helpers/succeeds_helper.rb +2 -2
- data/lib/fog/test_helpers/types_helper.rb +1 -0
- data/lib/fog/vpn.rb +0 -12
- data/lib/tasks/test_task.rb +4 -5
- metadata +58 -85
- data/.travis.yml +0 -39
- data/spec/compute/models/server_spec.rb +0 -229
- data/spec/compute_spec.rb +0 -95
- data/spec/connection_spec.rb +0 -105
- data/spec/core/cache_spec.rb +0 -191
- data/spec/core/model_spec.rb +0 -36
- data/spec/core/stringify_keys_spec.rb +0 -38
- data/spec/core/whitelist_keys_spec.rb +0 -36
- data/spec/credentials_spec.rb +0 -88
- data/spec/current_machine_spec.rb +0 -36
- data/spec/fake_app/fake_service.rb +0 -18
- data/spec/fake_app/models/collection.rb +0 -5
- data/spec/fake_app/models/model.rb +0 -2
- data/spec/fake_app/requests/request.rb +0 -11
- data/spec/fog_attribute_spec.rb +0 -549
- data/spec/formatador_spec.rb +0 -154
- data/spec/identity_spec.rb +0 -95
- data/spec/mocking_spec.rb +0 -84
- data/spec/service_spec.rb +0 -201
- data/spec/spec_helper.rb +0 -19
- data/spec/storage_spec.rb +0 -114
- data/spec/test_helpers/formats_helper_spec.rb +0 -121
- data/spec/test_helpers/schema_validator_spec.rb +0 -101
- data/spec/timeout_spec.rb +0 -20
- data/spec/utils_spec.rb +0 -29
- data/spec/uuid_spec.rb +0 -11
- data/spec/wait_for_spec.rb +0 -30
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Light
|
8
8
|
- Wesley Beary
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
@@ -26,49 +26,55 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: excon
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
34
|
+
version: '1.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
41
|
+
version: '1.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: formatador
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.2'
|
49
|
+
- - "<"
|
47
50
|
- !ruby/object:Gem::Version
|
48
|
-
version: '0
|
51
|
+
version: '2.0'
|
49
52
|
type: :runtime
|
50
53
|
prerelease: false
|
51
54
|
version_requirements: !ruby/object:Gem::Requirement
|
52
55
|
requirements:
|
53
|
-
- - "
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0.2'
|
59
|
+
- - "<"
|
54
60
|
- !ruby/object:Gem::Version
|
55
|
-
version: '0
|
61
|
+
version: '2.0'
|
56
62
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
63
|
+
name: mime-types
|
58
64
|
requirement: !ruby/object:Gem::Requirement
|
59
65
|
requirements:
|
60
|
-
- - "
|
66
|
+
- - ">="
|
61
67
|
- !ruby/object:Gem::Version
|
62
|
-
version: '0
|
68
|
+
version: '0'
|
63
69
|
type: :runtime
|
64
70
|
prerelease: false
|
65
71
|
version_requirements: !ruby/object:Gem::Requirement
|
66
72
|
requirements:
|
67
|
-
- - "
|
73
|
+
- - ">="
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0
|
75
|
+
version: '0'
|
70
76
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
77
|
+
name: minitest
|
72
78
|
requirement: !ruby/object:Gem::Requirement
|
73
79
|
requirements:
|
74
80
|
- - ">="
|
@@ -82,7 +88,7 @@ dependencies:
|
|
82
88
|
- !ruby/object:Gem::Version
|
83
89
|
version: '0'
|
84
90
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
91
|
+
name: minitest-stub-const
|
86
92
|
requirement: !ruby/object:Gem::Requirement
|
87
93
|
requirements:
|
88
94
|
- - ">="
|
@@ -96,7 +102,7 @@ dependencies:
|
|
96
102
|
- !ruby/object:Gem::Version
|
97
103
|
version: '0'
|
98
104
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
105
|
+
name: pry
|
100
106
|
requirement: !ruby/object:Gem::Requirement
|
101
107
|
requirements:
|
102
108
|
- - ">="
|
@@ -110,7 +116,7 @@ dependencies:
|
|
110
116
|
- !ruby/object:Gem::Version
|
111
117
|
version: '0'
|
112
118
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
119
|
+
name: rake
|
114
120
|
requirement: !ruby/object:Gem::Requirement
|
115
121
|
requirements:
|
116
122
|
- - ">="
|
@@ -124,7 +130,7 @@ dependencies:
|
|
124
130
|
- !ruby/object:Gem::Version
|
125
131
|
version: '0'
|
126
132
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
133
|
+
name: rubocop
|
128
134
|
requirement: !ruby/object:Gem::Requirement
|
129
135
|
requirements:
|
130
136
|
- - ">="
|
@@ -138,7 +144,7 @@ dependencies:
|
|
138
144
|
- !ruby/object:Gem::Version
|
139
145
|
version: '0'
|
140
146
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
147
|
+
name: rubocop-minitest
|
142
148
|
requirement: !ruby/object:Gem::Requirement
|
143
149
|
requirements:
|
144
150
|
- - ">="
|
@@ -152,7 +158,7 @@ dependencies:
|
|
152
158
|
- !ruby/object:Gem::Version
|
153
159
|
version: '0'
|
154
160
|
- !ruby/object:Gem::Dependency
|
155
|
-
name: rubocop
|
161
|
+
name: rubocop-rake
|
156
162
|
requirement: !ruby/object:Gem::Requirement
|
157
163
|
requirements:
|
158
164
|
- - ">="
|
@@ -179,6 +185,20 @@ dependencies:
|
|
179
185
|
- - ">="
|
180
186
|
- !ruby/object:Gem::Version
|
181
187
|
version: '0'
|
188
|
+
- !ruby/object:Gem::Dependency
|
189
|
+
name: tins
|
190
|
+
requirement: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
type: :development
|
196
|
+
prerelease: false
|
197
|
+
version_requirements: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
182
202
|
- !ruby/object:Gem::Dependency
|
183
203
|
name: yard
|
184
204
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,15 +221,19 @@ executables: []
|
|
201
221
|
extensions: []
|
202
222
|
extra_rdoc_files: []
|
203
223
|
files:
|
224
|
+
- ".github/FUNDING.yml"
|
225
|
+
- ".github/dependabot.yml"
|
226
|
+
- ".github/workflows/ci.yml"
|
204
227
|
- ".gitignore"
|
205
228
|
- ".rubocop.yml"
|
206
|
-
- ".
|
229
|
+
- ".rubocop_todo.yml"
|
207
230
|
- CONTRIBUTING.md
|
208
231
|
- CONTRIBUTORS.md
|
209
232
|
- Gemfile
|
210
233
|
- LICENSE.md
|
211
234
|
- README.md
|
212
235
|
- Rakefile
|
236
|
+
- SECURITY.md
|
213
237
|
- changelog.md
|
214
238
|
- fog-core.gemspec
|
215
239
|
- lib/fog/account.rb
|
@@ -289,37 +313,13 @@ files:
|
|
289
313
|
- lib/fog/volume.rb
|
290
314
|
- lib/fog/vpn.rb
|
291
315
|
- lib/tasks/test_task.rb
|
292
|
-
- spec/compute/models/server_spec.rb
|
293
|
-
- spec/compute_spec.rb
|
294
|
-
- spec/connection_spec.rb
|
295
|
-
- spec/core/cache_spec.rb
|
296
|
-
- spec/core/model_spec.rb
|
297
|
-
- spec/core/stringify_keys_spec.rb
|
298
|
-
- spec/core/whitelist_keys_spec.rb
|
299
|
-
- spec/credentials_spec.rb
|
300
|
-
- spec/current_machine_spec.rb
|
301
|
-
- spec/fake_app/fake_service.rb
|
302
|
-
- spec/fake_app/models/collection.rb
|
303
|
-
- spec/fake_app/models/model.rb
|
304
|
-
- spec/fake_app/requests/request.rb
|
305
|
-
- spec/fog_attribute_spec.rb
|
306
|
-
- spec/formatador_spec.rb
|
307
|
-
- spec/identity_spec.rb
|
308
|
-
- spec/mocking_spec.rb
|
309
|
-
- spec/service_spec.rb
|
310
|
-
- spec/spec_helper.rb
|
311
|
-
- spec/storage_spec.rb
|
312
|
-
- spec/test_helpers/formats_helper_spec.rb
|
313
|
-
- spec/test_helpers/schema_validator_spec.rb
|
314
|
-
- spec/timeout_spec.rb
|
315
|
-
- spec/utils_spec.rb
|
316
|
-
- spec/uuid_spec.rb
|
317
|
-
- spec/wait_for_spec.rb
|
318
316
|
homepage: https://github.com/fog/fog-core
|
319
317
|
licenses:
|
320
318
|
- MIT
|
321
|
-
metadata:
|
322
|
-
|
319
|
+
metadata:
|
320
|
+
changelog_uri: https://github.com/fog/fog-core/blob/master/changelog.md
|
321
|
+
rubygems_mfa_required: 'true'
|
322
|
+
post_install_message:
|
323
323
|
rdoc_options: []
|
324
324
|
require_paths:
|
325
325
|
- lib
|
@@ -327,42 +327,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
327
327
|
requirements:
|
328
328
|
- - ">="
|
329
329
|
- !ruby/object:Gem::Version
|
330
|
-
version: 2.0
|
330
|
+
version: '2.0'
|
331
331
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
332
332
|
requirements:
|
333
333
|
- - ">="
|
334
334
|
- !ruby/object:Gem::Version
|
335
335
|
version: '0'
|
336
336
|
requirements: []
|
337
|
-
|
338
|
-
|
339
|
-
signing_key:
|
337
|
+
rubygems_version: 3.5.18
|
338
|
+
signing_key:
|
340
339
|
specification_version: 4
|
341
340
|
summary: Shared classes and tests for fog providers and services.
|
342
|
-
test_files:
|
343
|
-
- spec/compute/models/server_spec.rb
|
344
|
-
- spec/compute_spec.rb
|
345
|
-
- spec/connection_spec.rb
|
346
|
-
- spec/core/cache_spec.rb
|
347
|
-
- spec/core/model_spec.rb
|
348
|
-
- spec/core/stringify_keys_spec.rb
|
349
|
-
- spec/core/whitelist_keys_spec.rb
|
350
|
-
- spec/credentials_spec.rb
|
351
|
-
- spec/current_machine_spec.rb
|
352
|
-
- spec/fake_app/fake_service.rb
|
353
|
-
- spec/fake_app/models/collection.rb
|
354
|
-
- spec/fake_app/models/model.rb
|
355
|
-
- spec/fake_app/requests/request.rb
|
356
|
-
- spec/fog_attribute_spec.rb
|
357
|
-
- spec/formatador_spec.rb
|
358
|
-
- spec/identity_spec.rb
|
359
|
-
- spec/mocking_spec.rb
|
360
|
-
- spec/service_spec.rb
|
361
|
-
- spec/spec_helper.rb
|
362
|
-
- spec/storage_spec.rb
|
363
|
-
- spec/test_helpers/formats_helper_spec.rb
|
364
|
-
- spec/test_helpers/schema_validator_spec.rb
|
365
|
-
- spec/timeout_spec.rb
|
366
|
-
- spec/utils_spec.rb
|
367
|
-
- spec/uuid_spec.rb
|
368
|
-
- spec/wait_for_spec.rb
|
341
|
+
test_files: []
|
data/.travis.yml
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
rvm:
|
4
|
-
- 2.0
|
5
|
-
- 2.1
|
6
|
-
- 2.2
|
7
|
-
- 2.3
|
8
|
-
- 2.4
|
9
|
-
- jruby-head
|
10
|
-
|
11
|
-
sudo: false
|
12
|
-
dist: trusty
|
13
|
-
|
14
|
-
script: bundle exec rake travis
|
15
|
-
|
16
|
-
matrix:
|
17
|
-
fast_finish: true
|
18
|
-
include:
|
19
|
-
- rvm: 2.1
|
20
|
-
gemfile: Gemfile
|
21
|
-
env: COVERAGE=true
|
22
|
-
- rvm: jruby-head
|
23
|
-
gemfile: Gemfile
|
24
|
-
allow_failures:
|
25
|
-
- rvm: jruby-head
|
26
|
-
- rvm: jruby9k
|
27
|
-
|
28
|
-
notifications:
|
29
|
-
email: false
|
30
|
-
irc:
|
31
|
-
channels:
|
32
|
-
- "irc.freenode.org#ruby-fog"
|
33
|
-
template:
|
34
|
-
- "[#%{build_number}] %{message} %{build_url}"
|
35
|
-
- "[#%{build_number}] %{commit} on %{branch} by %{author}"
|
36
|
-
- "[#%{build_number}] %{compare_url}"
|
37
|
-
on_success: always
|
38
|
-
on_failure: always
|
39
|
-
use_notice: false
|
@@ -1,229 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
require "fog/compute/models/server"
|
3
|
-
|
4
|
-
describe Fog::Compute::Server do
|
5
|
-
before do
|
6
|
-
@server = Fog::Compute::Server.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#sshable?" do
|
10
|
-
describe "when the server is not ready" do
|
11
|
-
it "is false" do
|
12
|
-
@server.stub(:ready?, false) do
|
13
|
-
refute @server.sshable?
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "when the server is ready" do
|
19
|
-
describe "when the ssh_ip_address is nil" do
|
20
|
-
it "is false" do
|
21
|
-
@server.stub(:ready?, true) do
|
22
|
-
@server.stub(:ssh_ip_address, nil) do
|
23
|
-
refute @server.sshable?
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
describe "when the ssh_ip_address exists" do
|
31
|
-
# Define these constants which would be imported by net-ssh once loaded
|
32
|
-
module Net
|
33
|
-
module SSH
|
34
|
-
class AuthenticationFailed < RuntimeError
|
35
|
-
end
|
36
|
-
class Disconnect < RuntimeError
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "and ssh times out" do
|
42
|
-
it "is false" do
|
43
|
-
@server.stub(:ready?, true) do
|
44
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
45
|
-
raises_timeout = lambda { |_time| raise Timeout::Error.new }
|
46
|
-
Timeout.stub(:timeout, raises_timeout) do
|
47
|
-
refute @server.sshable?
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "and it raises Net::SSH::AuthenticationFailed" do
|
55
|
-
it "is false" do
|
56
|
-
@server.stub(:ready?, true) do
|
57
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
58
|
-
raise_error = lambda { |_cmd, _options| raise Net::SSH::AuthenticationFailed.new }
|
59
|
-
@server.stub(:ssh, raise_error) do
|
60
|
-
refute @server.sshable?
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
it "resets SSH timeout" do
|
67
|
-
@server.instance_variable_set(:@sshable_timeout, 8)
|
68
|
-
@server.stub(:ready?, true) do
|
69
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
70
|
-
raise_error = lambda { |_cmd, _options| raise Net::SSH::AuthenticationFailed.new }
|
71
|
-
@server.stub(:ssh, raise_error) do
|
72
|
-
@server.sshable?
|
73
|
-
assert_nil @server.instance_variable_get(:@sshable_timeout), nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "and it raises Net::SSH::Disconnect" do
|
81
|
-
it "is false" do
|
82
|
-
@server.stub(:ready?, true) do
|
83
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
84
|
-
raise_error = lambda { |_cmd, _options| raise Net::SSH::Disconnect.new }
|
85
|
-
@server.stub(:ssh, raise_error) do
|
86
|
-
refute @server.sshable?
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
it "resets SSH timeout" do
|
93
|
-
@server.instance_variable_set(:@sshable_timeout, 8)
|
94
|
-
@server.stub(:ready?, true) do
|
95
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
96
|
-
raise_error = lambda { |_cmd, _options| raise Net::SSH::Disconnect.new }
|
97
|
-
@server.stub(:ssh, raise_error) do
|
98
|
-
@server.sshable?
|
99
|
-
assert_nil @server.instance_variable_get(:@sshable_timeout), nil
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "and it raises SystemCallError" do
|
107
|
-
it "is false" do
|
108
|
-
@server.stub(:ready?, true) do
|
109
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
110
|
-
raise_error = lambda { |_cmd, _options| raise SystemCallError.new("message, 0") }
|
111
|
-
@server.stub(:ssh, raise_error) do
|
112
|
-
refute @server.sshable?
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
it "does not increase SSH timeout" do
|
119
|
-
@server.stub(:ready?, true) do
|
120
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
121
|
-
raise_error = lambda { |_cmd, _options| raise SystemCallError.new("message, 0") }
|
122
|
-
@server.stub(:ssh, raise_error) do
|
123
|
-
@server.sshable?
|
124
|
-
assert_equal @server.instance_variable_get(:@sshable_timeout), 8
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
describe "and ssh completes within the designated timeout" do
|
132
|
-
it "is true" do
|
133
|
-
@server.stub(:ready?, true) do
|
134
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
135
|
-
@server.stub(:ssh, "datum") do
|
136
|
-
assert @server.sshable?
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
describe "when called successively" do
|
144
|
-
describe "and ssh times out" do
|
145
|
-
it "increases the timeout factor by 1.5" do
|
146
|
-
@server.stub(:ready?, true) do
|
147
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
148
|
-
raises_timeout = lambda do |time|
|
149
|
-
assert(time == 8)
|
150
|
-
raise Timeout::Error.new
|
151
|
-
end
|
152
|
-
Timeout.stub(:timeout, raises_timeout) do
|
153
|
-
refute @server.sshable?
|
154
|
-
end
|
155
|
-
|
156
|
-
raises_timeout = lambda do |time|
|
157
|
-
assert_equal(12, time)
|
158
|
-
raise Timeout::Error.new
|
159
|
-
end
|
160
|
-
Timeout.stub(:timeout, raises_timeout) do
|
161
|
-
refute @server.sshable?
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
it "does not increase timeout beyond 60s" do
|
168
|
-
@server.stub(:ready?, true) do
|
169
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
170
|
-
raises_timeout = lambda { |_time| raise Timeout::Error.new }
|
171
|
-
Timeout.stub(:timeout, raises_timeout) do
|
172
|
-
5.times { refute @server.sshable? }
|
173
|
-
end
|
174
|
-
|
175
|
-
raises_timeout = lambda do |time|
|
176
|
-
assert_equal(60, time)
|
177
|
-
raise Timeout::Error.new
|
178
|
-
end
|
179
|
-
Timeout.stub(:timeout, raises_timeout) do
|
180
|
-
refute @server.sshable?
|
181
|
-
end
|
182
|
-
|
183
|
-
raises_timeout = lambda do |time|
|
184
|
-
assert_equal(60, time)
|
185
|
-
raise Timeout::Error.new
|
186
|
-
end
|
187
|
-
Timeout.stub(:timeout, raises_timeout) do
|
188
|
-
refute @server.sshable?
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
describe "when ssh eventually succeeds" do
|
195
|
-
it "resets the timeout to the initial value" do
|
196
|
-
@server.stub(:ready?, true) do
|
197
|
-
@server.stub(:ssh_ip_address, "10.0.0.1") do
|
198
|
-
raises_timeout = lambda do |time|
|
199
|
-
assert(time == 8)
|
200
|
-
raise Timeout::Error.new
|
201
|
-
end
|
202
|
-
Timeout.stub(:timeout, raises_timeout) do
|
203
|
-
refute @server.sshable?
|
204
|
-
end
|
205
|
-
|
206
|
-
@server.stub(:ssh, "datum") do
|
207
|
-
assert @server.sshable?
|
208
|
-
end
|
209
|
-
|
210
|
-
raises_timeout = lambda do |time|
|
211
|
-
assert_equal(8, time)
|
212
|
-
raise Timeout::Error.new
|
213
|
-
end
|
214
|
-
Timeout.stub(:timeout, raises_timeout) do
|
215
|
-
refute @server.sshable?
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
end
|
229
|
-
end
|
data/spec/compute_spec.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Compute
|
5
|
-
def self.require(*_args); end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "Fog::Compute" do
|
10
|
-
describe "#new" do
|
11
|
-
module Fog
|
12
|
-
module TheRightWay
|
13
|
-
extend Provider
|
14
|
-
service(:compute, "Compute")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
module Fog
|
19
|
-
module Compute
|
20
|
-
class TheRightWay
|
21
|
-
def initialize(_args); end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it "instantiates an instance of Fog::Compute::<Provider> from the :provider keyword arg" do
|
27
|
-
compute = Fog::Compute.new(:provider => :therightway)
|
28
|
-
assert_instance_of(Fog::Compute::TheRightWay, compute)
|
29
|
-
end
|
30
|
-
|
31
|
-
module Fog
|
32
|
-
module TheWrongWay
|
33
|
-
extend Provider
|
34
|
-
service(:compute, "Compute")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
module Fog
|
39
|
-
module TheWrongWay
|
40
|
-
class Compute
|
41
|
-
def initialize(_args); end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
it "instantiates an instance of Fog::<Provider>::Compute from the :provider keyword arg" do
|
47
|
-
compute = Fog::Compute.new(:provider => :thewrongway)
|
48
|
-
assert_instance_of(Fog::TheWrongWay::Compute, compute)
|
49
|
-
end
|
50
|
-
|
51
|
-
module Fog
|
52
|
-
module BothWays
|
53
|
-
extend Provider
|
54
|
-
service(:compute, "Compute")
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
module Fog
|
59
|
-
module BothWays
|
60
|
-
class Compute
|
61
|
-
def initialize(_args); end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
module Fog
|
67
|
-
module Compute
|
68
|
-
class BothWays
|
69
|
-
attr_reader :args
|
70
|
-
def initialize(args)
|
71
|
-
@args = args
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe "when both Fog::Compute::<Provider> and Fog::<Provider>::Compute exist" do
|
78
|
-
it "prefers Fog::Compute::<Provider>" do
|
79
|
-
compute = Fog::Compute.new(:provider => :bothways)
|
80
|
-
assert_instance_of(Fog::Compute::BothWays, compute)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
it "passes the supplied keyword args less :provider to Fog::Compute::<Provider>#new" do
|
85
|
-
compute = Fog::Compute.new(:provider => :bothways, :extra => :stuff)
|
86
|
-
assert_equal({ :extra => :stuff }, compute.args)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "raises ArgumentError when given a :provider where a Fog::Compute::Provider that does not exist" do
|
90
|
-
assert_raises(ArgumentError) do
|
91
|
-
Fog::Compute.new(:provider => :wat)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|