solusvm 1.0.0.beta3 → 1.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.travis.yml +10 -4
- data/LICENSE +1 -1
- data/README.markdown +1 -1
- data/lib/solusvm.rb +2 -2
- data/lib/solusvm/base.rb +10 -32
- data/lib/solusvm/cli/base_cli.rb +30 -5
- data/lib/solusvm/cli/client_cli.rb +9 -9
- data/lib/solusvm/cli/general_cli.rb +5 -5
- data/lib/solusvm/cli/node_cli.rb +8 -8
- data/lib/solusvm/cli/reseller_cli.rb +7 -7
- data/lib/solusvm/cli/server_cli.rb +31 -31
- data/lib/solusvm/solusvm_errors.rb +22 -0
- data/lib/solusvm/version.rb +1 -1
- data/solusvm.gemspec +2 -0
- data/test/cli/test_base_cli.rb +32 -0
- data/test/cli/test_client_cli.rb +38 -21
- data/test/cli/test_general_cli.rb +13 -4
- data/test/cli/test_node_cli.rb +28 -14
- data/test/cli/test_reseller_cli.rb +69 -58
- data/test/cli/test_server_cli.rb +128 -39
- data/test/solusvm/test_base.rb +103 -0
- data/test/{test_cli.rb → solusvm/test_cli.rb} +1 -1
- data/test/solusvm/test_client.rb +109 -0
- data/test/solusvm/test_general.rb +69 -0
- data/test/{test_hash.rb → solusvm/test_hash.rb} +1 -1
- data/test/solusvm/test_node.rb +120 -0
- data/test/solusvm/test_reseller.rb +93 -0
- data/test/solusvm/test_server.rb +253 -0
- data/test/{helper.rb → test_helper.rb} +19 -4
- data/test/test_solusvm.rb +1 -1
- data/test/vcr_cassettes/base/invalid_key.yml +19 -0
- data/test/vcr_cassettes/base/invalid_status.yml +19 -0
- data/test/vcr_cassettes/base/nonexistent_node.yml +19 -0
- data/test/vcr_cassettes/base/parse_response.yml +28 -0
- data/test/vcr_cassettes/base/statusmsg.yml +28 -0
- data/test/vcr_cassettes/base/successful.yml +45 -0
- data/test/vcr_cassettes/base/unauthorized_ip.yml +19 -0
- data/test/vcr_cassettes/client/authenticate.yml +37 -0
- data/test/vcr_cassettes/client/change_password.yml +39 -0
- data/test/vcr_cassettes/client/create.yml +42 -0
- data/test/vcr_cassettes/client/delete.yml +37 -0
- data/test/vcr_cassettes/client/exists.yml +20 -0
- data/test/vcr_cassettes/client/list.yml +66 -0
- data/test/vcr_cassettes/general/isos.yml +38 -0
- data/test/vcr_cassettes/general/plans.yml +38 -0
- data/test/vcr_cassettes/general/templates.yml +38 -0
- data/test/vcr_cassettes/node/available_ips.yml +41 -0
- data/test/vcr_cassettes/node/ids.yml +21 -0
- data/test/vcr_cassettes/node/list.yml +38 -0
- data/test/vcr_cassettes/node/statistics.yml +32 -0
- data/test/vcr_cassettes/node/virtualservers.yml +67 -0
- data/test/vcr_cassettes/node/xenresources.yml +22 -0
- data/test/vcr_cassettes/reseller/change_resources.yml +27 -0
- data/test/vcr_cassettes/reseller/create.yml +27 -0
- data/test/vcr_cassettes/reseller/delete.yml +15 -0
- data/test/vcr_cassettes/reseller/info.yml +27 -0
- data/test/vcr_cassettes/reseller/list.yml +27 -0
- data/test/vcr_cassettes/server/.yml +1017 -0
- data/test/vcr_cassettes/server/boot.yml +15 -0
- data/test/vcr_cassettes/server/change_bootorder.yml +15 -0
- data/test/vcr_cassettes/server/change_consolepass.yml +16 -0
- data/test/vcr_cassettes/server/change_hostname.yml +15 -0
- data/test/vcr_cassettes/server/change_owner.yml +15 -0
- data/test/vcr_cassettes/server/change_plan.yml +15 -0
- data/test/vcr_cassettes/server/change_rootpassword.yml +15 -0
- data/test/vcr_cassettes/server/change_vncpass.yml +15 -0
- data/test/vcr_cassettes/server/console.yml +15 -0
- data/test/vcr_cassettes/server/create.yml +27 -0
- data/test/vcr_cassettes/server/exists.yml +15 -0
- data/test/vcr_cassettes/server/info.yml +27 -0
- data/test/vcr_cassettes/server/info_all.yml +15 -0
- data/test/vcr_cassettes/server/mountiso.yml +15 -0
- data/test/vcr_cassettes/server/network_disable.yml +15 -0
- data/test/vcr_cassettes/server/network_enable.yml +15 -0
- data/test/vcr_cassettes/server/pae_disable.yml +15 -0
- data/test/vcr_cassettes/server/pae_enable.yml +15 -0
- data/test/vcr_cassettes/server/reboot.yml +15 -0
- data/test/vcr_cassettes/server/rebuild.yml +15 -0
- data/test/vcr_cassettes/server/resume.yml +15 -0
- data/test/vcr_cassettes/server/shutdown.yml +15 -0
- data/test/vcr_cassettes/server/status.yml +15 -0
- data/test/vcr_cassettes/server/suspend.yml +15 -0
- data/test/vcr_cassettes/server/terminate.yml +27 -0
- data/test/vcr_cassettes/server/tun_disable.yml +15 -0
- data/test/vcr_cassettes/server/tun_enable.yml +15 -0
- data/test/vcr_cassettes/server/unmountiso.yml +15 -0
- data/test/vcr_cassettes/server/vnc.yml +15 -0
- metadata +220 -156
- data/.rbenv-version +0 -1
- data/.rvmrc +0 -47
- data/test/fixtures/base_bad_key.txt +0 -1
- data/test/fixtures/base_node_does_not_exist.txt +0 -1
- data/test/fixtures/base_unauthorized_ip.txt +0 -1
- data/test/fixtures/client_authenticate_error.txt +0 -2
- data/test/fixtures/client_authenticate_success.txt +0 -2
- data/test/fixtures/client_change_password_error.txt +0 -2
- data/test/fixtures/client_change_password_success.txt +0 -4
- data/test/fixtures/client_create_error.txt +0 -2
- data/test/fixtures/client_create_success.txt +0 -7
- data/test/fixtures/client_delete_success.txt +0 -2
- data/test/fixtures/client_exists_success.txt +0 -2
- data/test/fixtures/client_list_success.txt +0 -14
- data/test/fixtures/client_list_success_empty.txt +0 -2
- data/test/fixtures/error.txt +0 -2
- data/test/fixtures/general_isos_success.txt +0 -3
- data/test/fixtures/general_plans_success.txt +0 -3
- data/test/fixtures/general_templates_success.txt +0 -3
- data/test/fixtures/node_list_all_ips_available.txt +0 -4
- data/test/fixtures/node_list_all_ips_not_available.txt +0 -4
- data/test/fixtures/node_statistics_success.txt +0 -14
- data/test/fixtures/node_virtualservers_success.txt +0 -15
- data/test/fixtures/node_virtualservers_success_empty.txt +0 -2
- data/test/fixtures/node_xenresources_success.txt +0 -4
- data/test/fixtures/nodes_ids_success.txt +0 -3
- data/test/fixtures/nodes_list_success.txt +0 -3
- data/test/fixtures/reseller_change_resources_success.txt +0 -16
- data/test/fixtures/reseller_create_success.txt +0 -23
- data/test/fixtures/reseller_delete_success.txt +0 -2
- data/test/fixtures/reseller_info_success.txt +0 -23
- data/test/fixtures/reseller_list_success.txt +0 -3
- data/test/fixtures/server_boot_success.txt +0 -2
- data/test/fixtures/server_bootorder_success.txt +0 -2
- data/test/fixtures/server_change_consolepass_success.txt +0 -3
- data/test/fixtures/server_change_owner_success.txt +0 -2
- data/test/fixtures/server_change_success.txt +0 -2
- data/test/fixtures/server_change_vncpass_success.txt +0 -3
- data/test/fixtures/server_console_success.txt +0 -7
- data/test/fixtures/server_create_success.txt +0 -10
- data/test/fixtures/server_exists_success.txt +0 -2
- data/test/fixtures/server_hostname_success.txt +0 -3
- data/test/fixtures/server_info_success.txt +0 -10
- data/test/fixtures/server_infoall_success.txt +0 -13
- data/test/fixtures/server_mountiso_success.txt +0 -2
- data/test/fixtures/server_network_disable_success.txt +0 -2
- data/test/fixtures/server_network_enable_success.txt +0 -2
- data/test/fixtures/server_pae_success.txt +0 -2
- data/test/fixtures/server_reboot_success.txt +0 -2
- data/test/fixtures/server_rebuild_success.txt +0 -2
- data/test/fixtures/server_resume_success.txt +0 -2
- data/test/fixtures/server_rootpassword_success.txt +0 -3
- data/test/fixtures/server_shutdown_success.txt +0 -2
- data/test/fixtures/server_status_success.txt +0 -2
- data/test/fixtures/server_suspend_success.txt +0 -2
- data/test/fixtures/server_terminate_success.txt +0 -2
- data/test/fixtures/server_tun_disable_success.txt +0 -2
- data/test/fixtures/server_tun_enable_success.txt +0 -2
- data/test/fixtures/server_unmountiso_success.txt +0 -2
- data/test/fixtures/server_vnc_success.txt +0 -6
- data/test/test_base.rb +0 -115
- data/test/test_client.rb +0 -98
- data/test/test_general.rb +0 -70
- data/test/test_node.rb +0 -112
- data/test/test_reseller.rb +0 -80
- data/test/test_server.rb +0 -227
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestClient < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
setup_solusvm
|
7
|
+
@client = Solusvm::Client.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_create
|
11
|
+
options = {:username => 'vps123', :password=> '123456', :email=> 'email@address.com', :firstname => 'phill', :lastname => 'smith'}
|
12
|
+
VCR.use_cassette "client/create" do
|
13
|
+
@client.create(options)
|
14
|
+
end
|
15
|
+
params = @client.returned_parameters
|
16
|
+
assert_equal options[:username], params['username']
|
17
|
+
assert_equal options[:firstname], params['firstname']
|
18
|
+
assert_equal options[:lastname], params['lastname']
|
19
|
+
assert_equal options[:password], params['password']
|
20
|
+
assert_equal options[:email], params['email']
|
21
|
+
assert_equal 'Successfully added client', params['statusmsg']
|
22
|
+
assert_equal 'success', params['status']
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_create_fail
|
26
|
+
VCR.use_cassette "client/create" do
|
27
|
+
assert ! @client.create
|
28
|
+
end
|
29
|
+
assert_equal 'Empty username field', @client.statusmsg
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_exists
|
33
|
+
VCR.use_cassette "client/exists" do
|
34
|
+
assert @client.exists?("vps123")
|
35
|
+
end
|
36
|
+
assert_equal 'Client exists', @client.statusmsg
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_change_password
|
40
|
+
VCR.use_cassette "client/change_password" do
|
41
|
+
assert @client.change_password("vps123","123456")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_change_password_fail
|
46
|
+
VCR.use_cassette "client/change_password" do
|
47
|
+
assert ! @client.change_password("vps13","thecake")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_authenticate
|
52
|
+
VCR.use_cassette "client/authenticate" do
|
53
|
+
assert @client.authenticate('u', 'p')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_authenticate_fail
|
58
|
+
VCR.use_cassette "client/authenticate" do
|
59
|
+
assert ! @client.authenticate('u', 'notp')
|
60
|
+
end
|
61
|
+
assert_equal 'invalid username or password', @client.statusmsg
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_delete
|
65
|
+
VCR.use_cassette "client/delete" do
|
66
|
+
assert @client.delete("vps123")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_delete_fail
|
71
|
+
VCR.use_cassette "client/delete" do
|
72
|
+
assert !@client.delete("novps")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_list
|
77
|
+
Solusvm.config("api_id1", api_login[:key], :url => 'http://www.example.com/api')
|
78
|
+
VCR.use_cassette "client/list" do
|
79
|
+
@client.list
|
80
|
+
end
|
81
|
+
|
82
|
+
client = @client.returned_parameters["clients"]["client"].first
|
83
|
+
|
84
|
+
assert_equal "1", client["id"]
|
85
|
+
assert_equal "vps123", client["username"]
|
86
|
+
assert_equal "vps123@email.com", client["email"]
|
87
|
+
assert_equal "phill", client["firstname"]
|
88
|
+
assert_equal "smith", client["lastname"]
|
89
|
+
assert_equal "VPS Co", client["company"]
|
90
|
+
assert_equal "Client", client["level"]
|
91
|
+
assert_equal "Active", client["status"]
|
92
|
+
assert_equal "2009-01-01", client["created"]
|
93
|
+
assert_equal "2010-04-23", client["lastlogin"]
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_list_empty
|
97
|
+
Solusvm.config("api_id2", api_login[:key], :url => 'http://www.example.com/api')
|
98
|
+
VCR.use_cassette "client/list" do
|
99
|
+
assert @client.list.empty?
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_list_fail
|
104
|
+
Solusvm.config("api_id3", api_login[:key], :url => 'http://www.example.com/api')
|
105
|
+
VCR.use_cassette "client/list" do
|
106
|
+
assert_nil @client.list
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestGeneral < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
setup_solusvm
|
6
|
+
@general = Solusvm::General.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_templates
|
10
|
+
VCR.use_cassette "general/templates" do
|
11
|
+
assert_equal %w(template1 template2 template3), @general.templates('xen')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# TODO: Refactor so that the lib is not validating server types
|
16
|
+
def test_templates_empty
|
17
|
+
VCR.use_cassette "general/templates" do
|
18
|
+
assert !@general.templates('openvz')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_templates_with_invalid_type
|
23
|
+
VCR.use_cassette "general/templates" do
|
24
|
+
assert_raise Solusvm::SolusvmError do
|
25
|
+
@general.templates('badserver')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_plans
|
31
|
+
VCR.use_cassette "general/plans" do
|
32
|
+
assert_equal %w(plan1 plan2 plan3 plan4), @general.plans('xen')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_plans_empty
|
37
|
+
VCR.use_cassette "general/plans" do
|
38
|
+
assert !@general.plans('openvz')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_plans_with_invalid_type
|
43
|
+
VCR.use_cassette "general/plans" do
|
44
|
+
assert_raise Solusvm::SolusvmError do
|
45
|
+
@general.plans('whatever')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_isos
|
51
|
+
VCR.use_cassette "general/isos" do
|
52
|
+
assert_equal %w(iso1 iso2 iso3), @general.isos('xen')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_isos_empty
|
57
|
+
VCR.use_cassette "general/isos" do
|
58
|
+
assert !@general.isos('openvz')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_isos_with_invalid_type
|
63
|
+
VCR.use_cassette "general/isos" do
|
64
|
+
assert_raise Solusvm::SolusvmError do
|
65
|
+
@general.isos('whatever')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestNode < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
setup_solusvm
|
6
|
+
@nodes = Solusvm::Node.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_list
|
10
|
+
VCR.use_cassette "node/list" do
|
11
|
+
assert_equal %w(node1 node2 node3 node4), @nodes.list('xen')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_list_empty
|
16
|
+
VCR.use_cassette "node/list" do
|
17
|
+
assert !@nodes.list('openvz')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_nodes_with_invalid_type
|
22
|
+
assert_raise Solusvm::SolusvmError do
|
23
|
+
@nodes.list('whatever')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_statistics
|
28
|
+
VCR.use_cassette "node/statistics" do
|
29
|
+
@nodes.statistics(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
node_statistics = @nodes.returned_parameters
|
33
|
+
|
34
|
+
assert_equal '1000', node_statistics['freedisk']
|
35
|
+
assert_equal '22', node_statistics['sshport']
|
36
|
+
assert_equal 'city', node_statistics['city']
|
37
|
+
assert_equal 'name', node_statistics['name']
|
38
|
+
assert_equal '0', node_statistics['freeips']
|
39
|
+
assert_equal 'country', node_statistics['country']
|
40
|
+
assert_equal 'x86_64', node_statistics['arch']
|
41
|
+
assert_equal '1', node_statistics['id']
|
42
|
+
assert_equal '10', node_statistics['freememory']
|
43
|
+
assert_equal '2', node_statistics['virtualservers']
|
44
|
+
assert_equal '127.0.0.1', node_statistics['ip']
|
45
|
+
assert_equal 'hostname.com', node_statistics['hostname']
|
46
|
+
assert_equal 'success', node_statistics['status']
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_list_all_ips_available
|
50
|
+
Solusvm.config("api_id1", api_login[:key], :url => 'http://www.example.com/api')
|
51
|
+
VCR.use_cassette "node/available_ips" do
|
52
|
+
assert_equal %w(123.123.123.123 124.124.124.124 125.125.125.125).sort, @nodes.available_ips(1).sort
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_list_all_ips_not_available
|
57
|
+
Solusvm.config("api_id2", api_login[:key], :url => 'http://www.example.com/api')
|
58
|
+
VCR.use_cassette "node/available_ips" do
|
59
|
+
assert @nodes.available_ips(1).empty?
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_ids
|
64
|
+
VCR.use_cassette "node/ids" do
|
65
|
+
assert_equal %w(nodeid1 nodeid2 nodeid3 nodeid4), @nodes.ids('xen')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_nodes_ids_error
|
70
|
+
assert_raise Solusvm::SolusvmError do
|
71
|
+
@nodes.ids('whatever')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_virtualservers
|
76
|
+
Solusvm.config("api_id1", api_login[:key], :url => 'http://www.example.com/api')
|
77
|
+
VCR.use_cassette "node/virtualservers" do
|
78
|
+
@nodes.virtualservers(1)
|
79
|
+
end
|
80
|
+
|
81
|
+
server = @nodes.returned_parameters["virtualservers"]["virtualserver"].first
|
82
|
+
|
83
|
+
assert_equal "theid", server["vserverid"]
|
84
|
+
assert_equal "thexid", server["ctid-xid"]
|
85
|
+
assert_equal "theclientid", server["clientid"]
|
86
|
+
assert_equal "theip", server["ipaddress"]
|
87
|
+
assert_equal "thehostname", server["hostname"]
|
88
|
+
assert_equal "thetemplate", server["template"]
|
89
|
+
assert_equal "thediskspace", server["hdd"]
|
90
|
+
assert_equal "thememory", server["memory"]
|
91
|
+
assert_equal "theswap", server["swap-burst"]
|
92
|
+
assert_equal "thetype", server["type"]
|
93
|
+
assert_equal "themac", server["mac"]
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_virtualservers_empty
|
97
|
+
Solusvm.config("api_id2", api_login[:key], :url => 'http://www.example.com/api')
|
98
|
+
VCR.use_cassette "node/virtualservers" do
|
99
|
+
assert @nodes.virtualservers(1).empty?
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_virtualservers_fail
|
104
|
+
Solusvm.config("api_id3", api_login[:key], :url => 'http://www.example.com/api')
|
105
|
+
VCR.use_cassette "node/virtualservers" do
|
106
|
+
assert_nil @nodes.virtualservers(1)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_xenresources
|
111
|
+
VCR.use_cassette "node/xenresources" do
|
112
|
+
@nodes.xenresources(1)
|
113
|
+
end
|
114
|
+
|
115
|
+
node_resources = @nodes.returned_parameters
|
116
|
+
|
117
|
+
assert_equal 'thefreememory', node_resources['freememory']
|
118
|
+
assert_equal 'thefreehdd', node_resources['freehdd']
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestReseller < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
setup_solusvm
|
7
|
+
@reseller = Solusvm::Reseller.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_create
|
11
|
+
options = {:username => 'reseller123', :password=> '123456', :email=> 'reseller3@email.com', :firstname => 'Phill', :lastname => 'Smith'}
|
12
|
+
|
13
|
+
VCR.use_cassette "reseller/create" do
|
14
|
+
@reseller.create(options)
|
15
|
+
end
|
16
|
+
|
17
|
+
params = @reseller.returned_parameters
|
18
|
+
|
19
|
+
assert params
|
20
|
+
assert_equal options[:username], params['username']
|
21
|
+
assert_equal options[:firstname], params['firstname']
|
22
|
+
assert_equal options[:lastname], params['lastname']
|
23
|
+
assert_equal options[:password], params['password']
|
24
|
+
assert_equal options[:email], params['email']
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_create_fail
|
28
|
+
VCR.use_cassette "reseller/create" do
|
29
|
+
assert ! @reseller.create
|
30
|
+
end
|
31
|
+
assert_equal 'error message', @reseller.statusmsg
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_change_resources
|
35
|
+
options = {:maxvps => 10}
|
36
|
+
VCR.use_cassette "reseller/change_resources" do
|
37
|
+
@reseller.change_resources("vps123", options)
|
38
|
+
end
|
39
|
+
|
40
|
+
params = @reseller.returned_parameters
|
41
|
+
|
42
|
+
assert params
|
43
|
+
assert "10", params['maxvps']
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_change_resources_fail
|
47
|
+
VCR.use_cassette "reseller/change_resources" do
|
48
|
+
assert !@reseller.change_resources("vps13")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_info
|
53
|
+
VCR.use_cassette "reseller/info" do
|
54
|
+
@reseller.info("vps123")
|
55
|
+
end
|
56
|
+
|
57
|
+
params = @reseller.returned_parameters
|
58
|
+
|
59
|
+
assert params
|
60
|
+
assert_equal "reseller123", params['username']
|
61
|
+
assert_equal "Phill", params['firstname']
|
62
|
+
assert_equal "Smith", params['lastname']
|
63
|
+
assert_equal "123456", params['password']
|
64
|
+
assert_equal "reseller3@email.com", params['email']
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_info_fail
|
68
|
+
VCR.use_cassette "reseller/info" do
|
69
|
+
assert !@reseller.info("vps13")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_list
|
74
|
+
Solusvm.config("api_id1", api_login[:key], :url => 'http://www.example.com/api')
|
75
|
+
VCR.use_cassette "reseller/list" do
|
76
|
+
assert_equal %w(username1 username2 username3), @reseller.list
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_list_empty
|
81
|
+
Solusvm.config("api_id2", api_login[:key], :url => 'http://www.example.com/api')
|
82
|
+
VCR.use_cassette "reseller/list" do
|
83
|
+
assert !@reseller.list
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_delete
|
88
|
+
VCR.use_cassette "reseller/delete" do
|
89
|
+
assert @reseller.delete("vps123")
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
@@ -0,0 +1,253 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestServer < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
setup_solusvm
|
6
|
+
@server = Solusvm::Server.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_create
|
10
|
+
options = {:hostname => 'server.hostname.com', :type => 'xen', :username => 'bob', :password => '123456',
|
11
|
+
:node => 'node1', :plan => 'plan1', :template => 'mytpl', :ips => 1}
|
12
|
+
hostname = options.delete(:hostname)
|
13
|
+
password = options.delete(:password)
|
14
|
+
VCR.use_cassette "server/create" do
|
15
|
+
@server.create(hostname, password, options)
|
16
|
+
end
|
17
|
+
actual = @server.returned_parameters
|
18
|
+
assert_equal hostname, actual['hostname']
|
19
|
+
assert_equal options[:password], actual['rootpassword']
|
20
|
+
assert_equal '100', actual['vserverid']
|
21
|
+
assert_equal 'console-123', actual['consoleuser']
|
22
|
+
assert_equal '123456', actual['consolepassword']
|
23
|
+
assert_equal '123.123.123.123', actual['mainipaddress']
|
24
|
+
assert_equal 'vm101|101', actual['virtid']
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_create_error
|
28
|
+
VCR.use_cassette "server/create" do
|
29
|
+
@server.create('', '')
|
30
|
+
end
|
31
|
+
assert ! @server.successful?
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_rebuild
|
35
|
+
VCR.use_cassette "server/rebuild" do
|
36
|
+
assert @server.rebuild(1, "mytpl")
|
37
|
+
end
|
38
|
+
assert_equal 'Virtual server is being rebuilt', @server.statusmsg
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_boot
|
42
|
+
VCR.use_cassette "server/boot" do
|
43
|
+
assert @server.boot(1)
|
44
|
+
end
|
45
|
+
assert_equal 'Virtual server booted', @server.statusmsg
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_reboot
|
49
|
+
VCR.use_cassette "server/reboot" do
|
50
|
+
assert @server.reboot(1)
|
51
|
+
end
|
52
|
+
assert_equal 'Virtual server rebooted', @server.statusmsg
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_suspend
|
56
|
+
VCR.use_cassette "server/suspend" do
|
57
|
+
assert @server.suspend(1)
|
58
|
+
end
|
59
|
+
assert_equal 'Virtual server suspended', @server.statusmsg
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_resume
|
63
|
+
VCR.use_cassette "server/resume" do
|
64
|
+
assert @server.resume(1)
|
65
|
+
end
|
66
|
+
assert_equal 'Virtual server unsuspended', @server.statusmsg
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_shutdown
|
70
|
+
VCR.use_cassette "server/shutdown" do
|
71
|
+
assert @server.shutdown(1)
|
72
|
+
end
|
73
|
+
assert_equal 'Virtual server shutdown', @server.statusmsg
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_terminate
|
77
|
+
VCR.use_cassette "server/terminate" do
|
78
|
+
assert @server.terminate(1)
|
79
|
+
assert_equal 'Virtual server terminated', @server.statusmsg
|
80
|
+
|
81
|
+
assert @server.terminate(1, true)
|
82
|
+
assert_equal 'Virtual server terminated', @server.statusmsg
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_tun_enable
|
87
|
+
VCR.use_cassette "server/tun_enable" do
|
88
|
+
assert @server.tun_enable(1)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_tun_disable
|
93
|
+
VCR.use_cassette "server/tun_disable" do
|
94
|
+
assert @server.tun_disable(1)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_network_enable
|
99
|
+
VCR.use_cassette "server/network_enable" do
|
100
|
+
assert @server.network_enable(1)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_network_disable
|
105
|
+
VCR.use_cassette "server/network_disable" do
|
106
|
+
assert @server.network_disable(1)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_pae_enable
|
111
|
+
VCR.use_cassette "server/pae_enable" do
|
112
|
+
assert @server.pae_enable(1)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_pae_disable
|
117
|
+
VCR.use_cassette "server/pae_disable" do
|
118
|
+
assert @server.pae_disable(1)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_exists
|
123
|
+
VCR.use_cassette "server/exists" do
|
124
|
+
assert @server.exists?(1)
|
125
|
+
end
|
126
|
+
assert_equal 'Virtual server exists', @server.statusmsg
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_status
|
130
|
+
VCR.use_cassette "server/status" do
|
131
|
+
assert_equal 'online', @server.status(1)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_add_ip
|
136
|
+
#flunk "This is broken on the SolusVM API Level"
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_change_plan
|
140
|
+
VCR.use_cassette "server/change_plan" do
|
141
|
+
assert @server.change_plan(1, 'newplan')
|
142
|
+
end
|
143
|
+
assert_equal 'Virtual server updated', @server.statusmsg
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_change_owner
|
147
|
+
VCR.use_cassette "server/change_owner" do
|
148
|
+
assert @server.change_owner(1, 2)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_change_consolepass
|
153
|
+
VCR.use_cassette "server/change_consolepass" do
|
154
|
+
assert @server.change_consolepass(1, "thepassword")
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_change_vncpass
|
159
|
+
VCR.use_cassette "server/change_vncpass" do
|
160
|
+
assert @server.change_vncpass(1, "thepassword")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def test_change_rootpassword
|
165
|
+
VCR.use_cassette "server/change_rootpassword" do
|
166
|
+
assert @server.change_rootpassword(1, "thepassword")
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def test_change_bootorder
|
171
|
+
VCR.use_cassette "server/change_bootorder" do
|
172
|
+
assert @server.change_bootorder(1, :c)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def test_change_hostname
|
177
|
+
VCR.use_cassette "server/change_hostname" do
|
178
|
+
assert @server.change_hostname(1, "thehostname")
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_info
|
183
|
+
VCR.use_cassette "server/info" do
|
184
|
+
assert @server.info(1, true)
|
185
|
+
end
|
186
|
+
VCR.use_cassette "server/info" do
|
187
|
+
@server.info(1)
|
188
|
+
end
|
189
|
+
info = @server.returned_parameters
|
190
|
+
assert_equal '1', info['vserverid']
|
191
|
+
assert_equal '1', info['ctid-xid']
|
192
|
+
assert_equal '1', info['clientid']
|
193
|
+
assert_equal 'host.example.com', info['hostname']
|
194
|
+
assert_equal '123.123.123.123', info['ipaddress']
|
195
|
+
assert_equal 'vps1', info['template']
|
196
|
+
assert_equal '123456', info['hdd']
|
197
|
+
assert_equal '123456', info['memory']
|
198
|
+
assert_equal 'swp', info['swap-burst']
|
199
|
+
assert_equal 'xenhvm', info['type']
|
200
|
+
end
|
201
|
+
|
202
|
+
def test_vnc
|
203
|
+
VCR.use_cassette "server/vnc" do
|
204
|
+
@server.vnc(1)
|
205
|
+
end
|
206
|
+
info = @server.returned_parameters
|
207
|
+
assert_equal 'thetype', info['type']
|
208
|
+
assert_equal 'thevncip', info['vncip']
|
209
|
+
assert_equal 'thevncport', info['vncport']
|
210
|
+
assert_equal 'thevncpassword', info['vncpassword']
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_console
|
214
|
+
VCR.use_cassette "server/console" do
|
215
|
+
@server.console(1)
|
216
|
+
end
|
217
|
+
info = @server.returned_parameters
|
218
|
+
assert_equal 'thetype', info['type']
|
219
|
+
assert_equal 'theconsoleip', info['consoleip']
|
220
|
+
assert_equal 'theconsoleport', info['consoleport']
|
221
|
+
assert_equal 'theconsolepassword', info['consolepassword']
|
222
|
+
assert_equal 'theconsoleusername', info['consoleusername']
|
223
|
+
end
|
224
|
+
|
225
|
+
def test_info_all
|
226
|
+
VCR.use_cassette "server/info_all" do
|
227
|
+
@server.info_all(1)
|
228
|
+
end
|
229
|
+
info = @server.returned_parameters
|
230
|
+
assert_equal "success", info["status"]
|
231
|
+
assert_equal "123.123.123.123", info["mainipaddress"]
|
232
|
+
assert_equal "tydeus", info["node"]
|
233
|
+
assert_equal "openvz", info["type"]
|
234
|
+
assert_equal "16106127360000,5370261749139,10735865610861,33", info["bandwidth"]
|
235
|
+
assert_equal "1073741824,187097088,886644736,17", info["memory"]
|
236
|
+
assert_equal "236223201280,103640707072,132582494208,44", info["hdd"]
|
237
|
+
assert_equal "/graphs/9/214/214-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["trafficgraph"]
|
238
|
+
assert_equal "/graphs/9/214/214-load-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["loadgraph"]
|
239
|
+
assert_equal "/graphs/9/214/214-mem-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["memorygraph"]
|
240
|
+
end
|
241
|
+
|
242
|
+
def test_mountiso
|
243
|
+
VCR.use_cassette "server/mountiso" do
|
244
|
+
assert @server.mountiso(1, "theiso")
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_unmountiso
|
249
|
+
VCR.use_cassette "server/unmountiso" do
|
250
|
+
assert @server.unmountiso(1)
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|