fog-core 2.3.0 → 2.5.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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +2 -0
  3. data/.github/dependabot.yml +2 -2
  4. data/.github/workflows/ci.yml +32 -0
  5. data/.rubocop.yml +16 -12
  6. data/.rubocop_todo.yml +724 -0
  7. data/Gemfile +1 -1
  8. data/README.md +2 -1
  9. data/Rakefile +2 -14
  10. data/SECURITY.md +6 -0
  11. data/changelog.md +26 -0
  12. data/fog-core.gemspec +11 -8
  13. data/lib/fog/compute/models/server.rb +7 -3
  14. data/lib/fog/compute.rb +3 -3
  15. data/lib/fog/core/association.rb +1 -0
  16. data/lib/fog/core/attributes/default.rb +7 -0
  17. data/lib/fog/core/attributes.rb +28 -3
  18. data/lib/fog/core/cache.rb +58 -55
  19. data/lib/fog/core/collection.rb +9 -3
  20. data/lib/fog/core/connection.rb +1 -1
  21. data/lib/fog/core/current_machine.rb +1 -1
  22. data/lib/fog/core/errors.rb +1 -1
  23. data/lib/fog/core/logger.rb +2 -2
  24. data/lib/fog/core/mock.rb +7 -2
  25. data/lib/fog/core/model.rb +34 -5
  26. data/lib/fog/core/provider.rb +7 -7
  27. data/lib/fog/core/scp.rb +15 -11
  28. data/lib/fog/core/service.rb +5 -5
  29. data/lib/fog/core/services_mixin.rb +9 -9
  30. data/lib/fog/core/ssh.rb +3 -2
  31. data/lib/fog/core/stringify_keys.rb +0 -2
  32. data/lib/fog/core/time.rb +2 -2
  33. data/lib/fog/core/uuid.rb +2 -8
  34. data/lib/fog/core/version.rb +1 -1
  35. data/lib/fog/core/wait_for.rb +2 -1
  36. data/lib/fog/core/wait_for_defaults.rb +2 -0
  37. data/lib/fog/core.rb +57 -59
  38. data/lib/fog/formatador.rb +9 -8
  39. data/lib/fog/schema/data_validator.rb +1 -0
  40. data/lib/fog/storage.rb +15 -16
  41. data/lib/fog/test_helpers/collection_helper.rb +2 -0
  42. data/lib/fog/test_helpers/formats_helper.rb +2 -2
  43. data/lib/fog/test_helpers/helper.rb +3 -3
  44. data/lib/fog/test_helpers/minitest/assertions.rb +1 -1
  45. data/lib/fog/test_helpers/minitest/expectations.rb +1 -1
  46. data/lib/fog/test_helpers/mock_helper.rb +84 -84
  47. data/lib/fog/test_helpers/types_helper.rb +1 -0
  48. data/lib/tasks/test_task.rb +4 -5
  49. metadata +46 -81
  50. data/.github/workflows/ruby.yml +0 -18
  51. data/.github/workflows/stale.yml +0 -9
  52. data/spec/compute/models/server_spec.rb +0 -229
  53. data/spec/compute_spec.rb +0 -95
  54. data/spec/connection_spec.rb +0 -105
  55. data/spec/core/cache_spec.rb +0 -191
  56. data/spec/core/model_spec.rb +0 -36
  57. data/spec/core/stringify_keys_spec.rb +0 -38
  58. data/spec/core/whitelist_keys_spec.rb +0 -36
  59. data/spec/credentials_spec.rb +0 -88
  60. data/spec/current_machine_spec.rb +0 -36
  61. data/spec/fake_app/fake_service.rb +0 -18
  62. data/spec/fake_app/models/collection.rb +0 -5
  63. data/spec/fake_app/models/model.rb +0 -2
  64. data/spec/fake_app/requests/request.rb +0 -11
  65. data/spec/fog_attribute_spec.rb +0 -549
  66. data/spec/formatador_spec.rb +0 -154
  67. data/spec/identity_spec.rb +0 -95
  68. data/spec/mocking_spec.rb +0 -84
  69. data/spec/service_spec.rb +0 -201
  70. data/spec/spec_helper.rb +0 -19
  71. data/spec/storage_spec.rb +0 -112
  72. data/spec/test_helpers/formats_helper_spec.rb +0 -121
  73. data/spec/test_helpers/schema_validator_spec.rb +0 -101
  74. data/spec/timeout_spec.rb +0 -20
  75. data/spec/utils_spec.rb +0 -29
  76. data/spec/uuid_spec.rb +0 -11
  77. data/spec/wait_for_spec.rb +0 -30
@@ -1,36 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Fog::WhitelistKeys" do
4
- describe ".whitelist" do
5
- describe "when other keys are present" do
6
- it "returns Hash with only allowed keys" do
7
- input = { :name => "name", :type => "type", :size => 80 }
8
- valid_keys = %w(name size)
9
-
10
- output = Fog::WhitelistKeys.whitelist(input, valid_keys)
11
-
12
- expected = { "name" => "name", "size" => 80 }
13
- assert_equal(expected, output)
14
- end
15
- end
16
-
17
- describe "when key is a Symbol" do
18
- it "returns a String" do
19
- input = { :name => "name" }
20
- valid_keys = %w(name)
21
-
22
- output = Fog::WhitelistKeys.whitelist(input, valid_keys)
23
-
24
- expected = { "name" => "name" }
25
- assert(expected, output)
26
- end
27
- end
28
-
29
- describe "when Hash is empty" do
30
- it "returns empty Hash" do
31
- output = Fog::WhitelistKeys.whitelist({}, [])
32
- assert_equal({}, output)
33
- end
34
- end
35
- end
36
- end
@@ -1,88 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "credentials" do
4
- before do
5
- @old_home = ENV["HOME"]
6
- @old_rc = ENV["FOG_RC"]
7
- @old_credential = ENV["FOG_CREDENTIAL"]
8
- @old_credentials = Fog.credentials
9
- Fog.instance_variable_set("@credential_path", nil) # kill memoization
10
- Fog.instance_variable_set("@credential", nil) # kill memoization
11
- end
12
-
13
- after do
14
- ENV["HOME"] = @old_home
15
- ENV["FOG_RC"] = @old_rc
16
- ENV["FOG_CREDENTIAL"] = @old_credential
17
- Fog.credentials = @old_credentials
18
- end
19
-
20
- describe "credential" do
21
- it "returns :default for default credentials" do
22
- assert_equal :default, Fog.credential
23
- end
24
-
25
- it "returns the to_sym of the assigned value" do
26
- Fog.credential = "foo"
27
- assert_equal :foo, Fog.credential
28
- end
29
-
30
- it "can set credentials throught the FOG_CREDENTIAL env va" do
31
- ENV["FOG_CREDENTIAL"] = "bar"
32
- assert_equal :bar, Fog.credential
33
- end
34
- end
35
-
36
- describe "credentials_path" do
37
- it "has FOG_RC takes precedence over HOME" do
38
- ENV["HOME"] = "/home/path"
39
- ENV["FOG_RC"] = "/rc/path"
40
-
41
- assert_equal "/rc/path", Fog.credentials_path
42
- end
43
-
44
- it "properly expands paths" do
45
- ENV["FOG_RC"] = "/expanded/subdirectory/../path"
46
- assert_equal "/expanded/path", Fog.credentials_path
47
- end
48
-
49
- it "falls back to home path if FOG_RC not set" do
50
- ENV.delete("FOG_RC")
51
- assert_equal File.join(ENV["HOME"], ".fog"), Fog.credentials_path
52
- end
53
-
54
- it "ignores home path if it does not exist" do
55
- ENV.delete("FOG_RC")
56
- ENV["HOME"] = "/no/such/path"
57
- assert_nil Fog.credentials_path
58
- end
59
-
60
- it "File.expand_path raises because of non-absolute path" do
61
- ENV.delete("FOG_RC")
62
- ENV["HOME"] = "."
63
-
64
- if RUBY_PLATFORM == "java"
65
- Fog::Logger.warning("Stubbing out non-absolute path credentials test due to JRuby bug: https://github.com/jruby/jruby/issues/1163")
66
- else
67
- assert_nil Fog.credentials_path
68
- end
69
- end
70
-
71
- it "returns nil when neither FOG_RC or HOME are set" do
72
- ENV.delete("HOME")
73
- ENV.delete("FOG_RC")
74
- assert_nil Fog.credentials_path
75
- end
76
- end
77
-
78
- describe "symbolize_credential?" do
79
- it "returns false if the value is :headers" do
80
- refute Fog.symbolize_credential?(:headers)
81
- end
82
-
83
- it "returns true if the value is not :headers" do
84
- assert Fog.symbolize_credential?(:foo)
85
- assert Fog.symbolize_credential?(:liberate_me_ex_inheris)
86
- end
87
- end
88
- end
@@ -1,36 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Fog::CurrentMachine do
4
- before do
5
- @was_mocking = Fog.mock?
6
- Fog.mock!
7
-
8
- @old_excon_defaults_mock = Excon.defaults[:mock]
9
- Excon.defaults[:mock] = true
10
- end
11
-
12
- after do
13
- Fog.unmock! unless @was_mocking
14
-
15
- Fog::CurrentMachine.ip_address = nil
16
- Excon.stubs.clear
17
- Excon.defaults[:mock] = @old_excon_defaults_mock
18
- end
19
-
20
- describe "ip_address" do
21
- it "should be thread safe" do
22
-
23
- (1..10).map do
24
- Thread.new do
25
- Excon.stub({ :method => :get, :path => "/" }, { :body => "" })
26
- Fog::CurrentMachine.ip_address
27
- end
28
- end.each(&:join)
29
- end
30
-
31
- it "should remove trailing endline characters" do
32
- Excon.stub({ :method => :get, :path => "/" }, { :body => "192.168.0.1\n" })
33
- assert_equal "192.168.0.1", Fog::CurrentMachine.ip_address
34
- end
35
- end
36
- end
@@ -1,18 +0,0 @@
1
- class FakeService < Fog::Service
2
- class Real
3
- def initialize(_options)
4
- end
5
- end
6
-
7
- class Mock
8
- def initialize(_options)
9
- end
10
- end
11
-
12
- model_path File.join(File.dirname(__FILE__), "models")
13
- model :model
14
- collection :collection
15
-
16
- request_path File.join(File.dirname(__FILE__), "requests")
17
- request :request
18
- end
@@ -1,5 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "model")
2
-
3
- class Collection < Fog::Collection
4
- model Model
5
- end
@@ -1,2 +0,0 @@
1
- class Model < Fog::Model
2
- end
@@ -1,11 +0,0 @@
1
- class FakeService < Fog::Service
2
- class Real
3
- def request
4
- end
5
- end
6
-
7
- class Mock
8
- def request
9
- end
10
- end
11
- end