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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/LICENSE +1 -1
  4. data/README.markdown +159 -116
  5. data/Rakefile +3 -33
  6. data/bin/solusvm +3 -4
  7. data/lib/solusvm.rb +1 -3
  8. data/lib/solusvm/base.rb +101 -46
  9. data/lib/solusvm/cli.rb +8 -8
  10. data/lib/solusvm/cli/base_cli.rb +3 -3
  11. data/lib/solusvm/cli/client_cli.rb +3 -5
  12. data/lib/solusvm/cli/general_cli.rb +3 -5
  13. data/lib/solusvm/cli/node_cli.rb +3 -5
  14. data/lib/solusvm/cli/reseller_cli.rb +3 -5
  15. data/lib/solusvm/cli/server_cli.rb +4 -6
  16. data/lib/solusvm/client.rb +45 -27
  17. data/lib/solusvm/errors.rb +3 -0
  18. data/lib/solusvm/general.rb +11 -12
  19. data/lib/solusvm/hash.rb +1 -11
  20. data/lib/solusvm/node.rb +33 -21
  21. data/lib/solusvm/reseller.rb +53 -49
  22. data/lib/solusvm/server.rb +188 -52
  23. data/lib/solusvm/version.rb +2 -2
  24. data/test/cli/test_base_cli.rb +14 -4
  25. data/test/cli/test_client_cli.rb +13 -13
  26. data/test/cli/test_general_cli.rb +7 -7
  27. data/test/cli/test_node_cli.rb +13 -13
  28. data/test/cli/test_reseller_cli.rb +11 -11
  29. data/test/cli/test_server_cli.rb +61 -61
  30. data/test/sham_rack_stubs/base/parse-response.json +4 -0
  31. data/test/sham_rack_stubs/client/authenticate.json +4 -0
  32. data/test/sham_rack_stubs/client/change-password.json +6 -0
  33. data/test/sham_rack_stubs/client/create.json +9 -0
  34. data/test/sham_rack_stubs/client/delete.json +4 -0
  35. data/test/sham_rack_stubs/client/exists.json +4 -0
  36. data/test/sham_rack_stubs/client/list-empty.json +5 -0
  37. data/test/sham_rack_stubs/client/list.json +30 -0
  38. data/test/sham_rack_stubs/general/isos-empty.json +5 -0
  39. data/test/sham_rack_stubs/general/isos.json +5 -0
  40. data/test/sham_rack_stubs/general/plans-empty.json +5 -0
  41. data/test/sham_rack_stubs/general/plans.json +5 -0
  42. data/test/sham_rack_stubs/general/templates-empty.json +7 -0
  43. data/test/sham_rack_stubs/general/templates.json +7 -0
  44. data/test/sham_rack_stubs/generic/error.json +4 -0
  45. data/test/sham_rack_stubs/node/available-ips-empty.json +6 -0
  46. data/test/sham_rack_stubs/node/available-ips.json +6 -0
  47. data/test/sham_rack_stubs/node/ids.json +5 -0
  48. data/test/sham_rack_stubs/node/list-empty.json +5 -0
  49. data/test/sham_rack_stubs/node/list-groups.json +5 -0
  50. data/test/sham_rack_stubs/node/list.json +5 -0
  51. data/test/sham_rack_stubs/node/statistics.json +21 -0
  52. data/test/sham_rack_stubs/node/virtualservers-empty.json +5 -0
  53. data/test/sham_rack_stubs/node/virtualservers.json +19 -0
  54. data/test/sham_rack_stubs/node/xenresources.json +6 -0
  55. data/test/sham_rack_stubs/reseller/change-resources.json +18 -0
  56. data/test/sham_rack_stubs/reseller/create.json +25 -0
  57. data/test/sham_rack_stubs/reseller/delete.json +4 -0
  58. data/test/sham_rack_stubs/reseller/info.json +24 -0
  59. data/test/sham_rack_stubs/reseller/list-empty.json +5 -0
  60. data/test/sham_rack_stubs/reseller/list.json +5 -0
  61. data/test/sham_rack_stubs/server/add-ip.json +5 -0
  62. data/test/sham_rack_stubs/server/boot.json +4 -0
  63. data/test/sham_rack_stubs/server/change-bootorder.json +4 -0
  64. data/test/sham_rack_stubs/server/change-hostname.json +5 -0
  65. data/test/sham_rack_stubs/server/change-owner.json +4 -0
  66. data/test/sham_rack_stubs/server/change-plan.json +4 -0
  67. data/test/sham_rack_stubs/server/change-rootpassword.json +5 -0
  68. data/test/sham_rack_stubs/server/change-vncpass.json +5 -0
  69. data/test/sham_rack_stubs/server/console.json +13 -0
  70. data/test/sham_rack_stubs/server/create.json +13 -0
  71. data/test/sham_rack_stubs/server/del-ip.json +4 -0
  72. data/test/sham_rack_stubs/server/exists.json +4 -0
  73. data/test/sham_rack_stubs/server/info-all.json +16 -0
  74. data/test/sham_rack_stubs/server/info.json +15 -0
  75. data/test/sham_rack_stubs/server/mountiso.json +4 -0
  76. data/test/sham_rack_stubs/server/network-disable.json +4 -0
  77. data/test/sham_rack_stubs/server/network-enable.json +4 -0
  78. data/test/sham_rack_stubs/server/pae-disable.json +4 -0
  79. data/test/sham_rack_stubs/server/pae-enable.json +4 -0
  80. data/test/sham_rack_stubs/server/reboot.json +4 -0
  81. data/test/sham_rack_stubs/server/rebuild.json +4 -0
  82. data/test/sham_rack_stubs/server/resume.json +4 -0
  83. data/test/sham_rack_stubs/server/shutdown.json +4 -0
  84. data/test/sham_rack_stubs/server/status.json +4 -0
  85. data/test/sham_rack_stubs/server/suspend.json +4 -0
  86. data/test/sham_rack_stubs/server/terminate.json +4 -0
  87. data/test/sham_rack_stubs/server/tun-disable.json +4 -0
  88. data/test/sham_rack_stubs/server/tun-enable.json +4 -0
  89. data/test/sham_rack_stubs/server/unmountiso.json +4 -0
  90. data/test/sham_rack_stubs/server/vnc.json +8 -0
  91. data/test/solusvm/test_base.rb +34 -56
  92. data/test/solusvm/test_cli.rb +3 -3
  93. data/test/solusvm/test_client.rb +56 -66
  94. data/test/solusvm/test_general.rb +34 -19
  95. data/test/solusvm/test_hash.rb +0 -9
  96. data/test/solusvm/test_node.rb +66 -72
  97. data/test/solusvm/test_reseller.rb +47 -58
  98. data/test/solusvm/test_server.rb +149 -164
  99. data/test/test_helper.rb +43 -31
  100. metadata +173 -189
  101. data/.document +0 -5
  102. data/.gitignore +0 -25
  103. data/.travis.yml +0 -12
  104. data/solusvm.gemspec +0 -33
  105. data/test/vcr_cassettes/base/invalid_key.yml +0 -19
  106. data/test/vcr_cassettes/base/invalid_status.yml +0 -19
  107. data/test/vcr_cassettes/base/nonexistent_node.yml +0 -19
  108. data/test/vcr_cassettes/base/parse_response.yml +0 -28
  109. data/test/vcr_cassettes/base/statusmsg.yml +0 -28
  110. data/test/vcr_cassettes/base/successful.yml +0 -68
  111. data/test/vcr_cassettes/base/successful_instance_config.yml +0 -28
  112. data/test/vcr_cassettes/base/unauthorized_ip.yml +0 -19
  113. data/test/vcr_cassettes/client/authenticate.yml +0 -37
  114. data/test/vcr_cassettes/client/change_password.yml +0 -39
  115. data/test/vcr_cassettes/client/create.yml +0 -42
  116. data/test/vcr_cassettes/client/delete.yml +0 -37
  117. data/test/vcr_cassettes/client/exists.yml +0 -20
  118. data/test/vcr_cassettes/client/list.yml +0 -66
  119. data/test/vcr_cassettes/general/isos.yml +0 -38
  120. data/test/vcr_cassettes/general/plans.yml +0 -38
  121. data/test/vcr_cassettes/general/templates.yml +0 -38
  122. data/test/vcr_cassettes/node/available_ips.yml +0 -41
  123. data/test/vcr_cassettes/node/ids.yml +0 -21
  124. data/test/vcr_cassettes/node/list.yml +0 -38
  125. data/test/vcr_cassettes/node/list_groups.yml +0 -20
  126. data/test/vcr_cassettes/node/statistics.yml +0 -32
  127. data/test/vcr_cassettes/node/virtualservers.yml +0 -67
  128. data/test/vcr_cassettes/node/xenresources.yml +0 -22
  129. data/test/vcr_cassettes/reseller/change_resources.yml +0 -27
  130. data/test/vcr_cassettes/reseller/create.yml +0 -27
  131. data/test/vcr_cassettes/reseller/delete.yml +0 -15
  132. data/test/vcr_cassettes/reseller/info.yml +0 -27
  133. data/test/vcr_cassettes/reseller/list.yml +0 -27
  134. data/test/vcr_cassettes/server/.yml +0 -1017
  135. data/test/vcr_cassettes/server/add_ip.yml +0 -15
  136. data/test/vcr_cassettes/server/boot.yml +0 -15
  137. data/test/vcr_cassettes/server/change_bootorder.yml +0 -15
  138. data/test/vcr_cassettes/server/change_consolepass.yml +0 -16
  139. data/test/vcr_cassettes/server/change_hostname.yml +0 -15
  140. data/test/vcr_cassettes/server/change_owner.yml +0 -15
  141. data/test/vcr_cassettes/server/change_plan.yml +0 -15
  142. data/test/vcr_cassettes/server/change_rootpassword.yml +0 -15
  143. data/test/vcr_cassettes/server/change_vncpass.yml +0 -15
  144. data/test/vcr_cassettes/server/console.yml +0 -28
  145. data/test/vcr_cassettes/server/create.yml +0 -27
  146. data/test/vcr_cassettes/server/del_ip.yml +0 -15
  147. data/test/vcr_cassettes/server/exists.yml +0 -15
  148. data/test/vcr_cassettes/server/info.yml +0 -27
  149. data/test/vcr_cassettes/server/info_all.yml +0 -15
  150. data/test/vcr_cassettes/server/mountiso.yml +0 -15
  151. data/test/vcr_cassettes/server/network_disable.yml +0 -15
  152. data/test/vcr_cassettes/server/network_enable.yml +0 -15
  153. data/test/vcr_cassettes/server/pae_disable.yml +0 -15
  154. data/test/vcr_cassettes/server/pae_enable.yml +0 -15
  155. data/test/vcr_cassettes/server/reboot.yml +0 -15
  156. data/test/vcr_cassettes/server/rebuild.yml +0 -15
  157. data/test/vcr_cassettes/server/resume.yml +0 -15
  158. data/test/vcr_cassettes/server/shutdown.yml +0 -15
  159. data/test/vcr_cassettes/server/status.yml +0 -15
  160. data/test/vcr_cassettes/server/suspend.yml +0 -15
  161. data/test/vcr_cassettes/server/terminate.yml +0 -27
  162. data/test/vcr_cassettes/server/tun_disable.yml +0 -15
  163. data/test/vcr_cassettes/server/tun_enable.yml +0 -15
  164. data/test/vcr_cassettes/server/unmountiso.yml +0 -15
  165. data/test/vcr_cassettes/server/vnc.yml +0 -15
@@ -1,25 +1,30 @@
1
- module Solusvm
2
- # Solusvm::Server is the class for working with servers.
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
- # Options:
8
- #
9
- # * <tt>:type</tt> - openvz|xen|xen hvm|kvm
10
- # * <tt>:node</tt> - name of node
11
- # * <tt>:nodegroup</tt> - name of nodegroup
12
- # * <tt>:username</tt> - client username
13
- # * <tt>:plan</tt> - plan name
14
- # * <tt>:template</tt> - template or iso name
15
- # * <tt>:ips</tt> - amount of ips
16
- # * <tt>:hvmt</tt> - 0|1 Default is 0. This allows to define templates & isos for Xen HVM
17
- # * <tt>:custommemory</tt> - overide plan memory with this amount
18
- # * <tt>:customdiskspace</tt> - overide plan diskspace with this amount
19
- # * <tt>:custombandwidth</tt> - overide plan bandwidth with this amount
20
- # * <tt>:customcpu</tt> - overide plan cpu cores with this amount
21
- # * <tt>:customextraip</tt> - add this amount of extra ips
22
- # * <tt>:issuelicense</tt> - 1|2 1 = cPanel monthly 2= cPanel yearly
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
- !statusmsg.match(/Virtual server exists/i).nil?
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 vnc password.
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 [cd(Hard Disk CDROM)|dc(CDROM Hard Disk)|c(Hard Disk)|d(CDROM)].
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 - A Integer that can be 1|2|3|4|5|6|7|8
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 iso.
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 iso.
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
@@ -1,3 +1,3 @@
1
- module Solusvm
2
- VERSION = "1.4.0"
1
+ module SolusVM
2
+ VERSION = "2.0.0.beta1"
3
3
  end
@@ -1,15 +1,15 @@
1
1
  require 'test_helper'
2
2
  require 'solusvm/cli'
3
3
 
4
- class TestBaseCli < Test::Unit::TestCase
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 = Solusvm::BaseCli.new
12
- @api = Solusvm::Base.new
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
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'solusvm/cli'
3
3
 
4
- class TestClientCli < Test::Unit::TestCase
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
- Solusvm::Client.expects(:new).with(solusvm_params).returns(api)
28
+ SolusVM::Client.expects(:new).with(solusvm_params).returns(api)
29
29
 
30
30
  $stdout.expects(:puts).with("theresult")
31
- Solusvm::Cli.start(cli_expand_base_arguments([
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
- Solusvm::Client.expects(:new).with(solusvm_params).returns(mock do
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
- Solusvm::Cli.start(cli_expand_base_arguments(["client", "change-password", "theusername", "thepassword"]))
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
- Solusvm::Client.expects(:new).with(solusvm_params).returns(mock do
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
- Solusvm::Cli.start(cli_expand_base_arguments(["client", "authenticate", "theusername", "thepassword"]))
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
- Solusvm::Client.expects(:new).with(solusvm_params).returns(mock do
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
- Solusvm::Cli.start(cli_expand_base_arguments(["client", "check-exists", "theusername"]))
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
- Solusvm::Client.stubs(:new).with(solusvm_params).returns(mock do
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
- Solusvm::Cli.start(cli_expand_base_arguments(["client", "delete", "theusername"]))
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
- Solusvm::Client.expects(:new).with(solusvm_params).returns(mock do
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
- Solusvm::Cli.start(cli_expand_base_arguments(["client", "list"]))
89
+ SolusVM::CLI.start(cli_expand_base_arguments(["client", "list"]))
90
90
  end
91
91
  end