solusvm 0.10.1 → 1.0.0.beta
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.
- data/README.markdown +75 -25
- data/bin/solusvm +3 -153
- data/lib/solusvm/base.rb +17 -10
- data/lib/solusvm/cli/base_cli.rb +47 -0
- data/lib/solusvm/cli/client_cli.rb +49 -0
- data/lib/solusvm/cli/general_cli.rb +28 -0
- data/lib/solusvm/cli/node_cli.rb +43 -0
- data/lib/solusvm/cli/reseller_cli.rb +73 -0
- data/lib/solusvm/cli/server_cli.rb +168 -0
- data/lib/solusvm/cli.rb +22 -0
- data/lib/solusvm/client.rb +26 -12
- data/lib/solusvm/general.rb +25 -17
- data/lib/solusvm/node.rb +60 -0
- data/lib/solusvm/reseller.rb +72 -0
- data/lib/solusvm/server.rb +116 -2
- data/lib/solusvm/version.rb +1 -1
- data/lib/solusvm.rb +8 -8
- data/solusvm.gemspec +3 -0
- data/test/cli/test_client_cli.rb +80 -0
- data/test/cli/test_general_cli.rb +35 -0
- data/test/cli/test_node_cli.rb +64 -0
- data/test/cli/test_reseller_cli.rb +139 -0
- data/test/cli/test_server_cli.rb +267 -0
- data/test/fixtures/client_delete_success.txt +2 -0
- data/test/fixtures/client_list_success.txt +14 -0
- data/test/fixtures/client_list_success_empty.txt +2 -0
- data/test/fixtures/general_isos_success.txt +3 -0
- data/test/fixtures/general_node_virtualservers_success.txt +15 -0
- data/test/fixtures/general_node_virtualservers_success_empty.txt +2 -0
- data/test/fixtures/general_node_xenresources_success.txt +4 -0
- data/test/fixtures/general_nodes_ids_success.txt +3 -0
- data/test/fixtures/general_plans_success.txt +3 -0
- data/test/fixtures/reseller_change_resources_success.txt +16 -0
- data/test/fixtures/reseller_create_success.txt +23 -0
- data/test/fixtures/reseller_delete_success.txt +2 -0
- data/test/fixtures/reseller_info_success.txt +23 -0
- data/test/fixtures/reseller_list_success.txt +3 -0
- data/test/fixtures/server_bootorder_success.txt +2 -0
- data/test/fixtures/server_change_consolepass_success.txt +3 -0
- data/test/fixtures/server_change_owner_success.txt +2 -0
- data/test/fixtures/server_change_vncpass_success.txt +3 -0
- data/test/fixtures/server_console_success.txt +7 -0
- data/test/fixtures/server_hostname_success.txt +3 -0
- data/test/fixtures/server_mountiso_success.txt +2 -0
- data/test/fixtures/server_network_disable_success.txt +2 -0
- data/test/fixtures/server_network_enable_success.txt +2 -0
- data/test/fixtures/server_pae_success.txt +2 -0
- data/test/fixtures/server_rootpassword_success.txt +3 -0
- data/test/fixtures/server_status_success.txt +2 -0
- data/test/fixtures/server_tun_disable_success.txt +2 -0
- data/test/fixtures/server_tun_enable_success.txt +2 -0
- data/test/fixtures/server_unmountiso_success.txt +2 -0
- data/test/fixtures/server_vnc_success.txt +6 -0
- data/test/helper.rb +6 -0
- data/test/test_cli.rb +17 -0
- data/test/test_client.rb +50 -6
- data/test/test_general.rb +24 -48
- data/test/test_node.rb +107 -0
- data/test/test_reseller.rb +75 -0
- data/test/test_server.rb +95 -1
- metadata +132 -17
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'solusvm/cli'
|
3
|
+
|
4
|
+
class TestClientCli < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
|
+
# something was moved around.
|
9
|
+
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_delegate_client_create_to_client
|
13
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
14
|
+
Solusvm::Client.stubs(:new => mock{ expects(:create).with() do |options|
|
15
|
+
expected = {
|
16
|
+
:username => "theusername",
|
17
|
+
:password => "thepassword",
|
18
|
+
:email => "theemail",
|
19
|
+
:firstname => "thefirstname",
|
20
|
+
:lastname => "thelastname",
|
21
|
+
:company => "thecompany"
|
22
|
+
}
|
23
|
+
|
24
|
+
expected.all? { |k,v| options[k] == v }
|
25
|
+
|
26
|
+
end.returns("theresult")
|
27
|
+
})
|
28
|
+
|
29
|
+
$stdout.expects(:puts).with("theresult")
|
30
|
+
Solusvm::Cli.start(cli_expand_base_arguments([
|
31
|
+
"client", "create",
|
32
|
+
"--username", "theusername",
|
33
|
+
"--password", "thepassword",
|
34
|
+
"--email", "theemail",
|
35
|
+
"--firstname", "thefirstname",
|
36
|
+
"--lastname", "thelastname",
|
37
|
+
"--company", "thecompany"
|
38
|
+
]))
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_should_delegate_client_change_password_to_client
|
42
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
43
|
+
Solusvm::Client.stubs(:new => mock{ expects(:change_password).with("theusername", "thepassword").returns("theresult") })
|
44
|
+
|
45
|
+
$stdout.expects(:puts).with("theresult")
|
46
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["client", "change-password", "theusername", "thepassword"]))
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_should_delegate_client_authenticate_to_client
|
50
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
51
|
+
Solusvm::Client.stubs(:new => mock{ expects(:authenticate).with("theusername", "thepassword").returns("theresult") })
|
52
|
+
|
53
|
+
$stdout.expects(:puts).with("theresult")
|
54
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["client", "authenticate", "theusername", "thepassword"]))
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_should_delegate_client_check_exists_to_client
|
58
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
59
|
+
Solusvm::Client.stubs(:new => mock{ expects(:exists?).with("theusername").returns("theresult") })
|
60
|
+
|
61
|
+
$stdout.expects(:puts).with("theresult")
|
62
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["client", "check-exists", "theusername"]))
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_delegate_client_delete_to_client
|
66
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
67
|
+
Solusvm::Client.stubs(:new => mock{ expects(:delete).with("theusername").returns("theresult") })
|
68
|
+
|
69
|
+
$stdout.expects(:puts).with("theresult")
|
70
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["client", "delete", "theusername"]))
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_should_delegate_client_list_to_client
|
74
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
75
|
+
Solusvm::Client.stubs(:new => mock{ expects(:list).returns("theresult") })
|
76
|
+
|
77
|
+
$stdout.expects(:puts).with("theresult")
|
78
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["client", "list"]))
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'solusvm/cli'
|
3
|
+
|
4
|
+
class TestGeneralCli < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
|
+
# something was moved around.
|
9
|
+
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_delegate_templates_to_general
|
13
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
14
|
+
Solusvm::General.stubs(:new => mock{ expects(:templates).with("type").returns("thetemplates")})
|
15
|
+
|
16
|
+
$stdout.expects(:puts).with("thetemplates")
|
17
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["general", "templates", "type"]))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_should_delegate_plans_to_general
|
21
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
22
|
+
Solusvm::General.stubs(:new => mock{ expects(:plans).with("type").returns("theplans")})
|
23
|
+
|
24
|
+
$stdout.expects(:puts).with("theplans")
|
25
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["general", "plans", "type"]))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_should_delegate_isos_to_general
|
29
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
30
|
+
Solusvm::General.stubs(:new => mock{ expects(:isos).with("type").returns("theisos")})
|
31
|
+
|
32
|
+
$stdout.expects(:puts).with("theisos")
|
33
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["general", "isos", "type"]))
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'solusvm/cli'
|
3
|
+
|
4
|
+
class TestNodeCli < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
|
+
# something was moved around.
|
9
|
+
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_delegate_node_available_ips_to_node
|
13
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
14
|
+
Solusvm::Node.stubs(:new => mock{ expects(:available_ips).with("thevserverid").returns(["ip1", "ip2"]) })
|
15
|
+
|
16
|
+
$stdout.expects(:puts).with("ip1\nip2")
|
17
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "available-ips", "thevserverid"]))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_should_delegate_node_stats_to_node
|
21
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
22
|
+
Solusvm::Node.stubs(:new => mock{ expects(:statistics).with("thevserverid").returns({
|
23
|
+
:stat1 => "val1", :stat2 => "val2"
|
24
|
+
})})
|
25
|
+
|
26
|
+
$stdout.expects(:puts).with("stat1 => val1\nstat2 => val2")
|
27
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "stats", "thevserverid"]))
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_delegate_node_xenresources_to_node
|
31
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
32
|
+
Solusvm::Node.stubs(:new => mock{ expects(:xenresources).with("thevserverid").returns({
|
33
|
+
:stat1 => "val1", :stat2 => "val2"
|
34
|
+
})})
|
35
|
+
|
36
|
+
$stdout.expects(:puts).with("stat1 => val1\nstat2 => val2")
|
37
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "xenresources", "thevserverid"]))
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_should_delegate_node_virtualservers_to_node
|
41
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
42
|
+
Solusvm::Node.stubs(:new => mock{ expects(:virtualservers).with("thevserverid").returns("thedata")})
|
43
|
+
|
44
|
+
$stdout.expects(:puts).with("thedata")
|
45
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "virtualservers", "thevserverid"]))
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_should_delegate_nodes_list_to_node
|
49
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
50
|
+
Solusvm::Node.stubs(:new => mock{ expects(:list).with("type").returns("thenodes")})
|
51
|
+
|
52
|
+
$stdout.expects(:puts).with("thenodes")
|
53
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "list", "type"]))
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_should_delegate_nodes_ids_to_node
|
57
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
58
|
+
Solusvm::Node.stubs(:new => mock{ expects(:ids).with("type").returns("thenodes")})
|
59
|
+
|
60
|
+
$stdout.expects(:puts).with("thenodes")
|
61
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["node", "list-ids", "type"]))
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'solusvm/cli'
|
3
|
+
|
4
|
+
class TestResellerCli < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
|
+
# something was moved around.
|
9
|
+
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_delegate_reseller_create_to_reseller
|
13
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
14
|
+
Solusvm::Reseller.stubs(:new => mock{ expects(:create).with() do |options|
|
15
|
+
expected = {
|
16
|
+
:username => "theusername",
|
17
|
+
:password => "thepassword",
|
18
|
+
:email => "theemail",
|
19
|
+
:firstname => "thefirstname",
|
20
|
+
:lastname => "thelastname",
|
21
|
+
:company => "thecompany",
|
22
|
+
:usernameprefix => "theusernameprefix",
|
23
|
+
:maxvps => "themaxvps",
|
24
|
+
:maxusers => "themaxusers",
|
25
|
+
:maxmem => "themaxmem",
|
26
|
+
:maxburst => "themaxburst",
|
27
|
+
:maxdisk => "themaxdisk",
|
28
|
+
:maxbw => "themaxbw",
|
29
|
+
:maxipv4 => "themaxipv4",
|
30
|
+
:maxipv6 => "themaxipv6",
|
31
|
+
:nodegroups => "thenodegroups",
|
32
|
+
:mediagroups => "themediagroups",
|
33
|
+
:openvz => "theopenvz",
|
34
|
+
:xenpv => "thexenpv",
|
35
|
+
:xenhvm => "thexenhvm",
|
36
|
+
:kvm => "thekvm"
|
37
|
+
}
|
38
|
+
|
39
|
+
expected.all? { |k,v| options[k] == v }
|
40
|
+
|
41
|
+
end.returns("theresult")
|
42
|
+
})
|
43
|
+
|
44
|
+
$stdout.expects(:puts).with("theresult")
|
45
|
+
Solusvm::Cli.start(cli_expand_base_arguments([
|
46
|
+
"reseller", "create",
|
47
|
+
"--username", "theusername",
|
48
|
+
"--password", "thepassword",
|
49
|
+
"--email", "theemail",
|
50
|
+
"--firstname", "thefirstname",
|
51
|
+
"--lastname", "thelastname",
|
52
|
+
"--company", "thecompany",
|
53
|
+
"--usernameprefix", "theusernameprefix",
|
54
|
+
"--maxvps", "themaxvps",
|
55
|
+
"--maxusers", "themaxusers",
|
56
|
+
"--maxmem", "themaxmem",
|
57
|
+
"--maxburst", "themaxburst",
|
58
|
+
"--maxdisk", "themaxdisk",
|
59
|
+
"--maxbw", "themaxbw",
|
60
|
+
"--maxipv4", "themaxipv4",
|
61
|
+
"--maxipv6", "themaxipv6",
|
62
|
+
"--nodegroups", "thenodegroups",
|
63
|
+
"--mediagroups", "themediagroups",
|
64
|
+
"--openvz", "theopenvz",
|
65
|
+
"--xenpv", "thexenpv",
|
66
|
+
"--xenhvm", "thexenhvm",
|
67
|
+
"--kvm", "thekvm"
|
68
|
+
]))
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_should_delegate_reseller_change_resources_to_reseller
|
72
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
73
|
+
Solusvm::Reseller.stubs(:new => mock{ expects(:change_resources).with() do |options|
|
74
|
+
expected = {
|
75
|
+
:maxvps => "themaxvps",
|
76
|
+
:maxusers => "themaxusers",
|
77
|
+
:maxmem => "themaxmem",
|
78
|
+
:maxburst => "themaxburst",
|
79
|
+
:maxdisk => "themaxdisk",
|
80
|
+
:maxbw => "themaxbw",
|
81
|
+
:maxipv4 => "themaxipv4",
|
82
|
+
:maxipv6 => "themaxipv6",
|
83
|
+
:nodegroups => "thenodegroups",
|
84
|
+
:mediagroups => "themediagroups",
|
85
|
+
:openvz => "theopenvz",
|
86
|
+
:xenpv => "thexenpv",
|
87
|
+
:xenhvm => "thexenhvm",
|
88
|
+
:kvm => "thekvm"
|
89
|
+
}
|
90
|
+
|
91
|
+
expected.all? { |k,v| options[k] == v }
|
92
|
+
|
93
|
+
end.returns("theresult")
|
94
|
+
})
|
95
|
+
|
96
|
+
$stdout.expects(:puts).with("theresult")
|
97
|
+
Solusvm::Cli.start(cli_expand_base_arguments([
|
98
|
+
"reseller", "change-resources",
|
99
|
+
"--maxvps", "themaxvps",
|
100
|
+
"--maxusers", "themaxusers",
|
101
|
+
"--maxmem", "themaxmem",
|
102
|
+
"--maxburst", "themaxburst",
|
103
|
+
"--maxdisk", "themaxdisk",
|
104
|
+
"--maxbw", "themaxbw",
|
105
|
+
"--maxipv4", "themaxipv4",
|
106
|
+
"--maxipv6", "themaxipv6",
|
107
|
+
"--nodegroups", "thenodegroups",
|
108
|
+
"--mediagroups", "themediagroups",
|
109
|
+
"--openvz", "theopenvz",
|
110
|
+
"--xenpv", "thexenpv",
|
111
|
+
"--xenhvm", "thexenhvm",
|
112
|
+
"--kvm", "thekvm"
|
113
|
+
]))
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_should_delegate_reseller_info_to_reseller
|
117
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
118
|
+
Solusvm::Reseller.stubs(:new => mock{ expects(:info).with("theusername").returns("theresult") })
|
119
|
+
|
120
|
+
$stdout.expects(:puts).with("theresult")
|
121
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["reseller", "info", "theusername"]))
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_should_delegate_reseller_delete_to_reseller
|
125
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
126
|
+
Solusvm::Reseller.stubs(:new => mock{ expects(:delete).with("theusername").returns("theresult") })
|
127
|
+
|
128
|
+
$stdout.expects(:puts).with("theresult")
|
129
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["reseller", "delete", "theusername"]))
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_should_delegate_reseller_list_to_reseller
|
133
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
134
|
+
Solusvm::Reseller.stubs(:new => mock{ expects(:list).returns("theresult") })
|
135
|
+
|
136
|
+
$stdout.expects(:puts).with("theresult")
|
137
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["reseller", "list"]))
|
138
|
+
end
|
139
|
+
end
|
@@ -0,0 +1,267 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'solusvm/cli'
|
3
|
+
|
4
|
+
class TestServerCli < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
|
+
# something was moved around.
|
9
|
+
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_delegate_server_status_to_server
|
13
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
14
|
+
Solusvm::Server.stubs(:new => mock{ expects(:status).with("thevserverid").returns("theresult") })
|
15
|
+
|
16
|
+
$stdout.expects(:puts).with("theresult")
|
17
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "status", "thevserverid"]))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_should_delegate_server_change_plan_to_server
|
21
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
22
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_plan).with("thevserverid", "thenewplan").returns("theresult") })
|
23
|
+
|
24
|
+
$stdout.expects(:puts).with("theresult")
|
25
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-plan", "thevserverid", "thenewplan"]))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_should_delegate_server_change_owner_to_server
|
29
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
30
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_owner).with("thevserverid", "thenewowner").returns("theresult") })
|
31
|
+
|
32
|
+
$stdout.expects(:puts).with("theresult")
|
33
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-owner", "thevserverid", "thenewowner"]))
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_should_delegate_server_change_consolepass_to_server
|
37
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
38
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_consolepass).with("thevserverid", "thenewpass").returns("theresult") })
|
39
|
+
|
40
|
+
$stdout.expects(:puts).with("theresult")
|
41
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-consolepass", "thevserverid", "thenewpass"]))
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_should_delegate_server_change_vncpass_to_server
|
45
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
46
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_vncpass).with("thevserverid", "thenewpass").returns("theresult") })
|
47
|
+
|
48
|
+
$stdout.expects(:puts).with("theresult")
|
49
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-vncpass", "thevserverid", "thenewpass"]))
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_should_delegate_server_change_rootpass_to_server
|
53
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
54
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_rootpassword).with("thevserverid", "thenewpass").returns("theresult") })
|
55
|
+
|
56
|
+
$stdout.expects(:puts).with("theresult")
|
57
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-rootpass", "thevserverid", "thenewpass"]))
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_should_delegate_server_change_bootorder_to_server
|
61
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
62
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_bootorder).with("thevserverid", "theneworder").returns("theresult") })
|
63
|
+
|
64
|
+
$stdout.expects(:puts).with("theresult")
|
65
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-bootorder", "thevserverid", "theneworder"]))
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_should_delegate_server_change_hostname_to_server
|
69
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
70
|
+
Solusvm::Server.stubs(:new => mock{ expects(:change_hostname).with("thevserverid", "thenewhostname").returns("theresult") })
|
71
|
+
|
72
|
+
$stdout.expects(:puts).with("theresult")
|
73
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "change-hostname", "thevserverid", "thenewhostname"]))
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_should_delegate_server_add_ip_to_server
|
77
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
78
|
+
Solusvm::Server.stubs(:new => mock{ expects(:add_ip).with("thevserverid").returns("theresult") })
|
79
|
+
|
80
|
+
$stdout.expects(:puts).with("theresult")
|
81
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "addip", "thevserverid"]))
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_should_delegate_server_boot_to_server
|
85
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
86
|
+
Solusvm::Server.stubs(:new => mock{ expects(:boot).with("thevserverid").returns("theresult") })
|
87
|
+
|
88
|
+
$stdout.expects(:puts).with("theresult")
|
89
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "boot", "thevserverid"]))
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_should_delegate_server_reboot_to_server
|
93
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
94
|
+
Solusvm::Server.stubs(:new => mock{ expects(:reboot).with("thevserverid").returns("theresult") })
|
95
|
+
|
96
|
+
$stdout.expects(:puts).with("theresult")
|
97
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "reboot", "thevserverid"]))
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_should_delegate_server_shutdown_to_server
|
101
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
102
|
+
Solusvm::Server.stubs(:new => mock{ expects(:shutdown).with("thevserverid").returns("theresult") })
|
103
|
+
|
104
|
+
$stdout.expects(:puts).with("theresult")
|
105
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "shutdown", "thevserverid"]))
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_should_delegate_server_suspend_to_server
|
109
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
110
|
+
Solusvm::Server.stubs(:new => mock{ expects(:suspend).with("thevserverid").returns("theresult") })
|
111
|
+
|
112
|
+
$stdout.expects(:puts).with("theresult")
|
113
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "suspend", "thevserverid"]))
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_should_delegate_server_resume_to_server
|
117
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
118
|
+
Solusvm::Server.stubs(:new => mock{ expects(:resume).with("thevserverid").returns("theresult") })
|
119
|
+
|
120
|
+
$stdout.expects(:puts).with("theresult")
|
121
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "resume", "thevserverid"]))
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_should_delegate_server_check_exists_to_server
|
125
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
126
|
+
Solusvm::Server.stubs(:new => mock{ expects(:check_exists).with("thevserverid").returns("theresult") })
|
127
|
+
|
128
|
+
$stdout.expects(:puts).with("theresult")
|
129
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "check-exists", "thevserverid"]))
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_should_delegate_server_terminate_to_server
|
133
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
134
|
+
Solusvm::Server.stubs(:new => mock{ expects(:terminate).with("thevserverid").returns("theresult") })
|
135
|
+
|
136
|
+
$stdout.expects(:puts).with("theresult")
|
137
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "terminate", "thevserverid"]))
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_should_delegate_server_rebuild_to_server
|
141
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
142
|
+
Solusvm::Server.stubs(:new => mock{ expects(:rebuild).with(
|
143
|
+
"thevserverid", :template => "thetemplate").returns("theresult") })
|
144
|
+
|
145
|
+
$stdout.expects(:puts).with("theresult")
|
146
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "rebuild", "thevserverid", "--template", "thetemplate"]))
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_should_delegate_server_tun_switcher_on_to_server
|
150
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
151
|
+
Solusvm::Server.stubs(:new => mock{ expects(:tun_enable).with("thevserverid").returns("theresult") })
|
152
|
+
|
153
|
+
$stdout.expects(:puts).with("theresult")
|
154
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "tun-switcher", "thevserverid", "on"]))
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_should_delegate_server_tun_switcher_off_to_server
|
158
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
159
|
+
Solusvm::Server.stubs(:new => mock{ expects(:tun_disable).with("thevserverid").returns("theresult") })
|
160
|
+
|
161
|
+
$stdout.expects(:puts).with("theresult")
|
162
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "tun-switcher", "thevserverid", "off"]))
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_should_delegate_server_network_switcher_on_to_server
|
166
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
167
|
+
Solusvm::Server.stubs(:new => mock{ expects(:network_enable).with("thevserverid").returns("theresult") })
|
168
|
+
|
169
|
+
$stdout.expects(:puts).with("theresult")
|
170
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "network-switcher", "thevserverid", "on"]))
|
171
|
+
end
|
172
|
+
|
173
|
+
def test_should_delegate_server_network_switcher_off_to_server
|
174
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
175
|
+
Solusvm::Server.stubs(:new => mock{ expects(:network_disable).with("thevserverid").returns("theresult") })
|
176
|
+
|
177
|
+
$stdout.expects(:puts).with("theresult")
|
178
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "network-switcher", "thevserverid", "off"]))
|
179
|
+
end
|
180
|
+
|
181
|
+
def test_should_delegate_server_pae_switcher_on_to_server
|
182
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
183
|
+
Solusvm::Server.stubs(:new => mock{ expects(:pae_enable).with("thevserverid").returns("theresult") })
|
184
|
+
|
185
|
+
$stdout.expects(:puts).with("theresult")
|
186
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "pae-switcher", "thevserverid", "on"]))
|
187
|
+
end
|
188
|
+
|
189
|
+
def test_should_delegate_server_pae_switcher_off_to_server
|
190
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
191
|
+
Solusvm::Server.stubs(:new => mock{ expects(:pae_disable).with("thevserverid").returns("theresult") })
|
192
|
+
|
193
|
+
$stdout.expects(:puts).with("theresult")
|
194
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "pae-switcher", "thevserverid", "off"]))
|
195
|
+
end
|
196
|
+
|
197
|
+
def test_should_delegate_server_info_to_server
|
198
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
199
|
+
Solusvm::Server.stubs(:new => mock{ expects(:info).with("thevserverid").returns("theresult") })
|
200
|
+
|
201
|
+
$stdout.expects(:puts).with("theresult")
|
202
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "info", "thevserverid"]))
|
203
|
+
end
|
204
|
+
|
205
|
+
def test_should_delegate_server_vnc_to_server
|
206
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
207
|
+
Solusvm::Server.stubs(:new => mock{ expects(:vnc).with("thevserverid").returns("theresult") })
|
208
|
+
|
209
|
+
$stdout.expects(:puts).with("theresult")
|
210
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "vnc", "thevserverid"]))
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_should_delegate_server_console_to_server
|
214
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
215
|
+
Solusvm::Server.stubs(:new => mock{ expects(:console).with("thevserverid").returns("theresult") })
|
216
|
+
|
217
|
+
$stdout.expects(:puts).with("theresult")
|
218
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "console", "thevserverid"]))
|
219
|
+
end
|
220
|
+
|
221
|
+
def test_should_delegate_server_info_all_to_server
|
222
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
223
|
+
Solusvm::Server.stubs(:new => mock{ expects(:info_all).with("thevserverid").returns("theresult") })
|
224
|
+
|
225
|
+
$stdout.expects(:puts).with("theresult")
|
226
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "info-all", "thevserverid"]))
|
227
|
+
end
|
228
|
+
|
229
|
+
def test_should_delegate_server_mountiso_to_server
|
230
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
231
|
+
Solusvm::Server.stubs(:new => mock{ expects(:mountiso).with("thevserverid", "theiso").returns("theresult") })
|
232
|
+
|
233
|
+
$stdout.expects(:puts).with("theresult")
|
234
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "mountiso", "thevserverid", "theiso"]))
|
235
|
+
end
|
236
|
+
|
237
|
+
def test_should_delegate_server_unmountiso_to_server
|
238
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
239
|
+
Solusvm::Server.stubs(:new => mock{ expects(:unmountiso).with("thevserverid").returns("theresult") })
|
240
|
+
|
241
|
+
$stdout.expects(:puts).with("theresult")
|
242
|
+
Solusvm::Cli.start(cli_expand_base_arguments(["server", "unmountiso", "thevserverid"]))
|
243
|
+
end
|
244
|
+
|
245
|
+
def test_should_delegate_server_create_to_server
|
246
|
+
Solusvm.expects(:config).with("thelogin", "thekey", { :url => "theurl" })
|
247
|
+
Solusvm::Server.stubs(:new => mock{ expects(:create).with(
|
248
|
+
"thehostname", "thepassword",
|
249
|
+
:plan => "theplan", :ips => "theips", :type => "thekind",
|
250
|
+
:username => "theusername", :template => "thetemplate", :node => "thenode"
|
251
|
+
).returns("theresult") })
|
252
|
+
|
253
|
+
$stdout.expects(:puts).with("theresult")
|
254
|
+
Solusvm::Cli.start(cli_expand_base_arguments([
|
255
|
+
"server", "create",
|
256
|
+
"thehostname",
|
257
|
+
"thepassword",
|
258
|
+
"--plan", "theplan",
|
259
|
+
"--ips", "theips",
|
260
|
+
"--kind", "thekind",
|
261
|
+
"--username", "theusername",
|
262
|
+
"--template", "thetemplate",
|
263
|
+
"--node", "thenode"
|
264
|
+
]))
|
265
|
+
end
|
266
|
+
|
267
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<clients>
|
2
|
+
<client>
|
3
|
+
<id>1</id>
|
4
|
+
<username>vps123</username>
|
5
|
+
<email>vps123@email.com</email>
|
6
|
+
<firstname>phill</firstname>
|
7
|
+
<lastname>smith</lastname>
|
8
|
+
<company>VPS Co</company>
|
9
|
+
<level>Client</level>
|
10
|
+
<status>Active</status>
|
11
|
+
<created>2009-01-01</created>
|
12
|
+
<lastlogin>2010-04-23</lastlogin>
|
13
|
+
</client>
|
14
|
+
</clients>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<virtualservers>
|
2
|
+
<virtualserver>
|
3
|
+
<vserverid>theid</vserverid>
|
4
|
+
<ctid-xid>thexid</ctid-xid>
|
5
|
+
<clientid>theclientid</clientid>
|
6
|
+
<ipaddress>theip</ipaddress>
|
7
|
+
<hostname>thehostname</hostname>
|
8
|
+
<template>thetemplate</template>
|
9
|
+
<hdd>thediskspace</hdd>
|
10
|
+
<memory>thememory</memory>
|
11
|
+
<swap-burst>theswap</swap-burst>
|
12
|
+
<type>thetype</type>
|
13
|
+
<mac>themac</mac>
|
14
|
+
</virtualserver>
|
15
|
+
</virtualservers>
|