solusvm 1.4.0 → 2.0.0.beta1
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 +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
|