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.
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