net-ssh-simple 1.6.0 → 1.6.1

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 (69) hide show
  1. data/.gitignore +0 -1
  2. data/README.rdoc +9 -9
  3. data/coverage/.last_run.json +5 -0
  4. data/coverage/.resultset.json +771 -0
  5. data/coverage/assets/0.7.1/application.css +1110 -0
  6. data/coverage/assets/0.7.1/application.js +626 -0
  7. data/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  8. data/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  9. data/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  10. data/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  11. data/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  12. data/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  13. data/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  14. data/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  15. data/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  16. data/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  17. data/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  18. data/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  19. data/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  20. data/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  21. data/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  22. data/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  23. data/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  24. data/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  25. data/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  26. data/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  27. data/coverage/assets/0.7.1/favicon_green.png +0 -0
  28. data/coverage/assets/0.7.1/favicon_red.png +0 -0
  29. data/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  30. data/coverage/assets/0.7.1/loading.gif +0 -0
  31. data/coverage/assets/0.7.1/magnify.png +0 -0
  32. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  33. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  34. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  35. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  36. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  37. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  38. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  39. data/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  40. data/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  41. data/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  42. data/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  43. data/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  44. data/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  45. data/coverage/index.html +4672 -0
  46. data/doc/Net.html +117 -0
  47. data/doc/Net/SSH.html +117 -0
  48. data/doc/Net/SSH/Simple.html +2984 -0
  49. data/doc/Net/SSH/Simple/Error.html +432 -0
  50. data/doc/Net/SSH/Simple/Result.html +1640 -0
  51. data/doc/_index.html +162 -0
  52. data/doc/class_list.html +53 -0
  53. data/doc/css/common.css +1 -0
  54. data/doc/css/full_list.css +57 -0
  55. data/doc/css/style.css +328 -0
  56. data/doc/file.README.html +258 -0
  57. data/doc/file_list.html +55 -0
  58. data/doc/frames.html +28 -0
  59. data/doc/index.html +258 -0
  60. data/doc/js/app.js +214 -0
  61. data/doc/js/full_list.js +173 -0
  62. data/doc/js/jquery.js +4 -0
  63. data/doc/method_list.html +348 -0
  64. data/doc/methods_list.html +212 -0
  65. data/doc/top-level-namespace.html +112 -0
  66. data/lib/net/ssh/simple.rb +6 -0
  67. data/lib/net/ssh/simple/version.rb +1 -1
  68. data/net-ssh-simple.gemspec +1 -1
  69. metadata +125 -22
Binary file
Binary file
@@ -0,0 +1,4672 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Net-ssh-simple</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.7.1/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.7.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.7.1/favicon_green.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.7.1/favicon.png" />
10
+ </head>
11
+
12
+ <body>
13
+ <div id="loading">
14
+ <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
+ </div>
16
+ <div id="wrapper" style="display:none;">
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-01-26T17:18:45+01:00">2013-01-26T17:18:45+01:00</abbr></div>
18
+ <ul class="group_tabs"></ul>
19
+
20
+ <div id="content">
21
+ <div class="file_list_container" id="AllFiles">
22
+ <h2>
23
+ <span class="group_name">All Files</span>
24
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
25
+ covered at
26
+ <span class="covered_strength">
27
+ <span class="green">
28
+ 106.3
29
+ </span>
30
+ </span> hits/line)
31
+ </h2>
32
+ <a name="AllFiles"></a>
33
+ <div>
34
+ <b>1</b> files in total.
35
+ <b>174</b> relevant lines.
36
+ <span class="green"><b>174</b> lines covered</span> and
37
+ <span class="red"><b>0</b> lines missed </span>
38
+ </div>
39
+ <table class="file_list">
40
+ <thead>
41
+ <tr>
42
+ <th>File</th>
43
+ <th>% covered</th>
44
+ <th>Lines</th>
45
+ <th>Relevant Lines</th>
46
+ <th>Lines covered</th>
47
+ <th>Lines missed</th>
48
+ <th>Avg. Hits / Line</th>
49
+ </tr>
50
+ </thead>
51
+ <tbody>
52
+
53
+ <tr>
54
+ <td class="strong"><a href="#ebc1c40297fe09a20539f3d0e94180d9c9008e93" class="src_link" title="lib/net/ssh/simple.rb">lib/net/ssh/simple.rb</a></td>
55
+ <td class="green strong">100.0 %</td>
56
+ <td>762</td>
57
+ <td>174</td>
58
+ <td>174</td>
59
+ <td>0</td>
60
+ <td>106.3</td>
61
+ </tr>
62
+
63
+ </tbody>
64
+ </table>
65
+ </div>
66
+
67
+
68
+
69
+ </div>
70
+
71
+ <div id="footer">
72
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.7.1
73
+ and simplecov-html v0.7.1<br/>
74
+ using RSpec
75
+ </div>
76
+
77
+ <div class="source_files">
78
+
79
+ <div class="source_table" id="ebc1c40297fe09a20539f3d0e94180d9c9008e93">
80
+ <div class="header">
81
+ <h3>lib/net/ssh/simple.rb</h3>
82
+ <h4><span class="green">100.0 %</span> covered</h4>
83
+ <div>
84
+ <b>174</b> relevant lines.
85
+ <span class="green"><b>174</b> lines covered</span> and
86
+ <span class="red"><b>0</b> lines missed.</span>
87
+ </div>
88
+ </div>
89
+
90
+ <pre>
91
+ <ol>
92
+
93
+ <li class="never" data-hits="" data-linenumber="1">
94
+
95
+
96
+ <code class="ruby">#</code>
97
+ </li>
98
+
99
+ <li class="never" data-hits="" data-linenumber="2">
100
+
101
+
102
+ <code class="ruby"># Copyright (C) 2011 by moe@busyloop.net</code>
103
+ </li>
104
+
105
+ <li class="never" data-hits="" data-linenumber="3">
106
+
107
+
108
+ <code class="ruby">#</code>
109
+ </li>
110
+
111
+ <li class="never" data-hits="" data-linenumber="4">
112
+
113
+
114
+ <code class="ruby"># Permission is hereby granted, free of charge, to any person obtaining a copy</code>
115
+ </li>
116
+
117
+ <li class="never" data-hits="" data-linenumber="5">
118
+
119
+
120
+ <code class="ruby"># of this software and associated documentation files (the &quot;Software&quot;), to deal</code>
121
+ </li>
122
+
123
+ <li class="never" data-hits="" data-linenumber="6">
124
+
125
+
126
+ <code class="ruby"># in the Software without restriction, including without limitation the rights</code>
127
+ </li>
128
+
129
+ <li class="never" data-hits="" data-linenumber="7">
130
+
131
+
132
+ <code class="ruby"># to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</code>
133
+ </li>
134
+
135
+ <li class="never" data-hits="" data-linenumber="8">
136
+
137
+
138
+ <code class="ruby"># copies of the Software, and to permit persons to whom the Software is</code>
139
+ </li>
140
+
141
+ <li class="never" data-hits="" data-linenumber="9">
142
+
143
+
144
+ <code class="ruby"># furnished to do so, subject to the following conditions:</code>
145
+ </li>
146
+
147
+ <li class="never" data-hits="" data-linenumber="10">
148
+
149
+
150
+ <code class="ruby">#</code>
151
+ </li>
152
+
153
+ <li class="never" data-hits="" data-linenumber="11">
154
+
155
+
156
+ <code class="ruby"># The above copyright notice and this permission notice shall be included in</code>
157
+ </li>
158
+
159
+ <li class="never" data-hits="" data-linenumber="12">
160
+
161
+
162
+ <code class="ruby"># all copies or substantial portions of the Software.</code>
163
+ </li>
164
+
165
+ <li class="never" data-hits="" data-linenumber="13">
166
+
167
+
168
+ <code class="ruby">#</code>
169
+ </li>
170
+
171
+ <li class="never" data-hits="" data-linenumber="14">
172
+
173
+
174
+ <code class="ruby"># THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</code>
175
+ </li>
176
+
177
+ <li class="never" data-hits="" data-linenumber="15">
178
+
179
+
180
+ <code class="ruby"># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</code>
181
+ </li>
182
+
183
+ <li class="never" data-hits="" data-linenumber="16">
184
+
185
+
186
+ <code class="ruby"># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</code>
187
+ </li>
188
+
189
+ <li class="never" data-hits="" data-linenumber="17">
190
+
191
+
192
+ <code class="ruby"># AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</code>
193
+ </li>
194
+
195
+ <li class="never" data-hits="" data-linenumber="18">
196
+
197
+
198
+ <code class="ruby"># LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</code>
199
+ </li>
200
+
201
+ <li class="never" data-hits="" data-linenumber="19">
202
+
203
+
204
+ <code class="ruby"># OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</code>
205
+ </li>
206
+
207
+ <li class="never" data-hits="" data-linenumber="20">
208
+
209
+
210
+ <code class="ruby"># THE SOFTWARE.</code>
211
+ </li>
212
+
213
+ <li class="never" data-hits="" data-linenumber="21">
214
+
215
+
216
+ <code class="ruby">#</code>
217
+ </li>
218
+
219
+ <li class="never" data-hits="" data-linenumber="22">
220
+
221
+
222
+ <code class="ruby"></code>
223
+ </li>
224
+
225
+ <li class="covered" data-hits="1" data-linenumber="23">
226
+ <span class="hits">1</span>
227
+
228
+ <code class="ruby">require 'net/ssh/simple/version'</code>
229
+ </li>
230
+
231
+ <li class="covered" data-hits="1" data-linenumber="24">
232
+ <span class="hits">1</span>
233
+
234
+ <code class="ruby">require 'blockenspiel'</code>
235
+ </li>
236
+
237
+ <li class="covered" data-hits="1" data-linenumber="25">
238
+ <span class="hits">1</span>
239
+
240
+ <code class="ruby">require 'hashie/dash'</code>
241
+ </li>
242
+
243
+ <li class="covered" data-hits="1" data-linenumber="26">
244
+ <span class="hits">1</span>
245
+
246
+ <code class="ruby">require 'timeout'</code>
247
+ </li>
248
+
249
+ <li class="covered" data-hits="1" data-linenumber="27">
250
+ <span class="hits">1</span>
251
+
252
+ <code class="ruby">require 'net/ssh'</code>
253
+ </li>
254
+
255
+ <li class="covered" data-hits="1" data-linenumber="28">
256
+ <span class="hits">1</span>
257
+
258
+ <code class="ruby">require 'net/scp'</code>
259
+ </li>
260
+
261
+ <li class="never" data-hits="" data-linenumber="29">
262
+
263
+
264
+ <code class="ruby"></code>
265
+ </li>
266
+
267
+ <li class="covered" data-hits="1" data-linenumber="30">
268
+ <span class="hits">1</span>
269
+
270
+ <code class="ruby">module Net</code>
271
+ </li>
272
+
273
+ <li class="covered" data-hits="1" data-linenumber="31">
274
+ <span class="hits">1</span>
275
+
276
+ <code class="ruby"> module SSH</code>
277
+ </li>
278
+
279
+ <li class="never" data-hits="" data-linenumber="32">
280
+
281
+
282
+ <code class="ruby"> # Net::SSH::Simple is a simple wrapper around Net::SSH and Net::SCP.</code>
283
+ </li>
284
+
285
+ <li class="never" data-hits="" data-linenumber="33">
286
+
287
+
288
+ <code class="ruby"> #</code>
289
+ </li>
290
+
291
+ <li class="never" data-hits="" data-linenumber="34">
292
+
293
+
294
+ <code class="ruby"> # @example</code>
295
+ </li>
296
+
297
+ <li class="never" data-hits="" data-linenumber="35">
298
+
299
+
300
+ <code class="ruby"> # # Block Syntax (synchronous)</code>
301
+ </li>
302
+
303
+ <li class="never" data-hits="" data-linenumber="36">
304
+
305
+
306
+ <code class="ruby"> # Net::SSH::Simple.sync do</code>
307
+ </li>
308
+
309
+ <li class="never" data-hits="" data-linenumber="37">
310
+
311
+
312
+ <code class="ruby"> # r = ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
313
+ </li>
314
+
315
+ <li class="never" data-hits="" data-linenumber="38">
316
+
317
+
318
+ <code class="ruby"> # puts r.stdout #=&gt; &quot;Hello World.&quot;</code>
319
+ </li>
320
+
321
+ <li class="never" data-hits="" data-linenumber="39">
322
+
323
+
324
+ <code class="ruby"> # puts r.exit_code #=&gt; 0</code>
325
+ </li>
326
+
327
+ <li class="never" data-hits="" data-linenumber="40">
328
+
329
+
330
+ <code class="ruby"> #</code>
331
+ </li>
332
+
333
+ <li class="never" data-hits="" data-linenumber="41">
334
+
335
+
336
+ <code class="ruby"> # scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
337
+ </li>
338
+
339
+ <li class="never" data-hits="" data-linenumber="42">
340
+
341
+
342
+ <code class="ruby"> # scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
343
+ </li>
344
+
345
+ <li class="never" data-hits="" data-linenumber="43">
346
+
347
+
348
+ <code class="ruby"> # end</code>
349
+ </li>
350
+
351
+ <li class="never" data-hits="" data-linenumber="44">
352
+
353
+
354
+ <code class="ruby"> #</code>
355
+ </li>
356
+
357
+ <li class="never" data-hits="" data-linenumber="45">
358
+
359
+
360
+ <code class="ruby"> # @example</code>
361
+ </li>
362
+
363
+ <li class="never" data-hits="" data-linenumber="46">
364
+
365
+
366
+ <code class="ruby"> # # Block Syntax (asynchronous)</code>
367
+ </li>
368
+
369
+ <li class="never" data-hits="" data-linenumber="47">
370
+
371
+
372
+ <code class="ruby"> # t1 = Net::SSH::Simple.async do</code>
373
+ </li>
374
+
375
+ <li class="never" data-hits="" data-linenumber="48">
376
+
377
+
378
+ <code class="ruby"> # scp_put 'example1.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
379
+ </li>
380
+
381
+ <li class="never" data-hits="" data-linenumber="49">
382
+
383
+
384
+ <code class="ruby"> # ssh 'example3.com', 'echo &quot;Hello World A.&quot;'</code>
385
+ </li>
386
+
387
+ <li class="never" data-hits="" data-linenumber="50">
388
+
389
+
390
+ <code class="ruby"> # end</code>
391
+ </li>
392
+
393
+ <li class="never" data-hits="" data-linenumber="51">
394
+
395
+
396
+ <code class="ruby"> # t2 = Net::SSH::Simple.async do</code>
397
+ </li>
398
+
399
+ <li class="never" data-hits="" data-linenumber="52">
400
+
401
+
402
+ <code class="ruby"> # scp_get 'example6.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
403
+ </li>
404
+
405
+ <li class="never" data-hits="" data-linenumber="53">
406
+
407
+
408
+ <code class="ruby"> # ssh 'example7.com', 'echo &quot;Hello World B.&quot;'</code>
409
+ </li>
410
+
411
+ <li class="never" data-hits="" data-linenumber="54">
412
+
413
+
414
+ <code class="ruby"> # end</code>
415
+ </li>
416
+
417
+ <li class="never" data-hits="" data-linenumber="55">
418
+
419
+
420
+ <code class="ruby"> # r1 = t1.value # wait for t1 to finish and grab return value</code>
421
+ </li>
422
+
423
+ <li class="never" data-hits="" data-linenumber="56">
424
+
425
+
426
+ <code class="ruby"> # r2 = t2.value # wait for t2 to finish and grab return value</code>
427
+ </li>
428
+
429
+ <li class="never" data-hits="" data-linenumber="57">
430
+
431
+
432
+ <code class="ruby"> #</code>
433
+ </li>
434
+
435
+ <li class="never" data-hits="" data-linenumber="58">
436
+
437
+
438
+ <code class="ruby"> # puts r1.stdout #=&gt; &quot;Hello World A.&quot;</code>
439
+ </li>
440
+
441
+ <li class="never" data-hits="" data-linenumber="59">
442
+
443
+
444
+ <code class="ruby"> # puts r2.stdout #=&gt; &quot;Hello World B.&quot;</code>
445
+ </li>
446
+
447
+ <li class="never" data-hits="" data-linenumber="60">
448
+
449
+
450
+ <code class="ruby"> #</code>
451
+ </li>
452
+
453
+ <li class="never" data-hits="" data-linenumber="61">
454
+
455
+
456
+ <code class="ruby"> # @example</code>
457
+ </li>
458
+
459
+ <li class="never" data-hits="" data-linenumber="62">
460
+
461
+
462
+ <code class="ruby"> # # Using an instance</code>
463
+ </li>
464
+
465
+ <li class="never" data-hits="" data-linenumber="63">
466
+
467
+
468
+ <code class="ruby"> # s = Net::SSH::Simple.new</code>
469
+ </li>
470
+
471
+ <li class="never" data-hits="" data-linenumber="64">
472
+
473
+
474
+ <code class="ruby"> # s.ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
475
+ </li>
476
+
477
+ <li class="never" data-hits="" data-linenumber="65">
478
+
479
+
480
+ <code class="ruby"> # s.scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
481
+ </li>
482
+
483
+ <li class="never" data-hits="" data-linenumber="66">
484
+
485
+
486
+ <code class="ruby"> # s.scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
487
+ </li>
488
+
489
+ <li class="never" data-hits="" data-linenumber="67">
490
+
491
+
492
+ <code class="ruby"> # s.close</code>
493
+ </li>
494
+
495
+ <li class="never" data-hits="" data-linenumber="68">
496
+
497
+
498
+ <code class="ruby"> #</code>
499
+ </li>
500
+
501
+ <li class="never" data-hits="" data-linenumber="69">
502
+
503
+
504
+ <code class="ruby"> # @example</code>
505
+ </li>
506
+
507
+ <li class="never" data-hits="" data-linenumber="70">
508
+
509
+
510
+ <code class="ruby"> # # Using no instance</code>
511
+ </li>
512
+
513
+ <li class="never" data-hits="" data-linenumber="71">
514
+
515
+
516
+ <code class="ruby"> # # Note: This will create a new connection for each operation!</code>
517
+ </li>
518
+
519
+ <li class="never" data-hits="" data-linenumber="72">
520
+
521
+
522
+ <code class="ruby"> # # Use instance- or block-syntax for better performance.</code>
523
+ </li>
524
+
525
+ <li class="never" data-hits="" data-linenumber="73">
526
+
527
+
528
+ <code class="ruby"> # Net::SSH::Simple.ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
529
+ </li>
530
+
531
+ <li class="never" data-hits="" data-linenumber="74">
532
+
533
+
534
+ <code class="ruby"> # Net::SSH::Simple.scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
535
+ </li>
536
+
537
+ <li class="never" data-hits="" data-linenumber="75">
538
+
539
+
540
+ <code class="ruby"> # Net::SSH::Simple.scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
541
+ </li>
542
+
543
+ <li class="never" data-hits="" data-linenumber="76">
544
+
545
+
546
+ <code class="ruby"> #</code>
547
+ </li>
548
+
549
+ <li class="never" data-hits="" data-linenumber="77">
550
+
551
+
552
+ <code class="ruby"> # @example</code>
553
+ </li>
554
+
555
+ <li class="never" data-hits="" data-linenumber="78">
556
+
557
+
558
+ <code class="ruby"> # # Error Handling with Block Syntax (synchronous)</code>
559
+ </li>
560
+
561
+ <li class="never" data-hits="" data-linenumber="79">
562
+
563
+
564
+ <code class="ruby"> # begin</code>
565
+ </li>
566
+
567
+ <li class="never" data-hits="" data-linenumber="80">
568
+
569
+
570
+ <code class="ruby"> # Net::SSH::Simple.sync do</code>
571
+ </li>
572
+
573
+ <li class="never" data-hits="" data-linenumber="81">
574
+
575
+
576
+ <code class="ruby"> # r = ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
577
+ </li>
578
+
579
+ <li class="never" data-hits="" data-linenumber="82">
580
+
581
+
582
+ <code class="ruby"> # if r.success and r.stdout == 'Hello World.'</code>
583
+ </li>
584
+
585
+ <li class="never" data-hits="" data-linenumber="83">
586
+
587
+
588
+ <code class="ruby"> # puts &quot;Success! I Helloed World.&quot;</code>
589
+ </li>
590
+
591
+ <li class="never" data-hits="" data-linenumber="84">
592
+
593
+
594
+ <code class="ruby"> # end</code>
595
+ </li>
596
+
597
+ <li class="never" data-hits="" data-linenumber="85">
598
+
599
+
600
+ <code class="ruby"> #</code>
601
+ </li>
602
+
603
+ <li class="never" data-hits="" data-linenumber="86">
604
+
605
+
606
+ <code class="ruby"> # r = scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
607
+ </li>
608
+
609
+ <li class="never" data-hits="" data-linenumber="87">
610
+
611
+
612
+ <code class="ruby"> # if r.success and r.sent == r.total</code>
613
+ </li>
614
+
615
+ <li class="never" data-hits="" data-linenumber="88">
616
+
617
+
618
+ <code class="ruby"> # puts &quot;Success! Uploaded #{r.sent} of #{r.total} bytes.&quot;</code>
619
+ </li>
620
+
621
+ <li class="never" data-hits="" data-linenumber="89">
622
+
623
+
624
+ <code class="ruby"> # end</code>
625
+ </li>
626
+
627
+ <li class="never" data-hits="" data-linenumber="90">
628
+
629
+
630
+ <code class="ruby"> #</code>
631
+ </li>
632
+
633
+ <li class="never" data-hits="" data-linenumber="91">
634
+
635
+
636
+ <code class="ruby"> # r = scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
637
+ </li>
638
+
639
+ <li class="never" data-hits="" data-linenumber="92">
640
+
641
+
642
+ <code class="ruby"> # if r.success and r.sent == r.total</code>
643
+ </li>
644
+
645
+ <li class="never" data-hits="" data-linenumber="93">
646
+
647
+
648
+ <code class="ruby"> # puts &quot;Success! Downloaded #{r.sent} of #{r.total} bytes.&quot;</code>
649
+ </li>
650
+
651
+ <li class="never" data-hits="" data-linenumber="94">
652
+
653
+
654
+ <code class="ruby"> # end</code>
655
+ </li>
656
+
657
+ <li class="never" data-hits="" data-linenumber="95">
658
+
659
+
660
+ <code class="ruby"> # end</code>
661
+ </li>
662
+
663
+ <li class="never" data-hits="" data-linenumber="96">
664
+
665
+
666
+ <code class="ruby"> # rescue Net::SSH::Simple::Error =&gt; e</code>
667
+ </li>
668
+
669
+ <li class="never" data-hits="" data-linenumber="97">
670
+
671
+
672
+ <code class="ruby"> # puts &quot;Something bad happened!&quot;</code>
673
+ </li>
674
+
675
+ <li class="never" data-hits="" data-linenumber="98">
676
+
677
+
678
+ <code class="ruby"> # puts e # Human readable error</code>
679
+ </li>
680
+
681
+ <li class="never" data-hits="" data-linenumber="99">
682
+
683
+
684
+ <code class="ruby"> # puts e.wrapped # Original Exception</code>
685
+ </li>
686
+
687
+ <li class="never" data-hits="" data-linenumber="100">
688
+
689
+
690
+ <code class="ruby"> # puts e.result # Net::SSH::Simple::Result</code>
691
+ </li>
692
+
693
+ <li class="never" data-hits="" data-linenumber="101">
694
+
695
+
696
+ <code class="ruby"> # end</code>
697
+ </li>
698
+
699
+ <li class="never" data-hits="" data-linenumber="102">
700
+
701
+
702
+ <code class="ruby"> #</code>
703
+ </li>
704
+
705
+ <li class="never" data-hits="" data-linenumber="103">
706
+
707
+
708
+ <code class="ruby"> # @example</code>
709
+ </li>
710
+
711
+ <li class="never" data-hits="" data-linenumber="104">
712
+
713
+
714
+ <code class="ruby"> # # Error Handling with Block Syntax (asynchronous)</code>
715
+ </li>
716
+
717
+ <li class="never" data-hits="" data-linenumber="105">
718
+
719
+
720
+ <code class="ruby"> # #</code>
721
+ </li>
722
+
723
+ <li class="never" data-hits="" data-linenumber="106">
724
+
725
+
726
+ <code class="ruby"> # # Exceptions are raised inside your thread.</code>
727
+ </li>
728
+
729
+ <li class="never" data-hits="" data-linenumber="107">
730
+
731
+
732
+ <code class="ruby"> # # You are free to handle them or pass them outwards.</code>
733
+ </li>
734
+
735
+ <li class="never" data-hits="" data-linenumber="108">
736
+
737
+
738
+ <code class="ruby"> #</code>
739
+ </li>
740
+
741
+ <li class="never" data-hits="" data-linenumber="109">
742
+
743
+
744
+ <code class="ruby"> # a = Net::SSH::Simple.async do</code>
745
+ </li>
746
+
747
+ <li class="never" data-hits="" data-linenumber="110">
748
+
749
+
750
+ <code class="ruby"> # begin</code>
751
+ </li>
752
+
753
+ <li class="never" data-hits="" data-linenumber="111">
754
+
755
+
756
+ <code class="ruby"> # ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
757
+ </li>
758
+
759
+ <li class="never" data-hits="" data-linenumber="112">
760
+
761
+
762
+ <code class="ruby"> # scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
763
+ </li>
764
+
765
+ <li class="never" data-hits="" data-linenumber="113">
766
+
767
+
768
+ <code class="ruby"> # scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
769
+ </li>
770
+
771
+ <li class="never" data-hits="" data-linenumber="114">
772
+
773
+
774
+ <code class="ruby"> # rescue Net::SSH::Simple::Error =&gt; e</code>
775
+ </li>
776
+
777
+ <li class="never" data-hits="" data-linenumber="115">
778
+
779
+
780
+ <code class="ruby"> # # return our exception to the parent thread</code>
781
+ </li>
782
+
783
+ <li class="never" data-hits="" data-linenumber="116">
784
+
785
+
786
+ <code class="ruby"> # e</code>
787
+ </li>
788
+
789
+ <li class="never" data-hits="" data-linenumber="117">
790
+
791
+
792
+ <code class="ruby"> # end</code>
793
+ </li>
794
+
795
+ <li class="never" data-hits="" data-linenumber="118">
796
+
797
+
798
+ <code class="ruby"> # end</code>
799
+ </li>
800
+
801
+ <li class="never" data-hits="" data-linenumber="119">
802
+
803
+
804
+ <code class="ruby"> # r = a.value # Wait for thread to finish and capture result</code>
805
+ </li>
806
+
807
+ <li class="never" data-hits="" data-linenumber="120">
808
+
809
+
810
+ <code class="ruby"> #</code>
811
+ </li>
812
+
813
+ <li class="never" data-hits="" data-linenumber="121">
814
+
815
+
816
+ <code class="ruby"> # unless r.is_a? Net::SSH::Simple::Result</code>
817
+ </li>
818
+
819
+ <li class="never" data-hits="" data-linenumber="122">
820
+
821
+
822
+ <code class="ruby"> # puts &quot;Something bad happened!&quot;</code>
823
+ </li>
824
+
825
+ <li class="never" data-hits="" data-linenumber="123">
826
+
827
+
828
+ <code class="ruby"> # puts r</code>
829
+ </li>
830
+
831
+ <li class="never" data-hits="" data-linenumber="124">
832
+
833
+
834
+ <code class="ruby"> # end</code>
835
+ </li>
836
+
837
+ <li class="never" data-hits="" data-linenumber="125">
838
+
839
+
840
+ <code class="ruby"> #</code>
841
+ </li>
842
+
843
+ <li class="never" data-hits="" data-linenumber="126">
844
+
845
+
846
+ <code class="ruby"> # @example</code>
847
+ </li>
848
+
849
+ <li class="never" data-hits="" data-linenumber="127">
850
+
851
+
852
+ <code class="ruby"> # # Error Handling with an instance</code>
853
+ </li>
854
+
855
+ <li class="never" data-hits="" data-linenumber="128">
856
+
857
+
858
+ <code class="ruby"> # s = Net::SSH::Simple.new</code>
859
+ </li>
860
+
861
+ <li class="never" data-hits="" data-linenumber="129">
862
+
863
+
864
+ <code class="ruby"> # begin</code>
865
+ </li>
866
+
867
+ <li class="never" data-hits="" data-linenumber="130">
868
+
869
+
870
+ <code class="ruby"> # r = s.ssh 'example1.com', 'echo &quot;Hello World.&quot;'</code>
871
+ </li>
872
+
873
+ <li class="never" data-hits="" data-linenumber="131">
874
+
875
+
876
+ <code class="ruby"> # if r.success and r.stdout == 'Hello World.'</code>
877
+ </li>
878
+
879
+ <li class="never" data-hits="" data-linenumber="132">
880
+
881
+
882
+ <code class="ruby"> # puts &quot;Success! I Helloed World.&quot;</code>
883
+ </li>
884
+
885
+ <li class="never" data-hits="" data-linenumber="133">
886
+
887
+
888
+ <code class="ruby"> # end</code>
889
+ </li>
890
+
891
+ <li class="never" data-hits="" data-linenumber="134">
892
+
893
+
894
+ <code class="ruby"> #</code>
895
+ </li>
896
+
897
+ <li class="never" data-hits="" data-linenumber="135">
898
+
899
+
900
+ <code class="ruby"> # r = s.scp_put 'example2.com', '/tmp/local_foo', '/tmp/remote_bar'</code>
901
+ </li>
902
+
903
+ <li class="never" data-hits="" data-linenumber="136">
904
+
905
+
906
+ <code class="ruby"> # if r.success and r.sent == r.total</code>
907
+ </li>
908
+
909
+ <li class="never" data-hits="" data-linenumber="137">
910
+
911
+
912
+ <code class="ruby"> # puts &quot;Success! Uploaded #{r.sent} of #{r.total} bytes.&quot;</code>
913
+ </li>
914
+
915
+ <li class="never" data-hits="" data-linenumber="138">
916
+
917
+
918
+ <code class="ruby"> # end</code>
919
+ </li>
920
+
921
+ <li class="never" data-hits="" data-linenumber="139">
922
+
923
+
924
+ <code class="ruby"> #</code>
925
+ </li>
926
+
927
+ <li class="never" data-hits="" data-linenumber="140">
928
+
929
+
930
+ <code class="ruby"> # r = s.scp_get 'example3.com', '/tmp/remote_foo', '/tmp/local_bar'</code>
931
+ </li>
932
+
933
+ <li class="never" data-hits="" data-linenumber="141">
934
+
935
+
936
+ <code class="ruby"> # if r.success and r.sent == r.total</code>
937
+ </li>
938
+
939
+ <li class="never" data-hits="" data-linenumber="142">
940
+
941
+
942
+ <code class="ruby"> # puts &quot;Success! Downloaded #{r.sent} of #{r.total} bytes.&quot;</code>
943
+ </li>
944
+
945
+ <li class="never" data-hits="" data-linenumber="143">
946
+
947
+
948
+ <code class="ruby"> # end</code>
949
+ </li>
950
+
951
+ <li class="never" data-hits="" data-linenumber="144">
952
+
953
+
954
+ <code class="ruby"> # rescue Net::SSH::Simple::Error =&gt; e</code>
955
+ </li>
956
+
957
+ <li class="never" data-hits="" data-linenumber="145">
958
+
959
+
960
+ <code class="ruby"> # puts &quot;Something bad happened!&quot;</code>
961
+ </li>
962
+
963
+ <li class="never" data-hits="" data-linenumber="146">
964
+
965
+
966
+ <code class="ruby"> # puts e # Human readable error</code>
967
+ </li>
968
+
969
+ <li class="never" data-hits="" data-linenumber="147">
970
+
971
+
972
+ <code class="ruby"> # puts e.wrapped # Original Exception</code>
973
+ </li>
974
+
975
+ <li class="never" data-hits="" data-linenumber="148">
976
+
977
+
978
+ <code class="ruby"> # puts e.result # Net::SSH::Simple::Result (partial result)</code>
979
+ </li>
980
+
981
+ <li class="never" data-hits="" data-linenumber="149">
982
+
983
+
984
+ <code class="ruby"> # ensure</code>
985
+ </li>
986
+
987
+ <li class="never" data-hits="" data-linenumber="150">
988
+
989
+
990
+ <code class="ruby"> # s.close # don't forget the clean up!</code>
991
+ </li>
992
+
993
+ <li class="never" data-hits="" data-linenumber="151">
994
+
995
+
996
+ <code class="ruby"> # end</code>
997
+ </li>
998
+
999
+ <li class="never" data-hits="" data-linenumber="152">
1000
+
1001
+
1002
+ <code class="ruby"> #</code>
1003
+ </li>
1004
+
1005
+ <li class="never" data-hits="" data-linenumber="153">
1006
+
1007
+
1008
+ <code class="ruby"> # @example</code>
1009
+ </li>
1010
+
1011
+ <li class="never" data-hits="" data-linenumber="154">
1012
+
1013
+
1014
+ <code class="ruby"> # # Parameters</code>
1015
+ </li>
1016
+
1017
+ <li class="never" data-hits="" data-linenumber="155">
1018
+
1019
+
1020
+ <code class="ruby"> # Net::SSH::Simple.sync do</code>
1021
+ </li>
1022
+
1023
+ <li class="never" data-hits="" data-linenumber="156">
1024
+
1025
+
1026
+ <code class="ruby"> # ssh('example1.com', 'echo &quot;Hello World.&quot;',</code>
1027
+ </li>
1028
+
1029
+ <li class="never" data-hits="" data-linenumber="157">
1030
+
1031
+
1032
+ <code class="ruby"> # {:user =&gt; 'tom', :password =&gt; 'jerry', :port =&gt; 1234})</code>
1033
+ </li>
1034
+
1035
+ <li class="never" data-hits="" data-linenumber="158">
1036
+
1037
+
1038
+ <code class="ruby"> # end</code>
1039
+ </li>
1040
+
1041
+ <li class="never" data-hits="" data-linenumber="159">
1042
+
1043
+
1044
+ <code class="ruby"> #</code>
1045
+ </li>
1046
+
1047
+ <li class="never" data-hits="" data-linenumber="160">
1048
+
1049
+
1050
+ <code class="ruby"> # # Parameter inheritance</code>
1051
+ </li>
1052
+
1053
+ <li class="never" data-hits="" data-linenumber="161">
1054
+
1055
+
1056
+ <code class="ruby"> # Net::SSH::Simple.sync({:user =&gt; 'tom', :port =&gt; 1234}) do</code>
1057
+ </li>
1058
+
1059
+ <li class="never" data-hits="" data-linenumber="162">
1060
+
1061
+
1062
+ <code class="ruby"> # # Both commands will inherit :user and :port</code>
1063
+ </li>
1064
+
1065
+ <li class="never" data-hits="" data-linenumber="163">
1066
+
1067
+
1068
+ <code class="ruby"> # ssh('example1.com', 'echo &quot;Hello World.&quot;', {:password =&gt; 'jerry'})</code>
1069
+ </li>
1070
+
1071
+ <li class="never" data-hits="" data-linenumber="164">
1072
+
1073
+
1074
+ <code class="ruby"> # scp_put('example2.com', '/tmp/a', '/tmp/a', {:password =&gt; 's3cr3t'})</code>
1075
+ </li>
1076
+
1077
+ <li class="never" data-hits="" data-linenumber="165">
1078
+
1079
+
1080
+ <code class="ruby"> # end</code>
1081
+ </li>
1082
+
1083
+ <li class="never" data-hits="" data-linenumber="166">
1084
+
1085
+
1086
+ <code class="ruby"> #</code>
1087
+ </li>
1088
+
1089
+ <li class="never" data-hits="" data-linenumber="167">
1090
+
1091
+
1092
+ <code class="ruby"> # @example</code>
1093
+ </li>
1094
+
1095
+ <li class="never" data-hits="" data-linenumber="168">
1096
+
1097
+
1098
+ <code class="ruby"> # # Using the SCP progress callback</code>
1099
+ </li>
1100
+
1101
+ <li class="never" data-hits="" data-linenumber="169">
1102
+
1103
+
1104
+ <code class="ruby"> # Net::SSH::Simple.sync do</code>
1105
+ </li>
1106
+
1107
+ <li class="never" data-hits="" data-linenumber="170">
1108
+
1109
+
1110
+ <code class="ruby"> # scp_put 'example1.com', '/tmp/local_foo', '/tmp/remote_bar' do |sent, total|</code>
1111
+ </li>
1112
+
1113
+ <li class="never" data-hits="" data-linenumber="171">
1114
+
1115
+
1116
+ <code class="ruby"> # puts &quot;Bytes uploaded: #{sent} of #{total}&quot;</code>
1117
+ </li>
1118
+
1119
+ <li class="never" data-hits="" data-linenumber="172">
1120
+
1121
+
1122
+ <code class="ruby"> # end</code>
1123
+ </li>
1124
+
1125
+ <li class="never" data-hits="" data-linenumber="173">
1126
+
1127
+
1128
+ <code class="ruby"> # end</code>
1129
+ </li>
1130
+
1131
+ <li class="never" data-hits="" data-linenumber="174">
1132
+
1133
+
1134
+ <code class="ruby"> #</code>
1135
+ </li>
1136
+
1137
+ <li class="never" data-hits="" data-linenumber="175">
1138
+
1139
+
1140
+ <code class="ruby"> # @example</code>
1141
+ </li>
1142
+
1143
+ <li class="never" data-hits="" data-linenumber="176">
1144
+
1145
+
1146
+ <code class="ruby"> # #</code>
1147
+ </li>
1148
+
1149
+ <li class="never" data-hits="" data-linenumber="177">
1150
+
1151
+
1152
+ <code class="ruby"> # # Here be dragons: Using the event-API for a stdin-&gt;stdout pipeline</code>
1153
+ </li>
1154
+
1155
+ <li class="never" data-hits="" data-linenumber="178">
1156
+
1157
+
1158
+ <code class="ruby"> # #</code>
1159
+ </li>
1160
+
1161
+ <li class="never" data-hits="" data-linenumber="179">
1162
+
1163
+
1164
+ <code class="ruby"> # r = Net::SSH::Simple.sync do</code>
1165
+ </li>
1166
+
1167
+ <li class="never" data-hits="" data-linenumber="180">
1168
+
1169
+
1170
+ <code class="ruby"> # # open a shell</code>
1171
+ </li>
1172
+
1173
+ <li class="never" data-hits="" data-linenumber="181">
1174
+
1175
+
1176
+ <code class="ruby"> # ssh('localhost', '/bin/sh') do |e,c,d|</code>
1177
+ </li>
1178
+
1179
+ <li class="never" data-hits="" data-linenumber="182">
1180
+
1181
+
1182
+ <code class="ruby"> # # e = :start, :stdout, :stderr, :exit_code, :exit_signal or :finish</code>
1183
+ </li>
1184
+
1185
+ <li class="never" data-hits="" data-linenumber="183">
1186
+
1187
+
1188
+ <code class="ruby"> # # c = our Net::SSH::Connection::Channel instance</code>
1189
+ </li>
1190
+
1191
+ <li class="never" data-hits="" data-linenumber="184">
1192
+
1193
+
1194
+ <code class="ruby"> # # d = data for this event</code>
1195
+ </li>
1196
+
1197
+ <li class="never" data-hits="" data-linenumber="185">
1198
+
1199
+
1200
+ <code class="ruby"> # case e</code>
1201
+ </li>
1202
+
1203
+ <li class="never" data-hits="" data-linenumber="186">
1204
+
1205
+
1206
+ <code class="ruby"> # # :start is triggered exactly once per connection</code>
1207
+ </li>
1208
+
1209
+ <li class="never" data-hits="" data-linenumber="187">
1210
+
1211
+
1212
+ <code class="ruby"> # when :start</code>
1213
+ </li>
1214
+
1215
+ <li class="never" data-hits="" data-linenumber="188">
1216
+
1217
+
1218
+ <code class="ruby"> # # we can send data using Channel#send_data</code>
1219
+ </li>
1220
+
1221
+ <li class="never" data-hits="" data-linenumber="189">
1222
+
1223
+
1224
+ <code class="ruby"> # c.send_data(&quot;echo 'hello stdout'\n&quot;)</code>
1225
+ </li>
1226
+
1227
+ <li class="never" data-hits="" data-linenumber="190">
1228
+
1229
+
1230
+ <code class="ruby"> # c.send_data(&quot;echo 'hello stderr' 1&gt;&amp;2\n&quot;)</code>
1231
+ </li>
1232
+
1233
+ <li class="never" data-hits="" data-linenumber="191">
1234
+
1235
+
1236
+ <code class="ruby"> # # don't forget to eof when done feeding!</code>
1237
+ </li>
1238
+
1239
+ <li class="never" data-hits="" data-linenumber="192">
1240
+
1241
+
1242
+ <code class="ruby"> # c.eof!</code>
1243
+ </li>
1244
+
1245
+ <li class="never" data-hits="" data-linenumber="193">
1246
+
1247
+
1248
+ <code class="ruby"> #</code>
1249
+ </li>
1250
+
1251
+ <li class="never" data-hits="" data-linenumber="194">
1252
+
1253
+
1254
+ <code class="ruby"> # # :stdout is triggered when there's stdout data from remote.</code>
1255
+ </li>
1256
+
1257
+ <li class="never" data-hits="" data-linenumber="195">
1258
+
1259
+
1260
+ <code class="ruby"> # # by default the data is also appended to result[:stdout].</code>
1261
+ </li>
1262
+
1263
+ <li class="never" data-hits="" data-linenumber="196">
1264
+
1265
+
1266
+ <code class="ruby"> # # you may return :no_append as seen below to avoid that.</code>
1267
+ </li>
1268
+
1269
+ <li class="never" data-hits="" data-linenumber="197">
1270
+
1271
+
1272
+ <code class="ruby"> # when :stdout</code>
1273
+ </li>
1274
+
1275
+ <li class="never" data-hits="" data-linenumber="198">
1276
+
1277
+
1278
+ <code class="ruby"> # # read the input line-wise (it *will* arrive fragmented!)</code>
1279
+ </li>
1280
+
1281
+ <li class="never" data-hits="" data-linenumber="199">
1282
+
1283
+
1284
+ <code class="ruby"> # (@buf ||= '') &lt;&lt; d</code>
1285
+ </li>
1286
+
1287
+ <li class="never" data-hits="" data-linenumber="200">
1288
+
1289
+
1290
+ <code class="ruby"> # while line = @buf.slice!(/(.*)\r?\n/)</code>
1291
+ </li>
1292
+
1293
+ <li class="never" data-hits="" data-linenumber="201">
1294
+
1295
+
1296
+ <code class="ruby"> # puts line #=&gt; &quot;hello stdout&quot;</code>
1297
+ </li>
1298
+
1299
+ <li class="never" data-hits="" data-linenumber="202">
1300
+
1301
+
1302
+ <code class="ruby"> # end</code>
1303
+ </li>
1304
+
1305
+ <li class="never" data-hits="" data-linenumber="203">
1306
+
1307
+
1308
+ <code class="ruby"> # :no_append</code>
1309
+ </li>
1310
+
1311
+ <li class="never" data-hits="" data-linenumber="204">
1312
+
1313
+
1314
+ <code class="ruby"> #</code>
1315
+ </li>
1316
+
1317
+ <li class="never" data-hits="" data-linenumber="205">
1318
+
1319
+
1320
+ <code class="ruby"> # # :stderr is triggered when there's stderr data from remote.</code>
1321
+ </li>
1322
+
1323
+ <li class="never" data-hits="" data-linenumber="206">
1324
+
1325
+
1326
+ <code class="ruby"> # # by default the data is also appended to result[:stderr].</code>
1327
+ </li>
1328
+
1329
+ <li class="never" data-hits="" data-linenumber="207">
1330
+
1331
+
1332
+ <code class="ruby"> # # you may return :no_append as seen below to avoid that.</code>
1333
+ </li>
1334
+
1335
+ <li class="never" data-hits="" data-linenumber="208">
1336
+
1337
+
1338
+ <code class="ruby"> # when :stderr</code>
1339
+ </li>
1340
+
1341
+ <li class="never" data-hits="" data-linenumber="209">
1342
+
1343
+
1344
+ <code class="ruby"> # # read the input line-wise (it *will* arrive fragmented!)</code>
1345
+ </li>
1346
+
1347
+ <li class="never" data-hits="" data-linenumber="210">
1348
+
1349
+
1350
+ <code class="ruby"> # (@buf ||= '') &lt;&lt; d</code>
1351
+ </li>
1352
+
1353
+ <li class="never" data-hits="" data-linenumber="211">
1354
+
1355
+
1356
+ <code class="ruby"> # while line = @buf.slice!(/(.*)\r?\n/)</code>
1357
+ </li>
1358
+
1359
+ <li class="never" data-hits="" data-linenumber="212">
1360
+
1361
+
1362
+ <code class="ruby"> # puts line #=&gt; &quot;hello stderr&quot;</code>
1363
+ </li>
1364
+
1365
+ <li class="never" data-hits="" data-linenumber="213">
1366
+
1367
+
1368
+ <code class="ruby"> # end</code>
1369
+ </li>
1370
+
1371
+ <li class="never" data-hits="" data-linenumber="214">
1372
+
1373
+
1374
+ <code class="ruby"> # :no_append</code>
1375
+ </li>
1376
+
1377
+ <li class="never" data-hits="" data-linenumber="215">
1378
+
1379
+
1380
+ <code class="ruby"> #</code>
1381
+ </li>
1382
+
1383
+ <li class="never" data-hits="" data-linenumber="216">
1384
+
1385
+
1386
+ <code class="ruby"> # # :exit_code is triggered when the remote process exits normally.</code>
1387
+ </li>
1388
+
1389
+ <li class="never" data-hits="" data-linenumber="217">
1390
+
1391
+
1392
+ <code class="ruby"> # # it does *not* trigger when the remote process exits by signal!</code>
1393
+ </li>
1394
+
1395
+ <li class="never" data-hits="" data-linenumber="218">
1396
+
1397
+
1398
+ <code class="ruby"> # when :exit_code</code>
1399
+ </li>
1400
+
1401
+ <li class="never" data-hits="" data-linenumber="219">
1402
+
1403
+
1404
+ <code class="ruby"> # puts d #=&gt; 0</code>
1405
+ </li>
1406
+
1407
+ <li class="never" data-hits="" data-linenumber="220">
1408
+
1409
+
1410
+ <code class="ruby"> #</code>
1411
+ </li>
1412
+
1413
+ <li class="never" data-hits="" data-linenumber="221">
1414
+
1415
+
1416
+ <code class="ruby"> # # :exit_signal is triggered when the remote is killed by signal.</code>
1417
+ </li>
1418
+
1419
+ <li class="never" data-hits="" data-linenumber="222">
1420
+
1421
+
1422
+ <code class="ruby"> # # this would normally raise a Net::SSH::Simple::Error but</code>
1423
+ </li>
1424
+
1425
+ <li class="never" data-hits="" data-linenumber="223">
1426
+
1427
+
1428
+ <code class="ruby"> # # we suppress that here by returning :no_raise</code>
1429
+ </li>
1430
+
1431
+ <li class="never" data-hits="" data-linenumber="224">
1432
+
1433
+
1434
+ <code class="ruby"> # when :exit_signal</code>
1435
+ </li>
1436
+
1437
+ <li class="never" data-hits="" data-linenumber="225">
1438
+
1439
+
1440
+ <code class="ruby"> # puts d # won't fire in this example, could be &quot;TERM&quot;</code>
1441
+ </li>
1442
+
1443
+ <li class="never" data-hits="" data-linenumber="226">
1444
+
1445
+
1446
+ <code class="ruby"> # :no_raise</code>
1447
+ </li>
1448
+
1449
+ <li class="never" data-hits="" data-linenumber="227">
1450
+
1451
+
1452
+ <code class="ruby"> #</code>
1453
+ </li>
1454
+
1455
+ <li class="never" data-hits="" data-linenumber="228">
1456
+
1457
+
1458
+ <code class="ruby"> # # :finish triggers after :exit_code when the command exits normally.</code>
1459
+ </li>
1460
+
1461
+ <li class="never" data-hits="" data-linenumber="229">
1462
+
1463
+
1464
+ <code class="ruby"> # # it does *not* trigger when the remote process exits by signal!</code>
1465
+ </li>
1466
+
1467
+ <li class="never" data-hits="" data-linenumber="230">
1468
+
1469
+
1470
+ <code class="ruby"> # when :finish</code>
1471
+ </li>
1472
+
1473
+ <li class="never" data-hits="" data-linenumber="231">
1474
+
1475
+
1476
+ <code class="ruby"> # puts &quot;we are finished!&quot;</code>
1477
+ </li>
1478
+
1479
+ <li class="never" data-hits="" data-linenumber="232">
1480
+
1481
+
1482
+ <code class="ruby"> # end</code>
1483
+ </li>
1484
+
1485
+ <li class="never" data-hits="" data-linenumber="233">
1486
+
1487
+
1488
+ <code class="ruby"> # end</code>
1489
+ </li>
1490
+
1491
+ <li class="never" data-hits="" data-linenumber="234">
1492
+
1493
+
1494
+ <code class="ruby"> # end</code>
1495
+ </li>
1496
+
1497
+ <li class="never" data-hits="" data-linenumber="235">
1498
+
1499
+
1500
+ <code class="ruby"> #</code>
1501
+ </li>
1502
+
1503
+ <li class="never" data-hits="" data-linenumber="236">
1504
+
1505
+
1506
+ <code class="ruby"> # # Our Result has been populated normally, except for</code>
1507
+ </li>
1508
+
1509
+ <li class="never" data-hits="" data-linenumber="237">
1510
+
1511
+
1512
+ <code class="ruby"> # # :stdout and :stdin (because we used :no_append).</code>
1513
+ </li>
1514
+
1515
+ <li class="never" data-hits="" data-linenumber="238">
1516
+
1517
+
1518
+ <code class="ruby"> # puts r #=&gt; Net::SSH::Simple::Result</code>
1519
+ </li>
1520
+
1521
+ <li class="never" data-hits="" data-linenumber="239">
1522
+
1523
+
1524
+ <code class="ruby"> # puts r.exit_code #=&gt; 0</code>
1525
+ </li>
1526
+
1527
+ <li class="never" data-hits="" data-linenumber="240">
1528
+
1529
+
1530
+ <code class="ruby"> # puts r.stdout #=&gt; ''</code>
1531
+ </li>
1532
+
1533
+ <li class="never" data-hits="" data-linenumber="241">
1534
+
1535
+
1536
+ <code class="ruby"> # puts r.stderr #=&gt; ''</code>
1537
+ </li>
1538
+
1539
+ <li class="never" data-hits="" data-linenumber="242">
1540
+
1541
+
1542
+ <code class="ruby"> #</code>
1543
+ </li>
1544
+
1545
+ <li class="never" data-hits="" data-linenumber="243">
1546
+
1547
+
1548
+ <code class="ruby"> #</code>
1549
+ </li>
1550
+
1551
+ <li class="never" data-hits="" data-linenumber="244">
1552
+
1553
+
1554
+ <code class="ruby"> # @author moe@busyloop.net</code>
1555
+ </li>
1556
+
1557
+ <li class="never" data-hits="" data-linenumber="245">
1558
+
1559
+
1560
+ <code class="ruby"> #</code>
1561
+ </li>
1562
+
1563
+ <li class="covered" data-hits="1" data-linenumber="246">
1564
+ <span class="hits">1</span>
1565
+
1566
+ <code class="ruby"> class Simple</code>
1567
+ </li>
1568
+
1569
+ <li class="covered" data-hits="1" data-linenumber="247">
1570
+ <span class="hits">1</span>
1571
+
1572
+ <code class="ruby"> include Blockenspiel::DSL</code>
1573
+ </li>
1574
+
1575
+ <li class="never" data-hits="" data-linenumber="248">
1576
+
1577
+
1578
+ <code class="ruby"></code>
1579
+ </li>
1580
+
1581
+ <li class="never" data-hits="" data-linenumber="249">
1582
+
1583
+
1584
+ <code class="ruby"> #</code>
1585
+ </li>
1586
+
1587
+ <li class="never" data-hits="" data-linenumber="250">
1588
+
1589
+
1590
+ <code class="ruby"> # Result of the current Net::SSH::Simple::Operation.</code>
1591
+ </li>
1592
+
1593
+ <li class="never" data-hits="" data-linenumber="251">
1594
+
1595
+
1596
+ <code class="ruby"> #</code>
1597
+ </li>
1598
+
1599
+ <li class="never" data-hits="" data-linenumber="252">
1600
+
1601
+
1602
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result of the current operation</code>
1603
+ </li>
1604
+
1605
+ <li class="covered" data-hits="1" data-linenumber="253">
1606
+ <span class="hits">1</span>
1607
+
1608
+ <code class="ruby"> attr_reader :result</code>
1609
+ </li>
1610
+
1611
+ <li class="never" data-hits="" data-linenumber="254">
1612
+
1613
+
1614
+ <code class="ruby"></code>
1615
+ </li>
1616
+
1617
+ <li class="never" data-hits="" data-linenumber="255">
1618
+
1619
+
1620
+ <code class="ruby"> #</code>
1621
+ </li>
1622
+
1623
+ <li class="never" data-hits="" data-linenumber="256">
1624
+
1625
+
1626
+ <code class="ruby"> # Perform ssh command on a remote host and capture the result.</code>
1627
+ </li>
1628
+
1629
+ <li class="never" data-hits="" data-linenumber="257">
1630
+
1631
+
1632
+ <code class="ruby"> # This will create a new connection for each invocation.</code>
1633
+ </li>
1634
+
1635
+ <li class="never" data-hits="" data-linenumber="258">
1636
+
1637
+
1638
+ <code class="ruby"> #</code>
1639
+ </li>
1640
+
1641
+ <li class="never" data-hits="" data-linenumber="259">
1642
+
1643
+
1644
+ <code class="ruby"> # @example</code>
1645
+ </li>
1646
+
1647
+ <li class="never" data-hits="" data-linenumber="260">
1648
+
1649
+
1650
+ <code class="ruby"> # Net::SSH::Simple.ssh('localhost', 'echo Hello').class #=&gt; Net::SSH::Simple::Result</code>
1651
+ </li>
1652
+
1653
+ <li class="never" data-hits="" data-linenumber="261">
1654
+
1655
+
1656
+ <code class="ruby"> #</code>
1657
+ </li>
1658
+
1659
+ <li class="never" data-hits="" data-linenumber="262">
1660
+
1661
+
1662
+ <code class="ruby"> # @example</code>
1663
+ </li>
1664
+
1665
+ <li class="never" data-hits="" data-linenumber="263">
1666
+
1667
+
1668
+ <code class="ruby"> # Net::SSH::Simple.ssh('localhost', 'echo Hello').stdout #=&gt; &quot;Hello&quot;</code>
1669
+ </li>
1670
+
1671
+ <li class="never" data-hits="" data-linenumber="264">
1672
+
1673
+
1674
+ <code class="ruby"> #</code>
1675
+ </li>
1676
+
1677
+ <li class="never" data-hits="" data-linenumber="265">
1678
+
1679
+
1680
+ <code class="ruby"> # @param (see Net::SSH::Simple#ssh)</code>
1681
+ </li>
1682
+
1683
+ <li class="never" data-hits="" data-linenumber="266">
1684
+
1685
+
1686
+ <code class="ruby"> # @raise [Net::SSH::Simple::Error]</code>
1687
+ </li>
1688
+
1689
+ <li class="never" data-hits="" data-linenumber="267">
1690
+
1691
+
1692
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
1693
+ </li>
1694
+
1695
+ <li class="covered" data-hits="1" data-linenumber="268">
1696
+ <span class="hits">1</span>
1697
+
1698
+ <code class="ruby"> def self.ssh(*args, &amp;block)</code>
1699
+ </li>
1700
+
1701
+ <li class="covered" data-hits="15" data-linenumber="269">
1702
+ <span class="hits">15</span>
1703
+
1704
+ <code class="ruby"> s = self.new</code>
1705
+ </li>
1706
+
1707
+ <li class="covered" data-hits="15" data-linenumber="270">
1708
+ <span class="hits">15</span>
1709
+
1710
+ <code class="ruby"> r = s.ssh(*args, &amp;block)</code>
1711
+ </li>
1712
+
1713
+ <li class="covered" data-hits="12" data-linenumber="271">
1714
+ <span class="hits">12</span>
1715
+
1716
+ <code class="ruby"> s.close</code>
1717
+ </li>
1718
+
1719
+ <li class="covered" data-hits="12" data-linenumber="272">
1720
+ <span class="hits">12</span>
1721
+
1722
+ <code class="ruby"> r</code>
1723
+ </li>
1724
+
1725
+ <li class="never" data-hits="" data-linenumber="273">
1726
+
1727
+
1728
+ <code class="ruby"> end</code>
1729
+ </li>
1730
+
1731
+ <li class="never" data-hits="" data-linenumber="274">
1732
+
1733
+
1734
+ <code class="ruby"></code>
1735
+ </li>
1736
+
1737
+ <li class="never" data-hits="" data-linenumber="275">
1738
+
1739
+
1740
+ <code class="ruby"> #</code>
1741
+ </li>
1742
+
1743
+ <li class="never" data-hits="" data-linenumber="276">
1744
+
1745
+
1746
+ <code class="ruby"> # SCP upload to a remote host.</code>
1747
+ </li>
1748
+
1749
+ <li class="never" data-hits="" data-linenumber="277">
1750
+
1751
+
1752
+ <code class="ruby"> # This will create a new connection for each invocation.</code>
1753
+ </li>
1754
+
1755
+ <li class="never" data-hits="" data-linenumber="278">
1756
+
1757
+
1758
+ <code class="ruby"> #</code>
1759
+ </li>
1760
+
1761
+ <li class="never" data-hits="" data-linenumber="279">
1762
+
1763
+
1764
+ <code class="ruby"> # @example</code>
1765
+ </li>
1766
+
1767
+ <li class="never" data-hits="" data-linenumber="280">
1768
+
1769
+
1770
+ <code class="ruby"> # # SCP Upload</code>
1771
+ </li>
1772
+
1773
+ <li class="never" data-hits="" data-linenumber="281">
1774
+
1775
+
1776
+ <code class="ruby"> # Net::SSH::Simple.scp_put('localhost', '/tmp/local_foo', '/tmp/remote_bar')</code>
1777
+ </li>
1778
+
1779
+ <li class="never" data-hits="" data-linenumber="282">
1780
+
1781
+
1782
+ <code class="ruby"> #</code>
1783
+ </li>
1784
+
1785
+ <li class="never" data-hits="" data-linenumber="283">
1786
+
1787
+
1788
+ <code class="ruby"> # @example</code>
1789
+ </li>
1790
+
1791
+ <li class="never" data-hits="" data-linenumber="284">
1792
+
1793
+
1794
+ <code class="ruby"> # # Pass a block to monitor progress</code>
1795
+ </li>
1796
+
1797
+ <li class="never" data-hits="" data-linenumber="285">
1798
+
1799
+
1800
+ <code class="ruby"> # Net::SSH::Simple.scp_put('localhost', '/tmp/local_foo', '/tmp/remote_bar') do |sent, total|</code>
1801
+ </li>
1802
+
1803
+ <li class="never" data-hits="" data-linenumber="286">
1804
+
1805
+
1806
+ <code class="ruby"> # puts &quot;Bytes uploaded: #{sent} of #{total}&quot;</code>
1807
+ </li>
1808
+
1809
+ <li class="never" data-hits="" data-linenumber="287">
1810
+
1811
+
1812
+ <code class="ruby"> # end</code>
1813
+ </li>
1814
+
1815
+ <li class="never" data-hits="" data-linenumber="288">
1816
+
1817
+
1818
+ <code class="ruby"> #</code>
1819
+ </li>
1820
+
1821
+ <li class="never" data-hits="" data-linenumber="289">
1822
+
1823
+
1824
+ <code class="ruby"> # @param (see Net::SSH::Simple#scp_put)</code>
1825
+ </li>
1826
+
1827
+ <li class="never" data-hits="" data-linenumber="290">
1828
+
1829
+
1830
+ <code class="ruby"> # @raise [Net::SSH::Simple::Error]</code>
1831
+ </li>
1832
+
1833
+ <li class="never" data-hits="" data-linenumber="291">
1834
+
1835
+
1836
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
1837
+ </li>
1838
+
1839
+ <li class="covered" data-hits="1" data-linenumber="292">
1840
+ <span class="hits">1</span>
1841
+
1842
+ <code class="ruby"> def self.scp_put(*args, &amp;block)</code>
1843
+ </li>
1844
+
1845
+ <li class="covered" data-hits="4" data-linenumber="293">
1846
+ <span class="hits">4</span>
1847
+
1848
+ <code class="ruby"> s = self.new</code>
1849
+ </li>
1850
+
1851
+ <li class="covered" data-hits="4" data-linenumber="294">
1852
+ <span class="hits">4</span>
1853
+
1854
+ <code class="ruby"> r = s.scp_put(*args, &amp;block)</code>
1855
+ </li>
1856
+
1857
+ <li class="covered" data-hits="2" data-linenumber="295">
1858
+ <span class="hits">2</span>
1859
+
1860
+ <code class="ruby"> s.close</code>
1861
+ </li>
1862
+
1863
+ <li class="covered" data-hits="2" data-linenumber="296">
1864
+ <span class="hits">2</span>
1865
+
1866
+ <code class="ruby"> r</code>
1867
+ </li>
1868
+
1869
+ <li class="never" data-hits="" data-linenumber="297">
1870
+
1871
+
1872
+ <code class="ruby"> end</code>
1873
+ </li>
1874
+
1875
+ <li class="never" data-hits="" data-linenumber="298">
1876
+
1877
+
1878
+ <code class="ruby"></code>
1879
+ </li>
1880
+
1881
+ <li class="never" data-hits="" data-linenumber="299">
1882
+
1883
+
1884
+ <code class="ruby"> #</code>
1885
+ </li>
1886
+
1887
+ <li class="never" data-hits="" data-linenumber="300">
1888
+
1889
+
1890
+ <code class="ruby"> # SCP download from a remote host.</code>
1891
+ </li>
1892
+
1893
+ <li class="never" data-hits="" data-linenumber="301">
1894
+
1895
+
1896
+ <code class="ruby"> # This will create a new connection for each invocation.</code>
1897
+ </li>
1898
+
1899
+ <li class="never" data-hits="" data-linenumber="302">
1900
+
1901
+
1902
+ <code class="ruby"> #</code>
1903
+ </li>
1904
+
1905
+ <li class="never" data-hits="" data-linenumber="303">
1906
+
1907
+
1908
+ <code class="ruby"> # @example</code>
1909
+ </li>
1910
+
1911
+ <li class="never" data-hits="" data-linenumber="304">
1912
+
1913
+
1914
+ <code class="ruby"> # # SCP Download</code>
1915
+ </li>
1916
+
1917
+ <li class="never" data-hits="" data-linenumber="305">
1918
+
1919
+
1920
+ <code class="ruby"> # Net::SSH::Simple.scp_get('localhost', '/tmp/remote_foo', '/tmp/local_bar')</code>
1921
+ </li>
1922
+
1923
+ <li class="never" data-hits="" data-linenumber="306">
1924
+
1925
+
1926
+ <code class="ruby"> #</code>
1927
+ </li>
1928
+
1929
+ <li class="never" data-hits="" data-linenumber="307">
1930
+
1931
+
1932
+ <code class="ruby"> # @example</code>
1933
+ </li>
1934
+
1935
+ <li class="never" data-hits="" data-linenumber="308">
1936
+
1937
+
1938
+ <code class="ruby"> # # Pass a block to monitor progress</code>
1939
+ </li>
1940
+
1941
+ <li class="never" data-hits="" data-linenumber="309">
1942
+
1943
+
1944
+ <code class="ruby"> # Net::SSH::Simple.scp_get('localhost', '/tmp/remote_foo', '/tmp/local_bar') do |sent, total|</code>
1945
+ </li>
1946
+
1947
+ <li class="never" data-hits="" data-linenumber="310">
1948
+
1949
+
1950
+ <code class="ruby"> # puts &quot;Bytes downloaded: #{sent} of #{total}&quot;</code>
1951
+ </li>
1952
+
1953
+ <li class="never" data-hits="" data-linenumber="311">
1954
+
1955
+
1956
+ <code class="ruby"> # end</code>
1957
+ </li>
1958
+
1959
+ <li class="never" data-hits="" data-linenumber="312">
1960
+
1961
+
1962
+ <code class="ruby"> #</code>
1963
+ </li>
1964
+
1965
+ <li class="never" data-hits="" data-linenumber="313">
1966
+
1967
+
1968
+ <code class="ruby"> # @param (see Net::SSH::Simple#scp_get)</code>
1969
+ </li>
1970
+
1971
+ <li class="never" data-hits="" data-linenumber="314">
1972
+
1973
+
1974
+ <code class="ruby"> # @raise [Net::SSH::Simple::Error]</code>
1975
+ </li>
1976
+
1977
+ <li class="never" data-hits="" data-linenumber="315">
1978
+
1979
+
1980
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
1981
+ </li>
1982
+
1983
+ <li class="never" data-hits="" data-linenumber="316">
1984
+
1985
+
1986
+ <code class="ruby"> #</code>
1987
+ </li>
1988
+
1989
+ <li class="covered" data-hits="1" data-linenumber="317">
1990
+ <span class="hits">1</span>
1991
+
1992
+ <code class="ruby"> def self.scp_get(*args, &amp;block)</code>
1993
+ </li>
1994
+
1995
+ <li class="covered" data-hits="4" data-linenumber="318">
1996
+ <span class="hits">4</span>
1997
+
1998
+ <code class="ruby"> s = self.new</code>
1999
+ </li>
2000
+
2001
+ <li class="covered" data-hits="4" data-linenumber="319">
2002
+ <span class="hits">4</span>
2003
+
2004
+ <code class="ruby"> r = s.scp_get(*args, &amp;block)</code>
2005
+ </li>
2006
+
2007
+ <li class="covered" data-hits="2" data-linenumber="320">
2008
+ <span class="hits">2</span>
2009
+
2010
+ <code class="ruby"> s.close</code>
2011
+ </li>
2012
+
2013
+ <li class="covered" data-hits="2" data-linenumber="321">
2014
+ <span class="hits">2</span>
2015
+
2016
+ <code class="ruby"> r</code>
2017
+ </li>
2018
+
2019
+ <li class="never" data-hits="" data-linenumber="322">
2020
+
2021
+
2022
+ <code class="ruby"> end</code>
2023
+ </li>
2024
+
2025
+ <li class="never" data-hits="" data-linenumber="323">
2026
+
2027
+
2028
+ <code class="ruby"></code>
2029
+ </li>
2030
+
2031
+ <li class="never" data-hits="" data-linenumber="324">
2032
+
2033
+
2034
+ <code class="ruby"> # @deprecated Use scp_put instead.</code>
2035
+ </li>
2036
+
2037
+ <li class="covered" data-hits="1" data-linenumber="325">
2038
+ <span class="hits">1</span>
2039
+
2040
+ <code class="ruby"> def self.scp_ul(*args, &amp;block)</code>
2041
+ </li>
2042
+
2043
+ <li class="covered" data-hits="2" data-linenumber="326">
2044
+ <span class="hits">2</span>
2045
+
2046
+ <code class="ruby"> warn &quot;[DEPRECATION] Net::SSH::Simple.scp_ul is deprecated. Please use .scp_put instead (usage is identical, the method was only renamed).&quot;</code>
2047
+ </li>
2048
+
2049
+ <li class="covered" data-hits="2" data-linenumber="327">
2050
+ <span class="hits">2</span>
2051
+
2052
+ <code class="ruby"> self.scp_put(*args, &amp;block)</code>
2053
+ </li>
2054
+
2055
+ <li class="never" data-hits="" data-linenumber="328">
2056
+
2057
+
2058
+ <code class="ruby"> end</code>
2059
+ </li>
2060
+
2061
+ <li class="never" data-hits="" data-linenumber="329">
2062
+
2063
+
2064
+ <code class="ruby"></code>
2065
+ </li>
2066
+
2067
+ <li class="never" data-hits="" data-linenumber="330">
2068
+
2069
+
2070
+ <code class="ruby"> # @deprecated Use scp_get instead.</code>
2071
+ </li>
2072
+
2073
+ <li class="covered" data-hits="1" data-linenumber="331">
2074
+ <span class="hits">1</span>
2075
+
2076
+ <code class="ruby"> def self.scp_dl(*args, &amp;block)</code>
2077
+ </li>
2078
+
2079
+ <li class="covered" data-hits="2" data-linenumber="332">
2080
+ <span class="hits">2</span>
2081
+
2082
+ <code class="ruby"> warn &quot;[DEPRECATION] Net::SSH::Simple.scp_dl is deprecated. Please use .scp_get instead (usage is identical, the method was only renamed).&quot;</code>
2083
+ </li>
2084
+
2085
+ <li class="covered" data-hits="2" data-linenumber="333">
2086
+ <span class="hits">2</span>
2087
+
2088
+ <code class="ruby"> self.scp_get(*args, &amp;block)</code>
2089
+ </li>
2090
+
2091
+ <li class="never" data-hits="" data-linenumber="334">
2092
+
2093
+
2094
+ <code class="ruby"> end</code>
2095
+ </li>
2096
+
2097
+ <li class="never" data-hits="" data-linenumber="335">
2098
+
2099
+
2100
+ <code class="ruby"></code>
2101
+ </li>
2102
+
2103
+ <li class="never" data-hits="" data-linenumber="336">
2104
+
2105
+
2106
+ <code class="ruby"> # </code>
2107
+ </li>
2108
+
2109
+ <li class="never" data-hits="" data-linenumber="337">
2110
+
2111
+
2112
+ <code class="ruby"> # SCP upload to a remote host.</code>
2113
+ </li>
2114
+
2115
+ <li class="never" data-hits="" data-linenumber="338">
2116
+
2117
+
2118
+ <code class="ruby"> # The underlying Net::SSH::Simple instance will re-use</code>
2119
+ </li>
2120
+
2121
+ <li class="never" data-hits="" data-linenumber="339">
2122
+
2123
+
2124
+ <code class="ruby"> # existing connections for optimal performance.</code>
2125
+ </li>
2126
+
2127
+ <li class="never" data-hits="" data-linenumber="340">
2128
+
2129
+
2130
+ <code class="ruby"> #</code>
2131
+ </li>
2132
+
2133
+ <li class="never" data-hits="" data-linenumber="341">
2134
+
2135
+
2136
+ <code class="ruby"> # @param [String] host Destination hostname or ip-address</code>
2137
+ </li>
2138
+
2139
+ <li class="never" data-hits="" data-linenumber="342">
2140
+
2141
+
2142
+ <code class="ruby"> # @param [String] src Source path (on localhost)</code>
2143
+ </li>
2144
+
2145
+ <li class="never" data-hits="" data-linenumber="343">
2146
+
2147
+
2148
+ <code class="ruby"> # @param [String] dst Destination path (on remote host)</code>
2149
+ </li>
2150
+
2151
+ <li class="never" data-hits="" data-linenumber="344">
2152
+
2153
+
2154
+ <code class="ruby"> # @param opts (see Net::SSH::Simple#ssh)</code>
2155
+ </li>
2156
+
2157
+ <li class="never" data-hits="" data-linenumber="345">
2158
+
2159
+
2160
+ <code class="ruby"> # @param [Block] block Progress callback (optional)</code>
2161
+ </li>
2162
+
2163
+ <li class="never" data-hits="" data-linenumber="346">
2164
+
2165
+
2166
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
2167
+ </li>
2168
+
2169
+ <li class="never" data-hits="" data-linenumber="347">
2170
+
2171
+
2172
+ <code class="ruby"> #</code>
2173
+ </li>
2174
+
2175
+ <li class="covered" data-hits="1" data-linenumber="348">
2176
+ <span class="hits">1</span>
2177
+
2178
+ <code class="ruby"> def scp_put(host, src, dst, opts={}, &amp;block)</code>
2179
+ </li>
2180
+
2181
+ <li class="covered" data-hits="24" data-linenumber="349">
2182
+ <span class="hits">24</span>
2183
+
2184
+ <code class="ruby"> opts = @opts.merge(opts)</code>
2185
+ </li>
2186
+
2187
+ <li class="covered" data-hits="24" data-linenumber="350">
2188
+ <span class="hits">24</span>
2189
+
2190
+ <code class="ruby"> scp(:upload, host, src, dst, opts, &amp;block)</code>
2191
+ </li>
2192
+
2193
+ <li class="never" data-hits="" data-linenumber="351">
2194
+
2195
+
2196
+ <code class="ruby"> end</code>
2197
+ </li>
2198
+
2199
+ <li class="never" data-hits="" data-linenumber="352">
2200
+
2201
+
2202
+ <code class="ruby"></code>
2203
+ </li>
2204
+
2205
+ <li class="never" data-hits="" data-linenumber="353">
2206
+
2207
+
2208
+ <code class="ruby"> #</code>
2209
+ </li>
2210
+
2211
+ <li class="never" data-hits="" data-linenumber="354">
2212
+
2213
+
2214
+ <code class="ruby"> # SCP download from a remote host.</code>
2215
+ </li>
2216
+
2217
+ <li class="never" data-hits="" data-linenumber="355">
2218
+
2219
+
2220
+ <code class="ruby"> # The underlying Net::SSH::Simple instance will re-use</code>
2221
+ </li>
2222
+
2223
+ <li class="never" data-hits="" data-linenumber="356">
2224
+
2225
+
2226
+ <code class="ruby"> # existing connections for optimal performance.</code>
2227
+ </li>
2228
+
2229
+ <li class="never" data-hits="" data-linenumber="357">
2230
+
2231
+
2232
+ <code class="ruby"> # </code>
2233
+ </li>
2234
+
2235
+ <li class="never" data-hits="" data-linenumber="358">
2236
+
2237
+
2238
+ <code class="ruby"> # @param [String] host Destination hostname or ip-address</code>
2239
+ </li>
2240
+
2241
+ <li class="never" data-hits="" data-linenumber="359">
2242
+
2243
+
2244
+ <code class="ruby"> # @param [String] src Source path (on remote host)</code>
2245
+ </li>
2246
+
2247
+ <li class="never" data-hits="" data-linenumber="360">
2248
+
2249
+
2250
+ <code class="ruby"> # @param [String] dst Destination path (on localhost)</code>
2251
+ </li>
2252
+
2253
+ <li class="never" data-hits="" data-linenumber="361">
2254
+
2255
+
2256
+ <code class="ruby"> # @param opts (see Net::SSH::Simple#ssh)</code>
2257
+ </li>
2258
+
2259
+ <li class="never" data-hits="" data-linenumber="362">
2260
+
2261
+
2262
+ <code class="ruby"> # @param [Block] block Progress callback (optional)</code>
2263
+ </li>
2264
+
2265
+ <li class="never" data-hits="" data-linenumber="363">
2266
+
2267
+
2268
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
2269
+ </li>
2270
+
2271
+ <li class="never" data-hits="" data-linenumber="364">
2272
+
2273
+
2274
+ <code class="ruby"> # @see Net::SSH::Simple#scp_put</code>
2275
+ </li>
2276
+
2277
+ <li class="never" data-hits="" data-linenumber="365">
2278
+
2279
+
2280
+ <code class="ruby"> #</code>
2281
+ </li>
2282
+
2283
+ <li class="covered" data-hits="1" data-linenumber="366">
2284
+ <span class="hits">1</span>
2285
+
2286
+ <code class="ruby"> def scp_get(host, src, dst, opts={}, &amp;block)</code>
2287
+ </li>
2288
+
2289
+ <li class="covered" data-hits="25" data-linenumber="367">
2290
+ <span class="hits">25</span>
2291
+
2292
+ <code class="ruby"> opts = @opts.merge(opts)</code>
2293
+ </li>
2294
+
2295
+ <li class="covered" data-hits="25" data-linenumber="368">
2296
+ <span class="hits">25</span>
2297
+
2298
+ <code class="ruby"> scp(:download, host, src, dst, opts, &amp;block)</code>
2299
+ </li>
2300
+
2301
+ <li class="never" data-hits="" data-linenumber="369">
2302
+
2303
+
2304
+ <code class="ruby"> end</code>
2305
+ </li>
2306
+
2307
+ <li class="never" data-hits="" data-linenumber="370">
2308
+
2309
+
2310
+ <code class="ruby"></code>
2311
+ </li>
2312
+
2313
+ <li class="never" data-hits="" data-linenumber="371">
2314
+
2315
+
2316
+ <code class="ruby"> # @deprecated Use scp_put instead.</code>
2317
+ </li>
2318
+
2319
+ <li class="covered" data-hits="1" data-linenumber="372">
2320
+ <span class="hits">1</span>
2321
+
2322
+ <code class="ruby"> def scp_ul(host, src, dst, opts={}, &amp;block)</code>
2323
+ </li>
2324
+
2325
+ <li class="covered" data-hits="6" data-linenumber="373">
2326
+ <span class="hits">6</span>
2327
+
2328
+ <code class="ruby"> warn &quot;[DEPRECATION] Net::SSH::Simple#scp_ul is deprecated. Please use #scp_put instead (usage is identical, the method was only renamed).&quot;</code>
2329
+ </li>
2330
+
2331
+ <li class="covered" data-hits="6" data-linenumber="374">
2332
+ <span class="hits">6</span>
2333
+
2334
+ <code class="ruby"> scp_put(host, src, dst, opts, &amp;block)</code>
2335
+ </li>
2336
+
2337
+ <li class="never" data-hits="" data-linenumber="375">
2338
+
2339
+
2340
+ <code class="ruby"> end</code>
2341
+ </li>
2342
+
2343
+ <li class="never" data-hits="" data-linenumber="376">
2344
+
2345
+
2346
+ <code class="ruby"></code>
2347
+ </li>
2348
+
2349
+ <li class="never" data-hits="" data-linenumber="377">
2350
+
2351
+
2352
+ <code class="ruby"> # @deprecated Use scp_get instead.</code>
2353
+ </li>
2354
+
2355
+ <li class="covered" data-hits="1" data-linenumber="378">
2356
+ <span class="hits">1</span>
2357
+
2358
+ <code class="ruby"> def scp_dl(host, src, dst, opts={}, &amp;block)</code>
2359
+ </li>
2360
+
2361
+ <li class="covered" data-hits="6" data-linenumber="379">
2362
+ <span class="hits">6</span>
2363
+
2364
+ <code class="ruby"> warn &quot;[DEPRECATION] Net::SSH::Simple#scp_dl is deprecated. Please use #scp_get instead (usage is identical, the method was only renamed).&quot;</code>
2365
+ </li>
2366
+
2367
+ <li class="covered" data-hits="6" data-linenumber="380">
2368
+ <span class="hits">6</span>
2369
+
2370
+ <code class="ruby"> scp_get(host, src, dst, opts, &amp;block)</code>
2371
+ </li>
2372
+
2373
+ <li class="never" data-hits="" data-linenumber="381">
2374
+
2375
+
2376
+ <code class="ruby"> end</code>
2377
+ </li>
2378
+
2379
+ <li class="never" data-hits="" data-linenumber="382">
2380
+
2381
+
2382
+ <code class="ruby"></code>
2383
+ </li>
2384
+
2385
+ <li class="never" data-hits="" data-linenumber="383">
2386
+
2387
+
2388
+ <code class="ruby"> #</code>
2389
+ </li>
2390
+
2391
+ <li class="never" data-hits="" data-linenumber="384">
2392
+
2393
+
2394
+ <code class="ruby"> # Perform SSH operation on a remote host and capture the result.</code>
2395
+ </li>
2396
+
2397
+ <li class="never" data-hits="" data-linenumber="385">
2398
+
2399
+
2400
+ <code class="ruby"> # The underlying Net::SSH::Simple instance will re-use</code>
2401
+ </li>
2402
+
2403
+ <li class="never" data-hits="" data-linenumber="386">
2404
+
2405
+
2406
+ <code class="ruby"> # existing connections for optimal performance.</code>
2407
+ </li>
2408
+
2409
+ <li class="never" data-hits="" data-linenumber="387">
2410
+
2411
+
2412
+ <code class="ruby"> #</code>
2413
+ </li>
2414
+
2415
+ <li class="never" data-hits="" data-linenumber="388">
2416
+
2417
+
2418
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
2419
+ </li>
2420
+
2421
+ <li class="never" data-hits="" data-linenumber="389">
2422
+
2423
+
2424
+ <code class="ruby"> # @param [String] host Destination hostname or ip-address</code>
2425
+ </li>
2426
+
2427
+ <li class="never" data-hits="" data-linenumber="390">
2428
+
2429
+
2430
+ <code class="ruby"> # @param [String] cmd Shell command to execute</code>
2431
+ </li>
2432
+
2433
+ <li class="never" data-hits="" data-linenumber="391">
2434
+
2435
+
2436
+ <code class="ruby"> # @param [Block] block Use the event-API (see example above)</code>
2437
+ </li>
2438
+
2439
+ <li class="never" data-hits="" data-linenumber="392">
2440
+
2441
+
2442
+ <code class="ruby"> # @param [Hash] opts SSH options</code>
2443
+ </li>
2444
+
2445
+ <li class="never" data-hits="" data-linenumber="393">
2446
+
2447
+
2448
+ <code class="ruby"> # @option opts [Array] :auth_methods</code>
2449
+ </li>
2450
+
2451
+ <li class="never" data-hits="" data-linenumber="394">
2452
+
2453
+
2454
+ <code class="ruby"> # an array of authentication methods to try</code>
2455
+ </li>
2456
+
2457
+ <li class="never" data-hits="" data-linenumber="395">
2458
+
2459
+
2460
+ <code class="ruby"> #</code>
2461
+ </li>
2462
+
2463
+ <li class="never" data-hits="" data-linenumber="396">
2464
+
2465
+
2466
+ <code class="ruby"> # @option opts [String] :compression</code>
2467
+ </li>
2468
+
2469
+ <li class="never" data-hits="" data-linenumber="397">
2470
+
2471
+
2472
+ <code class="ruby"> # the compression algorithm to use,</code>
2473
+ </li>
2474
+
2475
+ <li class="never" data-hits="" data-linenumber="398">
2476
+
2477
+
2478
+ <code class="ruby"> # or true to use whatever is supported.</code>
2479
+ </li>
2480
+
2481
+ <li class="never" data-hits="" data-linenumber="399">
2482
+
2483
+
2484
+ <code class="ruby"> #</code>
2485
+ </li>
2486
+
2487
+ <li class="never" data-hits="" data-linenumber="400">
2488
+
2489
+
2490
+ <code class="ruby"> # @option opts [Number] :compression_level</code>
2491
+ </li>
2492
+
2493
+ <li class="never" data-hits="" data-linenumber="401">
2494
+
2495
+
2496
+ <code class="ruby"> # the compression level to use when sending data</code>
2497
+ </li>
2498
+
2499
+ <li class="never" data-hits="" data-linenumber="402">
2500
+
2501
+
2502
+ <code class="ruby"> #</code>
2503
+ </li>
2504
+
2505
+ <li class="never" data-hits="" data-linenumber="403">
2506
+
2507
+
2508
+ <code class="ruby"> # @option opts [String/boolean] :opts (true)</code>
2509
+ </li>
2510
+
2511
+ <li class="never" data-hits="" data-linenumber="404">
2512
+
2513
+
2514
+ <code class="ruby"> # set to true to load the default OpenSSH opts files</code>
2515
+ </li>
2516
+
2517
+ <li class="never" data-hits="" data-linenumber="405">
2518
+
2519
+
2520
+ <code class="ruby"> # (~/.ssh/opts, /etc/ssh_opts), or to false to not load them,</code>
2521
+ </li>
2522
+
2523
+ <li class="never" data-hits="" data-linenumber="406">
2524
+
2525
+
2526
+ <code class="ruby"> # or to a file-name (or array of file-names) to load those</code>
2527
+ </li>
2528
+
2529
+ <li class="never" data-hits="" data-linenumber="407">
2530
+
2531
+
2532
+ <code class="ruby"> # specific configuration files.</code>
2533
+ </li>
2534
+
2535
+ <li class="never" data-hits="" data-linenumber="408">
2536
+
2537
+
2538
+ <code class="ruby"> #</code>
2539
+ </li>
2540
+
2541
+ <li class="never" data-hits="" data-linenumber="409">
2542
+
2543
+
2544
+ <code class="ruby"> # @option opts [Array] :encryption</code>
2545
+ </li>
2546
+
2547
+ <li class="never" data-hits="" data-linenumber="410">
2548
+
2549
+
2550
+ <code class="ruby"> # the encryption cipher (or ciphers) to use</code>
2551
+ </li>
2552
+
2553
+ <li class="never" data-hits="" data-linenumber="411">
2554
+
2555
+
2556
+ <code class="ruby"> #</code>
2557
+ </li>
2558
+
2559
+ <li class="never" data-hits="" data-linenumber="412">
2560
+
2561
+
2562
+ <code class="ruby"> # @option opts [boolean] :forward_agent</code>
2563
+ </li>
2564
+
2565
+ <li class="never" data-hits="" data-linenumber="413">
2566
+
2567
+
2568
+ <code class="ruby"> # set to true if you want the SSH agent connection to be forwarded</code>
2569
+ </li>
2570
+
2571
+ <li class="never" data-hits="" data-linenumber="414">
2572
+
2573
+
2574
+ <code class="ruby"> #</code>
2575
+ </li>
2576
+
2577
+ <li class="never" data-hits="" data-linenumber="415">
2578
+
2579
+
2580
+ <code class="ruby"> # @option opts [String/Array] :global_known_hosts_file </code>
2581
+ </li>
2582
+
2583
+ <li class="never" data-hits="" data-linenumber="416">
2584
+
2585
+
2586
+ <code class="ruby"> # (['/etc/ssh/known_hosts','/etc/ssh/known_hosts2'])</code>
2587
+ </li>
2588
+
2589
+ <li class="never" data-hits="" data-linenumber="417">
2590
+
2591
+
2592
+ <code class="ruby"> # the location of the global known hosts file.</code>
2593
+ </li>
2594
+
2595
+ <li class="never" data-hits="" data-linenumber="418">
2596
+
2597
+
2598
+ <code class="ruby"> # Set to an array if you want to specify multiple</code>
2599
+ </li>
2600
+
2601
+ <li class="never" data-hits="" data-linenumber="419">
2602
+
2603
+
2604
+ <code class="ruby"> # global known hosts files.</code>
2605
+ </li>
2606
+
2607
+ <li class="never" data-hits="" data-linenumber="420">
2608
+
2609
+
2610
+ <code class="ruby"> #</code>
2611
+ </li>
2612
+
2613
+ <li class="never" data-hits="" data-linenumber="421">
2614
+
2615
+
2616
+ <code class="ruby"> # @option opts [String/Array] :hmac</code>
2617
+ </li>
2618
+
2619
+ <li class="never" data-hits="" data-linenumber="422">
2620
+
2621
+
2622
+ <code class="ruby"> # the hmac algorithm (or algorithms) to use</code>
2623
+ </li>
2624
+
2625
+ <li class="never" data-hits="" data-linenumber="423">
2626
+
2627
+
2628
+ <code class="ruby"> #</code>
2629
+ </li>
2630
+
2631
+ <li class="never" data-hits="" data-linenumber="424">
2632
+
2633
+
2634
+ <code class="ruby"> # @option opts [String] :host_key</code>
2635
+ </li>
2636
+
2637
+ <li class="never" data-hits="" data-linenumber="425">
2638
+
2639
+
2640
+ <code class="ruby"> # the host key algorithm (or algorithms) to use</code>
2641
+ </li>
2642
+
2643
+ <li class="never" data-hits="" data-linenumber="426">
2644
+
2645
+
2646
+ <code class="ruby"> #</code>
2647
+ </li>
2648
+
2649
+ <li class="never" data-hits="" data-linenumber="427">
2650
+
2651
+
2652
+ <code class="ruby"> # @option opts [String] :host_key_alias</code>
2653
+ </li>
2654
+
2655
+ <li class="never" data-hits="" data-linenumber="428">
2656
+
2657
+
2658
+ <code class="ruby"> # the host name to use when looking up or adding a host to a known_hosts dictionary file</code>
2659
+ </li>
2660
+
2661
+ <li class="never" data-hits="" data-linenumber="429">
2662
+
2663
+
2664
+ <code class="ruby"> #</code>
2665
+ </li>
2666
+
2667
+ <li class="never" data-hits="" data-linenumber="430">
2668
+
2669
+
2670
+ <code class="ruby"> # @option opts [String] :host_name</code>
2671
+ </li>
2672
+
2673
+ <li class="never" data-hits="" data-linenumber="431">
2674
+
2675
+
2676
+ <code class="ruby"> # the real host name or IP to log into. This is used instead of the host parameter,</code>
2677
+ </li>
2678
+
2679
+ <li class="never" data-hits="" data-linenumber="432">
2680
+
2681
+
2682
+ <code class="ruby"> # and is primarily only useful when specified in an SSH configuration file.</code>
2683
+ </li>
2684
+
2685
+ <li class="never" data-hits="" data-linenumber="433">
2686
+
2687
+
2688
+ <code class="ruby"> # It lets you specify an alias, similarly to adding an entry in /etc/hosts but</code>
2689
+ </li>
2690
+
2691
+ <li class="never" data-hits="" data-linenumber="434">
2692
+
2693
+
2694
+ <code class="ruby"> # without needing to modify /etc/hosts.</code>
2695
+ </li>
2696
+
2697
+ <li class="never" data-hits="" data-linenumber="435">
2698
+
2699
+
2700
+ <code class="ruby"> #</code>
2701
+ </li>
2702
+
2703
+ <li class="never" data-hits="" data-linenumber="436">
2704
+
2705
+
2706
+ <code class="ruby"> # @option opts [String/Array] :kex</code>
2707
+ </li>
2708
+
2709
+ <li class="never" data-hits="" data-linenumber="437">
2710
+
2711
+
2712
+ <code class="ruby"> # the key exchange algorithm (or algorithms) to use</code>
2713
+ </li>
2714
+
2715
+ <li class="never" data-hits="" data-linenumber="438">
2716
+
2717
+
2718
+ <code class="ruby"> #</code>
2719
+ </li>
2720
+
2721
+ <li class="never" data-hits="" data-linenumber="439">
2722
+
2723
+
2724
+ <code class="ruby"> # @option opts [Array] :keys</code>
2725
+ </li>
2726
+
2727
+ <li class="never" data-hits="" data-linenumber="440">
2728
+
2729
+
2730
+ <code class="ruby"> # an array of file names of private keys to use for publickey and hostbased authentication</code>
2731
+ </li>
2732
+
2733
+ <li class="never" data-hits="" data-linenumber="441">
2734
+
2735
+
2736
+ <code class="ruby"> #</code>
2737
+ </li>
2738
+
2739
+ <li class="never" data-hits="" data-linenumber="442">
2740
+
2741
+
2742
+ <code class="ruby"> # @option opts [Array] :key_data</code>
2743
+ </li>
2744
+
2745
+ <li class="never" data-hits="" data-linenumber="443">
2746
+
2747
+
2748
+ <code class="ruby"> # an array of strings, with each element of the array being a raw private key in PEM format.</code>
2749
+ </li>
2750
+
2751
+ <li class="never" data-hits="" data-linenumber="444">
2752
+
2753
+
2754
+ <code class="ruby"> #</code>
2755
+ </li>
2756
+
2757
+ <li class="never" data-hits="" data-linenumber="445">
2758
+
2759
+
2760
+ <code class="ruby"> # @option opts [boolean] :keys_only</code>
2761
+ </li>
2762
+
2763
+ <li class="never" data-hits="" data-linenumber="446">
2764
+
2765
+
2766
+ <code class="ruby"> # set to true to use only private keys from keys and key_data parameters, even if</code>
2767
+ </li>
2768
+
2769
+ <li class="never" data-hits="" data-linenumber="447">
2770
+
2771
+
2772
+ <code class="ruby"> # ssh-agent offers more identities. This option is intended for situations where</code>
2773
+ </li>
2774
+
2775
+ <li class="never" data-hits="" data-linenumber="448">
2776
+
2777
+
2778
+ <code class="ruby"> # ssh-agent offers many different identites.</code>
2779
+ </li>
2780
+
2781
+ <li class="never" data-hits="" data-linenumber="449">
2782
+
2783
+
2784
+ <code class="ruby"> #</code>
2785
+ </li>
2786
+
2787
+ <li class="never" data-hits="" data-linenumber="450">
2788
+
2789
+
2790
+ <code class="ruby"> # @option opts [Logger] :logger</code>
2791
+ </li>
2792
+
2793
+ <li class="never" data-hits="" data-linenumber="451">
2794
+
2795
+
2796
+ <code class="ruby"> # the logger instance to use when logging</code>
2797
+ </li>
2798
+
2799
+ <li class="never" data-hits="" data-linenumber="452">
2800
+
2801
+
2802
+ <code class="ruby"> #</code>
2803
+ </li>
2804
+
2805
+ <li class="never" data-hits="" data-linenumber="453">
2806
+
2807
+
2808
+ <code class="ruby"> # @option opts [boolean/:very] :paranoid</code>
2809
+ </li>
2810
+
2811
+ <li class="never" data-hits="" data-linenumber="454">
2812
+
2813
+
2814
+ <code class="ruby"> # either true, false, or :very, specifying how strict host-key verification should be</code>
2815
+ </li>
2816
+
2817
+ <li class="never" data-hits="" data-linenumber="455">
2818
+
2819
+
2820
+ <code class="ruby"> #</code>
2821
+ </li>
2822
+
2823
+ <li class="never" data-hits="" data-linenumber="456">
2824
+
2825
+
2826
+ <code class="ruby"> # @option opts [String] :passphrase (nil)</code>
2827
+ </li>
2828
+
2829
+ <li class="never" data-hits="" data-linenumber="457">
2830
+
2831
+
2832
+ <code class="ruby"> # the passphrase to use when loading a private key (default is nil, for no passphrase)</code>
2833
+ </li>
2834
+
2835
+ <li class="never" data-hits="" data-linenumber="458">
2836
+
2837
+
2838
+ <code class="ruby"> #</code>
2839
+ </li>
2840
+
2841
+ <li class="never" data-hits="" data-linenumber="459">
2842
+
2843
+
2844
+ <code class="ruby"> # @option opts [String] :password</code>
2845
+ </li>
2846
+
2847
+ <li class="never" data-hits="" data-linenumber="460">
2848
+
2849
+
2850
+ <code class="ruby"> # the password to use to login</code>
2851
+ </li>
2852
+
2853
+ <li class="never" data-hits="" data-linenumber="461">
2854
+
2855
+
2856
+ <code class="ruby"> #</code>
2857
+ </li>
2858
+
2859
+ <li class="never" data-hits="" data-linenumber="462">
2860
+
2861
+
2862
+ <code class="ruby"> # @option opts [Integer] :port</code>
2863
+ </li>
2864
+
2865
+ <li class="never" data-hits="" data-linenumber="463">
2866
+
2867
+
2868
+ <code class="ruby"> # the port to use when connecting to the remote host</code>
2869
+ </li>
2870
+
2871
+ <li class="never" data-hits="" data-linenumber="464">
2872
+
2873
+
2874
+ <code class="ruby"> #</code>
2875
+ </li>
2876
+
2877
+ <li class="never" data-hits="" data-linenumber="465">
2878
+
2879
+
2880
+ <code class="ruby"> # @option opts [Hash] :properties</code>
2881
+ </li>
2882
+
2883
+ <li class="never" data-hits="" data-linenumber="466">
2884
+
2885
+
2886
+ <code class="ruby"> # a hash of key/value pairs to add to the new connection's properties</code>
2887
+ </li>
2888
+
2889
+ <li class="never" data-hits="" data-linenumber="467">
2890
+
2891
+
2892
+ <code class="ruby"> # (see Net::SSH::Connection::Session#properties)</code>
2893
+ </li>
2894
+
2895
+ <li class="never" data-hits="" data-linenumber="468">
2896
+
2897
+
2898
+ <code class="ruby"> #</code>
2899
+ </li>
2900
+
2901
+ <li class="never" data-hits="" data-linenumber="469">
2902
+
2903
+
2904
+ <code class="ruby"> # @option opts [String] :proxy</code>
2905
+ </li>
2906
+
2907
+ <li class="never" data-hits="" data-linenumber="470">
2908
+
2909
+
2910
+ <code class="ruby"> # a proxy instance (see Proxy) to use when connecting</code>
2911
+ </li>
2912
+
2913
+ <li class="never" data-hits="" data-linenumber="471">
2914
+
2915
+
2916
+ <code class="ruby"> #</code>
2917
+ </li>
2918
+
2919
+ <li class="never" data-hits="" data-linenumber="472">
2920
+
2921
+
2922
+ <code class="ruby"> # @option opts [Integer] :rekey_blocks_limit</code>
2923
+ </li>
2924
+
2925
+ <li class="never" data-hits="" data-linenumber="473">
2926
+
2927
+
2928
+ <code class="ruby"> # the max number of blocks to process before rekeying</code>
2929
+ </li>
2930
+
2931
+ <li class="never" data-hits="" data-linenumber="474">
2932
+
2933
+
2934
+ <code class="ruby"> #</code>
2935
+ </li>
2936
+
2937
+ <li class="never" data-hits="" data-linenumber="475">
2938
+
2939
+
2940
+ <code class="ruby"> # @option opts [Integer] :rekey_limit</code>
2941
+ </li>
2942
+
2943
+ <li class="never" data-hits="" data-linenumber="476">
2944
+
2945
+
2946
+ <code class="ruby"> # the max number of bytes to process before rekeying</code>
2947
+ </li>
2948
+
2949
+ <li class="never" data-hits="" data-linenumber="477">
2950
+
2951
+
2952
+ <code class="ruby"> #</code>
2953
+ </li>
2954
+
2955
+ <li class="never" data-hits="" data-linenumber="478">
2956
+
2957
+
2958
+ <code class="ruby"> # @option opts [Integer] :rekey_packet_limit</code>
2959
+ </li>
2960
+
2961
+ <li class="never" data-hits="" data-linenumber="479">
2962
+
2963
+
2964
+ <code class="ruby"> # the max number of packets to process before rekeying</code>
2965
+ </li>
2966
+
2967
+ <li class="never" data-hits="" data-linenumber="480">
2968
+
2969
+
2970
+ <code class="ruby"> #</code>
2971
+ </li>
2972
+
2973
+ <li class="never" data-hits="" data-linenumber="481">
2974
+
2975
+
2976
+ <code class="ruby"> # @option opts [Integer] :timeout (60)</code>
2977
+ </li>
2978
+
2979
+ <li class="never" data-hits="" data-linenumber="482">
2980
+
2981
+
2982
+ <code class="ruby"> # maximum idle time before a connection will time out (0 = disable).</code>
2983
+ </li>
2984
+
2985
+ <li class="never" data-hits="" data-linenumber="483">
2986
+
2987
+
2988
+ <code class="ruby"> #</code>
2989
+ </li>
2990
+
2991
+ <li class="never" data-hits="" data-linenumber="484">
2992
+
2993
+
2994
+ <code class="ruby"> # @option opts [Integer] :operation_timeout (3600)</code>
2995
+ </li>
2996
+
2997
+ <li class="never" data-hits="" data-linenumber="485">
2998
+
2999
+
3000
+ <code class="ruby"> # maximum time before aborting an operation (0 = disable).</code>
3001
+ </li>
3002
+
3003
+ <li class="never" data-hits="" data-linenumber="486">
3004
+
3005
+
3006
+ <code class="ruby"> # you may use this to guard against run-away processes.</code>
3007
+ </li>
3008
+
3009
+ <li class="never" data-hits="" data-linenumber="487">
3010
+
3011
+
3012
+ <code class="ruby"> #</code>
3013
+ </li>
3014
+
3015
+ <li class="never" data-hits="" data-linenumber="488">
3016
+
3017
+
3018
+ <code class="ruby"> # @option opts [Integer] :keepalive_interval (60)</code>
3019
+ </li>
3020
+
3021
+ <li class="never" data-hits="" data-linenumber="489">
3022
+
3023
+
3024
+ <code class="ruby"> # send keep-alive probes at this interval to prevent connections</code>
3025
+ </li>
3026
+
3027
+ <li class="never" data-hits="" data-linenumber="490">
3028
+
3029
+
3030
+ <code class="ruby"> # from timing out unexpectedly.</code>
3031
+ </li>
3032
+
3033
+ <li class="never" data-hits="" data-linenumber="491">
3034
+
3035
+
3036
+ <code class="ruby"> #</code>
3037
+ </li>
3038
+
3039
+ <li class="never" data-hits="" data-linenumber="492">
3040
+
3041
+
3042
+ <code class="ruby"> # @option opts [Integer] :close_timeout (5)</code>
3043
+ </li>
3044
+
3045
+ <li class="never" data-hits="" data-linenumber="493">
3046
+
3047
+
3048
+ <code class="ruby"> # grace-period on close before the connection will be terminated forcefully</code>
3049
+ </li>
3050
+
3051
+ <li class="never" data-hits="" data-linenumber="494">
3052
+
3053
+
3054
+ <code class="ruby"> # (0 = terminate immediately).</code>
3055
+ </li>
3056
+
3057
+ <li class="never" data-hits="" data-linenumber="495">
3058
+
3059
+
3060
+ <code class="ruby"> #</code>
3061
+ </li>
3062
+
3063
+ <li class="never" data-hits="" data-linenumber="496">
3064
+
3065
+
3066
+ <code class="ruby"> # @option opts [String] :user</code>
3067
+ </li>
3068
+
3069
+ <li class="never" data-hits="" data-linenumber="497">
3070
+
3071
+
3072
+ <code class="ruby"> # the username to log in as</code>
3073
+ </li>
3074
+
3075
+ <li class="never" data-hits="" data-linenumber="498">
3076
+
3077
+
3078
+ <code class="ruby"> #</code>
3079
+ </li>
3080
+
3081
+ <li class="never" data-hits="" data-linenumber="499">
3082
+
3083
+
3084
+ <code class="ruby"> # @option opts [String/Array] :user_known_hosts_file</code>
3085
+ </li>
3086
+
3087
+ <li class="never" data-hits="" data-linenumber="500">
3088
+
3089
+
3090
+ <code class="ruby"> # (['~/.ssh/known_hosts, ~/.ssh/known_hosts2'])</code>
3091
+ </li>
3092
+
3093
+ <li class="never" data-hits="" data-linenumber="501">
3094
+
3095
+
3096
+ <code class="ruby"> # the location of the user known hosts file. Set to an array to specify multiple</code>
3097
+ </li>
3098
+
3099
+ <li class="never" data-hits="" data-linenumber="502">
3100
+
3101
+
3102
+ <code class="ruby"> # user known hosts files.</code>
3103
+ </li>
3104
+
3105
+ <li class="never" data-hits="" data-linenumber="503">
3106
+
3107
+
3108
+ <code class="ruby"> #</code>
3109
+ </li>
3110
+
3111
+ <li class="never" data-hits="" data-linenumber="504">
3112
+
3113
+
3114
+ <code class="ruby"> # @option opts [Symbol] :verbose</code>
3115
+ </li>
3116
+
3117
+ <li class="never" data-hits="" data-linenumber="505">
3118
+
3119
+
3120
+ <code class="ruby"> # how verbose to be (Logger verbosity constants, Logger::DEBUG is very verbose,</code>
3121
+ </li>
3122
+
3123
+ <li class="never" data-hits="" data-linenumber="506">
3124
+
3125
+
3126
+ <code class="ruby"> # Logger::FATAL is all but silent). Logger::FATAL is the default. The symbols</code>
3127
+ </li>
3128
+
3129
+ <li class="never" data-hits="" data-linenumber="507">
3130
+
3131
+
3132
+ <code class="ruby"> # :debug, :info, :warn, :error, and :fatal are also supported and are translated</code>
3133
+ </li>
3134
+
3135
+ <li class="never" data-hits="" data-linenumber="508">
3136
+
3137
+
3138
+ <code class="ruby"> # to the corresponding Logger constant.</code>
3139
+ </li>
3140
+
3141
+ <li class="never" data-hits="" data-linenumber="509">
3142
+
3143
+
3144
+ <code class="ruby"> #</code>
3145
+ </li>
3146
+
3147
+ <li class="never" data-hits="" data-linenumber="510">
3148
+
3149
+
3150
+ <code class="ruby"> # @see http://net-ssh.github.com/ssh/v2/api/classes/Net/SSH.html#M000002 </code>
3151
+ </li>
3152
+
3153
+ <li class="never" data-hits="" data-linenumber="511">
3154
+
3155
+
3156
+ <code class="ruby"> # Net::SSH documentation for the 'opts'-hash</code>
3157
+ </li>
3158
+
3159
+ <li class="covered" data-hits="1" data-linenumber="512">
3160
+ <span class="hits">1</span>
3161
+
3162
+ <code class="ruby"> def ssh(host, cmd, opts={}, &amp;block)</code>
3163
+ </li>
3164
+
3165
+ <li class="covered" data-hits="68" data-linenumber="513">
3166
+ <span class="hits">68</span>
3167
+
3168
+ <code class="ruby"> opts = @opts.merge(opts)</code>
3169
+ </li>
3170
+
3171
+ <li class="covered" data-hits="68" data-linenumber="514">
3172
+ <span class="hits">68</span>
3173
+
3174
+ <code class="ruby"> with_session(host, opts) do |session|</code>
3175
+ </li>
3176
+
3177
+ <li class="covered" data-hits="67" data-linenumber="515">
3178
+ <span class="hits">67</span>
3179
+
3180
+ <code class="ruby"> @result = Result.new(</code>
3181
+ </li>
3182
+
3183
+ <li class="never" data-hits="" data-linenumber="516">
3184
+
3185
+
3186
+ <code class="ruby"> { :op =&gt; :ssh, :host =&gt; host, :cmd =&gt; cmd, :start_at =&gt; Time.new,</code>
3187
+ </li>
3188
+
3189
+ <li class="never" data-hits="" data-linenumber="517">
3190
+
3191
+
3192
+ <code class="ruby"> :last_event_at =&gt; Time.new, :opts =&gt; opts, :stdout =&gt; '', :stderr =&gt; '',</code>
3193
+ </li>
3194
+
3195
+ <li class="never" data-hits="" data-linenumber="518">
3196
+
3197
+
3198
+ <code class="ruby"> :success =&gt; nil </code>
3199
+ </li>
3200
+
3201
+ <li class="never" data-hits="" data-linenumber="519">
3202
+
3203
+
3204
+ <code class="ruby"> } )</code>
3205
+ </li>
3206
+
3207
+ <li class="never" data-hits="" data-linenumber="520">
3208
+
3209
+
3210
+ <code class="ruby"></code>
3211
+ </li>
3212
+
3213
+ <li class="covered" data-hits="67" data-linenumber="521">
3214
+ <span class="hits">67</span>
3215
+
3216
+ <code class="ruby"> channel = session.open_channel do |chan|</code>
3217
+ </li>
3218
+
3219
+ <li class="covered" data-hits="67" data-linenumber="522">
3220
+ <span class="hits">67</span>
3221
+
3222
+ <code class="ruby"> chan.exec cmd do |ch, success|</code>
3223
+ </li>
3224
+
3225
+ <li class="covered" data-hits="67" data-linenumber="523">
3226
+ <span class="hits">67</span>
3227
+
3228
+ <code class="ruby"> @result[:success] = success</code>
3229
+ </li>
3230
+
3231
+ <li class="covered" data-hits="67" data-linenumber="524">
3232
+ <span class="hits">67</span>
3233
+
3234
+ <code class="ruby"> ch.on_data do |c, data|</code>
3235
+ </li>
3236
+
3237
+ <li class="covered" data-hits="991" data-linenumber="525">
3238
+ <span class="hits">991</span>
3239
+
3240
+ <code class="ruby"> @result[:last_event_at] = Time.new</code>
3241
+ </li>
3242
+
3243
+ <li class="covered" data-hits="991" data-linenumber="526">
3244
+ <span class="hits">991</span>
3245
+
3246
+ <code class="ruby"> r = block.call(:stdout, ch, data) if block</code>
3247
+ </li>
3248
+
3249
+ <li class="covered" data-hits="991" data-linenumber="527">
3250
+ <span class="hits">991</span>
3251
+
3252
+ <code class="ruby"> @result[:stdout] += data.to_s unless r == :no_append</code>
3253
+ </li>
3254
+
3255
+ <li class="never" data-hits="" data-linenumber="528">
3256
+
3257
+
3258
+ <code class="ruby"> end</code>
3259
+ </li>
3260
+
3261
+ <li class="covered" data-hits="67" data-linenumber="529">
3262
+ <span class="hits">67</span>
3263
+
3264
+ <code class="ruby"> ch.on_extended_data do |c, type, data|</code>
3265
+ </li>
3266
+
3267
+ <li class="covered" data-hits="957" data-linenumber="530">
3268
+ <span class="hits">957</span>
3269
+
3270
+ <code class="ruby"> @result[:last_event_at] = Time.new</code>
3271
+ </li>
3272
+
3273
+ <li class="covered" data-hits="957" data-linenumber="531">
3274
+ <span class="hits">957</span>
3275
+
3276
+ <code class="ruby"> r = block.call(:stderr, ch, data) if block</code>
3277
+ </li>
3278
+
3279
+ <li class="covered" data-hits="957" data-linenumber="532">
3280
+ <span class="hits">957</span>
3281
+
3282
+ <code class="ruby"> @result[:stderr] += data.to_s unless r == :no_append</code>
3283
+ </li>
3284
+
3285
+ <li class="never" data-hits="" data-linenumber="533">
3286
+
3287
+
3288
+ <code class="ruby"> end</code>
3289
+ </li>
3290
+
3291
+ <li class="covered" data-hits="67" data-linenumber="534">
3292
+ <span class="hits">67</span>
3293
+
3294
+ <code class="ruby"> ch.on_request('exit-status') do |c, data|</code>
3295
+ </li>
3296
+
3297
+ <li class="covered" data-hits="62" data-linenumber="535">
3298
+ <span class="hits">62</span>
3299
+
3300
+ <code class="ruby"> @result[:last_event_at] = Time.new</code>
3301
+ </li>
3302
+
3303
+ <li class="covered" data-hits="62" data-linenumber="536">
3304
+ <span class="hits">62</span>
3305
+
3306
+ <code class="ruby"> exit_code = data.read_long</code>
3307
+ </li>
3308
+
3309
+ <li class="covered" data-hits="62" data-linenumber="537">
3310
+ <span class="hits">62</span>
3311
+
3312
+ <code class="ruby"> block.call(:exit_code, ch, exit_code) if block</code>
3313
+ </li>
3314
+
3315
+ <li class="covered" data-hits="62" data-linenumber="538">
3316
+ <span class="hits">62</span>
3317
+
3318
+ <code class="ruby"> @result[:exit_code] = exit_code</code>
3319
+ </li>
3320
+
3321
+ <li class="never" data-hits="" data-linenumber="539">
3322
+
3323
+
3324
+ <code class="ruby"> end</code>
3325
+ </li>
3326
+
3327
+ <li class="covered" data-hits="67" data-linenumber="540">
3328
+ <span class="hits">67</span>
3329
+
3330
+ <code class="ruby"> ch.on_request('exit-signal') do |c, data|</code>
3331
+ </li>
3332
+
3333
+ <li class="covered" data-hits="3" data-linenumber="541">
3334
+ <span class="hits">3</span>
3335
+
3336
+ <code class="ruby"> @result[:last_event_at] = Time.new</code>
3337
+ </li>
3338
+
3339
+ <li class="covered" data-hits="3" data-linenumber="542">
3340
+ <span class="hits">3</span>
3341
+
3342
+ <code class="ruby"> exit_signal = data.read_string</code>
3343
+ </li>
3344
+
3345
+ <li class="covered" data-hits="3" data-linenumber="543">
3346
+ <span class="hits">3</span>
3347
+
3348
+ <code class="ruby"> r = block.call(:exit_signal, ch, exit_signal) if block</code>
3349
+ </li>
3350
+
3351
+ <li class="covered" data-hits="3" data-linenumber="544">
3352
+ <span class="hits">3</span>
3353
+
3354
+ <code class="ruby"> @result[:exit_signal] = exit_signal</code>
3355
+ </li>
3356
+
3357
+ <li class="covered" data-hits="3" data-linenumber="545">
3358
+ <span class="hits">3</span>
3359
+
3360
+ <code class="ruby"> @result[:success] = false</code>
3361
+ </li>
3362
+
3363
+ <li class="covered" data-hits="3" data-linenumber="546">
3364
+ <span class="hits">3</span>
3365
+
3366
+ <code class="ruby"> unless r == :no_raise</code>
3367
+ </li>
3368
+
3369
+ <li class="covered" data-hits="2" data-linenumber="547">
3370
+ <span class="hits">2</span>
3371
+
3372
+ <code class="ruby"> raise &quot;Killed by SIG#{@result[:exit_signal]}&quot;</code>
3373
+ </li>
3374
+
3375
+ <li class="never" data-hits="" data-linenumber="548">
3376
+
3377
+
3378
+ <code class="ruby"> end</code>
3379
+ </li>
3380
+
3381
+ <li class="never" data-hits="" data-linenumber="549">
3382
+
3383
+
3384
+ <code class="ruby"> end</code>
3385
+ </li>
3386
+
3387
+ <li class="covered" data-hits="67" data-linenumber="550">
3388
+ <span class="hits">67</span>
3389
+
3390
+ <code class="ruby"> block.call(:start, ch, nil) if block</code>
3391
+ </li>
3392
+
3393
+ <li class="never" data-hits="" data-linenumber="551">
3394
+
3395
+
3396
+ <code class="ruby"> end</code>
3397
+ </li>
3398
+
3399
+ <li class="never" data-hits="" data-linenumber="552">
3400
+
3401
+
3402
+ <code class="ruby"> end</code>
3403
+ </li>
3404
+
3405
+ <li class="covered" data-hits="67" data-linenumber="553">
3406
+ <span class="hits">67</span>
3407
+
3408
+ <code class="ruby"> wait_for_channel session, channel, @result, opts</code>
3409
+ </li>
3410
+
3411
+ <li class="covered" data-hits="63" data-linenumber="554">
3412
+ <span class="hits">63</span>
3413
+
3414
+ <code class="ruby"> @result[:finish_at] = Time.new</code>
3415
+ </li>
3416
+
3417
+ <li class="covered" data-hits="63" data-linenumber="555">
3418
+ <span class="hits">63</span>
3419
+
3420
+ <code class="ruby"> block.call(:finish, channel, nil) if block</code>
3421
+ </li>
3422
+
3423
+ <li class="covered" data-hits="63" data-linenumber="556">
3424
+ <span class="hits">63</span>
3425
+
3426
+ <code class="ruby"> @result</code>
3427
+ </li>
3428
+
3429
+ <li class="never" data-hits="" data-linenumber="557">
3430
+
3431
+
3432
+ <code class="ruby"> end</code>
3433
+ </li>
3434
+
3435
+ <li class="never" data-hits="" data-linenumber="558">
3436
+
3437
+
3438
+ <code class="ruby"> end</code>
3439
+ </li>
3440
+
3441
+ <li class="never" data-hits="" data-linenumber="559">
3442
+
3443
+
3444
+ <code class="ruby"></code>
3445
+ </li>
3446
+
3447
+ <li class="covered" data-hits="1" data-linenumber="560">
3448
+ <span class="hits">1</span>
3449
+
3450
+ <code class="ruby"> dsl_methods false</code>
3451
+ </li>
3452
+
3453
+ <li class="never" data-hits="" data-linenumber="561">
3454
+
3455
+
3456
+ <code class="ruby"></code>
3457
+ </li>
3458
+
3459
+ <li class="covered" data-hits="1" data-linenumber="562">
3460
+ <span class="hits">1</span>
3461
+
3462
+ <code class="ruby"> def initialize(opts={})</code>
3463
+ </li>
3464
+
3465
+ <li class="covered" data-hits="77" data-linenumber="563">
3466
+ <span class="hits">77</span>
3467
+
3468
+ <code class="ruby"> @opts = opts</code>
3469
+ </li>
3470
+
3471
+ <li class="covered" data-hits="77" data-linenumber="564">
3472
+ <span class="hits">77</span>
3473
+
3474
+ <code class="ruby"> Thread.current[:ssh_simple_sessions] = {}</code>
3475
+ </li>
3476
+
3477
+ <li class="covered" data-hits="77" data-linenumber="565">
3478
+ <span class="hits">77</span>
3479
+
3480
+ <code class="ruby"> @result = Result.new</code>
3481
+ </li>
3482
+
3483
+ <li class="never" data-hits="" data-linenumber="566">
3484
+
3485
+
3486
+ <code class="ruby"> end</code>
3487
+ </li>
3488
+
3489
+ <li class="never" data-hits="" data-linenumber="567">
3490
+
3491
+
3492
+ <code class="ruby"></code>
3493
+ </li>
3494
+
3495
+ <li class="never" data-hits="" data-linenumber="568">
3496
+
3497
+
3498
+ <code class="ruby"> #</code>
3499
+ </li>
3500
+
3501
+ <li class="never" data-hits="" data-linenumber="569">
3502
+
3503
+
3504
+ <code class="ruby"> # Spawn a Thread to perform a sequence of ssh/scp operations.</code>
3505
+ </li>
3506
+
3507
+ <li class="never" data-hits="" data-linenumber="570">
3508
+
3509
+
3510
+ <code class="ruby"> # </code>
3511
+ </li>
3512
+
3513
+ <li class="never" data-hits="" data-linenumber="571">
3514
+
3515
+
3516
+ <code class="ruby"> # @param [Block] block </code>
3517
+ </li>
3518
+
3519
+ <li class="never" data-hits="" data-linenumber="572">
3520
+
3521
+
3522
+ <code class="ruby"> # @param opts (see Net::SSH::Simple#ssh)</code>
3523
+ </li>
3524
+
3525
+ <li class="never" data-hits="" data-linenumber="573">
3526
+
3527
+
3528
+ <code class="ruby"> # @return [Thread] Thread executing the SSH-Block.</code>
3529
+ </li>
3530
+
3531
+ <li class="never" data-hits="" data-linenumber="574">
3532
+
3533
+
3534
+ <code class="ruby"> #</code>
3535
+ </li>
3536
+
3537
+ <li class="covered" data-hits="1" data-linenumber="575">
3538
+ <span class="hits">1</span>
3539
+
3540
+ <code class="ruby"> def self.async(opts={}, &amp;block)</code>
3541
+ </li>
3542
+
3543
+ <li class="covered" data-hits="28" data-linenumber="576">
3544
+ <span class="hits">28</span>
3545
+
3546
+ <code class="ruby"> Thread.new do</code>
3547
+ </li>
3548
+
3549
+ <li class="covered" data-hits="28" data-linenumber="577">
3550
+ <span class="hits">28</span>
3551
+
3552
+ <code class="ruby"> self.sync(opts, &amp;block)</code>
3553
+ </li>
3554
+
3555
+ <li class="never" data-hits="" data-linenumber="578">
3556
+
3557
+
3558
+ <code class="ruby"> end</code>
3559
+ </li>
3560
+
3561
+ <li class="never" data-hits="" data-linenumber="579">
3562
+
3563
+
3564
+ <code class="ruby"> end</code>
3565
+ </li>
3566
+
3567
+ <li class="never" data-hits="" data-linenumber="580">
3568
+
3569
+
3570
+ <code class="ruby"></code>
3571
+ </li>
3572
+
3573
+ <li class="never" data-hits="" data-linenumber="581">
3574
+
3575
+
3576
+ <code class="ruby"> #</code>
3577
+ </li>
3578
+
3579
+ <li class="never" data-hits="" data-linenumber="582">
3580
+
3581
+
3582
+ <code class="ruby"> # Spawn a Thread to perform a sequence of ssh/scp operations.</code>
3583
+ </li>
3584
+
3585
+ <li class="never" data-hits="" data-linenumber="583">
3586
+
3587
+
3588
+ <code class="ruby"> #</code>
3589
+ </li>
3590
+
3591
+ <li class="never" data-hits="" data-linenumber="584">
3592
+
3593
+
3594
+ <code class="ruby"> # @param [Block] block</code>
3595
+ </li>
3596
+
3597
+ <li class="never" data-hits="" data-linenumber="585">
3598
+
3599
+
3600
+ <code class="ruby"> # @param opts (see Net::SSH::Simple#ssh)</code>
3601
+ </li>
3602
+
3603
+ <li class="never" data-hits="" data-linenumber="586">
3604
+
3605
+
3606
+ <code class="ruby"> # @return [Thread] Thread executing the SSH-Block.</code>
3607
+ </li>
3608
+
3609
+ <li class="never" data-hits="" data-linenumber="587">
3610
+
3611
+
3612
+ <code class="ruby"> #</code>
3613
+ </li>
3614
+
3615
+ <li class="covered" data-hits="1" data-linenumber="588">
3616
+ <span class="hits">1</span>
3617
+
3618
+ <code class="ruby"> def async(opts={}, &amp;block)</code>
3619
+ </li>
3620
+
3621
+ <li class="covered" data-hits="3" data-linenumber="589">
3622
+ <span class="hits">3</span>
3623
+
3624
+ <code class="ruby"> opts = @opts.merge(opts)</code>
3625
+ </li>
3626
+
3627
+ <li class="covered" data-hits="3" data-linenumber="590">
3628
+ <span class="hits">3</span>
3629
+
3630
+ <code class="ruby"> self.class.async(opts, &amp;block)</code>
3631
+ </li>
3632
+
3633
+ <li class="never" data-hits="" data-linenumber="591">
3634
+
3635
+
3636
+ <code class="ruby"> end</code>
3637
+ </li>
3638
+
3639
+ <li class="never" data-hits="" data-linenumber="592">
3640
+
3641
+
3642
+ <code class="ruby"></code>
3643
+ </li>
3644
+
3645
+ <li class="never" data-hits="" data-linenumber="593">
3646
+
3647
+
3648
+ <code class="ruby"> #</code>
3649
+ </li>
3650
+
3651
+ <li class="never" data-hits="" data-linenumber="594">
3652
+
3653
+
3654
+ <code class="ruby"> # Perform a sequence of ssh/scp operations.</code>
3655
+ </li>
3656
+
3657
+ <li class="never" data-hits="" data-linenumber="595">
3658
+
3659
+
3660
+ <code class="ruby"> #</code>
3661
+ </li>
3662
+
3663
+ <li class="never" data-hits="" data-linenumber="596">
3664
+
3665
+
3666
+ <code class="ruby"> # @param opts (see Net::SSH::Simple#ssh)</code>
3667
+ </li>
3668
+
3669
+ <li class="never" data-hits="" data-linenumber="597">
3670
+
3671
+
3672
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
3673
+ </li>
3674
+
3675
+ <li class="never" data-hits="" data-linenumber="598">
3676
+
3677
+
3678
+ <code class="ruby"> #</code>
3679
+ </li>
3680
+
3681
+ <li class="covered" data-hits="1" data-linenumber="599">
3682
+ <span class="hits">1</span>
3683
+
3684
+ <code class="ruby"> def self.sync(opts={}, &amp;block)</code>
3685
+ </li>
3686
+
3687
+ <li class="covered" data-hits="42" data-linenumber="600">
3688
+ <span class="hits">42</span>
3689
+
3690
+ <code class="ruby"> s = self.new(opts)</code>
3691
+ </li>
3692
+
3693
+ <li class="covered" data-hits="42" data-linenumber="601">
3694
+ <span class="hits">42</span>
3695
+
3696
+ <code class="ruby"> r = Blockenspiel.invoke(block, s)</code>
3697
+ </li>
3698
+
3699
+ <li class="covered" data-hits="42" data-linenumber="602">
3700
+ <span class="hits">42</span>
3701
+
3702
+ <code class="ruby"> s.close</code>
3703
+ </li>
3704
+
3705
+ <li class="covered" data-hits="42" data-linenumber="603">
3706
+ <span class="hits">42</span>
3707
+
3708
+ <code class="ruby"> r</code>
3709
+ </li>
3710
+
3711
+ <li class="never" data-hits="" data-linenumber="604">
3712
+
3713
+
3714
+ <code class="ruby"> end</code>
3715
+ </li>
3716
+
3717
+ <li class="never" data-hits="" data-linenumber="605">
3718
+
3719
+
3720
+ <code class="ruby"></code>
3721
+ </li>
3722
+
3723
+ <li class="never" data-hits="" data-linenumber="606">
3724
+
3725
+
3726
+ <code class="ruby"> #</code>
3727
+ </li>
3728
+
3729
+ <li class="never" data-hits="" data-linenumber="607">
3730
+
3731
+
3732
+ <code class="ruby"> # Close and cleanup.</code>
3733
+ </li>
3734
+
3735
+ <li class="never" data-hits="" data-linenumber="608">
3736
+
3737
+
3738
+ <code class="ruby"> #</code>
3739
+ </li>
3740
+
3741
+ <li class="never" data-hits="" data-linenumber="609">
3742
+
3743
+
3744
+ <code class="ruby"> # @return [Net::SSH::Simple::Result] Result</code>
3745
+ </li>
3746
+
3747
+ <li class="never" data-hits="" data-linenumber="610">
3748
+
3749
+
3750
+ <code class="ruby"> # </code>
3751
+ </li>
3752
+
3753
+ <li class="covered" data-hits="1" data-linenumber="611">
3754
+ <span class="hits">1</span>
3755
+
3756
+ <code class="ruby"> def close</code>
3757
+ </li>
3758
+
3759
+ <li class="covered" data-hits="68" data-linenumber="612">
3760
+ <span class="hits">68</span>
3761
+
3762
+ <code class="ruby"> Thread.current[:ssh_simple_sessions].values.each do |session|</code>
3763
+ </li>
3764
+
3765
+ <li class="covered" data-hits="67" data-linenumber="613">
3766
+ <span class="hits">67</span>
3767
+
3768
+ <code class="ruby"> begin</code>
3769
+ </li>
3770
+
3771
+ <li class="covered" data-hits="133" data-linenumber="614">
3772
+ <span class="hits">133</span>
3773
+
3774
+ <code class="ruby"> Timeout.timeout(@opts[:close_timeout] || 5) { session.close }</code>
3775
+ </li>
3776
+
3777
+ <li class="never" data-hits="" data-linenumber="615">
3778
+
3779
+
3780
+ <code class="ruby"> rescue =&gt; e</code>
3781
+ </li>
3782
+
3783
+ <li class="covered" data-hits="1" data-linenumber="616">
3784
+ <span class="hits">1</span>
3785
+
3786
+ <code class="ruby"> begin</code>
3787
+ </li>
3788
+
3789
+ <li class="covered" data-hits="1" data-linenumber="617">
3790
+ <span class="hits">1</span>
3791
+
3792
+ <code class="ruby"> session.shutdown!</code>
3793
+ </li>
3794
+
3795
+ <li class="never" data-hits="" data-linenumber="618">
3796
+
3797
+
3798
+ <code class="ruby"> rescue</code>
3799
+ </li>
3800
+
3801
+ <li class="never" data-hits="" data-linenumber="619">
3802
+
3803
+
3804
+ <code class="ruby"> end</code>
3805
+ </li>
3806
+
3807
+ <li class="never" data-hits="" data-linenumber="620">
3808
+
3809
+
3810
+ <code class="ruby"> end</code>
3811
+ </li>
3812
+
3813
+ <li class="never" data-hits="" data-linenumber="621">
3814
+
3815
+
3816
+ <code class="ruby"> end</code>
3817
+ </li>
3818
+
3819
+ <li class="covered" data-hits="68" data-linenumber="622">
3820
+ <span class="hits">68</span>
3821
+
3822
+ <code class="ruby"> @result</code>
3823
+ </li>
3824
+
3825
+ <li class="never" data-hits="" data-linenumber="623">
3826
+
3827
+
3828
+ <code class="ruby"> end</code>
3829
+ </li>
3830
+
3831
+ <li class="never" data-hits="" data-linenumber="624">
3832
+
3833
+
3834
+ <code class="ruby"></code>
3835
+ </li>
3836
+
3837
+ <li class="never" data-hits="" data-linenumber="625">
3838
+
3839
+
3840
+ <code class="ruby"></code>
3841
+ </li>
3842
+
3843
+ <li class="covered" data-hits="1" data-linenumber="626">
3844
+ <span class="hits">1</span>
3845
+
3846
+ <code class="ruby"> private</code>
3847
+ </li>
3848
+
3849
+ <li class="covered" data-hits="1" data-linenumber="627">
3850
+ <span class="hits">1</span>
3851
+
3852
+ <code class="ruby"> EXTRA_OPTS = [:operation_timeout, :close_timeout, :keepalive_interval, :scp_src, :scp_dst]</code>
3853
+ </li>
3854
+
3855
+ <li class="never" data-hits="" data-linenumber="628">
3856
+
3857
+
3858
+ <code class="ruby"></code>
3859
+ </li>
3860
+
3861
+ <li class="covered" data-hits="1" data-linenumber="629">
3862
+ <span class="hits">1</span>
3863
+
3864
+ <code class="ruby"> def with_session(host, opts={}, &amp;block)</code>
3865
+ </li>
3866
+
3867
+ <li class="covered" data-hits="117" data-linenumber="630">
3868
+ <span class="hits">117</span>
3869
+
3870
+ <code class="ruby"> opts[:timeout] ||= 60</code>
3871
+ </li>
3872
+
3873
+ <li class="covered" data-hits="117" data-linenumber="631">
3874
+ <span class="hits">117</span>
3875
+
3876
+ <code class="ruby"> opts[:timeout] = 2**32 if opts[:timeout] == 0</code>
3877
+ </li>
3878
+
3879
+ <li class="covered" data-hits="117" data-linenumber="632">
3880
+ <span class="hits">117</span>
3881
+
3882
+ <code class="ruby"> opts[:operation_timeout] ||= 3600</code>
3883
+ </li>
3884
+
3885
+ <li class="covered" data-hits="117" data-linenumber="633">
3886
+ <span class="hits">117</span>
3887
+
3888
+ <code class="ruby"> opts[:operation_timeout] = 2**32 if opts[:operation_timeout] == 0</code>
3889
+ </li>
3890
+
3891
+ <li class="covered" data-hits="117" data-linenumber="634">
3892
+ <span class="hits">117</span>
3893
+
3894
+ <code class="ruby"> opts[:close_timeout] ||= 5</code>
3895
+ </li>
3896
+
3897
+ <li class="covered" data-hits="117" data-linenumber="635">
3898
+ <span class="hits">117</span>
3899
+
3900
+ <code class="ruby"> opts[:keepalive_interval] ||= 60</code>
3901
+ </li>
3902
+
3903
+ <li class="covered" data-hits="117" data-linenumber="636">
3904
+ <span class="hits">117</span>
3905
+
3906
+ <code class="ruby"> begin</code>
3907
+ </li>
3908
+
3909
+ <li class="covered" data-hits="704" data-linenumber="637">
3910
+ <span class="hits">704</span>
3911
+
3912
+ <code class="ruby"> net_ssh_opts = opts.reject{|k,v| EXTRA_OPTS.include? k }</code>
3913
+ </li>
3914
+
3915
+ <li class="covered" data-hits="117" data-linenumber="638">
3916
+ <span class="hits">117</span>
3917
+
3918
+ <code class="ruby"> Timeout.timeout(opts[:operation_timeout]) do</code>
3919
+ </li>
3920
+
3921
+ <li class="covered" data-hits="117" data-linenumber="639">
3922
+ <span class="hits">117</span>
3923
+
3924
+ <code class="ruby"> session = Thread.current[:ssh_simple_sessions][host.hash] \</code>
3925
+ </li>
3926
+
3927
+ <li class="never" data-hits="" data-linenumber="640">
3928
+
3929
+
3930
+ <code class="ruby"> = Thread.current[:ssh_simple_sessions][host.hash] \</code>
3931
+ </li>
3932
+
3933
+ <li class="never" data-hits="" data-linenumber="641">
3934
+
3935
+
3936
+ <code class="ruby"> || Net::SSH.start(*[host, opts[:user], net_ssh_opts])</code>
3937
+ </li>
3938
+
3939
+ <li class="covered" data-hits="116" data-linenumber="642">
3940
+ <span class="hits">116</span>
3941
+
3942
+ <code class="ruby"> block.call(session)</code>
3943
+ </li>
3944
+
3945
+ <li class="never" data-hits="" data-linenumber="643">
3946
+
3947
+
3948
+ <code class="ruby"> end</code>
3949
+ </li>
3950
+
3951
+ <li class="covered" data-hits="9" data-linenumber="644">
3952
+ <span class="hits">9</span>
3953
+
3954
+ <code class="ruby"> rescue =&gt; e</code>
3955
+ </li>
3956
+
3957
+ <li class="covered" data-hits="9" data-linenumber="645">
3958
+ <span class="hits">9</span>
3959
+
3960
+ <code class="ruby"> opts[:password].gsub!(/./,'*') if opts.include? :password</code>
3961
+ </li>
3962
+
3963
+ <li class="covered" data-hits="9" data-linenumber="646">
3964
+ <span class="hits">9</span>
3965
+
3966
+ <code class="ruby"> @result[:exception] = e</code>
3967
+ </li>
3968
+
3969
+ <li class="covered" data-hits="9" data-linenumber="647">
3970
+ <span class="hits">9</span>
3971
+
3972
+ <code class="ruby"> @result[:success] = false</code>
3973
+ </li>
3974
+
3975
+ <li class="covered" data-hits="9" data-linenumber="648">
3976
+ <span class="hits">9</span>
3977
+
3978
+ <code class="ruby"> @result[:timed_out] = true if e.is_a? Timeout::Error</code>
3979
+ </li>
3980
+
3981
+ <li class="covered" data-hits="9" data-linenumber="649">
3982
+ <span class="hits">9</span>
3983
+
3984
+ <code class="ruby"> @result[:finish_at] = Time.new</code>
3985
+ </li>
3986
+
3987
+ <li class="covered" data-hits="9" data-linenumber="650">
3988
+ <span class="hits">9</span>
3989
+
3990
+ <code class="ruby"> raise Net::SSH::Simple::Error, [e, @result]</code>
3991
+ </li>
3992
+
3993
+ <li class="never" data-hits="" data-linenumber="651">
3994
+
3995
+
3996
+ <code class="ruby"> end</code>
3997
+ </li>
3998
+
3999
+ <li class="never" data-hits="" data-linenumber="652">
4000
+
4001
+
4002
+ <code class="ruby"> end</code>
4003
+ </li>
4004
+
4005
+ <li class="never" data-hits="" data-linenumber="653">
4006
+
4007
+
4008
+ <code class="ruby"></code>
4009
+ </li>
4010
+
4011
+ <li class="covered" data-hits="1" data-linenumber="654">
4012
+ <span class="hits">1</span>
4013
+
4014
+ <code class="ruby"> def wait_for_channel(session, channel, result, opts)</code>
4015
+ </li>
4016
+
4017
+ <li class="covered" data-hits="116" data-linenumber="655">
4018
+ <span class="hits">116</span>
4019
+
4020
+ <code class="ruby"> session.loop(1) do</code>
4021
+ </li>
4022
+
4023
+ <li class="covered" data-hits="2383" data-linenumber="656">
4024
+ <span class="hits">2383</span>
4025
+
4026
+ <code class="ruby"> if opts[:timeout] &lt; Time.now - result[:last_event_at]</code>
4027
+ </li>
4028
+
4029
+ <li class="covered" data-hits="1" data-linenumber="657">
4030
+ <span class="hits">1</span>
4031
+
4032
+ <code class="ruby"> raise Timeout::Error, 'idle timeout'</code>
4033
+ </li>
4034
+
4035
+ <li class="never" data-hits="" data-linenumber="658">
4036
+
4037
+
4038
+ <code class="ruby"> end</code>
4039
+ </li>
4040
+
4041
+ <li class="never" data-hits="" data-linenumber="659">
4042
+
4043
+
4044
+ <code class="ruby"></code>
4045
+ </li>
4046
+
4047
+ <li class="never" data-hits="" data-linenumber="660">
4048
+
4049
+
4050
+ <code class="ruby"> # Send keep-alive probes at the configured interval.</code>
4051
+ </li>
4052
+
4053
+ <li class="covered" data-hits="2382" data-linenumber="661">
4054
+ <span class="hits">2382</span>
4055
+
4056
+ <code class="ruby"> if opts[:keepalive_interval] &lt; Time.now.to_i - (@result[:last_keepalive_at]||0).to_i</code>
4057
+ </li>
4058
+
4059
+ <li class="covered" data-hits="119" data-linenumber="662">
4060
+ <span class="hits">119</span>
4061
+
4062
+ <code class="ruby"> session.send_global_request('keep-alive@openssh.com')</code>
4063
+ </li>
4064
+
4065
+ <li class="covered" data-hits="119" data-linenumber="663">
4066
+ <span class="hits">119</span>
4067
+
4068
+ <code class="ruby"> @result[:last_keepalive_at] = Time.now</code>
4069
+ </li>
4070
+
4071
+ <li class="never" data-hits="" data-linenumber="664">
4072
+
4073
+
4074
+ <code class="ruby"> end</code>
4075
+ </li>
4076
+
4077
+ <li class="covered" data-hits="2382" data-linenumber="665">
4078
+ <span class="hits">2382</span>
4079
+
4080
+ <code class="ruby"> channel.active?</code>
4081
+ </li>
4082
+
4083
+ <li class="never" data-hits="" data-linenumber="666">
4084
+
4085
+
4086
+ <code class="ruby"> end</code>
4087
+ </li>
4088
+
4089
+ <li class="never" data-hits="" data-linenumber="667">
4090
+
4091
+
4092
+ <code class="ruby"> end</code>
4093
+ </li>
4094
+
4095
+ <li class="never" data-hits="" data-linenumber="668">
4096
+
4097
+
4098
+ <code class="ruby"></code>
4099
+ </li>
4100
+
4101
+ <li class="covered" data-hits="1" data-linenumber="669">
4102
+ <span class="hits">1</span>
4103
+
4104
+ <code class="ruby"> def scp(mode, host, src, dst, opts={}, &amp;block)</code>
4105
+ </li>
4106
+
4107
+ <li class="covered" data-hits="49" data-linenumber="670">
4108
+ <span class="hits">49</span>
4109
+
4110
+ <code class="ruby"> opts[:scp_src] = src</code>
4111
+ </li>
4112
+
4113
+ <li class="covered" data-hits="49" data-linenumber="671">
4114
+ <span class="hits">49</span>
4115
+
4116
+ <code class="ruby"> opts[:scp_dst] = dst</code>
4117
+ </li>
4118
+
4119
+ <li class="covered" data-hits="49" data-linenumber="672">
4120
+ <span class="hits">49</span>
4121
+
4122
+ <code class="ruby"> @result = Result.new(</code>
4123
+ </li>
4124
+
4125
+ <li class="never" data-hits="" data-linenumber="673">
4126
+
4127
+
4128
+ <code class="ruby"> { :op =&gt; :scp, :host =&gt; host, :opts =&gt; opts, :cmd =&gt; mode,</code>
4129
+ </li>
4130
+
4131
+ <li class="never" data-hits="" data-linenumber="674">
4132
+
4133
+
4134
+ <code class="ruby"> :last_event_at =&gt; Time.new, :start_at =&gt; Time.new, :success =&gt; false</code>
4135
+ </li>
4136
+
4137
+ <li class="never" data-hits="" data-linenumber="675">
4138
+
4139
+
4140
+ <code class="ruby"> } )</code>
4141
+ </li>
4142
+
4143
+ <li class="covered" data-hits="49" data-linenumber="676">
4144
+ <span class="hits">49</span>
4145
+
4146
+ <code class="ruby"> with_session(host, opts) do |session|</code>
4147
+ </li>
4148
+
4149
+ <li class="covered" data-hits="49" data-linenumber="677">
4150
+ <span class="hits">49</span>
4151
+
4152
+ <code class="ruby"> lt = 0</code>
4153
+ </li>
4154
+
4155
+ <li class="covered" data-hits="49" data-linenumber="678">
4156
+ <span class="hits">49</span>
4157
+
4158
+ <code class="ruby"> channel = session.scp.send(mode, src, dst) do |ch, name, sent, total|</code>
4159
+ </li>
4160
+
4161
+ <li class="covered" data-hits="94" data-linenumber="679">
4162
+ <span class="hits">94</span>
4163
+
4164
+ <code class="ruby"> @result[:total] ||= total</code>
4165
+ </li>
4166
+
4167
+ <li class="covered" data-hits="94" data-linenumber="680">
4168
+ <span class="hits">94</span>
4169
+
4170
+ <code class="ruby"> @result[:sent] = sent</code>
4171
+ </li>
4172
+
4173
+ <li class="covered" data-hits="94" data-linenumber="681">
4174
+ <span class="hits">94</span>
4175
+
4176
+ <code class="ruby"> @result[:last_event_at] = Time.new</code>
4177
+ </li>
4178
+
4179
+ <li class="covered" data-hits="94" data-linenumber="682">
4180
+ <span class="hits">94</span>
4181
+
4182
+ <code class="ruby"> block.call(sent, total) unless block.nil?</code>
4183
+ </li>
4184
+
4185
+ <li class="never" data-hits="" data-linenumber="683">
4186
+
4187
+
4188
+ <code class="ruby"> end</code>
4189
+ </li>
4190
+
4191
+ <li class="covered" data-hits="49" data-linenumber="684">
4192
+ <span class="hits">49</span>
4193
+
4194
+ <code class="ruby"> wait_for_channel session, channel, @result, opts</code>
4195
+ </li>
4196
+
4197
+ <li class="covered" data-hits="45" data-linenumber="685">
4198
+ <span class="hits">45</span>
4199
+
4200
+ <code class="ruby"> @result[:finish_at] = Time.new</code>
4201
+ </li>
4202
+
4203
+ <li class="covered" data-hits="45" data-linenumber="686">
4204
+ <span class="hits">45</span>
4205
+
4206
+ <code class="ruby"> @result[:success] = @result[:sent] == @result[:total]</code>
4207
+ </li>
4208
+
4209
+ <li class="covered" data-hits="45" data-linenumber="687">
4210
+ <span class="hits">45</span>
4211
+
4212
+ <code class="ruby"> @result</code>
4213
+ </li>
4214
+
4215
+ <li class="never" data-hits="" data-linenumber="688">
4216
+
4217
+
4218
+ <code class="ruby"> end</code>
4219
+ </li>
4220
+
4221
+ <li class="never" data-hits="" data-linenumber="689">
4222
+
4223
+
4224
+ <code class="ruby"> end</code>
4225
+ </li>
4226
+
4227
+ <li class="never" data-hits="" data-linenumber="690">
4228
+
4229
+
4230
+ <code class="ruby"> end</code>
4231
+ </li>
4232
+
4233
+ <li class="never" data-hits="" data-linenumber="691">
4234
+
4235
+
4236
+ <code class="ruby"> end</code>
4237
+ </li>
4238
+
4239
+ <li class="never" data-hits="" data-linenumber="692">
4240
+
4241
+
4242
+ <code class="ruby">end</code>
4243
+ </li>
4244
+
4245
+ <li class="never" data-hits="" data-linenumber="693">
4246
+
4247
+
4248
+ <code class="ruby"></code>
4249
+ </li>
4250
+
4251
+ <li class="covered" data-hits="1" data-linenumber="694">
4252
+ <span class="hits">1</span>
4253
+
4254
+ <code class="ruby">module Net</code>
4255
+ </li>
4256
+
4257
+ <li class="covered" data-hits="1" data-linenumber="695">
4258
+ <span class="hits">1</span>
4259
+
4260
+ <code class="ruby"> module SSH</code>
4261
+ </li>
4262
+
4263
+ <li class="covered" data-hits="1" data-linenumber="696">
4264
+ <span class="hits">1</span>
4265
+
4266
+ <code class="ruby"> class Simple</code>
4267
+ </li>
4268
+
4269
+ <li class="never" data-hits="" data-linenumber="697">
4270
+
4271
+
4272
+ <code class="ruby"> #</code>
4273
+ </li>
4274
+
4275
+ <li class="never" data-hits="" data-linenumber="698">
4276
+
4277
+
4278
+ <code class="ruby"> # Error that occured during a Net::SSH::Simple operation.</code>
4279
+ </li>
4280
+
4281
+ <li class="never" data-hits="" data-linenumber="699">
4282
+
4283
+
4284
+ <code class="ruby"> #</code>
4285
+ </li>
4286
+
4287
+ <li class="covered" data-hits="1" data-linenumber="700">
4288
+ <span class="hits">1</span>
4289
+
4290
+ <code class="ruby"> class Error &lt; RuntimeError</code>
4291
+ </li>
4292
+
4293
+ <li class="never" data-hits="" data-linenumber="701">
4294
+
4295
+
4296
+ <code class="ruby"> # Reference to the underlying Exception</code>
4297
+ </li>
4298
+
4299
+ <li class="covered" data-hits="1" data-linenumber="702">
4300
+ <span class="hits">1</span>
4301
+
4302
+ <code class="ruby"> attr_reader :wrapped</code>
4303
+ </li>
4304
+
4305
+ <li class="never" data-hits="" data-linenumber="703">
4306
+
4307
+
4308
+ <code class="ruby"></code>
4309
+ </li>
4310
+
4311
+ <li class="never" data-hits="" data-linenumber="704">
4312
+
4313
+
4314
+ <code class="ruby"> # {Net::SSH::Simple::Result} of the interrupted operation.</code>
4315
+ </li>
4316
+
4317
+ <li class="covered" data-hits="1" data-linenumber="705">
4318
+ <span class="hits">1</span>
4319
+
4320
+ <code class="ruby"> attr_reader :result</code>
4321
+ </li>
4322
+
4323
+ <li class="never" data-hits="" data-linenumber="706">
4324
+
4325
+
4326
+ <code class="ruby"></code>
4327
+ </li>
4328
+
4329
+ <li class="covered" data-hits="1" data-linenumber="707">
4330
+ <span class="hits">1</span>
4331
+
4332
+ <code class="ruby"> def initialize(msg, e=$!)</code>
4333
+ </li>
4334
+
4335
+ <li class="covered" data-hits="9" data-linenumber="708">
4336
+ <span class="hits">9</span>
4337
+
4338
+ <code class="ruby"> super(msg)</code>
4339
+ </li>
4340
+
4341
+ <li class="covered" data-hits="9" data-linenumber="709">
4342
+ <span class="hits">9</span>
4343
+
4344
+ <code class="ruby"> @wrapped = e</code>
4345
+ </li>
4346
+
4347
+ <li class="covered" data-hits="9" data-linenumber="710">
4348
+ <span class="hits">9</span>
4349
+
4350
+ <code class="ruby"> @result = msg[1]</code>
4351
+ </li>
4352
+
4353
+ <li class="never" data-hits="" data-linenumber="711">
4354
+
4355
+
4356
+ <code class="ruby"> end</code>
4357
+ </li>
4358
+
4359
+ <li class="never" data-hits="" data-linenumber="712">
4360
+
4361
+
4362
+ <code class="ruby"></code>
4363
+ </li>
4364
+
4365
+ <li class="covered" data-hits="1" data-linenumber="713">
4366
+ <span class="hits">1</span>
4367
+
4368
+ <code class="ruby"> def to_s</code>
4369
+ </li>
4370
+
4371
+ <li class="covered" data-hits="9" data-linenumber="714">
4372
+ <span class="hits">9</span>
4373
+
4374
+ <code class="ruby"> &quot;#{@wrapped} @ #{@result}&quot;</code>
4375
+ </li>
4376
+
4377
+ <li class="never" data-hits="" data-linenumber="715">
4378
+
4379
+
4380
+ <code class="ruby"> end</code>
4381
+ </li>
4382
+
4383
+ <li class="never" data-hits="" data-linenumber="716">
4384
+
4385
+
4386
+ <code class="ruby"> end</code>
4387
+ </li>
4388
+
4389
+ <li class="never" data-hits="" data-linenumber="717">
4390
+
4391
+
4392
+ <code class="ruby"></code>
4393
+ </li>
4394
+
4395
+ <li class="never" data-hits="" data-linenumber="718">
4396
+
4397
+
4398
+ <code class="ruby"> #</code>
4399
+ </li>
4400
+
4401
+ <li class="never" data-hits="" data-linenumber="719">
4402
+
4403
+
4404
+ <code class="ruby"> # Result of a Net::SSH::Simple operation.</code>
4405
+ </li>
4406
+
4407
+ <li class="never" data-hits="" data-linenumber="720">
4408
+
4409
+
4410
+ <code class="ruby"> #</code>
4411
+ </li>
4412
+
4413
+ <li class="never" data-hits="" data-linenumber="721">
4414
+
4415
+
4416
+ <code class="ruby"> # @attr [String] host Hostname/IP address</code>
4417
+ </li>
4418
+
4419
+ <li class="never" data-hits="" data-linenumber="722">
4420
+
4421
+
4422
+ <code class="ruby"> # @attr [Symbol] op :ssh or :scp</code>
4423
+ </li>
4424
+
4425
+ <li class="never" data-hits="" data-linenumber="723">
4426
+
4427
+
4428
+ <code class="ruby"> # @attr [String] cmd Shell command (SSH only)</code>
4429
+ </li>
4430
+
4431
+ <li class="never" data-hits="" data-linenumber="724">
4432
+
4433
+
4434
+ <code class="ruby"> # @attr [Time] start_at Timestamp of operation start</code>
4435
+ </li>
4436
+
4437
+ <li class="never" data-hits="" data-linenumber="725">
4438
+
4439
+
4440
+ <code class="ruby"> # @attr [Time] finish_at Timestamp of operation finish</code>
4441
+ </li>
4442
+
4443
+ <li class="never" data-hits="" data-linenumber="726">
4444
+
4445
+
4446
+ <code class="ruby"> # @attr [Time] last_keepalive_at Timestamp of last keepalive (if any)</code>
4447
+ </li>
4448
+
4449
+ <li class="never" data-hits="" data-linenumber="727">
4450
+
4451
+
4452
+ <code class="ruby"> # @attr [Time] last_event_at Timestamp of last activity</code>
4453
+ </li>
4454
+
4455
+ <li class="never" data-hits="" data-linenumber="728">
4456
+
4457
+
4458
+ <code class="ruby"> # @attr [Boolean] timed_out True if the operation timed out</code>
4459
+ </li>
4460
+
4461
+ <li class="never" data-hits="" data-linenumber="729">
4462
+
4463
+
4464
+ <code class="ruby"> # @attr [String] stdout Output captured on stdout (SSH only)</code>
4465
+ </li>
4466
+
4467
+ <li class="never" data-hits="" data-linenumber="730">
4468
+
4469
+
4470
+ <code class="ruby"> # @attr [String] stderr Output captured on stderr (SSH only)</code>
4471
+ </li>
4472
+
4473
+ <li class="never" data-hits="" data-linenumber="731">
4474
+
4475
+
4476
+ <code class="ruby"> # @attr [boolean] success Indicates whether the transport-connection was successful</code>
4477
+ </li>
4478
+
4479
+ <li class="never" data-hits="" data-linenumber="732">
4480
+
4481
+
4482
+ <code class="ruby"> # @attr [String] exit_code UNIX exit code (SSH only)</code>
4483
+ </li>
4484
+
4485
+ <li class="never" data-hits="" data-linenumber="733">
4486
+
4487
+
4488
+ <code class="ruby"> # @attr [Integer] total Size of requested file (in bytes, SCP only)</code>
4489
+ </li>
4490
+
4491
+ <li class="never" data-hits="" data-linenumber="734">
4492
+
4493
+
4494
+ <code class="ruby"> # @attr [Integer] sent Number of bytes transferred (SCP only)</code>
4495
+ </li>
4496
+
4497
+ <li class="never" data-hits="" data-linenumber="735">
4498
+
4499
+
4500
+ <code class="ruby"> # @attr [Hash] opts The options that the operation was parametrized with</code>
4501
+ </li>
4502
+
4503
+ <li class="never" data-hits="" data-linenumber="736">
4504
+
4505
+
4506
+ <code class="ruby"> # @attr [Exception] exception Exception that occurred during this operation (if any)</code>
4507
+ </li>
4508
+
4509
+ <li class="never" data-hits="" data-linenumber="737">
4510
+
4511
+
4512
+ <code class="ruby"> # @attr [String] exit_signal</code>
4513
+ </li>
4514
+
4515
+ <li class="never" data-hits="" data-linenumber="738">
4516
+
4517
+
4518
+ <code class="ruby"> # Only present if the remote command terminated due to a signal (SSH only)</code>
4519
+ </li>
4520
+
4521
+ <li class="never" data-hits="" data-linenumber="739">
4522
+
4523
+
4524
+ <code class="ruby"> #</code>
4525
+ </li>
4526
+
4527
+ <li class="covered" data-hits="1" data-linenumber="740">
4528
+ <span class="hits">1</span>
4529
+
4530
+ <code class="ruby"> class Result &lt; Hashie::Dash</code>
4531
+ </li>
4532
+
4533
+ <li class="covered" data-hits="1" data-linenumber="741">
4534
+ <span class="hits">1</span>
4535
+
4536
+ <code class="ruby"> property :host</code>
4537
+ </li>
4538
+
4539
+ <li class="covered" data-hits="1" data-linenumber="742">
4540
+ <span class="hits">1</span>
4541
+
4542
+ <code class="ruby"> property :op</code>
4543
+ </li>
4544
+
4545
+ <li class="covered" data-hits="1" data-linenumber="743">
4546
+ <span class="hits">1</span>
4547
+
4548
+ <code class="ruby"> property :cmd</code>
4549
+ </li>
4550
+
4551
+ <li class="covered" data-hits="1" data-linenumber="744">
4552
+ <span class="hits">1</span>
4553
+
4554
+ <code class="ruby"> property :start_at</code>
4555
+ </li>
4556
+
4557
+ <li class="covered" data-hits="1" data-linenumber="745">
4558
+ <span class="hits">1</span>
4559
+
4560
+ <code class="ruby"> property :finish_at</code>
4561
+ </li>
4562
+
4563
+ <li class="covered" data-hits="1" data-linenumber="746">
4564
+ <span class="hits">1</span>
4565
+
4566
+ <code class="ruby"> property :last_keepalive_at</code>
4567
+ </li>
4568
+
4569
+ <li class="covered" data-hits="1" data-linenumber="747">
4570
+ <span class="hits">1</span>
4571
+
4572
+ <code class="ruby"> property :last_event_at</code>
4573
+ </li>
4574
+
4575
+ <li class="covered" data-hits="1" data-linenumber="748">
4576
+ <span class="hits">1</span>
4577
+
4578
+ <code class="ruby"> property :timed_out</code>
4579
+ </li>
4580
+
4581
+ <li class="covered" data-hits="1" data-linenumber="749">
4582
+ <span class="hits">1</span>
4583
+
4584
+ <code class="ruby"> property :stdout, :default =&gt; ''</code>
4585
+ </li>
4586
+
4587
+ <li class="covered" data-hits="1" data-linenumber="750">
4588
+ <span class="hits">1</span>
4589
+
4590
+ <code class="ruby"> property :stderr, :default =&gt; ''</code>
4591
+ </li>
4592
+
4593
+ <li class="covered" data-hits="1" data-linenumber="751">
4594
+ <span class="hits">1</span>
4595
+
4596
+ <code class="ruby"> property :success, :default =&gt; false</code>
4597
+ </li>
4598
+
4599
+ <li class="covered" data-hits="1" data-linenumber="752">
4600
+ <span class="hits">1</span>
4601
+
4602
+ <code class="ruby"> property :exit_code</code>
4603
+ </li>
4604
+
4605
+ <li class="covered" data-hits="1" data-linenumber="753">
4606
+ <span class="hits">1</span>
4607
+
4608
+ <code class="ruby"> property :total</code>
4609
+ </li>
4610
+
4611
+ <li class="covered" data-hits="1" data-linenumber="754">
4612
+ <span class="hits">1</span>
4613
+
4614
+ <code class="ruby"> property :sent</code>
4615
+ </li>
4616
+
4617
+ <li class="covered" data-hits="1" data-linenumber="755">
4618
+ <span class="hits">1</span>
4619
+
4620
+ <code class="ruby"> property :opts</code>
4621
+ </li>
4622
+
4623
+ <li class="covered" data-hits="1" data-linenumber="756">
4624
+ <span class="hits">1</span>
4625
+
4626
+ <code class="ruby"> property :exception</code>
4627
+ </li>
4628
+
4629
+ <li class="covered" data-hits="1" data-linenumber="757">
4630
+ <span class="hits">1</span>
4631
+
4632
+ <code class="ruby"> property :exit_signal</code>
4633
+ </li>
4634
+
4635
+ <li class="never" data-hits="" data-linenumber="758">
4636
+
4637
+
4638
+ <code class="ruby"> end</code>
4639
+ </li>
4640
+
4641
+ <li class="never" data-hits="" data-linenumber="759">
4642
+
4643
+
4644
+ <code class="ruby"> end</code>
4645
+ </li>
4646
+
4647
+ <li class="never" data-hits="" data-linenumber="760">
4648
+
4649
+
4650
+ <code class="ruby"> end</code>
4651
+ </li>
4652
+
4653
+ <li class="never" data-hits="" data-linenumber="761">
4654
+
4655
+
4656
+ <code class="ruby">end</code>
4657
+ </li>
4658
+
4659
+ <li class="never" data-hits="" data-linenumber="762">
4660
+
4661
+
4662
+ <code class="ruby"></code>
4663
+ </li>
4664
+
4665
+ </ol>
4666
+ </pre>
4667
+ </div>
4668
+
4669
+ </div>
4670
+ </div>
4671
+ </body>
4672
+ </html>