fog 1.28.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +111 -0
  3. data/CONTRIBUTING.md +255 -1
  4. data/Rakefile +1 -1
  5. data/fog.gemspec +41 -44
  6. data/lib/fog.rb +1 -0
  7. data/lib/fog/bin.rb +1 -0
  8. data/lib/fog/bin/openstack.rb +2 -0
  9. data/lib/fog/cloudsigma/mock_data.rb +37 -33
  10. data/lib/fog/dnsmadeeasy/models/dns/record.rb +1 -1
  11. data/lib/fog/fogdocker/requests/compute/api_version.rb +1 -1
  12. data/lib/fog/glesys/compute.rb +9 -1
  13. data/lib/fog/glesys/models/compute/server.rb +32 -21
  14. data/lib/fog/glesys/models/compute/ssh_key.rb +28 -0
  15. data/lib/fog/glesys/models/compute/ssh_keys.rb +21 -0
  16. data/lib/fog/glesys/requests/compute/edit.rb +11 -0
  17. data/lib/fog/glesys/requests/compute/ssh_key_add.rb +11 -0
  18. data/lib/fog/glesys/requests/compute/ssh_key_list.rb +11 -0
  19. data/lib/fog/glesys/requests/compute/ssh_key_remove.rb +11 -0
  20. data/lib/fog/google/compute.rb +2 -0
  21. data/lib/fog/google/models/compute/server.rb +14 -0
  22. data/lib/fog/google/requests/compute/start_server.rb +24 -0
  23. data/lib/fog/google/requests/compute/stop_server.rb +24 -0
  24. data/lib/fog/linode/compute.rb +7 -0
  25. data/lib/fog/linode/requests/compute/image_delete.rb +42 -0
  26. data/lib/fog/linode/requests/compute/image_list.rb +64 -0
  27. data/lib/fog/linode/requests/compute/linode_disk_createfromimage.rb +37 -0
  28. data/lib/fog/linode/requests/compute/linode_disk_duplicate.rb +33 -0
  29. data/lib/fog/linode/requests/compute/linode_disk_imagize.rb +37 -0
  30. data/lib/fog/linode/requests/compute/linode_disk_resize.rb +36 -0
  31. data/lib/fog/linode/requests/compute/linode_disk_update.rb +34 -0
  32. data/lib/fog/openstack.rb +1 -0
  33. data/lib/fog/openstack/compute.rb +12 -1
  34. data/lib/fog/openstack/core.rb +159 -5
  35. data/lib/fog/openstack/docs/planning.md +270 -0
  36. data/lib/fog/openstack/examples/planning/basics.rb +53 -0
  37. data/lib/fog/openstack/models/planning/plan.rb +81 -0
  38. data/lib/fog/openstack/models/planning/plans.rb +31 -0
  39. data/lib/fog/openstack/models/planning/role.rb +29 -0
  40. data/lib/fog/openstack/models/planning/roles.rb +16 -0
  41. data/lib/fog/openstack/planning.rb +235 -0
  42. data/lib/fog/openstack/requests/compute/get_hypervisor_statistics.rb +39 -0
  43. data/lib/fog/openstack/requests/identity/check_token.rb +4 -2
  44. data/lib/fog/openstack/requests/identity/validate_token.rb +4 -2
  45. data/lib/fog/openstack/requests/planning/add_role_to_plan.rb +40 -0
  46. data/lib/fog/openstack/requests/planning/create_plan.rb +33 -0
  47. data/lib/fog/openstack/requests/planning/delete_plan.rb +23 -0
  48. data/lib/fog/openstack/requests/planning/get_plan.rb +58 -0
  49. data/lib/fog/openstack/requests/planning/get_plan_templates.rb +28 -0
  50. data/lib/fog/openstack/requests/planning/list_plans.rb +60 -0
  51. data/lib/fog/openstack/requests/planning/list_roles.rb +38 -0
  52. data/lib/fog/openstack/requests/planning/patch_plan.rb +51 -0
  53. data/lib/fog/openstack/requests/planning/remove_role_from_plan.rb +32 -0
  54. data/lib/fog/ovirt/compute.rb +10 -0
  55. data/lib/fog/ovirt/models/compute/affinity_group.rb +25 -0
  56. data/lib/fog/ovirt/models/compute/affinity_groups.rb +20 -0
  57. data/lib/fog/ovirt/models/compute/server.rb +12 -0
  58. data/lib/fog/ovirt/models/compute/volume.rb +2 -0
  59. data/lib/fog/ovirt/requests/compute/add_to_affinity_group.rb +21 -0
  60. data/lib/fog/ovirt/requests/compute/create_affinity_group.rb +18 -0
  61. data/lib/fog/ovirt/requests/compute/destroy_affinity_group.rb +19 -0
  62. data/lib/fog/ovirt/requests/compute/get_affinity_group.rb +18 -0
  63. data/lib/fog/ovirt/requests/compute/list_affinity_group_vms.rb +22 -0
  64. data/lib/fog/ovirt/requests/compute/list_affinity_groups.rb +20 -0
  65. data/lib/fog/ovirt/requests/compute/mock_files/affinitygroup.xml +8 -0
  66. data/lib/fog/ovirt/requests/compute/mock_files/affinitygroup_vms.xml +9 -0
  67. data/lib/fog/ovirt/requests/compute/mock_files/affinitygroups.xml +17 -0
  68. data/lib/fog/ovirt/requests/compute/remove_from_affinity_group.rb +21 -0
  69. data/lib/fog/ovirt/requests/compute/update_interface.rb +18 -5
  70. data/lib/fog/rackspace/docs/block_storage.md +1 -1
  71. data/lib/fog/rackspace/docs/cdn_v2.md +1 -1
  72. data/lib/fog/rackspace/docs/compute_v2.md +1 -1
  73. data/lib/fog/rackspace/docs/getting_started.md +1 -1
  74. data/lib/fog/rackspace/docs/networking_v2.md +1 -1
  75. data/lib/fog/rackspace/docs/storage.md +1 -1
  76. data/lib/fog/rackspace/examples/README.md +1 -1
  77. data/lib/fog/rackspace/mock_data.rb +48 -48
  78. data/lib/fog/rackspace/models/networking_v2/security_group.rb +32 -0
  79. data/lib/fog/rackspace/models/networking_v2/security_group_rule.rb +38 -0
  80. data/lib/fog/rackspace/models/networking_v2/security_group_rules.rb +23 -0
  81. data/lib/fog/rackspace/models/networking_v2/security_groups.rb +23 -0
  82. data/lib/fog/rackspace/networking_v2.rb +24 -7
  83. data/lib/fog/rackspace/requests/networking_v2/create_security_group.rb +12 -0
  84. data/lib/fog/rackspace/requests/networking_v2/create_security_group_rule.rb +12 -0
  85. data/lib/fog/rackspace/requests/networking_v2/delete_security_group.rb +5 -0
  86. data/lib/fog/rackspace/requests/networking_v2/delete_security_group_rule.rb +5 -0
  87. data/lib/fog/rackspace/requests/networking_v2/list_security_group_rules.rb +5 -0
  88. data/lib/fog/rackspace/requests/networking_v2/list_security_groups.rb +5 -0
  89. data/lib/fog/rackspace/requests/networking_v2/show_security_group.rb +5 -0
  90. data/lib/fog/rackspace/requests/networking_v2/show_security_group_rule.rb +5 -0
  91. data/lib/fog/rackspace/requests/networking_v2/update_security_group.rb +12 -0
  92. data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +1 -1
  93. data/lib/fog/version.rb +1 -1
  94. data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +13 -4
  95. data/lib/fog/vsphere/requests/compute/vm_clone.rb +19 -6
  96. data/lib/fog/xenserver/requests/compute/create_vdi.rb +16 -6
  97. data/lib/tasks/changelog_task.rb +2 -1
  98. data/spec/fog/account_spec.rb +1 -2
  99. data/spec/fog/billing_spec.rb +1 -2
  100. data/spec/fog/bin/atmos_spec.rb +25 -2
  101. data/spec/fog/bin/aws_spec.rb +1 -2
  102. data/spec/fog/bin/baremetalcloud_spec.rb +25 -2
  103. data/spec/fog/bin/bluebox_spec.rb +47 -2
  104. data/spec/fog/bin/brightbox_spec.rb +1 -2
  105. data/spec/fog/bin/clodo_spec.rb +1 -2
  106. data/spec/fog/bin/cloudsigma_spec.rb +1 -2
  107. data/spec/fog/bin/cloudstack_spec.rb +1 -2
  108. data/spec/fog/bin/digitalocean_spec.rb +1 -2
  109. data/spec/fog/bin/dnsimple_spec.rb +1 -2
  110. data/spec/fog/bin/dnsmadeeasy_spec.rb +1 -2
  111. data/spec/fog/bin/dreamhost_spec.rb +1 -2
  112. data/spec/fog/bin/dynect_spec.rb +1 -2
  113. data/spec/fog/bin/powerdns_spec.rb +9 -0
  114. data/spec/fog/bin_spec.rb +4 -2
  115. data/spec/fog/cdn_spec.rb +1 -2
  116. data/spec/fog/compute_spec.rb +1 -2
  117. data/spec/fog/dns_spec.rb +1 -2
  118. data/spec/fog/identity_spec.rb +1 -2
  119. data/spec/fog/image_spec.rb +1 -2
  120. data/spec/fog/metering_spec.rb +1 -2
  121. data/spec/fog/monitoring_spec.rb +1 -2
  122. data/spec/fog/network_spec.rb +1 -2
  123. data/spec/fog/orchestration_spec.rb +1 -2
  124. data/spec/fog/storage_spec.rb +1 -2
  125. data/spec/fog/support_spec.rb +1 -2
  126. data/spec/fog/volume_spec.rb +1 -2
  127. data/spec/fog/vpn_spec.rb +1 -2
  128. data/spec/fog/xml/connection_spec.rb +1 -2
  129. data/spec/helpers/bin.rb +4 -0
  130. data/spec/spec_helper.rb +15 -0
  131. data/tests/compute/helper.rb +3 -0
  132. data/tests/glesys/requests/compute/helper.rb +66 -2
  133. data/tests/glesys/requests/compute/server_tests.rb +22 -6
  134. data/tests/glesys/requests/compute/ssh_key_tests.rb +47 -0
  135. data/tests/google/credentials_tests.rb +73 -0
  136. data/tests/helper.rb +5 -1
  137. data/tests/linode/requests/compute/linode_tests.rb +76 -3
  138. data/tests/openstack/authenticate_tests.rb +10 -0
  139. data/tests/openstack/models/planning/.gitkeep +0 -0
  140. data/tests/openstack/models/planning/plan_tests.rb +51 -0
  141. data/tests/openstack/models/planning/plans_tests.rb +18 -0
  142. data/tests/openstack/models/planning/role_tests.rb +14 -0
  143. data/tests/openstack/requests/planning/.gitkeep +0 -0
  144. data/tests/openstack/requests/planning/plan_tests.rb +65 -0
  145. data/tests/openstack/requests/planning/role_tests.rb +16 -0
  146. metadata +193 -75
  147. data/lib/fog/bin/atmos.rb +0 -29
  148. data/lib/fog/bin/local.rb +0 -29
  149. data/lib/fog/local.rb +0 -1
  150. data/lib/fog/local/core.rb +0 -9
  151. data/lib/fog/local/models/storage/directories.rb +0 -33
  152. data/lib/fog/local/models/storage/directory.rb +0 -53
  153. data/lib/fog/local/models/storage/file.rb +0 -132
  154. data/lib/fog/local/models/storage/files.rb +0 -84
  155. data/lib/fog/local/storage.rb +0 -96
  156. data/tests/local/models/directories_tests.rb +0 -17
  157. data/tests/local/models/directory_tests.rb +0 -16
  158. data/tests/local/models/file_tests.rb +0 -43
  159. data/tests/local/storage_tests.rb +0 -40
@@ -0,0 +1,12 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def create_security_group(security_group)
3
+ data = {:security_group => security_group.attributes}
4
+
5
+ request(
6
+ :method => 'POST',
7
+ :body => Fog::JSON.encode(data),
8
+ :path => "security-groups",
9
+ :expects => 201
10
+ )
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def create_security_group_rule(security_group_rule)
3
+ data = {:security_group_rule => security_group_rule.attributes}
4
+
5
+ request(
6
+ :method => 'POST',
7
+ :body => Fog::JSON.encode(data),
8
+ :path => "security-group-rules",
9
+ :expects => 201
10
+ )
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def delete_security_group(id)
3
+ request(:method => 'DELETE', :path => "security-groups/#{id}", :expects => 204)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def delete_security_group_rule(id)
3
+ request(:method => 'DELETE', :path => "security-group-rules/#{id}", :expects => 204)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def list_security_group_rules
3
+ request(:method => 'GET', :path => 'security-group-rules', :expects => 200)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def list_security_groups
3
+ request(:method => 'GET', :path => 'security-groups', :expects => 200)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def show_security_group(id)
3
+ request(:method => 'GET', :path => "security-groups/#{id}", :expects => 200)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def show_security_group_rule(id)
3
+ request(:method => 'GET', :path => "security-group-rules/#{id}", :expects => 200)
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class Fog::Rackspace::NetworkingV2::Real
2
+ def update_security_group(security_group)
3
+ data = {:security_group => {:name => security_group.name}}
4
+
5
+ request(
6
+ :method => 'PUT',
7
+ :body => Fog::JSON.encode(data),
8
+ :path => "security-groups/#{security_group.id}",
9
+ :expects => 200
10
+ )
11
+ end
12
+ end
@@ -21,7 +21,7 @@ module Fog
21
21
  # http://docs.rackspace.com/files/api/v1/cf-devguide/content/Create_TempURL-d1a444.html
22
22
  def get_object_https_url(container, object, expires, options = {})
23
23
  if @rackspace_temp_url_key.nil?
24
- raise ArgumentError, "Storage must my instantiated with the :rackspace_temp_url_key option"
24
+ raise ArgumentError, "Storage must be instantiated with the :rackspace_temp_url_key option"
25
25
  end
26
26
 
27
27
  method = options[:method] || 'GET'
@@ -1,3 +1,3 @@
1
1
  module Fog
2
- VERSION = '1.28.0'
2
+ VERSION = '1.29.0'
3
3
  end
@@ -6,14 +6,22 @@ module Fog
6
6
  raise ArgumentError, "user_data can't be nil" if user_data.nil?
7
7
  custom_spec = { 'customization_spec' => Hash.new }
8
8
  user_data = YAML.load(user_data)
9
+ # hostname expects a string, REQUIRED
10
+ # netmask expects a string
11
+ # dns expects an array
12
+ # gateway expects an array
13
+ # domain expects a string, REQUIRED
14
+ # domainsuffixlist expects an array, REQUIRED
15
+ # timezone expects a string, for example Europe/Copenhagen, REQUIRED
9
16
  custom_spec['hostname'] = user_data['hostname'] if user_data.key?('hostname')
10
17
  custom_spec['ipsettings'] = { 'ip' => user_data['ip'] } if user_data.key?('ip')
11
18
  custom_spec['ipsettings']['subnetMask'] = user_data['netmask'] if user_data.key?('netmask')
12
19
  custom_spec['ipsettings']['dnsServerList'] = user_data['dns'] if user_data.key?('dns')
20
+ custom_spec['ipsettings']['gateway'] = user_data['gateway'] if user_data.key?('gateway')
13
21
  custom_spec['domain'] = user_data['domain'] if user_data.key?('domain')
14
- custom_spec['dnsSuffixList'] = user_data['domain'] if user_data.key?('domain')
22
+ custom_spec['dnsSuffixList'] = user_data['domainsuffixlist'] if user_data.key?('domainsuffixlist')
15
23
  custom_spec['time_zone'] = user_data['timezone'] if user_data.key?('timezone')
16
- custom_spec
24
+ custom_spec
17
25
  end
18
26
  end
19
27
 
@@ -26,10 +34,11 @@ module Fog
26
34
  custom_spec['ipsettings'] = { 'ip' => user_data['ip'] } if user_data.key?('ip')
27
35
  custom_spec['ipsettings']['subnetMask'] = user_data['netmask'] if user_data.key?('netmask')
28
36
  custom_spec['ipsettings']['dnsServerList'] = user_data['dns'] if user_data.key?('dns')
37
+ custom_spec['ipsettings']['gateway'] = user_data['gateway'] if user_data.key?('gateway')
29
38
  custom_spec['domain'] = user_data['domain'] if user_data.key?('domain')
30
- custom_spec['dnsSuffixList'] = user_data['domain'] if user_data.key?('domain')
39
+ custom_spec['dnsSuffixList'] = user_data['domainsuffixlist'] if user_data.key?('domainsuffixlist')
31
40
  custom_spec['time_zone'] = user_data['timezone'] if user_data.key?('timezone')
32
- custom_spec
41
+ custom_spec
33
42
  end
34
43
  end
35
44
  end
@@ -116,11 +116,21 @@ module Fog
116
116
  # Options['network']
117
117
  # Build up the config spec
118
118
  if ( options.key?('network_label') )
119
- #network_obj = datacenter_obj.networkFolder.find(options['network_label'])
120
119
  config_spec_operation = RbVmomi::VIM::VirtualDeviceConfigSpecOperation('edit')
121
- nic_backing_info = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(:deviceName => options['network_label'])
122
- #:deviceName => "Network adapter 1",
123
- #:network => network_obj)
120
+ # Get the portgroup and handle it from there.
121
+ network = get_raw_network(options['network_label'],options['datacenter'])
122
+ if ( network.kind_of? RbVmomi::VIM::DistributedVirtualPortgroup)
123
+ # Create the NIC backing for the distributed virtual portgroup
124
+ nic_backing_info = RbVmomi::VIM::VirtualEthernetCardDistributedVirtualPortBackingInfo(
125
+ :port => RbVmomi::VIM::DistributedVirtualSwitchPortConnection(
126
+ :portgroupKey => network.key,
127
+ :switchUuid => network.config.distributedVirtualSwitch.uuid
128
+ )
129
+ )
130
+ else
131
+ # Otherwise it's a non distributed port group
132
+ nic_backing_info = RbVmomi::VIM::VirtualEthernetCardNetworkBackingInfo(:deviceName => options['network_label'])
133
+ end
124
134
  connectable = RbVmomi::VIM::VirtualDeviceConnectInfo(
125
135
  :allowGuestControl => true,
126
136
  :connected => true,
@@ -161,8 +171,11 @@ module Fog
161
171
  end
162
172
  raise ArgumentError, "domain is required" unless cust_options.key?("domain")
163
173
  cust_domain = cust_options['domain']
164
- cust_ip_settings = RbVmomi::VIM::CustomizationIPSettings.new(cust_options["ipsettings"]) if cust_options.key?("ipsettings")
165
- cust_ip_settings.ip = RbVmomi::VIM::CustomizationFixedIp("ipAddress" => cust_options["ipsettings"]["ip"]) if cust_options.key?("ipsettings")
174
+ if cust_options.key?("ipsettings")
175
+ cust_ip_settings = RbVmomi::VIM::CustomizationIPSettings.new(cust_options["ipsettings"])
176
+ cust_ip_settings.ip = RbVmomi::VIM::CustomizationFixedIp("ipAddress" => cust_options["ipsettings"]["ip"])
177
+ cust_ip_settings.gateway = cust_options['ipsettings']['gateway']
178
+ end
166
179
  cust_ip_settings ||= RbVmomi::VIM::CustomizationIPSettings.new("ip" => RbVmomi::VIM::CustomizationDhcpIpGenerator.new())
167
180
  cust_ip_settings.dnsDomain = cust_domain
168
181
  cust_global_ip_settings = RbVmomi::VIM::CustomizationGlobalIPSettings.new
@@ -9,25 +9,35 @@ module Fog
9
9
  raise ArgumentError.new('Missing #type attribute') if config[:type].nil?
10
10
  raise ArgumentError.new('Missing #sharable attribute') if config[:sharable].nil?
11
11
  raise ArgumentError.new('Missing #other_config attribute') if config[:other_config].nil?
12
- if config[:storage_repository].nil? || config[:SR].nil?
13
- raise ArgumentError.new('Missing #storage_repository or #SR attribute')
12
+
13
+ if config[:storage_repository].nil? && config[:SR].nil? && config[:__sr].nil?
14
+ raise ArgumentError.new('Missing StorageRepository reference.')
14
15
  end
15
16
 
16
- if config[:storage_repository].present?
17
+ unless config[:storage_repository].nil?
17
18
  Fog::Logger.deprecation(
18
19
  'The attribute #storage_repository is deprecated. Use #SR instead.'
19
20
  )
20
21
  config[:SR] = config[:storage_repository].reference
21
22
  end
22
- if config[:name].present?
23
+
24
+ unless config[:__sr].nil?
25
+ Fog::Logger.deprecation(
26
+ 'The attribute #__sr is deprecated. Use #SR instead.'
27
+ )
28
+ config[:SR] = config[:__sr]
29
+ end
30
+
31
+ unless config[:name].nil?
23
32
  Fog::Logger.deprecation(
24
33
  'The attribute #name is deprecated. Use #name_label instead.'
25
34
  )
26
35
  config[:name_label] = config[:name]
27
36
  end
28
- if config[:description].present?
37
+
38
+ unless config[:description].nil?
29
39
  Fog::Logger.deprecation(
30
- 'The attribute storage_repository is deprecated. Use SR instead.'
40
+ 'The attribute #description is deprecated. Use #name_description instead.'
31
41
  )
32
42
  config[:name_description] = config[:description]
33
43
  end
@@ -109,6 +109,7 @@ Watchers | #{watchers}
109
109
  'Ash Wilson',
110
110
  'Benson Kalahar',
111
111
  'Brian Hartsock',
112
+ 'Chris Luo',
112
113
  'Chris Roberts',
113
114
  'Christopher Oliver',
114
115
  'Colin Hebert',
@@ -171,7 +172,7 @@ Watchers | #{watchers}
171
172
  end
172
173
 
173
174
  def last_release_sha
174
- `cat changelog.md | head -2`.split(' ').last
175
+ `cat CHANGELOG.md | head -2`.split(' ').last
175
176
  end
176
177
 
177
178
  def downloads
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
 
4
3
  describe Fog::Account do
5
4
  Fog::Account.providers.each do |provider|
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
 
4
3
  describe Fog::Billing do
5
4
  Fog::Billing.providers.each do |provider|
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -7,4 +6,28 @@ describe Atmos do
7
6
  include Fog::BinSpec
8
7
 
9
8
  let(:subject) { Atmos }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes Atmos.services, :storage
13
+ end
14
+ end
15
+
16
+ describe "#class_for" do
17
+ describe "when requesting storage service" do
18
+ it "returns correct class" do
19
+ assert_equal Fog::Storage::Atmos, Atmos.class_for(:storage)
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#[]" do
25
+ describe "when requesting storage service" do
26
+ it "returns instance" do
27
+ Fog::Storage::Atmos.stub(:new, "instance") do
28
+ assert_equal "instance", Atmos[:storage]
29
+ end
30
+ end
31
+ end
32
+ end
10
33
  end
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -7,4 +6,28 @@ describe BareMetalCloud do
7
6
  include Fog::BinSpec
8
7
 
9
8
  let(:subject) { BareMetalCloud }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes BareMetalCloud.services, :compute
13
+ end
14
+ end
15
+
16
+ describe "#class_for" do
17
+ describe "when requesting storage service" do
18
+ it "returns correct class" do
19
+ assert_equal Fog::Compute::BareMetalCloud, BareMetalCloud.class_for(:compute)
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#[]" do
25
+ describe "when requesting compute service" do
26
+ it "returns instance" do
27
+ Fog::Compute::BareMetalCloud.stub(:new, "instance") do
28
+ assert_equal "instance", BareMetalCloud[:compute]
29
+ end
30
+ end
31
+ end
32
+ end
10
33
  end
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -7,4 +6,50 @@ describe Bluebox do
7
6
  include Fog::BinSpec
8
7
 
9
8
  let(:subject) { Bluebox }
9
+
10
+ describe "#services" do
11
+ it "includes all services" do
12
+ assert_includes Bluebox.services, :compute
13
+ assert_includes Bluebox.services, :dns
14
+ assert_includes Bluebox.services, :blb
15
+ end
16
+ end
17
+
18
+ describe "#class_for" do
19
+ describe "when requesting compute service" do
20
+ it "returns correct class" do
21
+ assert_equal Fog::Compute::Bluebox, Bluebox.class_for(:compute)
22
+ end
23
+ end
24
+
25
+ describe "when requesting dns service" do
26
+ it "returns correct class" do
27
+ assert_equal Fog::DNS::Bluebox, Bluebox.class_for(:dns)
28
+ end
29
+ end
30
+
31
+ describe "when requesting blb service" do
32
+ it "returns correct class" do
33
+ assert_equal Fog::Bluebox::BLB, Bluebox.class_for(:blb)
34
+ end
35
+ end
36
+ end
37
+
38
+ describe "#[]" do
39
+ describe "when requesting compute service" do
40
+ it "returns instance" do
41
+ Fog::Compute::Bluebox.stub(:new, "instance") do
42
+ assert_equal "instance", Bluebox[:compute]
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "when requesting dns service" do
48
+ it "returns instance" do
49
+ Fog::DNS::Bluebox.stub(:new, "instance") do
50
+ assert_equal "instance", Bluebox[:dns]
51
+ end
52
+ end
53
+ end
54
+ end
10
55
  end
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4
 
@@ -1,5 +1,4 @@
1
- require "minitest/autorun"
2
- require "fog"
1
+ require "spec_helper"
3
2
  require "fog/bin"
4
3
  require "helpers/bin"
5
4