lumberg 2.0.0.pre20 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4be4c100bbc35f27900bd8830afdc2d8e94bcc0
4
- data.tar.gz: b73036c13c045581404257369e98ee8d137d6f8c
3
+ metadata.gz: 9592d20229a7597396c55e15b997aaeda53f9c96
4
+ data.tar.gz: 1dc200699df461f25dfb1d81e2ec07e4b0bf72e3
5
5
  SHA512:
6
- metadata.gz: a76541ea84f819cc25ccc55f59187f9cd618059a81fa6991ace87c643b06009288d5ca94cbf12a195cb701d1788191232efc4ae4331fcdea103db05cc51d533e
7
- data.tar.gz: 830331e9488dc6e735c4381229764940003185054dfbcdfba0fc50df86661830afce3797360ff65e3a61851cc534b9486c4424592ef7a1509b4266d3bdbf8d02
6
+ metadata.gz: c67a6453be51e33310a50b630a4e4ceeedcca36901aca1c86050b7d97e94f0354b0d009f27aedebf8182f0709a799906190eab609bdb32f6e99835fd1abaa769
7
+ data.tar.gz: ab01a5ec1b84502064133d536d19e226529f8151f459cc746e54e8ebbccee05fdd04b8cfa82d0c3336d3baf7df4aee5f82d7842077a239d9caaee41bbb3f05f5
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Site5.com <http://www.site5.com>
1
+ Copyright (c) 2015 WWWH, LLC.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -7,13 +7,19 @@ beta-ish. Please report any issues you find. :)
7
7
 
8
8
  [RDoc](http://rdoc.info/github/site5/lumberg/master/frames)
9
9
 
10
- Confirmed to work with ruby 1.9.3, 2.0.0, 2.1.3 and JRuby 1.9 mode on
11
- cPanel 11.28+
10
+ Confirmed to work with ruby 1.9.3, 2.0.0, 2.1.3, 2.2.0 and JRuby 1.9 mode.
12
11
 
13
12
  [Build Status]: http://travis-ci.org/site5/lumberg
14
13
  [Build Icon]: https://secure.travis-ci.org/site5/lumberg.png?branch=master
15
14
 
16
15
 
16
+ ## cPanel Version Targets
17
+
18
+ * cPanel 11.4x: _v2.0.0_
19
+ * cPanel 11.3x: _v2.0.0.pre10_
20
+ * cPanel 11.2x: _v1.1.1_
21
+
22
+
17
23
  ## Install
18
24
 
19
25
  gem install lumberg
@@ -35,9 +41,10 @@ If you are using HTTP Basic Authentication with a username/password:
35
41
 
36
42
  ```ruby
37
43
  server = Lumberg::Whm::Server.new(
38
- host: WHM_HOST,
39
- user: USERNAME,
40
- hash: 'my_password'
44
+ host: WHM_HOST,
45
+ user: USERNAME,
46
+ hash: 'my_password',
47
+ basic_auth: true
41
48
  )
42
49
  ```
43
50
 
@@ -133,7 +140,6 @@ p "Found user '#{acct[:user]}' with domain '#{acct[:domain]}'"
133
140
  Found user 'newuser' with domain 'newuser.com'
134
141
  ```
135
142
 
136
-
137
143
  Suspending an account is simple and the reason for suspension is optional.
138
144
 
139
145
  ```ruby
@@ -221,12 +227,6 @@ correspond to cPanel API modules. cPanel API module coverage is currently
221
227
  incomplete and we're seeking contributions. Check out [Extending
222
228
  Lumberg::Cpanel](#extending-lumbergcpanel) for details on how you can help.
223
229
 
224
- #### Cpanel 11.3x vs 11.4x
225
-
226
- Prefer Lumberg _v2.0.0.pre10_ if you're running Cpanel 11.3x.
227
-
228
- We're targetting Cpanel 11.4x from Lumberg _v2.0.0.pre11_ and above.
229
-
230
230
  #### Email example
231
231
 
232
232
  ```ruby
@@ -247,9 +247,9 @@ email.add_forwarder(
247
247
  fwdopt: "fwd",
248
248
  fwdemail: "dest@other-domain.com"
249
249
  )
250
-
251
250
  ```
252
251
 
252
+
253
253
  ## Contributing
254
254
 
255
255
  ### Extending Lumberg::Cpanel
@@ -324,7 +324,7 @@ email.add_forwarder(
324
324
 
325
325
  - In many cases, you'll name your methods to match up
326
326
  with the documented cPanel API methods. However, the documented method
327
- names are sometimes a bit lengthy, confusing, or otherwise unwiedly; feel
327
+ names are sometimes a bit lengthy, confusing, or otherwise unwieldy; feel
328
328
  free to give your corresponding method an improved name.
329
329
  - Use [TomDoc](http://tomdoc.org/) documentation for your methods.
330
330
  Be sure to document all required and optional parameters from the
@@ -335,6 +335,7 @@ email.add_forwarder(
335
335
  other parameters.
336
336
 
337
337
  ### Sanitizing VCR cassettes
338
+
338
339
  All HTTP interactions are recorded using VCR and FakeWeb. Please be sure to remove
339
340
  sensitive data from your cassettes. A Rake task is provided for this purpose:
340
341
  ```
@@ -347,13 +348,13 @@ information still present (check URLs, authorization params, etc.).
347
348
 
348
349
  * Fork the project.
349
350
  * Make your feature addition or bug fix.
350
- * Add tests for it. This is important so I don't break it in a
351
+ * Add tests for it. This is important so we don't break it in a
351
352
  future version unintentionally.
352
- * Commit, do not mess with rakefile, version, or history.
353
+ * Commit, do not mess with Rakefile, version, or history.
353
354
  (if you want to have your own version, that is fine but bump version in a
354
- commit by itself I can ignore when I pull)
355
- * Send me a pull request. Bonus points for topic branches.
355
+ commit by itself we can ignore when we pull)
356
+ * Send us a pull request. Bonus points for topic branches.
356
357
 
357
358
  ## Copyright
358
359
 
359
- Copyright (c) 2012-2014 Site5.com. See LICENSE for details.
360
+ Copyright (c) 2015 WWWH, LLC. See LICENSE for details.
@@ -39,24 +39,26 @@ module Lumberg
39
39
  success, message, params = false, nil, {}
40
40
 
41
41
  case @type || response_type(response)
42
- when :action
43
- success, message, params = format_action_response(response)
44
- when :query
45
- success, message, params = format_query_response(response)
46
- when :ssl
47
- success, message, params = format_ssl_response(response)
48
- when :whostmgr
49
- success, message, params = format_whostmgr_response(response)
50
- when :error
51
- message = response['error']
52
- when :unknown
53
- message = "Unknown error occurred #{response.inspect}"
42
+ when :action
43
+ success, message, params = format_action_response(response)
44
+ when :query
45
+ success, message, params = format_query_response(response)
46
+ when :ssl
47
+ success, message, params = format_ssl_response(response)
48
+ when :whostmgr
49
+ success, message, params = format_whostmgr_response(response)
50
+ when :error
51
+ message = response['error']
52
+ when :xfer
53
+ success, message, params = format_xfer_response(response)
54
+ else
55
+ message = "Unknown error occurred #{response.inspect}"
54
56
  end
55
57
 
56
58
  params = Whm::symbolize_keys(params)
57
59
  params = Whm::to_bool(params, @boolean_params)
58
60
 
59
- {success: success, message: message, params: params}
61
+ { success: success, message: message, params: params }
60
62
  end
61
63
 
62
64
  def response_type(response)
@@ -150,5 +152,11 @@ module Lumberg
150
152
  return false, "", []
151
153
  end
152
154
  end
155
+
156
+ def format_xfer_response(response)
157
+ metadata = response['metadata']
158
+
159
+ return metadata['result'].to_i == 1, metadata['reason'], response['data']
160
+ end
153
161
  end
154
162
  end
@@ -1,3 +1,3 @@
1
1
  module Lumberg
2
- VERSION = '2.0.0.pre20'
2
+ VERSION = '2.0.0'
3
3
  end
data/lib/lumberg/whm.rb CHANGED
@@ -1,11 +1,12 @@
1
1
  module Lumberg
2
2
  module Whm
3
- autoload :Base, 'lumberg/whm/base'
4
- autoload :Server, 'lumberg/whm/server'
5
- autoload :Account, 'lumberg/whm/account'
6
- autoload :Dns, 'lumberg/whm/dns'
7
- autoload :Reseller, 'lumberg/whm/reseller'
8
- autoload :Cert, 'lumberg/whm/cert'
3
+ autoload :Base, 'lumberg/whm/base'
4
+ autoload :Server, 'lumberg/whm/server'
5
+ autoload :Account, 'lumberg/whm/account'
6
+ autoload :Dns, 'lumberg/whm/dns'
7
+ autoload :Reseller, 'lumberg/whm/reseller'
8
+ autoload :Cert, 'lumberg/whm/cert'
9
+ autoload :TransferTool, 'lumberg/whm/transfer_tool'
9
10
 
10
11
  class << self
11
12
 
@@ -16,7 +17,7 @@ module Lumberg
16
17
  arg.map { |elem| symbolize_keys elem }
17
18
  when Hash
18
19
  Hash[
19
- arg.map { |key, value|
20
+ arg.map { |key, value|
20
21
  k = key.is_a?(String) ? key.gsub('-', '_').to_sym : key
21
22
  v = symbolize_keys value
22
23
  [k,v]
@@ -57,8 +58,8 @@ module Lumberg
57
58
  elsif input == true
58
59
  1
59
60
  elsif input.is_a?(Hash)
60
- Hash[
61
- input.map {|k,v|
61
+ Hash[
62
+ input.map {|k,v|
62
63
  v = from_bool(v)
63
64
  [k,v]
64
65
  }
@@ -232,6 +232,10 @@ module Lumberg
232
232
  @cert ||= Cert.new(server: self)
233
233
  end
234
234
 
235
+ def transfer_tool
236
+ @transfer_tool ||= TransferTool.new(server: self)
237
+ end
238
+
235
239
  private
236
240
 
237
241
  def do_request(uri, function, params)
@@ -0,0 +1,165 @@
1
+ module Lumberg
2
+ module Whm
3
+ class TransferTool < Base
4
+
5
+ # Public: Creates a new transfer session.
6
+ #
7
+ # options - Hash options for API call params. (default: {})
8
+ # :host - String hostname of the remote server.
9
+ # :user - String username to connect on remote server.
10
+ # :password - String password for account specified above.
11
+ #
12
+ # Returns Hash API Response.
13
+ def create(options = {})
14
+ default_options = { remote_server_type: 'auto',
15
+ port: 22,
16
+ root_escalation_method: 'sudo',
17
+ transfer_threads: 2,
18
+ restore_threads: 2,
19
+ unrestricted_restore: 1,
20
+ compressed: 1,
21
+ unencrypted: 0,
22
+ use_backups: 1,
23
+ low_priority: 0,
24
+ enable_custom_pkgacct: 0 }
25
+
26
+ options.merge!("api.version" => "1")
27
+
28
+ server.force_response_type = :xfer
29
+
30
+ server.perform_request(
31
+ 'create_remote_root_transfer_session',
32
+ default_options.merge(options)
33
+ )
34
+ end
35
+
36
+ # Public: Checks a given transfer session ID.
37
+ #
38
+ # transfer_session_id - String ID of the transfer session.
39
+ #
40
+ # Returns Hash API Response.
41
+ def check(transfer_session_id)
42
+ options = { transfer_session_id: transfer_session_id }
43
+
44
+ server.force_response_type = :xfer
45
+
46
+ server.perform_request(
47
+ 'retrieve_transfer_session_remote_analysis',
48
+ options.merge("api.version" => "1")
49
+ )
50
+ end
51
+
52
+ # Public: Validates a system user, preventing account conflicts.
53
+ #
54
+ # username - String username to validate.
55
+ #
56
+ # Returns Hash API Response.
57
+ def validate_user(username)
58
+ options = { user: username }
59
+
60
+ server.force_response_type = :xfer
61
+
62
+ server.perform_request(
63
+ 'validate_system_user',
64
+ options.merge("api.version" => "1")
65
+ )
66
+ end
67
+
68
+ # Public: Enqueues a transfer session.
69
+ #
70
+ # options - Hash options for API call params. (default: {})
71
+ # :transfer_session_id - String ID of the transfer session.
72
+ # :queue - String transfer queue name. Can be one of the
73
+ # following: LegacyAccountBackup,
74
+ # FeatureListRemoteRoot, PackageRemoteRoot,
75
+ # AccountLocal, AccountRemoteRoot and
76
+ # AccountRemoteUser.
77
+ # (default: 'AccountRemoteRoot')
78
+ # :size - Integer account size in Bytes.
79
+ # :other_arguments - Doc here
80
+ # https://documentation.cpanel.net/display/SDK/WHM+API+1+-+enqueue_transfer_item
81
+ #
82
+ # Returns Hash API Reponse.
83
+ def enqueue(options = {})
84
+ default_options = { "api.version" => "1" }
85
+
86
+ options["module"] = options.delete(:queue) || "AccountRemoteRoot"
87
+
88
+ if %w(AccountRemoteRoot AccountRemoteUser AccountLocal).include?(options["module"])
89
+ options[:localuser] = options.delete(:localuser) || options[:user]
90
+ end
91
+
92
+ server.force_response_type = :xfer
93
+
94
+ server.perform_request('enqueue_transfer_item', default_options.merge(options))
95
+ end
96
+
97
+ # Public: Starts or restarts a transfer.
98
+ #
99
+ # transfer_session_id - String ID of the transfer session.
100
+ #
101
+ # Returns Hash API Response.
102
+ def start(transfer_session_id)
103
+ options = { transfer_session_id: transfer_session_id }
104
+
105
+ server.force_response_type = :xfer
106
+
107
+ server.perform_request(
108
+ 'start_transfer_session',
109
+ options.merge("api.version" => "1")
110
+ )
111
+ end
112
+
113
+ # Public: Gets migration status.
114
+ #
115
+ # transfer_session_id - String ID of the transfer session.
116
+ #
117
+ # Returns Hash API Response.
118
+ def status(transfer_session_id)
119
+ options = { transfer_session_id: transfer_session_id }
120
+
121
+ server.force_response_type = :xfer
122
+
123
+ server.perform_request(
124
+ 'get_transfer_session_state',
125
+ options.merge("api.version" => "1")
126
+ )
127
+ end
128
+
129
+ # Public: Shows transfer log.
130
+ #
131
+ # transfer_session_id - String ID of the transfer session.
132
+ # type - Symbol log type, can be either `:common` or
133
+ # `:error`. (default: :common)
134
+ #
135
+ # Returns Hash API Response.
136
+ def show_log(transfer_session_id, log_type = :common)
137
+ options = { logfile: log_type == :common ? 'master.log' : 'master.error_log',
138
+ transfer_session_id: transfer_session_id }
139
+
140
+ server.force_response_type = :xfer
141
+
142
+ server.perform_request(
143
+ 'fetch_transfer_session_log',
144
+ options.merge("api.version" => "1")
145
+ )
146
+ end
147
+
148
+ # Public: Pauses a given transfer session.
149
+ #
150
+ # transfer_session_id - String ID of the transfer session.
151
+ #
152
+ # Returns Hash API Response.
153
+ def pause(transfer_session_id)
154
+ options = { transfer_session_id: transfer_session_id }
155
+
156
+ server.force_response_type = :xfer
157
+
158
+ server.perform_request(
159
+ 'pause_transfer_session',
160
+ options.merge("api.version" => "1")
161
+ )
162
+ end
163
+ end
164
+ end
165
+ end
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/retrieve_transfer_session_remote_analysis?api.version=1&transfer_session_id=x
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Tue, 06 Jan 2015 15:00:03 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"metadata":{"reason":"OK","result":"1","version":1,"command":"retrieve_transfer_session_remote_analysis"},"data":{"transfer_session_id":"x","local":{"dbs":{"dbs":{"MYSQL":{"db_db":{"owner":"db"}},"PGSQL":{}},"users":{"MYSQL":{"db_db":{"owner":"db"}},"PGSQL":{}}},"domains":{"db.local":"db","*":"nobody"},"users":{"named":1,"sync":1,"cpaneleximscanner":1,"rpc":1,"mail":1,"xfs":1,"nfsnobody":1,"cpanelhorde":1,"mysql":1,"shutdown":1,"cpanel":1,"operator":1,"cpanelroundcube":1,"vcsa":1,"dbus":1,"db":1,"news":1,"uucp":1,"haldaemon":1,"adm":1,"cpanelphpmyadmin":1,"root":1,"dovenull":1,"rpcuser":1,"gopher":1,"cpses":1,"cpaneleximfilter":1,"cpanellogaholic":1,"bin":1,"mailman":1,"mailnull":1,"cpanellogin":1,"pcap":1,"avahi-autoipd":1,"sshd":1,"lp":1,"cpanelphppgadmin":1,"games":1,"daemon":1,"smmsp":1,"dovecot":1,"ftp":1,"nobody":1,"nscd":1,"halt":1},"dedicated_ips":{},"available_ips":[],"groups":{"kmem":1,"audio":1,"utempter":1,"named":1,"man":1,"disk":1,"mail":1,"cpaneleximscanner":1,"rpc":1,"xfs":1,"cpanelhorde":1,"nfsnobody":1,"mysql":1,"slocate":1,"compiler":1,"cpanel":1,"screen":1,"cpanelroundcube":1,"vcsa":1,"dbus":1,"mailtrap":1,"proftpd":1,"wheel":1,"db":1,"mem":1,"news":1,"dip":1,"haldaemon":1,"uucp":1,"adm":1,"cpanelphpmyadmin":1,"root":1,"dovenull":1,"rpcuser":1,"gopher":1,"cpses":1,"cpaneleximfilter":1,"cpanellogaholic":1,"bin":1,"floppy":1,"mailman":1,"mailnull":1,"users":1,"cpanellogin":1,"pcap":1,"sshd":1,"utmp":1,"tty":1,"avahi-autoipd":1,"sys":1,"lp":1,"games":1,"cpanelphppgadmin":1,"smmsp":1,"daemon":1,"dovecot":1,"ftp":1,"nobody":1,"lock":1,"nscd":1}},"options":{"skip_reseller_privs":"0","unrestricted":"1"},"config":{"shared_mysql_server":"0"},"remote":{"has_owners":1,"has_package_extensions":1,"cpversion":"11.30","has_disk_used":1,"host":"192.168.1.100","dbs":{"dbs":{"MYSQL":{"mylogin_pres411":{"owner":"mylogin"}}},"PGSQL":{}},"users":{"MYSQL":{"mylogin_pres411":{"owner":"mylogin"}},"PGSQL":{}},"resellers":{"reseller":1,"root":1},"conflicts":{},"has_xfertool":1,"server_type":"WHM1130","version":"11.44.1.23"},"items":{"packages":[{"name":"reseller_one","featurelist":"default"}],"accounts":[{"has_dedicated_ip":0,"owner":"root","bytesused":73682944,"user":"mylogin","domain":"mylogin-account.local"},{"has_dedicated_ip":0,"owner":"reseller","bytesused":172032,"user":"reseller","domain":"reseller-test.com"}]}}}'
42
+ http_version:
43
+ recorded_at: Tue, 06 Jan 2015 15:00:04 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,72 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/create_remote_root_transfer_session?api.version=1&compressed=1&enable_custom_pkgacct=0&host=192.168.1.100&low_priority=0&password=t00r&port=22&remote_server_type=auto&restore_threads=2&root_escalation_method=sudo&transfer_threads=2&unencrypted=0&unrestricted_restore=1&use_backups=1&user=mylogin
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Tue, 06 Jan 2015 14:34:06 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: ASCII-8BIT
41
+ string: !binary |-
42
+ eyJtZXRhZGF0YSI6eyJyZXN1bHQiOiIxIiwicmVhc29uIjoiT0siLCJjb21t
43
+ YW5kIjoiY3JlYXRlX3JlbW90ZV9yb290X3RyYW5zZmVyX3Nlc3Npb24iLCJ2
44
+ ZXJzaW9uIjoxfSwiZGF0YSI6eyJhbmFseXplX3Jhd291dCI6IkZldGNoaW5n
45
+ IGluZm9ybWF0aW9uIGZyb20gcmVtb3RlIGhvc3Q6IOKAnDE5Mi4xNjguMS4x
46
+ MDDigJ0g4oCmIOKAplxuRG9uZVxuRmV0Y2hpbmcgaW5mb3JtYXRpb24gZnJv
47
+ bSByZW1vdGUgaG9zdDog4oCcMTkyLjE2OC4xLjEwMOKAnSDigKYg4oCmXG5E
48
+ b25lXG4iLCJjcmVhdGVfcmF3b3V0IjoiQmFzaWMgY3JlZGVudGlhbCBjaGVj
49
+ ayDigKYg4oCmXG5Eb25lXG5GZXRjaGluZyBpbmZvcm1hdGlvbiBmcm9tIHJl
50
+ bW90ZSBob3N0OiDigJwxOTIuMTY4LjEuMTAw4oCdIOKApiDigKZcbkRvbmVc
51
+ bkZldGNoaW5nIFdITSBWZXJzaW9uIOKAplxuRG9uZVxuVGVzdGluZyDigJwx
52
+ OTIuMTY4LjEuMTAw4oCdIGZvciB0cmFuc2ZlciBzdHJlYW1pbmcgc3VwcG9y
53
+ dCB3aXRoIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uLi4uLjxzdHJvbmc+VGhl
54
+ IHN5c3RlbSBpcyB1bmFibGUgdG8gc3RyZWFtIGFjY291bnQgdHJhbnNmZXJz
55
+ IHdpdGggcGFzc3dvcmQgYXV0aGVudGljYXRpb246PC9zdHJvbmc+IOKAnFN0
56
+ cmVhbWluZyBub3Qgc3VwcG9ydGVkOiBGZXRjaGluZyBzdHJlYW0gZnJvbSBS
57
+ ZW1vdGUgV0hNIHVzaW5nIOKAnGh0dHBz4oCdIGZyb20gaG9zdCDigJwxOTIu
58
+ MTY4LjEuMTAw4oCdIOKAplxuSFRUUC8xLjEgNDAxIEFjY2VzcyBEZW5pZWRc
59
+ clxuXG7igJ1cbkZldGNoaW5nIGluZm9ybWF0aW9uIGZyb20gcmVtb3RlIGhv
60
+ c3Q6IOKAnDE5Mi4xNjguMS4xMDDigJ0g4oCmIOKAplxuRG9uZVxuVGVzdGlu
61
+ ZyDigJwxOTIuMTY4LjEuMTAw4oCdIGZvciB0cmFuc2ZlciBzdHJlYW1pbmcg
62
+ c3VwcG9ydCB3aXRoIGFjY2Vzc2hhc2ggYXV0aGVudGljYXRpb24uLi4uPHN0
63
+ cm9uZz5UaGUgc3lzdGVtIGlzIHVuYWJsZSB0byBzdHJlYW0gYWNjb3VudCB0
64
+ cmFuc2ZlcnMgd2l0aCBhY2Nlc3NoYXNoIGF1dGhlbnRpY2F0aW9uOjwvc3Ry
65
+ b25nPiDigJxTdHJlYW1pbmcgbm90IHN1cHBvcnRlZDogRmV0Y2hpbmcgc3Ry
66
+ ZWFtIGZyb20gUmVtb3RlIFdITSB1c2luZyDigJxodHRwc+KAnSBmcm9tIGhv
67
+ c3Qg4oCcMTkyLjE2OC4xLjEwMOKAnSDigKZcbkFjY2VzcyBkZW5pZWRcclxu
68
+ RG9uZVxu4oCdXG5SZW1vdGUgU2VydmVyIFR5cGU6IOKAnFdITTExMzDigJ1c
69
+ biIsInRyYW5zZmVyX3Nlc3Npb25faWQiOiJ4In19
70
+ http_version:
71
+ recorded_at: Tue, 06 Jan 2015 14:34:06 GMT
72
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/enqueue_transfer_item?api.version=1&localuser=another&module=AccountRemoteRoot&size=73682944&transfer_session_id=x&user=another
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Tue, 06 Jan 2015 19:32:42 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"metadata":{"reason":"OK","result":"1","version":1,"command":"enqueue_transfer_item"}}'
42
+ http_version:
43
+ recorded_at: Tue, 06 Jan 2015 19:32:42 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/pause_transfer_session?api.version=1&transfer_session_id=x
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Wed, 07 Jan 2015 13:36:27 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"metadata":{"command":"pause_transfer_session","result":"1","version":1,"reason":"OK"}}'
42
+ http_version:
43
+ recorded_at: Wed, 07 Jan 2015 13:36:27 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/fetch_transfer_session_log?api.version=1&logfile=master.log&transfer_session_id=x
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Wed, 07 Jan 2015 13:18:00 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"metadata":{"reason":"OK","command":"fetch_transfer_session_log","version":1,"result":"1"},"data":{"log":"{\"type\":\"control\",\"contents\":{\"action\":\"start\",\"child_number\":0},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"initiator\",\"child_number\":0,\"msg\":\"copyacct\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"version\",\"child_number\":0,\"msg\":\"1.9\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"queue_count\",\"child_number\":0,\"msg\":\"1\",\"queue\":\"TRANSFER\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"queue_size\",\"child_number\":0,\"msg\":\"73682944\",\"queue\":\"TRANSFER\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"queue_count\",\"child_number\":0,\"msg\":\"1\",\"queue\":\"RESTORE\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"queue_size\",\"child_number\":0,\"msg\":\"73682944\",\"queue\":\"RESTORE\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"remotehost\",\"child_number\":0,\"msg\":\"192.168.1.100\"},\"pid\":\"30831\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"start\",\"item\":\"another\",\"logfile\":\"item-TRANSFER_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"queue\":\"TRANSFER\"},\"pid\":\"30833\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"process-item\",\"item\":\"another\",\"logfile\":\"item-TRANSFER_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":\"item-TRANSFER_AccountRemoteRoot_another\",\"queue\":\"TRANSFER\"},\"pid\":\"30833\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"start-item\",\"item\":\"another\",\"logfile\":\"item-TRANSFER_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":{\"size\":\"73682944\"},\"queue\":\"TRANSFER\"},\"pid\":\"30833\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"success-item\",\"item\":\"another\",\"logfile\":\"item-TRANSFER_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":{\"altered_items\":0,\"message\":null,\"dangerous_items\":0,\"contents\":{\"altered_items\":null,\"dangerous_items\":null,\"skipped_items\":null,\"warnings\":null},\"skipped_items\":0,\"warnings\":0,\"size\":\"73682944\"},\"queue\":\"TRANSFER\"},\"pid\":\"30833\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"complete\",\"child_number\":1,\"queue\":\"TRANSFER\"},\"pid\":\"30833\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"start\",\"item\":\"another\",\"logfile\":\"item-RESTORE_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"queue\":\"RESTORE\"},\"pid\":\"30835\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"process-item\",\"item\":\"another\",\"logfile\":\"item-RESTORE_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":\"item-RESTORE_AccountRemoteRoot_another\",\"queue\":\"RESTORE\"},\"pid\":\"30835\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"start-item\",\"item\":\"another\",\"logfile\":\"item-RESTORE_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":{\"size\":\"73682944\"},\"queue\":\"RESTORE\"},\"pid\":\"30835\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"success-item\",\"item\":\"another\",\"logfile\":\"item-RESTORE_AccountRemoteRoot_another\",\"item_type\":\"AccountRemoteRoot\",\"local_item\":\"another\",\"item_name\":\"Account\",\"child_number\":1,\"msg\":{\"altered_items\":0,\"message\":null,\"dangerous_items\":0,\"contents\":{\"altered_items\":[],\"dangerous_items\":[],\"skipped_items\":[],\"warnings\":[]},\"skipped_items\":0,\"warnings\":0,\"size\":\"73682944\"},\"queue\":\"RESTORE\"},\"pid\":\"30835\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"complete\",\"child_number\":1,\"queue\":\"RESTORE\"},\"pid\":\"30835\"}\n{\"type\":\"control\",\"contents\":{\"action\":\"complete\",\"child_number\":0},\"pid\":\"30831\"}\n"}}'
42
+ http_version:
43
+ recorded_at: Wed, 07 Jan 2015 13:18:00 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/start_transfer_session?api.version=1&transfer_session_id=x
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Tue, 06 Jan 2015 19:36:46 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"pid":30831},"metadata":{"reason":"OK","result":"1","version":1,"command":"start_transfer_session"}}'
42
+ http_version:
43
+ recorded_at: Tue, 06 Jan 2015 19:36:46 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/get_transfer_session_state?api.version=1&transfer_session_id=x
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Wed, 07 Jan 2015 13:13:35 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"state_name":"COMPLETED"},"metadata":{"reason":"OK","version":1,"result":"1","command":"get_transfer_session_state"}}'
42
+ http_version:
43
+ recorded_at: Wed, 07 Jan 2015 13:13:35 GMT
44
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://myhost.com:2087/json-api/validate_system_user?api.version=1&user=another
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - WHM root:iscool
12
+ Accept-Encoding:
13
+ - deflate
14
+ User-Agent:
15
+ - Faraday v0.9.0
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - cpsrvd/11.44.1.23
25
+ X-Keep-Alive-Count:
26
+ - '1'
27
+ Connection:
28
+ - Keep-Alive
29
+ Keep-Alive:
30
+ - timeout=70, max=200
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Date:
34
+ - Tue, 06 Jan 2015 16:05:59 GMT
35
+ Cache-Control:
36
+ - no-cache
37
+ Content-Type:
38
+ - text/plain; charset="utf-8"
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"reserved":0,"valid_for_transfer":1,"exists":0,"valid_for_new":1},"metadata":{"version":1,"result":"1","command":"validate_system_user","reason":"OK"}}'
42
+ http_version:
43
+ recorded_at: Tue, 06 Jan 2015 16:05:59 GMT
44
+ recorded_with: VCR 2.9.2
@@ -382,5 +382,11 @@ module Lumberg
382
382
  result[:params][:ip].should =~ Resolv::IPv4::Regex
383
383
  end
384
384
  end
385
+
386
+ describe '#transfer_tool' do
387
+ subject { @whm.transfer_tool }
388
+
389
+ it { should be_a Whm::TransferTool }
390
+ end
385
391
  end
386
392
  end
@@ -0,0 +1,172 @@
1
+ require 'spec_helper'
2
+ require 'lumberg/whm'
3
+
4
+ module Lumberg
5
+ describe Whm::TransferTool do
6
+ let(:source_server) { '192.168.1.100' }
7
+ let(:username) { 'mylogin' }
8
+ let(:password) { 't00r' }
9
+ let(:xfer_id) { 'x' }
10
+
11
+ before do
12
+ @server = Whm::Server.new(host: @whm_host, hash: @whm_hash)
13
+ @xfer_tool = Whm::TransferTool.new(server: @server.dup)
14
+ end
15
+
16
+ describe '#create' do
17
+ use_vcr_cassette 'whm/transfer_tool/create'
18
+
19
+ subject { @xfer_tool.create host: source_server, user: username, password: password }
20
+
21
+ its([:success]) { should be_true }
22
+ its([:message]) { should eq 'OK' }
23
+ its([:params]) { should include :transfer_session_id }
24
+
25
+ it 'has a session ID' do
26
+ subject[:params][:transfer_session_id].should_not be_empty
27
+ end
28
+ end
29
+
30
+ describe '#check' do
31
+ use_vcr_cassette 'whm/transfer_tool/check'
32
+
33
+ subject { @xfer_tool.check xfer_id }
34
+
35
+ its([:success]) { should be_true }
36
+ its([:message]) { should eq 'OK' }
37
+ its([:params]) { should include :transfer_session_id }
38
+
39
+ it 'has local server data' do
40
+ subject[:params][:local].should_not be_empty
41
+ end
42
+
43
+ it 'has remote server data' do
44
+ subject[:params][:remote].should_not be_empty
45
+ end
46
+ end
47
+
48
+ describe '#validate_user' do
49
+ use_vcr_cassette 'whm/transfer_tool/validate_user'
50
+
51
+ subject { @xfer_tool.validate_user 'another' }
52
+
53
+ its([:success]) { should be_true }
54
+ its([:message]) { should eq 'OK' }
55
+
56
+ it 'checks if user does not exist on local server' do
57
+ subject[:params][:exists].should eq 0
58
+ end
59
+
60
+ it 'checks if account is not reserved' do
61
+ subject[:params][:reserved].should eq 0
62
+ end
63
+
64
+ it 'checks if it is possible to create an account with that given login' do
65
+ subject[:params][:valid_for_new].should eq 1
66
+ end
67
+
68
+ it 'checks if it is possible to migrate account to local server' do
69
+ subject[:params][:valid_for_transfer].should eq 1
70
+ end
71
+ end
72
+
73
+ describe '#enqueue' do
74
+ context 'enqueueing a migration' do
75
+ use_vcr_cassette 'whm/transfer_tool/enqueue'
76
+
77
+ subject do
78
+ @xfer_tool.enqueue(
79
+ transfer_session_id: xfer_id,
80
+ size: 73682944, user: 'another')
81
+ end
82
+
83
+ its([:success]) { should be_true }
84
+ its([:message]) { should eq 'OK' }
85
+ its([:params]) { should be_nil }
86
+ end
87
+
88
+ context 'copying package' do
89
+ let(:enqueue_transfer_options) do
90
+ { transfer_session_id: xfer_id,
91
+ package: 'some_package' }
92
+ end
93
+
94
+ let(:queue) { 'PackageRemoteRoot' }
95
+
96
+ before do
97
+ stub_request(
98
+ :get,
99
+ /enqueue_transfer_item\?api\.version=1&module=PackageRemoteRoot&package=some_package&transfer_session_id=x/
100
+ ).to_return(
101
+ status: 200,
102
+ body: '{"metadata":{"reason":"OK","result":"1","version":1,"command":"enqueue_transfer_item"}}'
103
+ )
104
+
105
+ enqueue_transfer_options.merge!(
106
+ "module" => "PackageRemoteRoot",
107
+ "api.version" => "1"
108
+ )
109
+ end
110
+
111
+ it 'enqueues migration to PackageRemoteRoot queue and does not pass :localuser to cPanel/WHM' do
112
+ Lumberg::Whm::Server.any_instance.should_receive(:perform_request)
113
+ .with 'enqueue_transfer_item', enqueue_transfer_options
114
+
115
+ @xfer_tool.enqueue enqueue_transfer_options.merge(queue: queue)
116
+ end
117
+ end
118
+ end
119
+
120
+ describe '#start' do
121
+ use_vcr_cassette 'whm/transfer_tool/start'
122
+
123
+ subject { @xfer_tool.start xfer_id }
124
+
125
+ its([:success]) { should be_true }
126
+ its([:message]) { should eq 'OK' }
127
+ its([:params]) { should include :pid }
128
+
129
+ it 'sets PID for current migration' do
130
+ subject[:params][:pid].should be_an Integer
131
+ end
132
+ end
133
+
134
+ describe '#status' do
135
+ use_vcr_cassette 'whm/transfer_tool/status'
136
+
137
+ subject { @xfer_tool.status xfer_id }
138
+
139
+ its([:success]) { should be_true }
140
+ its([:message]) { should eq 'OK' }
141
+ its([:params]) { should include :state_name }
142
+
143
+ it 'returns current status' do
144
+ subject[:params][:state_name].should_not be_empty
145
+ end
146
+ end
147
+
148
+ describe '#show_log' do
149
+ use_vcr_cassette 'whm/transfer_tool/show_log'
150
+
151
+ subject { @xfer_tool.show_log xfer_id }
152
+
153
+ its([:success]) { should be_true }
154
+ its([:message]) { should eq 'OK' }
155
+ its([:params]) { should include :log }
156
+
157
+ it 'shows log for current transfer' do
158
+ subject[:params][:log].should_not be_empty
159
+ end
160
+ end
161
+
162
+ describe '#pause' do
163
+ use_vcr_cassette 'whm/transfer_tool/pause'
164
+
165
+ subject { @xfer_tool.pause xfer_id }
166
+
167
+ its([:success]) { should be_true }
168
+ its([:message]) { should eq 'OK' }
169
+ its([:params]) { should be_nil }
170
+ end
171
+ end
172
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lumberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre20
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Mazzi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-10 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: 1.8.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.8'
26
+ version: 1.8.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -162,6 +162,7 @@ files:
162
162
  - lib/lumberg/whm/dns.rb
163
163
  - lib/lumberg/whm/reseller.rb
164
164
  - lib/lumberg/whm/server.rb
165
+ - lib/lumberg/whm/transfer_tool.rb
165
166
  - lib/lumberg/whostmgr.rb
166
167
  - lib/lumberg/whostmgr/base.rb
167
168
  - lib/lumberg/whostmgr/ssl.rb
@@ -394,6 +395,14 @@ files:
394
395
  - spec/vcr_cassettes/whm/server/systemloadavg.yml
395
396
  - spec/vcr_cassettes/whm/server/themes.yml
396
397
  - spec/vcr_cassettes/whm/server/version.yml
398
+ - spec/vcr_cassettes/whm/transfer_tool/check.yml
399
+ - spec/vcr_cassettes/whm/transfer_tool/create.yml
400
+ - spec/vcr_cassettes/whm/transfer_tool/enqueue.yml
401
+ - spec/vcr_cassettes/whm/transfer_tool/pause.yml
402
+ - spec/vcr_cassettes/whm/transfer_tool/show_log.yml
403
+ - spec/vcr_cassettes/whm/transfer_tool/start.yml
404
+ - spec/vcr_cassettes/whm/transfer_tool/status.yml
405
+ - spec/vcr_cassettes/whm/transfer_tool/validate_user.yml
397
406
  - spec/vcr_cassettes/whostmgr/ssl/create.yml
398
407
  - spec/vcr_cassettes/whostmgr/ssl/remove.yml
399
408
  - spec/vcr_cassettes/whostmgr/ssl/remove_data.yml
@@ -403,6 +412,7 @@ files:
403
412
  - spec/whm/dns_spec.rb
404
413
  - spec/whm/reseller_spec.rb
405
414
  - spec/whm/server_spec.rb
415
+ - spec/whm/transfer_tool_spec.rb
406
416
  - spec/whm/whm_spec.rb
407
417
  - spec/whostmgr/ssl_spec.rb
408
418
  homepage: ''
@@ -420,9 +430,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
420
430
  version: '0'
421
431
  required_rubygems_version: !ruby/object:Gem::Requirement
422
432
  requirements:
423
- - - ">"
433
+ - - ">="
424
434
  - !ruby/object:Gem::Version
425
- version: 1.3.1
435
+ version: '0'
426
436
  requirements: []
427
437
  rubyforge_project: lumberg
428
438
  rubygems_version: 2.2.2
@@ -659,6 +669,14 @@ test_files:
659
669
  - spec/vcr_cassettes/whm/server/systemloadavg.yml
660
670
  - spec/vcr_cassettes/whm/server/themes.yml
661
671
  - spec/vcr_cassettes/whm/server/version.yml
672
+ - spec/vcr_cassettes/whm/transfer_tool/check.yml
673
+ - spec/vcr_cassettes/whm/transfer_tool/create.yml
674
+ - spec/vcr_cassettes/whm/transfer_tool/enqueue.yml
675
+ - spec/vcr_cassettes/whm/transfer_tool/pause.yml
676
+ - spec/vcr_cassettes/whm/transfer_tool/show_log.yml
677
+ - spec/vcr_cassettes/whm/transfer_tool/start.yml
678
+ - spec/vcr_cassettes/whm/transfer_tool/status.yml
679
+ - spec/vcr_cassettes/whm/transfer_tool/validate_user.yml
662
680
  - spec/vcr_cassettes/whostmgr/ssl/create.yml
663
681
  - spec/vcr_cassettes/whostmgr/ssl/remove.yml
664
682
  - spec/vcr_cassettes/whostmgr/ssl/remove_data.yml
@@ -668,6 +686,7 @@ test_files:
668
686
  - spec/whm/dns_spec.rb
669
687
  - spec/whm/reseller_spec.rb
670
688
  - spec/whm/server_spec.rb
689
+ - spec/whm/transfer_tool_spec.rb
671
690
  - spec/whm/whm_spec.rb
672
691
  - spec/whostmgr/ssl_spec.rb
673
692
  has_rdoc: