rackconnect 0.0.1
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +44 -0
- data/Rakefile +5 -0
- data/lib/rackconnect.rb +14 -0
- data/lib/rackconnect/lib/auth.rb +27 -0
- data/lib/rackconnect/lib/bulk_nodes.rb +48 -0
- data/lib/rackconnect/lib/bulkable_model.rb +22 -0
- data/lib/rackconnect/lib/constants.rb +6 -0
- data/lib/rackconnect/lib/model.rb +72 -0
- data/lib/rackconnect/lib/request.rb +52 -0
- data/lib/rackconnect/lib/singleton_model.rb +19 -0
- data/lib/rackconnect/models/cloud_network.rb +7 -0
- data/lib/rackconnect/models/load_balancer_pool.rb +8 -0
- data/lib/rackconnect/models/load_balancer_pool_details.rb +8 -0
- data/lib/rackconnect/models/load_balancer_pool_node.rb +8 -0
- data/lib/rackconnect/models/load_balancer_pool_node_details.rb +10 -0
- data/lib/rackconnect/models/public_ip.rb +8 -0
- data/lib/rackconnect/models/server_group.rb +8 -0
- data/lib/rackconnect/models/server_group_details.rb +8 -0
- data/lib/rackconnect/models/server_group_node.rb +8 -0
- data/lib/rackconnect/models/server_group_node_details.rb +10 -0
- data/lib/rackconnect/version.rb +3 -0
- data/rackconnect.gemspec +29 -0
- data/spec/rackconnect/models/cloud_network_spec.rb +25 -0
- data/spec/rackconnect/models/load_balancer_pool_details_spec.rb +25 -0
- data/spec/rackconnect/models/load_balancer_pool_node_details.rb +23 -0
- data/spec/rackconnect/models/load_balancer_pool_node_details_spec.rb +45 -0
- data/spec/rackconnect/models/load_balancer_pool_node_spec.rb +37 -0
- data/spec/rackconnect/models/load_balancer_pool_spec.rb +39 -0
- data/spec/rackconnect/models/public_ip_spec.rb +45 -0
- data/spec/rackconnect/models/server_group_details_spec.rb +14 -0
- data/spec/rackconnect/models/server_group_node_details_spec.rb +45 -0
- data/spec/rackconnect/models/server_group_node_spec.rb +38 -0
- data/spec/rackconnect/models/server_group_spec.rb +53 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/vcr/apiary/auth.yml +76 -0
- data/spec/vcr/apiary/lbpn_create.yml +52 -0
- data/spec/vcr/apiary/lbpnd_get_details.yml +86 -0
- data/spec/vcr/apiary/load_balancer_bulk_add_nodes.yml +58 -0
- data/spec/vcr/apiary/load_balancer_bulk_remove_nodes.yml +97 -0
- data/spec/vcr/apiary/load_balancer_pool.yml +57 -0
- data/spec/vcr/apiary/load_balancer_pool_details.yml +57 -0
- data/spec/vcr/apiary/load_balancer_pool_node.yml +48 -0
- data/spec/vcr/apiary/load_balancer_pool_node_destroy.yml +42 -0
- data/spec/vcr/apiary/load_balancer_pool_node_details.yml +57 -0
- data/spec/vcr/apiary/load_balancer_pool_nodes.yml +60 -0
- data/spec/vcr/apiary/load_balancer_pools.yml +85 -0
- data/spec/vcr/apiary/network.yml +51 -0
- data/spec/vcr/apiary/networks.yml +53 -0
- data/spec/vcr/apiary/pool.yml +57 -0
- data/spec/vcr/apiary/pools.yml +85 -0
- data/spec/vcr/apiary/public_ip.yml +66 -0
- data/spec/vcr/apiary/public_ip_create.yml +70 -0
- data/spec/vcr/apiary/public_ip_destroy.yml +42 -0
- data/spec/vcr/apiary/public_ips.yml +68 -0
- data/spec/vcr/apiary/public_ips_for_server.yml +68 -0
- data/spec/vcr/apiary/server_group.yml +57 -0
- data/spec/vcr/apiary/server_group_bulk_add_nodes.yml +58 -0
- data/spec/vcr/apiary/server_group_bulk_remove_nodes.yml +97 -0
- data/spec/vcr/apiary/server_group_create.yml +60 -0
- data/spec/vcr/apiary/server_group_destroy.yml +42 -0
- data/spec/vcr/apiary/server_group_details.yml +92 -0
- data/spec/vcr/apiary/server_group_node.yml +48 -0
- data/spec/vcr/apiary/server_group_node_destroy.yml +42 -0
- data/spec/vcr/apiary/server_group_node_details.yml +57 -0
- data/spec/vcr/apiary/server_group_nodes.yml +60 -0
- data/spec/vcr/apiary/server_groups.yml +85 -0
- data/spec/vcr/apiary/sgnd_for_server.yml +66 -0
- data/spec/vcr/apiary/sgnn_create.yml +52 -0
- metadata +260 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class Rackconnect::ServerGroupDetails
|
|
2
|
+
include Rackconnect::Model # Curiously; *not Singleton*
|
|
3
|
+
|
|
4
|
+
endpoint_vars :group_id
|
|
5
|
+
endpoint { "/server_groups/#{group_id}/nodes/details" }
|
|
6
|
+
attributes :created, :cloud_server, :id, :server_group, :status, :status_detail, :updated
|
|
7
|
+
|
|
8
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class Rackconnect::ServerGroupNodeDetails
|
|
2
|
+
include Rackconnect::SingletonModel
|
|
3
|
+
include Rackconnect::BulkableModel
|
|
4
|
+
|
|
5
|
+
attributes :created, :cloud_server, :id, :server_group, :status, :status_detail, :updated
|
|
6
|
+
endpoint_vars :group_id, :node_id
|
|
7
|
+
endpoint { "/server_groups/#{group_id}/nodes/#{node_id}/details" }
|
|
8
|
+
bulk_path "/server_groups/nodes/details"
|
|
9
|
+
|
|
10
|
+
end
|
data/rackconnect.gemspec
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'rackconnect/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "rackconnect"
|
|
8
|
+
spec.version = Rackconnect::VERSION
|
|
9
|
+
spec.authors = ["Matt Darby"]
|
|
10
|
+
spec.email = ["matt.darby@rackspace.com"]
|
|
11
|
+
spec.summary = "API Wrapper for RackConnect v3 service from Rackspace"
|
|
12
|
+
spec.description = "API Wrapper for RackConnect v3 service from Rackspace"
|
|
13
|
+
spec.homepage = ""
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
23
|
+
spec.add_development_dependency "pry"
|
|
24
|
+
spec.add_development_dependency "rspec"
|
|
25
|
+
spec.add_development_dependency "webmock"
|
|
26
|
+
spec.add_development_dependency "vcr"
|
|
27
|
+
|
|
28
|
+
spec.add_dependency "rest-client"
|
|
29
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::CloudNetwork do
|
|
4
|
+
|
|
5
|
+
let(:networks) do
|
|
6
|
+
VCR.use_cassette('networks') do
|
|
7
|
+
Rackconnect::CloudNetwork.all
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
let(:network) do
|
|
12
|
+
VCR.use_cassette('network') do
|
|
13
|
+
Rackconnect::CloudNetwork.find(networks.first.id)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "is indexable" do
|
|
18
|
+
expect(networks.count).to eq(1)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "is findable" do
|
|
22
|
+
expect(network.nil?).to eq(false)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::LoadBalancerPoolDetails do
|
|
4
|
+
let(:pools) do
|
|
5
|
+
VCR.use_cassette('pools') do
|
|
6
|
+
Rackconnect::LoadBalancerPool.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:pool) do
|
|
11
|
+
VCR.use_cassette('pool') do
|
|
12
|
+
Rackconnect::LoadBalancerPool.find(pools.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:load_balancer_pool_details) do
|
|
17
|
+
VCR.use_cassette('load_balancer_pool_details') do
|
|
18
|
+
Rackconnect::LoadBalancerPoolDetails.all(pool_id: pool.id)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "is reachable" do
|
|
23
|
+
expect(load_balancer_pool_details.nil?).to eq(false)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::LoadBalancerPoolNodeDetails do
|
|
4
|
+
let(:load_balancer_pool_node_details) do
|
|
5
|
+
VCR.use_cassette('load_balancer_pool_node_details') do
|
|
6
|
+
Rackconnect::Cloudload_balancer_pool_detail.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:load_balancer_pool_detail) do
|
|
11
|
+
VCR.use_cassette('load_balancer_pool_detail') do
|
|
12
|
+
Rackconnect::Cloudload_balancer_pool_detail.find(load_balancer_pool_node_details.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(load_balancer_pool_node_details.count).to eq(1)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(load_balancer_pool_detail.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::LoadBalancerPoolNodeDetails do
|
|
4
|
+
let(:pools) do
|
|
5
|
+
VCR.use_cassette('pools') do
|
|
6
|
+
Rackconnect::LoadBalancerPool.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:pool) do
|
|
11
|
+
VCR.use_cassette('pool') do
|
|
12
|
+
Rackconnect::LoadBalancerPool.find(pools.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:load_balancer_pool_nodes) do
|
|
17
|
+
VCR.use_cassette('load_balancer_pool_nodes') do
|
|
18
|
+
Rackconnect::LoadBalancerPoolNode.all
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
let(:load_balancer_pool_node) do
|
|
23
|
+
VCR.use_cassette('load_balancer_pool_node') do
|
|
24
|
+
Rackconnect::LoadBalancerPoolNode.find(load_balancer_pool_nodes.first.id)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
let(:load_balancer_pool_node_details) do
|
|
29
|
+
VCR.use_cassette('load_balancer_pool_node_details') do
|
|
30
|
+
Rackconnect::LoadBalancerPoolNodeDetails.all(pool_id: pool.id, node_id: load_balancer_pool_node.id)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "is gettable" do
|
|
35
|
+
expect(load_balancer_pool_node_details.nil?).to eq(false)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "can get details for a server" do
|
|
39
|
+
VCR.use_cassette('lbpnd_get_details') do
|
|
40
|
+
id = "1860451d-fb89-45b8-b54e-151afceb50e5"
|
|
41
|
+
expect(Rackconnect::LoadBalancerPoolNodeDetails.for_server(id).created.nil?).to eq(false)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::LoadBalancerPoolNode do
|
|
4
|
+
let(:load_balancer_pool_nodes) do
|
|
5
|
+
VCR.use_cassette('load_balancer_pool_nodes') do
|
|
6
|
+
Rackconnect::LoadBalancerPoolNode.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:load_balancer_pool_node) do
|
|
11
|
+
VCR.use_cassette('load_balancer_pool_node') do
|
|
12
|
+
Rackconnect::LoadBalancerPoolNode.find(load_balancer_pool_nodes.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(load_balancer_pool_nodes.count).to eq(3)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(load_balancer_pool_node.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "is creatable" do
|
|
25
|
+
VCR.use_cassette('lbpn_create') do
|
|
26
|
+
# TODO: This is a bit bothersome?
|
|
27
|
+
obj = Rackconnect::LoadBalancerPoolNode.create({})
|
|
28
|
+
expect(obj.id.nil?).to be(false)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "is destroyable" do
|
|
33
|
+
VCR.use_cassette('load_balancer_pool_node_destroy') do
|
|
34
|
+
expect(load_balancer_pool_node.destroy).to be(true)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::LoadBalancerPool do
|
|
4
|
+
let(:load_balancer_pools) do
|
|
5
|
+
VCR.use_cassette('load_balancer_pools') do
|
|
6
|
+
Rackconnect::LoadBalancerPool.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:load_balancer_pool) do
|
|
11
|
+
VCR.use_cassette('load_balancer_pool') do
|
|
12
|
+
Rackconnect::LoadBalancerPool.find(load_balancer_pools.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(load_balancer_pools.count).to eq(3)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(load_balancer_pool.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "can bulk add nodes" do
|
|
25
|
+
VCR.use_cassette('load_balancer_bulk_add_nodes') do
|
|
26
|
+
nodes = load_balancer_pool.add_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
27
|
+
expect(nodes.count).to eq(2)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "can bulk remove nodes" do
|
|
32
|
+
VCR.use_cassette('load_balancer_bulk_remove_nodes') do
|
|
33
|
+
nodes = load_balancer_pool.add_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
34
|
+
resp = load_balancer_pool.remove_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
35
|
+
expect(resp).to eq(true)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::PublicIP do
|
|
4
|
+
let(:public_ips) do
|
|
5
|
+
VCR.use_cassette('public_ips') do
|
|
6
|
+
Rackconnect::PublicIP.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:public_ip) do
|
|
11
|
+
VCR.use_cassette('public_ip') do
|
|
12
|
+
Rackconnect::PublicIP.find(public_ips.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(public_ips.count).to eq(1)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(public_ip.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "can get details for a server" do
|
|
25
|
+
VCR.use_cassette('public_ips_for_server') do
|
|
26
|
+
id = "07426958-1ebf-4c38-b032-d456820ca21a"
|
|
27
|
+
expect(Rackconnect::PublicIP.for_server(id).created.nil?).to eq(false)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "is creatable" do
|
|
32
|
+
VCR.use_cassette('public_ip_create') do
|
|
33
|
+
# TODO: This is a bit bothersome?
|
|
34
|
+
obj = Rackconnect::PublicIP.create({})
|
|
35
|
+
expect(obj.id.nil?).to be(false)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "is destroyable" do
|
|
40
|
+
VCR.use_cassette('public_ip_destroy') do
|
|
41
|
+
expect(public_ip.destroy).to be(true)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::ServerGroupDetails do
|
|
4
|
+
let(:server_group_details) do
|
|
5
|
+
VCR.use_cassette('server_group_details') do
|
|
6
|
+
Rackconnect::ServerGroupDetails.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "is findable" do
|
|
11
|
+
expect(server_group_details.count).to eq(3)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::ServerGroupNodeDetails do
|
|
4
|
+
let(:server_groups) do
|
|
5
|
+
VCR.use_cassette('server_groups') do
|
|
6
|
+
Rackconnect::ServerGroup.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:server_group) do
|
|
11
|
+
VCR.use_cassette('server_group') do
|
|
12
|
+
Rackconnect::ServerGroup.find(server_groups.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:server_group_nodes) do
|
|
17
|
+
VCR.use_cassette('server_group_nodes') do
|
|
18
|
+
Rackconnect::ServerGroupNode.all
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
let(:server_group_node) do
|
|
23
|
+
VCR.use_cassette('server_group_node') do
|
|
24
|
+
Rackconnect::ServerGroupNode.find(server_group_nodes.first.id)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
let(:server_group_node_details) do
|
|
29
|
+
VCR.use_cassette('server_group_node_details') do
|
|
30
|
+
Rackconnect::ServerGroupNodeDetails.all(group_id: server_group.id, node_id: server_group_node.id)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "is gettable" do
|
|
35
|
+
expect(server_group_node_details.nil?).to eq(false)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "can get details for a server" do
|
|
39
|
+
VCR.use_cassette('sgnd_for_server') do
|
|
40
|
+
id = "07426958-1ebf-4c38-b032-d456820ca21a"
|
|
41
|
+
expect(Rackconnect::ServerGroupNodeDetails.for_server(id).created.nil?).to eq(false)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::ServerGroupNode do
|
|
4
|
+
let(:server_group_nodes) do
|
|
5
|
+
VCR.use_cassette('server_group_nodes') do
|
|
6
|
+
Rackconnect::ServerGroupNode.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:server_group_node) do
|
|
11
|
+
VCR.use_cassette('server_group_node') do
|
|
12
|
+
Rackconnect::ServerGroupNode.find(server_group_nodes.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(server_group_nodes.count).to eq(3)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(server_group_node.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "is creatable" do
|
|
25
|
+
VCR.use_cassette('sgnn_create') do
|
|
26
|
+
# TODO: This is a bit bothersome?
|
|
27
|
+
obj = Rackconnect::ServerGroupNode.create({})
|
|
28
|
+
expect(obj.id.nil?).to be(false)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "is destroyable" do
|
|
33
|
+
VCR.use_cassette('server_group_node_destroy') do
|
|
34
|
+
expect(server_group_node.destroy).to be(true)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Rackconnect::ServerGroup do
|
|
4
|
+
let(:server_groups) do
|
|
5
|
+
VCR.use_cassette('server_groups') do
|
|
6
|
+
Rackconnect::ServerGroup.all
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
let(:server_group) do
|
|
11
|
+
VCR.use_cassette('server_group') do
|
|
12
|
+
Rackconnect::ServerGroup.find(server_groups.first.id)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "is indexable" do
|
|
17
|
+
expect(server_groups.count).to eq(3)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "is findable" do
|
|
21
|
+
expect(server_group.nil?).to eq(false)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "is creatable" do
|
|
25
|
+
VCR.use_cassette('server_group_create') do
|
|
26
|
+
# TODO: This is a bit bothersome?
|
|
27
|
+
obj = Rackconnect::ServerGroup.create({})
|
|
28
|
+
expect(obj.id.nil?).to be(false)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "is destroyable" do
|
|
33
|
+
VCR.use_cassette('server_group_destroy') do
|
|
34
|
+
expect(server_group.destroy).to be(true)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "can bulk add nodes" do
|
|
39
|
+
VCR.use_cassette('server_group_bulk_add_nodes') do
|
|
40
|
+
nodes = server_group.add_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
41
|
+
expect(nodes.count).to eq(2)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "can bulk remove nodes" do
|
|
46
|
+
VCR.use_cassette('server_group_bulk_remove_nodes') do
|
|
47
|
+
nodes = server_group.add_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
48
|
+
resp = server_group.remove_nodes(["d95ae0c4-6ab8-4873-b82f-f8433840cff2"])
|
|
49
|
+
expect(resp).to eq(true)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|