fog 1.28.0 → 1.29.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 +111 -0
- data/CONTRIBUTING.md +255 -1
- data/Rakefile +1 -1
- data/fog.gemspec +41 -44
- data/lib/fog.rb +1 -0
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/openstack.rb +2 -0
- data/lib/fog/cloudsigma/mock_data.rb +37 -33
- data/lib/fog/dnsmadeeasy/models/dns/record.rb +1 -1
- data/lib/fog/fogdocker/requests/compute/api_version.rb +1 -1
- data/lib/fog/glesys/compute.rb +9 -1
- data/lib/fog/glesys/models/compute/server.rb +32 -21
- data/lib/fog/glesys/models/compute/ssh_key.rb +28 -0
- data/lib/fog/glesys/models/compute/ssh_keys.rb +21 -0
- data/lib/fog/glesys/requests/compute/edit.rb +11 -0
- data/lib/fog/glesys/requests/compute/ssh_key_add.rb +11 -0
- data/lib/fog/glesys/requests/compute/ssh_key_list.rb +11 -0
- data/lib/fog/glesys/requests/compute/ssh_key_remove.rb +11 -0
- data/lib/fog/google/compute.rb +2 -0
- data/lib/fog/google/models/compute/server.rb +14 -0
- data/lib/fog/google/requests/compute/start_server.rb +24 -0
- data/lib/fog/google/requests/compute/stop_server.rb +24 -0
- data/lib/fog/linode/compute.rb +7 -0
- data/lib/fog/linode/requests/compute/image_delete.rb +42 -0
- data/lib/fog/linode/requests/compute/image_list.rb +64 -0
- data/lib/fog/linode/requests/compute/linode_disk_createfromimage.rb +37 -0
- data/lib/fog/linode/requests/compute/linode_disk_duplicate.rb +33 -0
- data/lib/fog/linode/requests/compute/linode_disk_imagize.rb +37 -0
- data/lib/fog/linode/requests/compute/linode_disk_resize.rb +36 -0
- data/lib/fog/linode/requests/compute/linode_disk_update.rb +34 -0
- data/lib/fog/openstack.rb +1 -0
- data/lib/fog/openstack/compute.rb +12 -1
- data/lib/fog/openstack/core.rb +159 -5
- data/lib/fog/openstack/docs/planning.md +270 -0
- data/lib/fog/openstack/examples/planning/basics.rb +53 -0
- data/lib/fog/openstack/models/planning/plan.rb +81 -0
- data/lib/fog/openstack/models/planning/plans.rb +31 -0
- data/lib/fog/openstack/models/planning/role.rb +29 -0
- data/lib/fog/openstack/models/planning/roles.rb +16 -0
- data/lib/fog/openstack/planning.rb +235 -0
- data/lib/fog/openstack/requests/compute/get_hypervisor_statistics.rb +39 -0
- data/lib/fog/openstack/requests/identity/check_token.rb +4 -2
- data/lib/fog/openstack/requests/identity/validate_token.rb +4 -2
- data/lib/fog/openstack/requests/planning/add_role_to_plan.rb +40 -0
- data/lib/fog/openstack/requests/planning/create_plan.rb +33 -0
- data/lib/fog/openstack/requests/planning/delete_plan.rb +23 -0
- data/lib/fog/openstack/requests/planning/get_plan.rb +58 -0
- data/lib/fog/openstack/requests/planning/get_plan_templates.rb +28 -0
- data/lib/fog/openstack/requests/planning/list_plans.rb +60 -0
- data/lib/fog/openstack/requests/planning/list_roles.rb +38 -0
- data/lib/fog/openstack/requests/planning/patch_plan.rb +51 -0
- data/lib/fog/openstack/requests/planning/remove_role_from_plan.rb +32 -0
- data/lib/fog/ovirt/compute.rb +10 -0
- data/lib/fog/ovirt/models/compute/affinity_group.rb +25 -0
- data/lib/fog/ovirt/models/compute/affinity_groups.rb +20 -0
- data/lib/fog/ovirt/models/compute/server.rb +12 -0
- data/lib/fog/ovirt/models/compute/volume.rb +2 -0
- data/lib/fog/ovirt/requests/compute/add_to_affinity_group.rb +21 -0
- data/lib/fog/ovirt/requests/compute/create_affinity_group.rb +18 -0
- data/lib/fog/ovirt/requests/compute/destroy_affinity_group.rb +19 -0
- data/lib/fog/ovirt/requests/compute/get_affinity_group.rb +18 -0
- data/lib/fog/ovirt/requests/compute/list_affinity_group_vms.rb +22 -0
- data/lib/fog/ovirt/requests/compute/list_affinity_groups.rb +20 -0
- data/lib/fog/ovirt/requests/compute/mock_files/affinitygroup.xml +8 -0
- data/lib/fog/ovirt/requests/compute/mock_files/affinitygroup_vms.xml +9 -0
- data/lib/fog/ovirt/requests/compute/mock_files/affinitygroups.xml +17 -0
- data/lib/fog/ovirt/requests/compute/remove_from_affinity_group.rb +21 -0
- data/lib/fog/ovirt/requests/compute/update_interface.rb +18 -5
- data/lib/fog/rackspace/docs/block_storage.md +1 -1
- data/lib/fog/rackspace/docs/cdn_v2.md +1 -1
- data/lib/fog/rackspace/docs/compute_v2.md +1 -1
- data/lib/fog/rackspace/docs/getting_started.md +1 -1
- data/lib/fog/rackspace/docs/networking_v2.md +1 -1
- data/lib/fog/rackspace/docs/storage.md +1 -1
- data/lib/fog/rackspace/examples/README.md +1 -1
- data/lib/fog/rackspace/mock_data.rb +48 -48
- data/lib/fog/rackspace/models/networking_v2/security_group.rb +32 -0
- data/lib/fog/rackspace/models/networking_v2/security_group_rule.rb +38 -0
- data/lib/fog/rackspace/models/networking_v2/security_group_rules.rb +23 -0
- data/lib/fog/rackspace/models/networking_v2/security_groups.rb +23 -0
- data/lib/fog/rackspace/networking_v2.rb +24 -7
- data/lib/fog/rackspace/requests/networking_v2/create_security_group.rb +12 -0
- data/lib/fog/rackspace/requests/networking_v2/create_security_group_rule.rb +12 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_security_group.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/delete_security_group_rule.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/list_security_group_rules.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/list_security_groups.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/show_security_group.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/show_security_group_rule.rb +5 -0
- data/lib/fog/rackspace/requests/networking_v2/update_security_group.rb +12 -0
- data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +1 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +13 -4
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +19 -6
- data/lib/fog/xenserver/requests/compute/create_vdi.rb +16 -6
- data/lib/tasks/changelog_task.rb +2 -1
- data/spec/fog/account_spec.rb +1 -2
- data/spec/fog/billing_spec.rb +1 -2
- data/spec/fog/bin/atmos_spec.rb +25 -2
- data/spec/fog/bin/aws_spec.rb +1 -2
- data/spec/fog/bin/baremetalcloud_spec.rb +25 -2
- data/spec/fog/bin/bluebox_spec.rb +47 -2
- data/spec/fog/bin/brightbox_spec.rb +1 -2
- data/spec/fog/bin/clodo_spec.rb +1 -2
- data/spec/fog/bin/cloudsigma_spec.rb +1 -2
- data/spec/fog/bin/cloudstack_spec.rb +1 -2
- data/spec/fog/bin/digitalocean_spec.rb +1 -2
- data/spec/fog/bin/dnsimple_spec.rb +1 -2
- data/spec/fog/bin/dnsmadeeasy_spec.rb +1 -2
- data/spec/fog/bin/dreamhost_spec.rb +1 -2
- data/spec/fog/bin/dynect_spec.rb +1 -2
- data/spec/fog/bin/powerdns_spec.rb +9 -0
- data/spec/fog/bin_spec.rb +4 -2
- data/spec/fog/cdn_spec.rb +1 -2
- data/spec/fog/compute_spec.rb +1 -2
- data/spec/fog/dns_spec.rb +1 -2
- data/spec/fog/identity_spec.rb +1 -2
- data/spec/fog/image_spec.rb +1 -2
- data/spec/fog/metering_spec.rb +1 -2
- data/spec/fog/monitoring_spec.rb +1 -2
- data/spec/fog/network_spec.rb +1 -2
- data/spec/fog/orchestration_spec.rb +1 -2
- data/spec/fog/storage_spec.rb +1 -2
- data/spec/fog/support_spec.rb +1 -2
- data/spec/fog/volume_spec.rb +1 -2
- data/spec/fog/vpn_spec.rb +1 -2
- data/spec/fog/xml/connection_spec.rb +1 -2
- data/spec/helpers/bin.rb +4 -0
- data/spec/spec_helper.rb +15 -0
- data/tests/compute/helper.rb +3 -0
- data/tests/glesys/requests/compute/helper.rb +66 -2
- data/tests/glesys/requests/compute/server_tests.rb +22 -6
- data/tests/glesys/requests/compute/ssh_key_tests.rb +47 -0
- data/tests/google/credentials_tests.rb +73 -0
- data/tests/helper.rb +5 -1
- data/tests/linode/requests/compute/linode_tests.rb +76 -3
- data/tests/openstack/authenticate_tests.rb +10 -0
- data/tests/openstack/models/planning/.gitkeep +0 -0
- data/tests/openstack/models/planning/plan_tests.rb +51 -0
- data/tests/openstack/models/planning/plans_tests.rb +18 -0
- data/tests/openstack/models/planning/role_tests.rb +14 -0
- data/tests/openstack/requests/planning/.gitkeep +0 -0
- data/tests/openstack/requests/planning/plan_tests.rb +65 -0
- data/tests/openstack/requests/planning/role_tests.rb +16 -0
- metadata +193 -75
- data/lib/fog/bin/atmos.rb +0 -29
- data/lib/fog/bin/local.rb +0 -29
- data/lib/fog/local.rb +0 -1
- data/lib/fog/local/core.rb +0 -9
- data/lib/fog/local/models/storage/directories.rb +0 -33
- data/lib/fog/local/models/storage/directory.rb +0 -53
- data/lib/fog/local/models/storage/file.rb +0 -132
- data/lib/fog/local/models/storage/files.rb +0 -84
- data/lib/fog/local/storage.rb +0 -96
- data/tests/local/models/directories_tests.rb +0 -17
- data/tests/local/models/directory_tests.rb +0 -16
- data/tests/local/models/file_tests.rb +0 -43
- 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,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
|
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'
|
data/lib/fog/version.rb
CHANGED
@@ -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['
|
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['
|
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
|
-
|
122
|
-
|
123
|
-
|
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
|
-
|
165
|
-
|
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
|
-
|
13
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
37
|
+
|
38
|
+
unless config[:description].nil?
|
29
39
|
Fog::Logger.deprecation(
|
30
|
-
'The attribute
|
40
|
+
'The attribute #description is deprecated. Use #name_description instead.'
|
31
41
|
)
|
32
42
|
config[:name_description] = config[:description]
|
33
43
|
end
|
data/lib/tasks/changelog_task.rb
CHANGED
@@ -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
|
175
|
+
`cat CHANGELOG.md | head -2`.split(' ').last
|
175
176
|
end
|
176
177
|
|
177
178
|
def downloads
|
data/spec/fog/account_spec.rb
CHANGED
data/spec/fog/billing_spec.rb
CHANGED
data/spec/fog/bin/atmos_spec.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
require "
|
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
|
data/spec/fog/bin/aws_spec.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
require "
|
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 "
|
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
|
data/spec/fog/bin/clodo_spec.rb
CHANGED