fog-core 1.30.0 → 1.31.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/changelog.md +13 -0
- data/lib/fog/account.rb +7 -0
- data/lib/fog/baremetal.rb +7 -4
- data/lib/fog/billing.rb +7 -0
- data/lib/fog/cdn.rb +7 -2
- data/lib/fog/compute.rb +10 -0
- data/lib/fog/core/errors.rb +7 -0
- data/lib/fog/core/model.rb +13 -1
- data/lib/fog/core/version.rb +1 -1
- data/lib/fog/core.rb +55 -55
- data/lib/fog/image.rb +7 -2
- data/lib/fog/metering.rb +7 -3
- data/lib/fog/monitoring.rb +7 -0
- data/lib/fog/network.rb +7 -3
- data/lib/fog/orchestration.rb +7 -4
- data/lib/fog/storage.rb +6 -1
- data/lib/fog/support.rb +7 -0
- data/lib/fog/volume.rb +7 -3
- data/lib/fog/vpn.rb +7 -0
- data/spec/core/model_spec.rb +36 -0
- metadata +38 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3eb8ac3e692bc65def64e107150dfe6c28ab7ac
|
4
|
+
data.tar.gz: 7c1ea69cfa269891d17cdb35a477ea9d89e695c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bc9c9b3dd033caa97876a983e0071a7367f310109e5bbadd024d9a59fd6d5422f408203a2dc4d80a0974e1e1b2cb4cc5db7e7ec7e5491d15f3d163588a0ba44
|
7
|
+
data.tar.gz: 6807600030a3dfa1cd4324d3307237f1ce7867acc982af713d19fc4d1900307d1cfc221186e5a97dd2d14a420bb55d576baa0e69edc3c6ad5fe942c630a49efe
|
data/changelog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
1.31.0 06/17/2015
|
2
|
+
==========================================================
|
3
|
+
|
4
|
+
use relative paths
|
5
|
+
add digital ocean examples
|
6
|
+
reinstate baremetal
|
7
|
+
add softlayer examples
|
8
|
+
add digital ocean v2 support
|
9
|
+
setup fog model equality to check identities (if available)
|
10
|
+
use Fog.interval in wait_for
|
11
|
+
reduce memory footprint
|
12
|
+
fix account handling
|
13
|
+
|
1
14
|
1.30.0 04/02/2015
|
2
15
|
==========================================================
|
3
16
|
|
data/lib/fog/account.rb
CHANGED
@@ -11,6 +11,13 @@ module Fog
|
|
11
11
|
if provider == :stormondemand
|
12
12
|
require "fog/account/storm_on_demand"
|
13
13
|
Fog::Account::StormOnDemand.new(attributes)
|
14
|
+
elsif providers.include?(provider)
|
15
|
+
require "fog/#{provider}/account"
|
16
|
+
begin
|
17
|
+
Fog::Account.const_get(Fog.providers[provider])
|
18
|
+
rescue
|
19
|
+
Fog.const_get(Fog.providers[provider])::Account
|
20
|
+
end.new(attributes)
|
14
21
|
else
|
15
22
|
raise ArgumentError, "#{provider} has no account service"
|
16
23
|
end
|
data/lib/fog/baremetal.rb
CHANGED
@@ -7,13 +7,16 @@ module Fog
|
|
7
7
|
def self.new(attributes)
|
8
8
|
attributes = attributes.dup # Prevent delete from having side effects
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
|
-
|
11
10
|
if providers.include?(provider)
|
12
11
|
require "fog/#{provider}/baremetal"
|
13
|
-
|
12
|
+
begin
|
13
|
+
Fog::Baremetal.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::Baremetal
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no baremetal service"
|
14
19
|
end
|
15
|
-
|
16
|
-
raise ArgumentError, "#{provider} has no baremetal service"
|
17
20
|
end
|
18
21
|
|
19
22
|
def self.providers
|
data/lib/fog/billing.rb
CHANGED
@@ -10,6 +10,13 @@ module Fog
|
|
10
10
|
if provider == :stormondemand
|
11
11
|
require "fog/billing/storm_on_demand"
|
12
12
|
Fog::Billing::StormOnDemand.new(attributes)
|
13
|
+
elsif providers.include?(provider)
|
14
|
+
require "fog/#{provider}/billing"
|
15
|
+
begin
|
16
|
+
Fog::Account.const_get(Fog.providers[provider])
|
17
|
+
rescue
|
18
|
+
Fog.const_get(Fog.providers[provider])::Account
|
19
|
+
end.new(attributes)
|
13
20
|
else
|
14
21
|
raise ArgumentError, "#{provider} has no billing service"
|
15
22
|
end
|
data/lib/fog/cdn.rb
CHANGED
@@ -9,9 +9,14 @@ module Fog
|
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
10
|
if providers.include?(provider)
|
11
11
|
require "fog/#{provider}/cdn"
|
12
|
-
|
12
|
+
begin
|
13
|
+
Fog::CDN.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::CDN
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no cdn service"
|
13
19
|
end
|
14
|
-
raise ArgumentError, "#{provider} is not a recognized cdn provider"
|
15
20
|
end
|
16
21
|
|
17
22
|
def self.providers
|
data/lib/fog/compute.rb
CHANGED
@@ -41,6 +41,16 @@ module Fog
|
|
41
41
|
require "fog/rackspace/compute_v2"
|
42
42
|
Fog::Compute::RackspaceV2.new(attributes)
|
43
43
|
end
|
44
|
+
when :digitalocean
|
45
|
+
version = attributes.delete(:version)
|
46
|
+
version = version.to_s.downcase.to_sym unless version.nil?
|
47
|
+
if version == :v2
|
48
|
+
require "fog/digitalocean/compute_v2"
|
49
|
+
Fog::Compute::DigitalOceanV2.new(attributes)
|
50
|
+
else
|
51
|
+
require "fog/digitalocean/compute"
|
52
|
+
Fog::Compute::DigitalOcean.new(attributes)
|
53
|
+
end
|
44
54
|
when :stormondemand
|
45
55
|
require "fog/compute/storm_on_demand"
|
46
56
|
Fog::Compute::StormOnDemand.new(attributes)
|
data/lib/fog/core/errors.rb
CHANGED
@@ -43,6 +43,8 @@ An alternate file may be used by placing its path in the FOG_RC environment vari
|
|
43
43
|
:brightbox_secret:
|
44
44
|
:clodo_api_key:
|
45
45
|
:clodo_username:
|
46
|
+
:digitalocean_api_key:
|
47
|
+
:digitalocean_client_id:
|
46
48
|
:go_grid_api_key:
|
47
49
|
:go_grid_shared_secret:
|
48
50
|
:google_client_email:
|
@@ -77,6 +79,11 @@ An alternate file may be used by placing its path in the FOG_RC environment vari
|
|
77
79
|
:rage4_password:
|
78
80
|
:riakcs_access_key_id:
|
79
81
|
:riakcs_secret_access_key:
|
82
|
+
:softlayer_username:
|
83
|
+
:softlayer_api_key:
|
84
|
+
:softlayer_default_datacenter:
|
85
|
+
:softlayer_cluster:
|
86
|
+
:softlayer_default_domain:
|
80
87
|
:stormondemand_username:
|
81
88
|
:stormondemand_password:
|
82
89
|
:terremark_username:
|
data/lib/fog/core/model.rb
CHANGED
@@ -24,6 +24,18 @@ module Fog
|
|
24
24
|
Fog::Formatador.format(self)
|
25
25
|
end
|
26
26
|
|
27
|
+
def ==(o)
|
28
|
+
unless o.is_a?(Fog::Model)
|
29
|
+
super
|
30
|
+
else
|
31
|
+
if (o.identity.nil? and self.identity.nil?)
|
32
|
+
o.object_id == self.object_id
|
33
|
+
else
|
34
|
+
o.class == self.class and o.identity == self.identity
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
27
39
|
def reload
|
28
40
|
requires :identity
|
29
41
|
|
@@ -52,7 +64,7 @@ module Fog
|
|
52
64
|
end
|
53
65
|
end
|
54
66
|
|
55
|
-
def wait_for(timeout = Fog.timeout, interval =
|
67
|
+
def wait_for(timeout = Fog.timeout, interval = Fog.interval, &block)
|
56
68
|
reload_has_succeeded = false
|
57
69
|
duration = Fog.wait_for(timeout, interval) do # Note that duration = false if it times out
|
58
70
|
if reload
|
data/lib/fog/core/version.rb
CHANGED
data/lib/fog/core.rb
CHANGED
@@ -11,62 +11,62 @@ require "timeout"
|
|
11
11
|
require "ipaddr"
|
12
12
|
|
13
13
|
# internal core dependencies
|
14
|
-
require
|
14
|
+
require File.expand_path('../core/version', __FILE__)
|
15
15
|
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
25
|
-
require
|
26
|
-
require
|
27
|
-
require
|
28
|
-
require
|
29
|
-
require
|
30
|
-
require
|
31
|
-
require
|
32
|
-
require
|
33
|
-
require
|
34
|
-
require
|
35
|
-
require
|
36
|
-
require
|
37
|
-
require
|
38
|
-
require
|
39
|
-
require
|
40
|
-
require
|
41
|
-
require
|
42
|
-
require
|
43
|
-
require
|
44
|
-
require
|
45
|
-
require
|
46
|
-
require
|
47
|
-
require
|
48
|
-
require
|
49
|
-
require
|
50
|
-
require
|
51
|
-
require
|
16
|
+
require File.expand_path('../core/attributes', __FILE__)
|
17
|
+
require File.expand_path('../core/attributes/default', __FILE__)
|
18
|
+
require File.expand_path('../core/attributes/array', __FILE__)
|
19
|
+
require File.expand_path('../core/attributes/boolean', __FILE__)
|
20
|
+
require File.expand_path('../core/attributes/float', __FILE__)
|
21
|
+
require File.expand_path('../core/attributes/integer', __FILE__)
|
22
|
+
require File.expand_path('../core/attributes/string', __FILE__)
|
23
|
+
require File.expand_path('../core/attributes/time', __FILE__)
|
24
|
+
require File.expand_path('../core/attributes/timestamp', __FILE__)
|
25
|
+
require File.expand_path('../core/associations/default', __FILE__)
|
26
|
+
require File.expand_path('../core/associations/many_identities', __FILE__)
|
27
|
+
require File.expand_path('../core/associations/many_models', __FILE__)
|
28
|
+
require File.expand_path('../core/associations/one_model', __FILE__)
|
29
|
+
require File.expand_path('../core/associations/one_identity', __FILE__)
|
30
|
+
require File.expand_path('../core/collection', __FILE__)
|
31
|
+
require File.expand_path('../core/association', __FILE__)
|
32
|
+
require File.expand_path('../core/connection', __FILE__)
|
33
|
+
require File.expand_path('../core/credentials', __FILE__)
|
34
|
+
require File.expand_path('../core/current_machine', __FILE__)
|
35
|
+
require File.expand_path('../core/deprecation', __FILE__)
|
36
|
+
require File.expand_path('../core/errors', __FILE__)
|
37
|
+
require File.expand_path('../core/hmac', __FILE__)
|
38
|
+
require File.expand_path('../core/logger', __FILE__)
|
39
|
+
require File.expand_path('../core/model', __FILE__)
|
40
|
+
require File.expand_path('../core/mock', __FILE__)
|
41
|
+
require File.expand_path('../core/provider', __FILE__)
|
42
|
+
require File.expand_path('../core/service', __FILE__)
|
43
|
+
require File.expand_path('../core/ssh', __FILE__)
|
44
|
+
require File.expand_path('../core/scp', __FILE__)
|
45
|
+
require File.expand_path('../core/time', __FILE__)
|
46
|
+
require File.expand_path('../core/utils', __FILE__)
|
47
|
+
require File.expand_path('../core/wait_for', __FILE__)
|
48
|
+
require File.expand_path('../core/wait_for_defaults', __FILE__)
|
49
|
+
require File.expand_path('../core/uuid', __FILE__)
|
50
|
+
require File.expand_path('../core/stringify_keys', __FILE__)
|
51
|
+
require File.expand_path('../core/whitelist_keys', __FILE__)
|
52
|
+
|
53
|
+
require File.expand_path('../account', __FILE__)
|
54
|
+
require File.expand_path('../baremetal', __FILE__)
|
55
|
+
require File.expand_path('../billing', __FILE__)
|
56
|
+
require File.expand_path('../cdn', __FILE__)
|
57
|
+
require File.expand_path('../compute', __FILE__)
|
58
|
+
require File.expand_path('../dns', __FILE__)
|
59
|
+
require File.expand_path('../identity', __FILE__)
|
60
|
+
require File.expand_path('../image', __FILE__)
|
61
|
+
require File.expand_path('../metering', __FILE__)
|
62
|
+
require File.expand_path('../monitoring', __FILE__)
|
63
|
+
require File.expand_path('../network', __FILE__)
|
64
|
+
require File.expand_path('../orchestration', __FILE__)
|
65
|
+
require File.expand_path('../storage', __FILE__)
|
66
|
+
require File.expand_path('../support', __FILE__)
|
67
|
+
require File.expand_path('../volume', __FILE__)
|
68
|
+
require File.expand_path('../vpn', __FILE__)
|
52
69
|
|
53
|
-
# service wrappers
|
54
|
-
require "fog/account"
|
55
|
-
require "fog/baremetal"
|
56
|
-
require "fog/billing"
|
57
|
-
require "fog/cdn"
|
58
|
-
require "fog/compute"
|
59
|
-
require "fog/dns"
|
60
|
-
require "fog/identity"
|
61
|
-
require "fog/image"
|
62
|
-
require "fog/metering"
|
63
|
-
require "fog/monitoring"
|
64
|
-
require "fog/network"
|
65
|
-
require "fog/orchestration"
|
66
|
-
require "fog/storage"
|
67
|
-
require "fog/support"
|
68
|
-
require "fog/volume"
|
69
|
-
require "fog/vpn"
|
70
70
|
|
71
71
|
# Utility
|
72
|
-
require '
|
72
|
+
require File.expand_path('../formatador', __FILE__)
|
data/lib/fog/image.rb
CHANGED
@@ -9,9 +9,14 @@ module Fog
|
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
10
|
if providers.include?(provider)
|
11
11
|
require "fog/#{provider}/image"
|
12
|
-
|
12
|
+
begin
|
13
|
+
Fog::Image.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::Image
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no image service"
|
13
19
|
end
|
14
|
-
raise ArgumentError, "#{provider} has no image service"
|
15
20
|
end
|
16
21
|
|
17
22
|
def self.providers
|
data/lib/fog/metering.rb
CHANGED
@@ -9,10 +9,14 @@ module Fog
|
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
10
|
if providers.include?(provider)
|
11
11
|
require "fog/#{provider}/metering"
|
12
|
-
|
12
|
+
begin
|
13
|
+
Fog::Metering.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::Metering
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no metering service"
|
13
19
|
end
|
14
|
-
|
15
|
-
raise ArgumentError, "#{provider} has no identity service"
|
16
20
|
end
|
17
21
|
|
18
22
|
def self.providers
|
data/lib/fog/monitoring.rb
CHANGED
@@ -10,6 +10,13 @@ module Fog
|
|
10
10
|
if provider == :stormondemand
|
11
11
|
require "fog/monitoring/storm_on_demand"
|
12
12
|
Fog::Monitoring::StormOnDemand.new(attributes)
|
13
|
+
elsif providers.include?(provider)
|
14
|
+
require "fog/#{provider}/monitoring"
|
15
|
+
begin
|
16
|
+
Fog::Monitoring.const_get(Fog.providers[provider])
|
17
|
+
rescue
|
18
|
+
Fog.const_get(Fog.providers[provider])::Monitoring
|
19
|
+
end.new(attributes)
|
13
20
|
else
|
14
21
|
raise ArgumentError, "#{provider} has no monitoring service"
|
15
22
|
end
|
data/lib/fog/network.rb
CHANGED
@@ -13,10 +13,14 @@ module Fog
|
|
13
13
|
return Fog::Network::StormOnDemand.new(attributes)
|
14
14
|
elsif providers.include?(provider)
|
15
15
|
require "fog/#{provider}/network"
|
16
|
-
|
16
|
+
begin
|
17
|
+
Fog::Network.const_get(Fog.providers[provider])
|
18
|
+
rescue
|
19
|
+
Fog.const_get(Fog.providers[provider])::Network
|
20
|
+
end.new(attributes)
|
21
|
+
else
|
22
|
+
raise ArgumentError, "#{provider} has no network service"
|
17
23
|
end
|
18
|
-
|
19
|
-
raise ArgumentError, "#{provider} has no network service"
|
20
24
|
end
|
21
25
|
|
22
26
|
def self.providers
|
data/lib/fog/orchestration.rb
CHANGED
@@ -7,13 +7,16 @@ module Fog
|
|
7
7
|
def self.new(attributes)
|
8
8
|
attributes = attributes.dup # Prevent delete from having side effects
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
|
-
|
11
10
|
if providers.include?(provider)
|
12
11
|
require "fog/#{provider}/orchestration"
|
13
|
-
|
12
|
+
begin
|
13
|
+
Fog::Orchestration.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::Orchestration
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no orchestration service"
|
14
19
|
end
|
15
|
-
|
16
|
-
raise ArgumentError, "#{provider} has no orchestration service"
|
17
20
|
end
|
18
21
|
|
19
22
|
def self.providers
|
data/lib/fog/storage.rb
CHANGED
data/lib/fog/support.rb
CHANGED
@@ -11,6 +11,13 @@ module Fog
|
|
11
11
|
if provider == :stormondemand
|
12
12
|
require "fog/support/storm_on_demand"
|
13
13
|
Fog::Support::StormOnDemand.new(attributes)
|
14
|
+
elsif providers.include?(provider)
|
15
|
+
require "fog/#{provider}/support"
|
16
|
+
begin
|
17
|
+
Fog::Support.const_get(Fog.providers[provider])
|
18
|
+
rescue
|
19
|
+
Fog.const_get(Fog.providers[provider])::Support
|
20
|
+
end.new(attributes)
|
14
21
|
else
|
15
22
|
raise ArgumentError, "#{provider} has no support service"
|
16
23
|
end
|
data/lib/fog/volume.rb
CHANGED
@@ -9,10 +9,14 @@ module Fog
|
|
9
9
|
provider = attributes.delete(:provider).to_s.downcase.to_sym
|
10
10
|
if providers.include?(provider)
|
11
11
|
require "fog/#{provider}/volume"
|
12
|
-
|
12
|
+
begin
|
13
|
+
Fog::Volume.const_get(Fog.providers[provider])
|
14
|
+
rescue
|
15
|
+
Fog.const_get(Fog.providers[provider])::Volume
|
16
|
+
end.new(attributes)
|
17
|
+
else
|
18
|
+
raise ArgumentError, "#{provider} has no volume service"
|
13
19
|
end
|
14
|
-
|
15
|
-
raise ArgumentError, "#{provider} has no identity service"
|
16
20
|
end
|
17
21
|
|
18
22
|
def self.providers
|
data/lib/fog/vpn.rb
CHANGED
@@ -11,6 +11,13 @@ module Fog
|
|
11
11
|
if provider == :stormondemand
|
12
12
|
require "fog/vpn/storm_on_demand"
|
13
13
|
Fog::VPN::StormOnDemand.new(attributes)
|
14
|
+
elsif providers.include?(provider)
|
15
|
+
require "fog/#{provider}/vpn"
|
16
|
+
begin
|
17
|
+
Fog::VPN.const_get(Fog.providers[provider])
|
18
|
+
rescue
|
19
|
+
Fog.const_get(Fog.providers[provider])::VPN
|
20
|
+
end.new(attributes)
|
14
21
|
else
|
15
22
|
raise ArgumentError, "#{provider} has no vpn service"
|
16
23
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "securerandom"
|
3
|
+
|
4
|
+
class FogTestModel < Fog::Model
|
5
|
+
identity :id
|
6
|
+
end
|
7
|
+
|
8
|
+
describe Fog::Model do
|
9
|
+
describe "#==" do
|
10
|
+
it "is not equal if one is not a Fog::Model" do
|
11
|
+
a = FogTestModel.new
|
12
|
+
b = 2
|
13
|
+
refute_equal a, b
|
14
|
+
refute_equal b, a
|
15
|
+
end
|
16
|
+
|
17
|
+
it "is equal if it is the same object" do
|
18
|
+
a = b = FogTestModel.new
|
19
|
+
assert_equal a, b
|
20
|
+
end
|
21
|
+
|
22
|
+
it "is equal if it has the same non-nil identity and the same class" do
|
23
|
+
id = SecureRandom.hex
|
24
|
+
assert_equal FogTestModel.new(:id => id), FogTestModel.new(:id => id)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "is not equal if both have nil identity, but are different objects" do
|
28
|
+
refute_equal FogTestModel.new, FogTestModel.new
|
29
|
+
end
|
30
|
+
|
31
|
+
it "is not equal if it has a different identity" do
|
32
|
+
refute_equal FogTestModel.new(:id => SecureRandom.hex),
|
33
|
+
FogTestModel.new(:id => SecureRandom.hex)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.31.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Light
|
@@ -9,202 +9,202 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-06-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: excon
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0.45'
|
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
41
|
version: '0.45'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: formatador
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0.2'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0.2'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: mime-types
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: net-scp
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '1.1'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.1'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: net-ssh
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: 2.1.3
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: 2.1.3
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: coveralls
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: minitest
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- -
|
116
|
+
- - ">="
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: minitest-stub-const
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- -
|
137
|
+
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: pry
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- -
|
144
|
+
- - ">="
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '0'
|
147
147
|
type: :development
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- -
|
151
|
+
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: rake
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- -
|
158
|
+
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0'
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- -
|
165
|
+
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: rubocop
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
|
-
- -
|
172
|
+
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
175
|
type: :development
|
176
176
|
prerelease: false
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: '0'
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
183
|
name: thor
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
|
-
- -
|
186
|
+
- - ">="
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0'
|
189
189
|
type: :development
|
190
190
|
prerelease: false
|
191
191
|
version_requirements: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
|
-
- -
|
193
|
+
- - ">="
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
- !ruby/object:Gem::Dependency
|
197
197
|
name: yard
|
198
198
|
requirement: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
|
-
- -
|
200
|
+
- - ">="
|
201
201
|
- !ruby/object:Gem::Version
|
202
202
|
version: '0'
|
203
203
|
type: :development
|
204
204
|
prerelease: false
|
205
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- -
|
207
|
+
- - ">="
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
description: Shared classes and tests for fog providers and services.
|
@@ -215,9 +215,9 @@ executables: []
|
|
215
215
|
extensions: []
|
216
216
|
extra_rdoc_files: []
|
217
217
|
files:
|
218
|
-
- .gitignore
|
219
|
-
- .rubocop.yml
|
220
|
-
- .travis.yml
|
218
|
+
- ".gitignore"
|
219
|
+
- ".rubocop.yml"
|
220
|
+
- ".travis.yml"
|
221
221
|
- CONTRIBUTING.md
|
222
222
|
- CONTRIBUTORS.md
|
223
223
|
- Gemfile
|
@@ -299,6 +299,7 @@ files:
|
|
299
299
|
- lib/tasks/test_task.rb
|
300
300
|
- spec/compute_spec.rb
|
301
301
|
- spec/connection_spec.rb
|
302
|
+
- spec/core/model_spec.rb
|
302
303
|
- spec/core/stringify_keys_spec.rb
|
303
304
|
- spec/core/whitelist_keys_spec.rb
|
304
305
|
- spec/credentials_spec.rb
|
@@ -330,23 +331,24 @@ require_paths:
|
|
330
331
|
- lib
|
331
332
|
required_ruby_version: !ruby/object:Gem::Requirement
|
332
333
|
requirements:
|
333
|
-
- -
|
334
|
+
- - ">="
|
334
335
|
- !ruby/object:Gem::Version
|
335
336
|
version: '0'
|
336
337
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
337
338
|
requirements:
|
338
|
-
- -
|
339
|
+
- - ">="
|
339
340
|
- !ruby/object:Gem::Version
|
340
341
|
version: '0'
|
341
342
|
requirements: []
|
342
343
|
rubyforge_project:
|
343
|
-
rubygems_version: 2.
|
344
|
+
rubygems_version: 2.2.2
|
344
345
|
signing_key:
|
345
346
|
specification_version: 4
|
346
347
|
summary: Shared classes and tests for fog providers and services.
|
347
348
|
test_files:
|
348
349
|
- spec/compute_spec.rb
|
349
350
|
- spec/connection_spec.rb
|
351
|
+
- spec/core/model_spec.rb
|
350
352
|
- spec/core/stringify_keys_spec.rb
|
351
353
|
- spec/core/whitelist_keys_spec.rb
|
352
354
|
- spec/credentials_spec.rb
|