solusvm 1.4.0 → 2.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/LICENSE +1 -1
- data/README.markdown +159 -116
- data/Rakefile +3 -33
- data/bin/solusvm +3 -4
- data/lib/solusvm.rb +1 -3
- data/lib/solusvm/base.rb +101 -46
- data/lib/solusvm/cli.rb +8 -8
- data/lib/solusvm/cli/base_cli.rb +3 -3
- data/lib/solusvm/cli/client_cli.rb +3 -5
- data/lib/solusvm/cli/general_cli.rb +3 -5
- data/lib/solusvm/cli/node_cli.rb +3 -5
- data/lib/solusvm/cli/reseller_cli.rb +3 -5
- data/lib/solusvm/cli/server_cli.rb +4 -6
- data/lib/solusvm/client.rb +45 -27
- data/lib/solusvm/errors.rb +3 -0
- data/lib/solusvm/general.rb +11 -12
- data/lib/solusvm/hash.rb +1 -11
- data/lib/solusvm/node.rb +33 -21
- data/lib/solusvm/reseller.rb +53 -49
- data/lib/solusvm/server.rb +188 -52
- data/lib/solusvm/version.rb +2 -2
- data/test/cli/test_base_cli.rb +14 -4
- data/test/cli/test_client_cli.rb +13 -13
- data/test/cli/test_general_cli.rb +7 -7
- data/test/cli/test_node_cli.rb +13 -13
- data/test/cli/test_reseller_cli.rb +11 -11
- data/test/cli/test_server_cli.rb +61 -61
- data/test/sham_rack_stubs/base/parse-response.json +4 -0
- data/test/sham_rack_stubs/client/authenticate.json +4 -0
- data/test/sham_rack_stubs/client/change-password.json +6 -0
- data/test/sham_rack_stubs/client/create.json +9 -0
- data/test/sham_rack_stubs/client/delete.json +4 -0
- data/test/sham_rack_stubs/client/exists.json +4 -0
- data/test/sham_rack_stubs/client/list-empty.json +5 -0
- data/test/sham_rack_stubs/client/list.json +30 -0
- data/test/sham_rack_stubs/general/isos-empty.json +5 -0
- data/test/sham_rack_stubs/general/isos.json +5 -0
- data/test/sham_rack_stubs/general/plans-empty.json +5 -0
- data/test/sham_rack_stubs/general/plans.json +5 -0
- data/test/sham_rack_stubs/general/templates-empty.json +7 -0
- data/test/sham_rack_stubs/general/templates.json +7 -0
- data/test/sham_rack_stubs/generic/error.json +4 -0
- data/test/sham_rack_stubs/node/available-ips-empty.json +6 -0
- data/test/sham_rack_stubs/node/available-ips.json +6 -0
- data/test/sham_rack_stubs/node/ids.json +5 -0
- data/test/sham_rack_stubs/node/list-empty.json +5 -0
- data/test/sham_rack_stubs/node/list-groups.json +5 -0
- data/test/sham_rack_stubs/node/list.json +5 -0
- data/test/sham_rack_stubs/node/statistics.json +21 -0
- data/test/sham_rack_stubs/node/virtualservers-empty.json +5 -0
- data/test/sham_rack_stubs/node/virtualservers.json +19 -0
- data/test/sham_rack_stubs/node/xenresources.json +6 -0
- data/test/sham_rack_stubs/reseller/change-resources.json +18 -0
- data/test/sham_rack_stubs/reseller/create.json +25 -0
- data/test/sham_rack_stubs/reseller/delete.json +4 -0
- data/test/sham_rack_stubs/reseller/info.json +24 -0
- data/test/sham_rack_stubs/reseller/list-empty.json +5 -0
- data/test/sham_rack_stubs/reseller/list.json +5 -0
- data/test/sham_rack_stubs/server/add-ip.json +5 -0
- data/test/sham_rack_stubs/server/boot.json +4 -0
- data/test/sham_rack_stubs/server/change-bootorder.json +4 -0
- data/test/sham_rack_stubs/server/change-hostname.json +5 -0
- data/test/sham_rack_stubs/server/change-owner.json +4 -0
- data/test/sham_rack_stubs/server/change-plan.json +4 -0
- data/test/sham_rack_stubs/server/change-rootpassword.json +5 -0
- data/test/sham_rack_stubs/server/change-vncpass.json +5 -0
- data/test/sham_rack_stubs/server/console.json +13 -0
- data/test/sham_rack_stubs/server/create.json +13 -0
- data/test/sham_rack_stubs/server/del-ip.json +4 -0
- data/test/sham_rack_stubs/server/exists.json +4 -0
- data/test/sham_rack_stubs/server/info-all.json +16 -0
- data/test/sham_rack_stubs/server/info.json +15 -0
- data/test/sham_rack_stubs/server/mountiso.json +4 -0
- data/test/sham_rack_stubs/server/network-disable.json +4 -0
- data/test/sham_rack_stubs/server/network-enable.json +4 -0
- data/test/sham_rack_stubs/server/pae-disable.json +4 -0
- data/test/sham_rack_stubs/server/pae-enable.json +4 -0
- data/test/sham_rack_stubs/server/reboot.json +4 -0
- data/test/sham_rack_stubs/server/rebuild.json +4 -0
- data/test/sham_rack_stubs/server/resume.json +4 -0
- data/test/sham_rack_stubs/server/shutdown.json +4 -0
- data/test/sham_rack_stubs/server/status.json +4 -0
- data/test/sham_rack_stubs/server/suspend.json +4 -0
- data/test/sham_rack_stubs/server/terminate.json +4 -0
- data/test/sham_rack_stubs/server/tun-disable.json +4 -0
- data/test/sham_rack_stubs/server/tun-enable.json +4 -0
- data/test/sham_rack_stubs/server/unmountiso.json +4 -0
- data/test/sham_rack_stubs/server/vnc.json +8 -0
- data/test/solusvm/test_base.rb +34 -56
- data/test/solusvm/test_cli.rb +3 -3
- data/test/solusvm/test_client.rb +56 -66
- data/test/solusvm/test_general.rb +34 -19
- data/test/solusvm/test_hash.rb +0 -9
- data/test/solusvm/test_node.rb +66 -72
- data/test/solusvm/test_reseller.rb +47 -58
- data/test/solusvm/test_server.rb +149 -164
- data/test/test_helper.rb +43 -31
- metadata +173 -189
- data/.document +0 -5
- data/.gitignore +0 -25
- data/.travis.yml +0 -12
- data/solusvm.gemspec +0 -33
- data/test/vcr_cassettes/base/invalid_key.yml +0 -19
- data/test/vcr_cassettes/base/invalid_status.yml +0 -19
- data/test/vcr_cassettes/base/nonexistent_node.yml +0 -19
- data/test/vcr_cassettes/base/parse_response.yml +0 -28
- data/test/vcr_cassettes/base/statusmsg.yml +0 -28
- data/test/vcr_cassettes/base/successful.yml +0 -68
- data/test/vcr_cassettes/base/successful_instance_config.yml +0 -28
- data/test/vcr_cassettes/base/unauthorized_ip.yml +0 -19
- data/test/vcr_cassettes/client/authenticate.yml +0 -37
- data/test/vcr_cassettes/client/change_password.yml +0 -39
- data/test/vcr_cassettes/client/create.yml +0 -42
- data/test/vcr_cassettes/client/delete.yml +0 -37
- data/test/vcr_cassettes/client/exists.yml +0 -20
- data/test/vcr_cassettes/client/list.yml +0 -66
- data/test/vcr_cassettes/general/isos.yml +0 -38
- data/test/vcr_cassettes/general/plans.yml +0 -38
- data/test/vcr_cassettes/general/templates.yml +0 -38
- data/test/vcr_cassettes/node/available_ips.yml +0 -41
- data/test/vcr_cassettes/node/ids.yml +0 -21
- data/test/vcr_cassettes/node/list.yml +0 -38
- data/test/vcr_cassettes/node/list_groups.yml +0 -20
- data/test/vcr_cassettes/node/statistics.yml +0 -32
- data/test/vcr_cassettes/node/virtualservers.yml +0 -67
- data/test/vcr_cassettes/node/xenresources.yml +0 -22
- data/test/vcr_cassettes/reseller/change_resources.yml +0 -27
- data/test/vcr_cassettes/reseller/create.yml +0 -27
- data/test/vcr_cassettes/reseller/delete.yml +0 -15
- data/test/vcr_cassettes/reseller/info.yml +0 -27
- data/test/vcr_cassettes/reseller/list.yml +0 -27
- data/test/vcr_cassettes/server/.yml +0 -1017
- data/test/vcr_cassettes/server/add_ip.yml +0 -15
- data/test/vcr_cassettes/server/boot.yml +0 -15
- data/test/vcr_cassettes/server/change_bootorder.yml +0 -15
- data/test/vcr_cassettes/server/change_consolepass.yml +0 -16
- data/test/vcr_cassettes/server/change_hostname.yml +0 -15
- data/test/vcr_cassettes/server/change_owner.yml +0 -15
- data/test/vcr_cassettes/server/change_plan.yml +0 -15
- data/test/vcr_cassettes/server/change_rootpassword.yml +0 -15
- data/test/vcr_cassettes/server/change_vncpass.yml +0 -15
- data/test/vcr_cassettes/server/console.yml +0 -28
- data/test/vcr_cassettes/server/create.yml +0 -27
- data/test/vcr_cassettes/server/del_ip.yml +0 -15
- data/test/vcr_cassettes/server/exists.yml +0 -15
- data/test/vcr_cassettes/server/info.yml +0 -27
- data/test/vcr_cassettes/server/info_all.yml +0 -15
- data/test/vcr_cassettes/server/mountiso.yml +0 -15
- data/test/vcr_cassettes/server/network_disable.yml +0 -15
- data/test/vcr_cassettes/server/network_enable.yml +0 -15
- data/test/vcr_cassettes/server/pae_disable.yml +0 -15
- data/test/vcr_cassettes/server/pae_enable.yml +0 -15
- data/test/vcr_cassettes/server/reboot.yml +0 -15
- data/test/vcr_cassettes/server/rebuild.yml +0 -15
- data/test/vcr_cassettes/server/resume.yml +0 -15
- data/test/vcr_cassettes/server/shutdown.yml +0 -15
- data/test/vcr_cassettes/server/status.yml +0 -15
- data/test/vcr_cassettes/server/suspend.yml +0 -15
- data/test/vcr_cassettes/server/terminate.yml +0 -27
- data/test/vcr_cassettes/server/tun_disable.yml +0 -15
- data/test/vcr_cassettes/server/tun_enable.yml +0 -15
- data/test/vcr_cassettes/server/unmountiso.yml +0 -15
- data/test/vcr_cassettes/server/vnc.yml +0 -15
data/lib/solusvm/server.rb
CHANGED
@@ -1,25 +1,30 @@
|
|
1
|
-
module
|
2
|
-
#
|
1
|
+
module SolusVM
|
2
|
+
# SolusVM::Server is the class for working with virtual servers.
|
3
3
|
class Server < Base
|
4
4
|
|
5
|
-
# Creates a server.
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
5
|
+
# Public: Creates a new virtual server.
|
6
|
+
#
|
7
|
+
# hostname - The server hostname
|
8
|
+
# password - The server password
|
9
|
+
# options - A Hash of options
|
10
|
+
# :type - openvz|xen|xen hvm|kvm
|
11
|
+
# :node - name of node
|
12
|
+
# :nodegroup - name of nodegroup
|
13
|
+
# :username - client username
|
14
|
+
# :plan - plan name
|
15
|
+
# :template - template or iso name
|
16
|
+
# :ips - amount of ips
|
17
|
+
# :hvmt - 0|1 Default is 0. This allows to define
|
18
|
+
# templates & isos for Xen HVM
|
19
|
+
# :custommemory - overide plan memory with this amount
|
20
|
+
# :customdiskspace - overide plan diskspace with this amount
|
21
|
+
# :custombandwidth - overide plan bandwidth with this amount
|
22
|
+
# :customcpu - overide plan cpu cores with this amount
|
23
|
+
# :customextraip - add this amount of extra ips
|
24
|
+
# :issuelicense - 1|2 1 = cPanel monthly, 2 = cPanel yearly
|
25
|
+
#
|
26
|
+
# Returns a Hash with the new server info, or false if the server was not
|
27
|
+
# created successfully.
|
23
28
|
def create(hostname, password, options = {})
|
24
29
|
options.reverse_merge!(
|
25
30
|
type: 'xen',
|
@@ -34,141 +39,254 @@ module Solusvm
|
|
34
39
|
perform_request(options) && returned_parameters
|
35
40
|
end
|
36
41
|
|
37
|
-
# Boots a server.
|
42
|
+
# Public: Boots a server.
|
43
|
+
#
|
44
|
+
# vid - The virtual server ID in SolusVM
|
45
|
+
#
|
46
|
+
# Returns true if the server was successfully booted.
|
38
47
|
def boot(vid)
|
39
48
|
perform_request(action: 'vserver-boot', vserverid: vid)
|
40
49
|
end
|
41
50
|
|
42
|
-
# Reboots a server.
|
51
|
+
# Public: Reboots a server.
|
52
|
+
#
|
53
|
+
# vid - The virtual server ID in SolusVM
|
54
|
+
#
|
55
|
+
# Returns true if the server was successfully rebooted.
|
43
56
|
def reboot(vid)
|
44
57
|
perform_request(action: 'vserver-reboot', vserverid: vid)
|
45
58
|
end
|
46
59
|
|
47
|
-
# Suspends a server.
|
60
|
+
# Public: Suspends a server.
|
61
|
+
#
|
62
|
+
# vid - The virtual server ID in SolusVM
|
63
|
+
#
|
64
|
+
# Returns true if the server was successfully suspended.
|
48
65
|
def suspend(vid)
|
49
66
|
perform_request(action: 'vserver-suspend', vserverid: vid)
|
50
67
|
end
|
51
68
|
|
52
|
-
# Resumes a server.
|
69
|
+
# Public: Resumes a server.
|
70
|
+
#
|
71
|
+
# vid - The virtual server ID in SolusVM
|
72
|
+
#
|
73
|
+
# Returns true if the server was successfully resumed.
|
53
74
|
def resume(vid)
|
54
75
|
perform_request(action: 'vserver-unsuspend', vserverid: vid)
|
55
76
|
end
|
56
77
|
|
57
|
-
# Shuts down a server.
|
78
|
+
# Public: Shuts down a server.
|
79
|
+
#
|
80
|
+
# vid - The virtual server ID in SolusVM
|
81
|
+
#
|
82
|
+
# Returns true if the server was successfully shutdown.
|
58
83
|
def shutdown(vid)
|
59
84
|
perform_request(action: 'vserver-shutdown', vserverid: vid)
|
60
85
|
end
|
61
86
|
|
62
|
-
# Enable TUN/TAP.
|
87
|
+
# Public: Enable TUN/TAP.
|
88
|
+
#
|
89
|
+
# vid - The virtual server ID in SolusVM
|
90
|
+
#
|
91
|
+
# Returns true if TUN/TAP was successfully enabled.
|
63
92
|
def tun_enable(vid)
|
64
93
|
perform_request(action: 'vserver-tun-enable', vserverid: vid)
|
65
94
|
end
|
66
95
|
|
67
|
-
# Disable TUN/TAP.
|
96
|
+
# Public: Disable TUN/TAP.
|
97
|
+
#
|
98
|
+
# vid - The virtual server ID in SolusVM
|
99
|
+
#
|
100
|
+
# Returns true if TUN/TAP was successfully disabled.
|
68
101
|
def tun_disable(vid)
|
69
102
|
perform_request(action: 'vserver-tun-disable', vserverid: vid)
|
70
103
|
end
|
71
104
|
|
72
|
-
# Enable Network Mode.
|
105
|
+
# Public: Enable Network Mode.
|
106
|
+
#
|
107
|
+
# vid - The virtual server ID in SolusVM
|
108
|
+
#
|
109
|
+
# Returns true if Network Mode was successfully enabled.
|
73
110
|
def network_enable(vid)
|
74
111
|
perform_request(action: 'vserver-network-enable', vserverid: vid)
|
75
112
|
end
|
76
113
|
|
77
|
-
# Disables Network Mode.
|
114
|
+
# Public: Disables Network Mode.
|
115
|
+
#
|
116
|
+
# vid - The virtual server ID in SolusVM
|
117
|
+
#
|
118
|
+
# Returns true if Network Mode was successfully disabled.
|
78
119
|
def network_disable(vid)
|
79
120
|
perform_request(action: 'vserver-network-disable', vserverid: vid)
|
80
121
|
end
|
81
122
|
|
82
|
-
# Enable PAE.
|
123
|
+
# Public: Enable PAE.
|
124
|
+
#
|
125
|
+
# vid - The virtual server ID in SolusVM
|
126
|
+
#
|
127
|
+
# Returns true if PAE was successfully enabled.
|
83
128
|
def pae_enable(vid)
|
84
129
|
perform_request(action: 'vserver-pae', vserverid: vid, pae: "on")
|
85
130
|
end
|
86
131
|
|
87
|
-
# Disables PAE.
|
132
|
+
# Public: Disables PAE.
|
133
|
+
#
|
134
|
+
# vid - The virtual server ID in SolusVM
|
135
|
+
#
|
136
|
+
# Returns true if PAE was successfully disabled.
|
88
137
|
def pae_disable(vid)
|
89
138
|
perform_request(action: 'vserver-pae', vserverid: vid, pae: "off")
|
90
139
|
end
|
91
140
|
|
92
|
-
# Terminates a server.
|
141
|
+
# Public: Terminates a server.
|
142
|
+
#
|
143
|
+
# vid - The virtual server ID in SolusVM
|
144
|
+
#
|
145
|
+
# Returns true if the server was successfully terminated.
|
93
146
|
def terminate(vid, deleteclient = false)
|
94
147
|
perform_request(action: 'vserver-terminate', vserverid: vid, deleteclient: deleteclient)
|
95
148
|
end
|
96
149
|
|
97
|
-
# Checks if a specific server exists.
|
150
|
+
# Public: Checks if a specific server exists.
|
151
|
+
#
|
152
|
+
# vid - The virtual server ID in SolusVM
|
153
|
+
#
|
154
|
+
# Returns true if the server exists.
|
98
155
|
def exists?(vid)
|
99
156
|
perform_request(action: 'vserver-checkexists', vserverid: vid)
|
100
|
-
|
157
|
+
!!statusmsg.match(/Virtual server exists/i)
|
101
158
|
end
|
102
159
|
|
103
|
-
# Checks the status of specific server (disabled|online|offline).
|
160
|
+
# Public: Checks the status of specific server (disabled|online|offline).
|
161
|
+
#
|
162
|
+
# vid - The virtual server ID in SolusVM
|
163
|
+
#
|
164
|
+
# Returns the server's status.
|
104
165
|
def status(vid)
|
105
166
|
perform_request(action: 'vserver-status', vserverid: vid)
|
106
167
|
statusmsg
|
107
168
|
end
|
108
169
|
|
109
|
-
# Adds an IP address for a specific server.
|
170
|
+
# Public: Adds an IP address for a specific server.
|
171
|
+
#
|
172
|
+
# vid - The virtual server ID in SolusVM
|
173
|
+
#
|
174
|
+
# Returns the IP as a String.
|
110
175
|
def add_ip(vid)
|
111
176
|
perform_request(action: 'vserver-addip', vserverid: vid)
|
112
177
|
returned_parameters['ipaddress']
|
113
178
|
end
|
114
179
|
|
115
|
-
# Deletes an IP address for a specific server.
|
180
|
+
# Public: Deletes an IP address for a specific server.
|
181
|
+
#
|
182
|
+
# vid - The virtual server ID in SolusVM
|
183
|
+
# ip_address - The IP address to remove
|
184
|
+
#
|
185
|
+
# Returns true if the IP was successfully deleted.
|
116
186
|
def del_ip(vid, ip_address)
|
117
187
|
perform_request(action: 'vserver-delip', vserverid: vid, ipaddr: ip_address)
|
118
188
|
end
|
119
189
|
|
120
|
-
# Changes server plan.
|
190
|
+
# Public: Changes server plan.
|
191
|
+
#
|
192
|
+
# vid - The virtual server ID in SolusVM
|
193
|
+
# plan - The new plan ID
|
194
|
+
#
|
195
|
+
# Returns true if the server's plan was successfully changed.
|
121
196
|
def change_plan(vid, plan)
|
122
197
|
perform_request(action: 'vserver-change', vserverid: vid, plan: plan)
|
123
198
|
end
|
124
199
|
|
125
|
-
# Changes server owner.
|
200
|
+
# Public: Changes server owner.
|
201
|
+
#
|
202
|
+
# vid - The virtual server ID in SolusVM
|
203
|
+
# client_id - The new client ID
|
204
|
+
#
|
205
|
+
# Returns true if the server's owner was successfully changed.
|
126
206
|
def change_owner(vid, client_id)
|
127
207
|
perform_request(action: 'vserver-changeowner', vserverid: vid, clientid: client_id)
|
128
208
|
end
|
129
209
|
|
130
|
-
# Changes server console password.
|
210
|
+
# Public: Changes server console password.
|
211
|
+
#
|
212
|
+
# vid - The virtual server ID in SolusVM
|
213
|
+
# new_password - The new console password
|
214
|
+
#
|
215
|
+
# Returns true if the server's console password was successfully changed.
|
131
216
|
def change_consolepass(vid, new_password)
|
132
217
|
perform_request(action: 'vserver-consolepass', vserverid: vid, consolepassword: new_password)
|
133
218
|
end
|
134
219
|
|
135
|
-
# Changes server
|
220
|
+
# Public: Changes server VNC password.
|
221
|
+
#
|
222
|
+
# vid - The virtual server ID in SolusVM
|
223
|
+
# new_password - The new VNC password
|
224
|
+
#
|
225
|
+
# Returns true if the server's VNC password was successfully changed.
|
136
226
|
def change_vncpass(vid, new_password)
|
137
227
|
perform_request(action: 'vserver-vncpass', vserverid: vid, vncpassword: new_password)
|
138
228
|
end
|
139
229
|
|
140
|
-
# Changes server root password.
|
230
|
+
# Public: Changes server root password.
|
231
|
+
#
|
232
|
+
# vid - The virtual server ID in SolusVM
|
233
|
+
# new_password - The new root password
|
234
|
+
#
|
235
|
+
# Returns true if the server's root password was successfully changed.
|
141
236
|
def change_rootpassword(vid, new_password)
|
142
237
|
perform_request(action: 'vserver-rootpassword', vserverid: vid, rootpassword: new_password)
|
143
238
|
end
|
144
239
|
|
145
|
-
# Changes server boot order
|
240
|
+
# Public: Changes server boot order
|
241
|
+
#
|
242
|
+
# vid - The virtual server ID in SolusVM
|
243
|
+
# bootorder - The boot order, one of the following:
|
244
|
+
# :cd - Hard Disk CDROM
|
245
|
+
# :dc - CDROM Hard Disk
|
246
|
+
# :c - Hard Disk
|
247
|
+
# :d - CDROM
|
248
|
+
#
|
249
|
+
# Returns true if the boot order was successfully changed.
|
146
250
|
def change_bootorder(vid, bootorder)
|
147
251
|
perform_request(action: 'vserver-bootorder', vserverid: vid, bootorder: bootorder.to_s)
|
148
252
|
end
|
149
253
|
|
150
|
-
# Changes server hostname.
|
254
|
+
# Public: Changes server hostname.
|
255
|
+
#
|
256
|
+
# vid - The virtual server ID in SolusVM
|
257
|
+
# hostname - The new hostname
|
258
|
+
#
|
259
|
+
# Returns true if the server's hostname was successfully changed.
|
151
260
|
def change_hostname(vid, hostname)
|
152
261
|
perform_request(action: 'vserver-hostname', vserverid: vid, hostname: hostname)
|
153
262
|
end
|
154
263
|
|
155
|
-
# Retrieves server information.
|
264
|
+
# Public: Retrieves server information.
|
265
|
+
#
|
266
|
+
# vid - The virtual server ID in SolusVM
|
267
|
+
#
|
268
|
+
# Returns a Hash.
|
156
269
|
def info(vid, reboot = false)
|
157
270
|
perform_request(action: 'vserver-info', vserverid: vid, reboot: reboot)
|
158
271
|
returned_parameters
|
159
272
|
end
|
160
273
|
|
161
|
-
# Retrieves server vnc information.
|
274
|
+
# Public: Retrieves server vnc information.
|
275
|
+
#
|
276
|
+
# vid - The virtual server ID in SolusVM
|
277
|
+
#
|
278
|
+
# Returns a Hash.
|
162
279
|
def vnc(vid)
|
163
280
|
perform_request(action: 'vserver-vnc', vserverid: vid)
|
164
281
|
returned_parameters
|
165
282
|
end
|
166
283
|
|
167
|
-
# Retrieves server console information.
|
284
|
+
# Public: Retrieves server console information.
|
168
285
|
#
|
286
|
+
# vid - The virtual server ID in SolusVM
|
169
287
|
# params - A Hash to pass optional parameters to vserver-console call:
|
170
288
|
# :access - A String that can be 'enable' or 'disable'
|
171
|
-
# :time -
|
289
|
+
# :time - An Integer that can be 1|2|3|4|5|6|7|8
|
172
290
|
#
|
173
291
|
# returns a Hash
|
174
292
|
def console(vid, params = {})
|
@@ -176,23 +294,41 @@ module Solusvm
|
|
176
294
|
returned_parameters
|
177
295
|
end
|
178
296
|
|
179
|
-
# Retrieves all available server information.
|
297
|
+
# Public: Retrieves all available server information.
|
298
|
+
#
|
299
|
+
# vid - The virtual server ID in SolusVM
|
300
|
+
#
|
301
|
+
# Returns a Hash.
|
180
302
|
def info_all(vid)
|
181
303
|
perform_request(action: 'vserver-infoall', vserverid: vid)
|
182
304
|
returned_parameters
|
183
305
|
end
|
184
306
|
|
185
|
-
# Rebuilds a server using a given template.
|
307
|
+
# Public: Rebuilds a server using a given template.
|
308
|
+
#
|
309
|
+
# vid - The virtual server ID in SolusVM
|
310
|
+
# template - The template to use
|
311
|
+
#
|
312
|
+
# Returns true if the server was successfully rebuilt.
|
186
313
|
def rebuild(vid, template)
|
187
314
|
perform_request(action: 'vserver-rebuild', vserverid: vid, template: template)
|
188
315
|
end
|
189
316
|
|
190
|
-
# Mounts a given
|
317
|
+
# Public: Mounts a given ISO image.
|
318
|
+
#
|
319
|
+
# vid - The virtual server ID in SolusVM
|
320
|
+
# iso - The ISO image to mount
|
321
|
+
#
|
322
|
+
# Returns true if the ISO was mounted successfully.
|
191
323
|
def mountiso(vid, iso)
|
192
324
|
perform_request(action: 'vserver-mountiso', vserverid: vid, iso: iso)
|
193
325
|
end
|
194
326
|
|
195
|
-
# Unmounts a given
|
327
|
+
# Public: Unmounts a given ISO image.
|
328
|
+
#
|
329
|
+
# vid - The virtual server ID in SolusVM
|
330
|
+
#
|
331
|
+
# Returns true if the ISO was unmounted successfully.
|
196
332
|
def unmountiso(vid)
|
197
333
|
perform_request(action: 'vserver-unmountiso', vserverid: vid)
|
198
334
|
end
|
data/lib/solusvm/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "
|
1
|
+
module SolusVM
|
2
|
+
VERSION = "2.0.0.beta1"
|
3
3
|
end
|
data/test/cli/test_base_cli.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'solusvm/cli'
|
3
3
|
|
4
|
-
class
|
4
|
+
class TestBaseCLI < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def setup
|
7
7
|
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
8
8
|
# something was moved around.
|
9
9
|
Mocha::Configuration.prevent(:stubbing_non_existent_method)
|
10
10
|
|
11
|
-
@base_cli =
|
12
|
-
@api =
|
11
|
+
@base_cli = SolusVM::BaseCLI.new
|
12
|
+
@api = SolusVM::Base.new
|
13
13
|
|
14
14
|
@base_cli.stubs(:api).returns(@api)
|
15
15
|
end
|
@@ -22,6 +22,16 @@ class TestBaseCli < Test::Unit::TestCase
|
|
22
22
|
@base_cli.output(["val1", "val2"])
|
23
23
|
end
|
24
24
|
|
25
|
+
def test_should_use_retry_middleware_if_retry_request
|
26
|
+
retry_middleware = Faraday::Request.lookup_middleware :retry
|
27
|
+
|
28
|
+
@api = SolusVM::Base.new(solusvm_params.merge(retry_request: true))
|
29
|
+
assert_equal @api.conn.builder[0], retry_middleware
|
30
|
+
|
31
|
+
@api = SolusVM::Base.new(solusvm_params)
|
32
|
+
assert_not_equal @api.conn.builder[0], retry_middleware
|
33
|
+
end
|
34
|
+
|
25
35
|
def test_should_print_error_if_not_successful
|
26
36
|
@api.stubs(:successful?).returns(false)
|
27
37
|
@api.stubs(:statusmsg).returns("the message")
|
@@ -29,4 +39,4 @@ class TestBaseCli < Test::Unit::TestCase
|
|
29
39
|
|
30
40
|
@base_cli.output("result")
|
31
41
|
end
|
32
|
-
end
|
42
|
+
end
|
data/test/cli/test_client_cli.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'solusvm/cli'
|
3
3
|
|
4
|
-
class
|
4
|
+
class TestClientCLI < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def setup
|
7
7
|
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
@@ -25,10 +25,10 @@ class TestClientCli < Test::Unit::TestCase
|
|
25
25
|
expected.all? { |k,v| options[k] == v }
|
26
26
|
end.returns("theresult")
|
27
27
|
end
|
28
|
-
|
28
|
+
SolusVM::Client.expects(:new).with(solusvm_params).returns(api)
|
29
29
|
|
30
30
|
$stdout.expects(:puts).with("theresult")
|
31
|
-
|
31
|
+
SolusVM::CLI.start(cli_expand_base_arguments([
|
32
32
|
"client", "create",
|
33
33
|
"--username", "theusername",
|
34
34
|
"--password", "thepassword",
|
@@ -40,52 +40,52 @@ class TestClientCli < Test::Unit::TestCase
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def test_should_delegate_client_change_password_to_client
|
43
|
-
|
43
|
+
SolusVM::Client.expects(:new).with(solusvm_params).returns(mock do
|
44
44
|
expects(:successful?).returns(true)
|
45
45
|
expects(:change_password).with("theusername", "thepassword").returns("theresult")
|
46
46
|
end)
|
47
47
|
|
48
48
|
$stdout.expects(:puts).with("theresult")
|
49
|
-
|
49
|
+
SolusVM::CLI.start(cli_expand_base_arguments(["client", "change-password", "theusername", "thepassword"]))
|
50
50
|
end
|
51
51
|
|
52
52
|
def test_should_delegate_client_authenticate_to_client
|
53
|
-
|
53
|
+
SolusVM::Client.expects(:new).with(solusvm_params).returns(mock do
|
54
54
|
expects(:successful?).returns(true)
|
55
55
|
expects(:authenticate).with("theusername", "thepassword").returns("theresult")
|
56
56
|
end)
|
57
57
|
|
58
58
|
$stdout.expects(:puts).with("theresult")
|
59
|
-
|
59
|
+
SolusVM::CLI.start(cli_expand_base_arguments(["client", "authenticate", "theusername", "thepassword"]))
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_should_delegate_client_check_exists_to_client
|
63
|
-
|
63
|
+
SolusVM::Client.expects(:new).with(solusvm_params).returns(mock do
|
64
64
|
expects(:successful?).returns(true)
|
65
65
|
expects(:exists?).with("theusername").returns("theresult")
|
66
66
|
end)
|
67
67
|
|
68
68
|
$stdout.expects(:puts).with("theresult")
|
69
|
-
|
69
|
+
SolusVM::CLI.start(cli_expand_base_arguments(["client", "check-exists", "theusername"]))
|
70
70
|
end
|
71
71
|
|
72
72
|
def test_should_delegate_client_delete_to_client
|
73
|
-
|
73
|
+
SolusVM::Client.stubs(:new).with(solusvm_params).returns(mock do
|
74
74
|
expects(:successful?).returns(true)
|
75
75
|
expects(:delete).with("theusername").returns("theresult")
|
76
76
|
end)
|
77
77
|
|
78
78
|
$stdout.expects(:puts).with("theresult")
|
79
|
-
|
79
|
+
SolusVM::CLI.start(cli_expand_base_arguments(["client", "delete", "theusername"]))
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_should_delegate_client_list_to_client
|
83
|
-
|
83
|
+
SolusVM::Client.expects(:new).with(solusvm_params).returns(mock do
|
84
84
|
expects(:successful?).returns(true)
|
85
85
|
expects(:list).returns("theresult")
|
86
86
|
end)
|
87
87
|
|
88
88
|
$stdout.expects(:puts).with("theresult")
|
89
|
-
|
89
|
+
SolusVM::CLI.start(cli_expand_base_arguments(["client", "list"]))
|
90
90
|
end
|
91
91
|
end
|