chake 0.21.2 → 0.80

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/.ackrc +1 -0
  3. data/.gitignore +22 -0
  4. data/.gitlab-ci.yml +24 -0
  5. data/.manifest +63 -0
  6. data/.rubocop.yml +53 -0
  7. data/.rubocop_todo.yml +40 -0
  8. data/ChangeLog.md +15 -0
  9. data/README.chef.md +70 -0
  10. data/README.itamae.md +58 -0
  11. data/README.md +110 -85
  12. data/README.shell.md +30 -0
  13. data/Rakefile +34 -10
  14. data/bin/chake +2 -2
  15. data/chake.gemspec +16 -16
  16. data/examples/test/.ssh_config +4 -0
  17. data/examples/test/Rakefile +1 -1
  18. data/examples/test/Vagrantfile +6 -0
  19. data/examples/test/config.rb +4 -4
  20. data/examples/test/cookbooks/basics/recipes/default.rb +1 -0
  21. data/examples/test/cookbooks/example/files/default/test +1 -0
  22. data/examples/test/cookbooks/example/files/{host-homer → host-lemur}/test.asc +0 -0
  23. data/lib/chake.rb +86 -153
  24. data/lib/chake/bootstrap/{01_debian.sh → chef/01_debian.sh} +0 -0
  25. data/lib/chake/bootstrap/{99_unsupported.sh → chef/99_unsupported.sh} +0 -0
  26. data/lib/chake/config.rb +2 -7
  27. data/lib/chake/config_manager.rb +93 -0
  28. data/lib/chake/config_manager/chef.rb +35 -0
  29. data/lib/chake/config_manager/itamae.rb +58 -0
  30. data/lib/chake/config_manager/shell.rb +34 -0
  31. data/lib/chake/config_manager/skel/chef/Rakefile +1 -0
  32. data/lib/chake/config_manager/skel/chef/config.rb +4 -0
  33. data/lib/chake/config_manager/skel/chef/cookbooks/basics/recipes/default.rb +1 -0
  34. data/lib/chake/config_manager/skel/chef/nodes.yaml +3 -0
  35. data/lib/chake/config_manager/skel/itamae/Rakefile +1 -0
  36. data/lib/chake/config_manager/skel/itamae/cookbooks/basics/default.rb +1 -0
  37. data/lib/chake/config_manager/skel/itamae/nodes.yaml +3 -0
  38. data/lib/chake/config_manager/skel/itamae/roles/basic.rb +1 -0
  39. data/lib/chake/config_manager/skel/shell/Rakefile +1 -0
  40. data/lib/chake/config_manager/skel/shell/nodes.yaml +3 -0
  41. data/lib/chake/connection.rb +83 -0
  42. data/lib/chake/{backend → connection}/local.rb +2 -8
  43. data/lib/chake/{backend → connection}/ssh.rb +6 -14
  44. data/lib/chake/node.rb +49 -29
  45. data/lib/chake/readline.rb +6 -10
  46. data/lib/chake/version.rb +1 -1
  47. data/man/.gitignore +2 -0
  48. data/man/Rakefile +27 -14
  49. data/man/readme2man.sed +5 -5
  50. data/spec/chake/backend/local_spec.rb +5 -6
  51. data/spec/chake/backend/ssh_spec.rb +8 -10
  52. data/spec/chake/backend_spec.rb +1 -2
  53. data/spec/chake/config_manager/chef_spec.rb +38 -0
  54. data/spec/chake/config_manager/itamae_spec.rb +69 -0
  55. data/spec/chake/config_manager/shell_spec.rb +54 -0
  56. data/spec/chake/config_manager_spec.rb +24 -0
  57. data/spec/chake/node_spec.rb +38 -15
  58. data/spec/spec_helper.rb +20 -18
  59. metadata +63 -43
  60. data/coverage/assets/0.11.0/application.css +0 -809
  61. data/coverage/assets/0.11.0/application.js +0 -43679
  62. data/coverage/assets/0.11.0/colorbox/border.png +0 -0
  63. data/coverage/assets/0.11.0/colorbox/controls.png +0 -0
  64. data/coverage/assets/0.11.0/colorbox/loading.gif +0 -0
  65. data/coverage/assets/0.11.0/colorbox/loading_background.png +0 -0
  66. data/coverage/assets/0.11.0/favicon_green.png +0 -0
  67. data/coverage/assets/0.11.0/favicon_red.png +0 -0
  68. data/coverage/assets/0.11.0/favicon_yellow.png +0 -0
  69. data/coverage/assets/0.11.0/loading.gif +0 -0
  70. data/coverage/assets/0.11.0/magnify.png +0 -0
  71. data/coverage/assets/0.11.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  72. data/coverage/assets/0.11.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  73. data/coverage/assets/0.11.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  74. data/coverage/assets/0.11.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  75. data/coverage/assets/0.11.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  76. data/coverage/assets/0.11.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  77. data/coverage/assets/0.11.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  78. data/coverage/assets/0.11.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  79. data/coverage/assets/0.11.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  80. data/coverage/assets/0.11.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  81. data/coverage/assets/0.11.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  82. data/coverage/assets/0.11.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  83. data/coverage/assets/0.11.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  84. data/coverage/index.html +0 -4158
  85. data/examples/test/nodes.yaml +0 -7
  86. data/examples/test/tmp/chake/test.local.bootstrap +0 -21
  87. data/examples/test/tmp/chake/test.local.json +0 -7
  88. data/examples/test/tmp/chake/test.local.plain.sha1sum +0 -9
  89. data/lib/chake/backend.rb +0 -80
  90. data/tags +0 -103
@@ -1,4158 +0,0 @@
1
- <!DOCTYPE html>
2
- <html xmlns='http://www.w3.org/1999/xhtml'>
3
- <head>
4
- <title>Code coverage for Chake</title>
5
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
- <script src='./assets/0.11.0/application.js' type='text/javascript'></script>
7
- <link href='./assets/0.11.0/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
- <link rel="shortcut icon" type="image/png" href="./assets/0.11.0/favicon_green.png" />
9
- <link rel="icon" type="image/png" href="./assets/0.11.0/favicon.png" />
10
- </head>
11
-
12
- <body>
13
- <div id="loading">
14
- <img src="./assets/0.11.0/loading.gif" alt="loading"/>
15
- </div>
16
- <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2020-04-11T16:52:14-03:00">2020-04-11T16:52:14-03: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">
25
- <span class="green">
26
- 92.47%
27
- </span>
28
-
29
- </span>
30
- covered at
31
- <span class="covered_strength">
32
- <span class="green">
33
- 3.84
34
- </span>
35
- </span> hits/line
36
- )
37
- </h2>
38
-
39
- <a name="AllFiles"></a>
40
-
41
- <div>
42
- <b>7</b> files in total.
43
- </div>
44
-
45
- <div class="t-line-summary">
46
- <b>186</b> relevant lines,
47
- <span class="green"><b>172</b> lines covered</span> and
48
- <span class="red"><b>14</b> lines missed. </span>
49
- (<span class="green">
50
- 92.47%
51
- </span>
52
- )
53
- </div>
54
-
55
-
56
-
57
- <table class="file_list">
58
- <thead>
59
- <tr>
60
- <th>File</th>
61
- <th>% covered</th>
62
- <th>Lines</th>
63
- <th>Relevant Lines</th>
64
- <th>Lines covered</th>
65
- <th>Lines missed</th>
66
- <th>Avg. Hits / Line</th>
67
-
68
- </tr>
69
- </thead>
70
- <tbody>
71
-
72
- <tr class="t-file">
73
- <td class="strong t-file__name"><a href="#f946681c65762e86a5af4e3d4826ca838f8c3581" class="src_link" title="lib/chake/backend.rb">lib/chake/backend.rb</a></td>
74
- <td class="yellow strong t-file__coverage">81.4 %</td>
75
- <td>80</td>
76
- <td>43</td>
77
- <td>35</td>
78
- <td>8</td>
79
- <td>1.86</td>
80
-
81
- </tr>
82
-
83
- <tr class="t-file">
84
- <td class="strong t-file__name"><a href="#2e1a7647dbcdb46e1f25a425b26a95f3cd809f21" class="src_link" title="lib/chake/backend/local.rb">lib/chake/backend/local.rb</a></td>
85
- <td class="yellow strong t-file__coverage">90.0 %</td>
86
- <td>25</td>
87
- <td>10</td>
88
- <td>9</td>
89
- <td>1</td>
90
- <td>1.1</td>
91
-
92
- </tr>
93
-
94
- <tr class="t-file">
95
- <td class="strong t-file__name"><a href="#8faefdcb0614d86c951274137a1f0a7e4a38322c" class="src_link" title="lib/chake/backend/ssh.rb">lib/chake/backend/ssh.rb</a></td>
96
- <td class="yellow strong t-file__coverage">86.84 %</td>
97
- <td>79</td>
98
- <td>38</td>
99
- <td>33</td>
100
- <td>5</td>
101
- <td>1.45</td>
102
-
103
- </tr>
104
-
105
- <tr class="t-file">
106
- <td class="strong t-file__name"><a href="#6f4df1f307637e63f54548e20e1b07ab4bb7f41c" class="src_link" title="lib/chake/node.rb">lib/chake/node.rb</a></td>
107
- <td class="green strong t-file__coverage">100.0 %</td>
108
- <td>59</td>
109
- <td>35</td>
110
- <td>35</td>
111
- <td>0</td>
112
- <td>12.14</td>
113
-
114
- </tr>
115
-
116
- <tr class="t-file">
117
- <td class="strong t-file__name"><a href="#0b638ba835c7b1f7ced9cfc83771b9405879de96" class="src_link" title="spec/chake/backend/ssh_spec.rb">spec/chake/backend/ssh_spec.rb</a></td>
118
- <td class="green strong t-file__coverage">100.0 %</td>
119
- <td>37</td>
120
- <td>21</td>
121
- <td>21</td>
122
- <td>0</td>
123
- <td>1.52</td>
124
-
125
- </tr>
126
-
127
- <tr class="t-file">
128
- <td class="strong t-file__name"><a href="#ac8821762e582e387630f20ab79b98f4f5a7f7d3" class="src_link" title="spec/chake/backend_spec.rb">spec/chake/backend_spec.rb</a></td>
129
- <td class="green strong t-file__coverage">100.0 %</td>
130
- <td>2</td>
131
- <td>1</td>
132
- <td>1</td>
133
- <td>0</td>
134
- <td>1.0</td>
135
-
136
- </tr>
137
-
138
- <tr class="t-file">
139
- <td class="strong t-file__name"><a href="#a7d8a97d1649246ed1998a061b28bf4fd79b767a" class="src_link" title="spec/chake/node_spec.rb">spec/chake/node_spec.rb</a></td>
140
- <td class="green strong t-file__coverage">100.0 %</td>
141
- <td>61</td>
142
- <td>38</td>
143
- <td>38</td>
144
- <td>0</td>
145
- <td>2.89</td>
146
-
147
- </tr>
148
-
149
- </tbody>
150
- </table>
151
- </div>
152
-
153
-
154
-
155
- </div>
156
-
157
- <div id="footer">
158
- Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.18.5
159
- and simplecov-html v0.11.0<br/>
160
- using RSpec
161
- </div>
162
-
163
- <div class="source_files">
164
-
165
- <div class="source_table" id="f946681c65762e86a5af4e3d4826ca838f8c3581">
166
- <div class="header">
167
- <h3>lib/chake/backend.rb</h3>
168
- <h4>
169
- <span class="yellow">
170
- 81.4%
171
- </span>
172
-
173
- lines covered
174
- </h4>
175
-
176
-
177
-
178
- <div class="t-line-summary">
179
- <b>43</b> relevant lines.
180
- <span class="green"><b>35</b> lines covered</span> and
181
- <span class="red"><b>8</b> lines missed.</span>
182
- </div>
183
-
184
-
185
-
186
- </div>
187
-
188
- <pre>
189
- <ol>
190
-
191
- <div>
192
- <li class="covered" data-hits="1" data-linenumber="1">
193
- <span class="hits">1</span>
194
-
195
-
196
-
197
-
198
- <code class="ruby">module Chake</code>
199
- </li>
200
- </div>
201
-
202
- <div>
203
- <li class="never" data-hits="" data-linenumber="2">
204
-
205
-
206
-
207
-
208
-
209
- <code class="ruby"></code>
210
- </li>
211
- </div>
212
-
213
- <div>
214
- <li class="covered" data-hits="1" data-linenumber="3">
215
- <span class="hits">1</span>
216
-
217
-
218
-
219
-
220
- <code class="ruby"> class Backend &lt; Struct.new(:node)</code>
221
- </li>
222
- </div>
223
-
224
- <div>
225
- <li class="never" data-hits="" data-linenumber="4">
226
-
227
-
228
-
229
-
230
-
231
- <code class="ruby"></code>
232
- </li>
233
- </div>
234
-
235
- <div>
236
- <li class="covered" data-hits="1" data-linenumber="5">
237
- <span class="hits">1</span>
238
-
239
-
240
-
241
-
242
- <code class="ruby"> class CommandFailed &lt; Exception</code>
243
- </li>
244
- </div>
245
-
246
- <div>
247
- <li class="never" data-hits="" data-linenumber="6">
248
-
249
-
250
-
251
-
252
-
253
- <code class="ruby"> end</code>
254
- </li>
255
- </div>
256
-
257
- <div>
258
- <li class="never" data-hits="" data-linenumber="7">
259
-
260
-
261
-
262
-
263
-
264
- <code class="ruby"></code>
265
- </li>
266
- </div>
267
-
268
- <div>
269
- <li class="covered" data-hits="1" data-linenumber="8">
270
- <span class="hits">1</span>
271
-
272
-
273
-
274
-
275
- <code class="ruby"> def scp</code>
276
- </li>
277
- </div>
278
-
279
- <div>
280
- <li class="missed" data-hits="0" data-linenumber="9">
281
-
282
-
283
-
284
-
285
-
286
- <code class="ruby"> [&#39;scp&#39;]</code>
287
- </li>
288
- </div>
289
-
290
- <div>
291
- <li class="never" data-hits="" data-linenumber="10">
292
-
293
-
294
-
295
-
296
-
297
- <code class="ruby"> end</code>
298
- </li>
299
- </div>
300
-
301
- <div>
302
- <li class="never" data-hits="" data-linenumber="11">
303
-
304
-
305
-
306
-
307
-
308
- <code class="ruby"></code>
309
- </li>
310
- </div>
311
-
312
- <div>
313
- <li class="covered" data-hits="1" data-linenumber="12">
314
- <span class="hits">1</span>
315
-
316
-
317
-
318
-
319
- <code class="ruby"> def scp_dest</code>
320
- </li>
321
- </div>
322
-
323
- <div>
324
- <li class="missed" data-hits="0" data-linenumber="13">
325
-
326
-
327
-
328
-
329
-
330
- <code class="ruby"> &#39;&#39;</code>
331
- </li>
332
- </div>
333
-
334
- <div>
335
- <li class="never" data-hits="" data-linenumber="14">
336
-
337
-
338
-
339
-
340
-
341
- <code class="ruby"> end</code>
342
- </li>
343
- </div>
344
-
345
- <div>
346
- <li class="never" data-hits="" data-linenumber="15">
347
-
348
-
349
-
350
-
351
-
352
- <code class="ruby"></code>
353
- </li>
354
- </div>
355
-
356
- <div>
357
- <li class="covered" data-hits="1" data-linenumber="16">
358
- <span class="hits">1</span>
359
-
360
-
361
-
362
-
363
- <code class="ruby"> def rsync</code>
364
- </li>
365
- </div>
366
-
367
- <div>
368
- <li class="missed" data-hits="0" data-linenumber="17">
369
-
370
-
371
-
372
-
373
-
374
- <code class="ruby"> [&#39;rsync&#39;]</code>
375
- </li>
376
- </div>
377
-
378
- <div>
379
- <li class="never" data-hits="" data-linenumber="18">
380
-
381
-
382
-
383
-
384
-
385
- <code class="ruby"> end</code>
386
- </li>
387
- </div>
388
-
389
- <div>
390
- <li class="never" data-hits="" data-linenumber="19">
391
-
392
-
393
-
394
-
395
-
396
- <code class="ruby"></code>
397
- </li>
398
- </div>
399
-
400
- <div>
401
- <li class="covered" data-hits="1" data-linenumber="20">
402
- <span class="hits">1</span>
403
-
404
-
405
-
406
-
407
- <code class="ruby"> def rsync_dest</code>
408
- </li>
409
- </div>
410
-
411
- <div>
412
- <li class="covered" data-hits="1" data-linenumber="21">
413
- <span class="hits">1</span>
414
-
415
-
416
-
417
-
418
- <code class="ruby"> node.path + &#39;/&#39;</code>
419
- </li>
420
- </div>
421
-
422
- <div>
423
- <li class="never" data-hits="" data-linenumber="22">
424
-
425
-
426
-
427
-
428
-
429
- <code class="ruby"> end</code>
430
- </li>
431
- </div>
432
-
433
- <div>
434
- <li class="never" data-hits="" data-linenumber="23">
435
-
436
-
437
-
438
-
439
-
440
- <code class="ruby"></code>
441
- </li>
442
- </div>
443
-
444
- <div>
445
- <li class="covered" data-hits="1" data-linenumber="24">
446
- <span class="hits">1</span>
447
-
448
-
449
-
450
-
451
- <code class="ruby"> def run(cmd)</code>
452
- </li>
453
- </div>
454
-
455
- <div>
456
- <li class="covered" data-hits="2" data-linenumber="25">
457
- <span class="hits">2</span>
458
-
459
-
460
-
461
-
462
- <code class="ruby"> printf &quot;%#{Node.max_node_name_length}s: $ %s\n&quot;, node.hostname, cmd</code>
463
- </li>
464
- </div>
465
-
466
- <div>
467
- <li class="covered" data-hits="2" data-linenumber="26">
468
- <span class="hits">2</span>
469
-
470
-
471
-
472
-
473
- <code class="ruby"> io = IO.popen(command_runner + [&#39;/bin/sh&#39;], mode=&#39;w+&#39;, eer: [:child, :out])</code>
474
- </li>
475
- </div>
476
-
477
- <div>
478
- <li class="covered" data-hits="2" data-linenumber="27">
479
- <span class="hits">2</span>
480
-
481
-
482
-
483
-
484
- <code class="ruby"> io.write(cmd)</code>
485
- </li>
486
- </div>
487
-
488
- <div>
489
- <li class="covered" data-hits="2" data-linenumber="28">
490
- <span class="hits">2</span>
491
-
492
-
493
-
494
-
495
- <code class="ruby"> io.close_write</code>
496
- </li>
497
- </div>
498
-
499
- <div>
500
- <li class="covered" data-hits="2" data-linenumber="29">
501
- <span class="hits">2</span>
502
-
503
-
504
-
505
-
506
- <code class="ruby"> io.each_line do |line|</code>
507
- </li>
508
- </div>
509
-
510
- <div>
511
- <li class="covered" data-hits="4" data-linenumber="30">
512
- <span class="hits">4</span>
513
-
514
-
515
-
516
-
517
- <code class="ruby"> printf &quot;%#{Node.max_node_name_length}s: %s\n&quot;, node.hostname, line.gsub(/\s*$/, &#39;&#39;)</code>
518
- </li>
519
- </div>
520
-
521
- <div>
522
- <li class="never" data-hits="" data-linenumber="31">
523
-
524
-
525
-
526
-
527
-
528
- <code class="ruby"> end</code>
529
- </li>
530
- </div>
531
-
532
- <div>
533
- <li class="covered" data-hits="2" data-linenumber="32">
534
- <span class="hits">2</span>
535
-
536
-
537
-
538
-
539
- <code class="ruby"> io.close</code>
540
- </li>
541
- </div>
542
-
543
- <div>
544
- <li class="covered" data-hits="2" data-linenumber="33">
545
- <span class="hits">2</span>
546
-
547
-
548
-
549
-
550
- <code class="ruby"> if $?</code>
551
- </li>
552
- </div>
553
-
554
- <div>
555
- <li class="missed" data-hits="0" data-linenumber="34">
556
-
557
-
558
-
559
-
560
-
561
- <code class="ruby"> status = $?.exitstatus</code>
562
- </li>
563
- </div>
564
-
565
- <div>
566
- <li class="missed" data-hits="0" data-linenumber="35">
567
-
568
-
569
-
570
-
571
-
572
- <code class="ruby"> if status != 0</code>
573
- </li>
574
- </div>
575
-
576
- <div>
577
- <li class="missed" data-hits="0" data-linenumber="36">
578
-
579
-
580
-
581
-
582
-
583
- <code class="ruby"> raise CommandFailed.new([node.hostname, &#39;FAILED with exit status %d&#39; % status].join(&#39;: &#39;))</code>
584
- </li>
585
- </div>
586
-
587
- <div>
588
- <li class="never" data-hits="" data-linenumber="37">
589
-
590
-
591
-
592
-
593
-
594
- <code class="ruby"> end</code>
595
- </li>
596
- </div>
597
-
598
- <div>
599
- <li class="never" data-hits="" data-linenumber="38">
600
-
601
-
602
-
603
-
604
-
605
- <code class="ruby"> end</code>
606
- </li>
607
- </div>
608
-
609
- <div>
610
- <li class="never" data-hits="" data-linenumber="39">
611
-
612
-
613
-
614
-
615
-
616
- <code class="ruby"> end</code>
617
- </li>
618
- </div>
619
-
620
- <div>
621
- <li class="never" data-hits="" data-linenumber="40">
622
-
623
-
624
-
625
-
626
-
627
- <code class="ruby"></code>
628
- </li>
629
- </div>
630
-
631
- <div>
632
- <li class="covered" data-hits="1" data-linenumber="41">
633
- <span class="hits">1</span>
634
-
635
-
636
-
637
-
638
- <code class="ruby"> def run_shell</code>
639
- </li>
640
- </div>
641
-
642
- <div>
643
- <li class="missed" data-hits="0" data-linenumber="42">
644
-
645
-
646
-
647
-
648
-
649
- <code class="ruby"> system(*shell_command)</code>
650
- </li>
651
- </div>
652
-
653
- <div>
654
- <li class="never" data-hits="" data-linenumber="43">
655
-
656
-
657
-
658
-
659
-
660
- <code class="ruby"> end</code>
661
- </li>
662
- </div>
663
-
664
- <div>
665
- <li class="never" data-hits="" data-linenumber="44">
666
-
667
-
668
-
669
-
670
-
671
- <code class="ruby"></code>
672
- </li>
673
- </div>
674
-
675
- <div>
676
- <li class="covered" data-hits="1" data-linenumber="45">
677
- <span class="hits">1</span>
678
-
679
-
680
-
681
-
682
- <code class="ruby"> def run_as_root(cmd)</code>
683
- </li>
684
- </div>
685
-
686
- <div>
687
- <li class="covered" data-hits="4" data-linenumber="46">
688
- <span class="hits">4</span>
689
-
690
-
691
-
692
-
693
- <code class="ruby"> if node.remote_username == &#39;root&#39;</code>
694
- </li>
695
- </div>
696
-
697
- <div>
698
- <li class="covered" data-hits="2" data-linenumber="47">
699
- <span class="hits">2</span>
700
-
701
-
702
-
703
-
704
- <code class="ruby"> run(cmd)</code>
705
- </li>
706
- </div>
707
-
708
- <div>
709
- <li class="never" data-hits="" data-linenumber="48">
710
-
711
-
712
-
713
-
714
-
715
- <code class="ruby"> else</code>
716
- </li>
717
- </div>
718
-
719
- <div>
720
- <li class="covered" data-hits="2" data-linenumber="49">
721
- <span class="hits">2</span>
722
-
723
-
724
-
725
-
726
- <code class="ruby"> run(&#39;sudo &#39; + cmd)</code>
727
- </li>
728
- </div>
729
-
730
- <div>
731
- <li class="never" data-hits="" data-linenumber="50">
732
-
733
-
734
-
735
-
736
-
737
- <code class="ruby"> end</code>
738
- </li>
739
- </div>
740
-
741
- <div>
742
- <li class="never" data-hits="" data-linenumber="51">
743
-
744
-
745
-
746
-
747
-
748
- <code class="ruby"> end</code>
749
- </li>
750
- </div>
751
-
752
- <div>
753
- <li class="never" data-hits="" data-linenumber="52">
754
-
755
-
756
-
757
-
758
-
759
- <code class="ruby"></code>
760
- </li>
761
- </div>
762
-
763
- <div>
764
- <li class="covered" data-hits="1" data-linenumber="53">
765
- <span class="hits">1</span>
766
-
767
-
768
-
769
-
770
- <code class="ruby"> def to_s</code>
771
- </li>
772
- </div>
773
-
774
- <div>
775
- <li class="covered" data-hits="1" data-linenumber="54">
776
- <span class="hits">1</span>
777
-
778
-
779
-
780
-
781
- <code class="ruby"> self.class.backend_name</code>
782
- </li>
783
- </div>
784
-
785
- <div>
786
- <li class="never" data-hits="" data-linenumber="55">
787
-
788
-
789
-
790
-
791
-
792
- <code class="ruby"> end</code>
793
- </li>
794
- </div>
795
-
796
- <div>
797
- <li class="never" data-hits="" data-linenumber="56">
798
-
799
-
800
-
801
-
802
-
803
- <code class="ruby"></code>
804
- </li>
805
- </div>
806
-
807
- <div>
808
- <li class="covered" data-hits="1" data-linenumber="57">
809
- <span class="hits">1</span>
810
-
811
-
812
-
813
-
814
- <code class="ruby"> def skip?</code>
815
- </li>
816
- </div>
817
-
818
- <div>
819
- <li class="missed" data-hits="0" data-linenumber="58">
820
-
821
-
822
-
823
-
824
-
825
- <code class="ruby"> false</code>
826
- </li>
827
- </div>
828
-
829
- <div>
830
- <li class="never" data-hits="" data-linenumber="59">
831
-
832
-
833
-
834
-
835
-
836
- <code class="ruby"> end</code>
837
- </li>
838
- </div>
839
-
840
- <div>
841
- <li class="never" data-hits="" data-linenumber="60">
842
-
843
-
844
-
845
-
846
-
847
- <code class="ruby"></code>
848
- </li>
849
- </div>
850
-
851
- <div>
852
- <li class="covered" data-hits="1" data-linenumber="61">
853
- <span class="hits">1</span>
854
-
855
-
856
-
857
-
858
- <code class="ruby"> def self.backend_name</code>
859
- </li>
860
- </div>
861
-
862
- <div>
863
- <li class="covered" data-hits="10" data-linenumber="62">
864
- <span class="hits">10</span>
865
-
866
-
867
-
868
-
869
- <code class="ruby"> name.split(&quot;::&quot;).last.downcase</code>
870
- </li>
871
- </div>
872
-
873
- <div>
874
- <li class="never" data-hits="" data-linenumber="63">
875
-
876
-
877
-
878
-
879
-
880
- <code class="ruby"> end</code>
881
- </li>
882
- </div>
883
-
884
- <div>
885
- <li class="never" data-hits="" data-linenumber="64">
886
-
887
-
888
-
889
-
890
-
891
- <code class="ruby"></code>
892
- </li>
893
- </div>
894
-
895
- <div>
896
- <li class="covered" data-hits="1" data-linenumber="65">
897
- <span class="hits">1</span>
898
-
899
-
900
-
901
-
902
- <code class="ruby"> def self.inherited(subclass)</code>
903
- </li>
904
- </div>
905
-
906
- <div>
907
- <li class="covered" data-hits="2" data-linenumber="66">
908
- <span class="hits">2</span>
909
-
910
-
911
-
912
-
913
- <code class="ruby"> @backends ||= []</code>
914
- </li>
915
- </div>
916
-
917
- <div>
918
- <li class="covered" data-hits="2" data-linenumber="67">
919
- <span class="hits">2</span>
920
-
921
-
922
-
923
-
924
- <code class="ruby"> @backends &lt;&lt; subclass</code>
925
- </li>
926
- </div>
927
-
928
- <div>
929
- <li class="never" data-hits="" data-linenumber="68">
930
-
931
-
932
-
933
-
934
-
935
- <code class="ruby"> end</code>
936
- </li>
937
- </div>
938
-
939
- <div>
940
- <li class="never" data-hits="" data-linenumber="69">
941
-
942
-
943
-
944
-
945
-
946
- <code class="ruby"></code>
947
- </li>
948
- </div>
949
-
950
- <div>
951
- <li class="covered" data-hits="1" data-linenumber="70">
952
- <span class="hits">1</span>
953
-
954
-
955
-
956
-
957
- <code class="ruby"> def self.get(name)</code>
958
- </li>
959
- </div>
960
-
961
- <div>
962
- <li class="covered" data-hits="15" data-linenumber="71">
963
- <span class="hits">15</span>
964
-
965
-
966
-
967
-
968
- <code class="ruby"> backend = @backends.find { |b| b.backend_name == name }</code>
969
- </li>
970
- </div>
971
-
972
- <div>
973
- <li class="covered" data-hits="6" data-linenumber="72">
974
- <span class="hits">6</span>
975
-
976
-
977
-
978
-
979
- <code class="ruby"> backend || raise(ArgumentError.new(&quot;Invalid backend name: #{name}&quot;))</code>
980
- </li>
981
- </div>
982
-
983
- <div>
984
- <li class="never" data-hits="" data-linenumber="73">
985
-
986
-
987
-
988
-
989
-
990
- <code class="ruby"> end</code>
991
- </li>
992
- </div>
993
-
994
- <div>
995
- <li class="never" data-hits="" data-linenumber="74">
996
-
997
-
998
-
999
-
1000
-
1001
- <code class="ruby"></code>
1002
- </li>
1003
- </div>
1004
-
1005
- <div>
1006
- <li class="never" data-hits="" data-linenumber="75">
1007
-
1008
-
1009
-
1010
-
1011
-
1012
- <code class="ruby"> end</code>
1013
- </li>
1014
- </div>
1015
-
1016
- <div>
1017
- <li class="never" data-hits="" data-linenumber="76">
1018
-
1019
-
1020
-
1021
-
1022
-
1023
- <code class="ruby"></code>
1024
- </li>
1025
- </div>
1026
-
1027
- <div>
1028
- <li class="never" data-hits="" data-linenumber="77">
1029
-
1030
-
1031
-
1032
-
1033
-
1034
- <code class="ruby">end</code>
1035
- </li>
1036
- </div>
1037
-
1038
- <div>
1039
- <li class="never" data-hits="" data-linenumber="78">
1040
-
1041
-
1042
-
1043
-
1044
-
1045
- <code class="ruby"></code>
1046
- </li>
1047
- </div>
1048
-
1049
- <div>
1050
- <li class="covered" data-hits="1" data-linenumber="79">
1051
- <span class="hits">1</span>
1052
-
1053
-
1054
-
1055
-
1056
- <code class="ruby">require &#39;chake/backend/ssh&#39;</code>
1057
- </li>
1058
- </div>
1059
-
1060
- <div>
1061
- <li class="covered" data-hits="1" data-linenumber="80">
1062
- <span class="hits">1</span>
1063
-
1064
-
1065
-
1066
-
1067
- <code class="ruby">require &#39;chake/backend/local&#39;</code>
1068
- </li>
1069
- </div>
1070
-
1071
- </ol>
1072
- </pre>
1073
- </div>
1074
-
1075
-
1076
- <div class="source_table" id="2e1a7647dbcdb46e1f25a425b26a95f3cd809f21">
1077
- <div class="header">
1078
- <h3>lib/chake/backend/local.rb</h3>
1079
- <h4>
1080
- <span class="yellow">
1081
- 90.0%
1082
- </span>
1083
-
1084
- lines covered
1085
- </h4>
1086
-
1087
-
1088
-
1089
- <div class="t-line-summary">
1090
- <b>10</b> relevant lines.
1091
- <span class="green"><b>9</b> lines covered</span> and
1092
- <span class="red"><b>1</b> lines missed.</span>
1093
- </div>
1094
-
1095
-
1096
-
1097
- </div>
1098
-
1099
- <pre>
1100
- <ol>
1101
-
1102
- <div>
1103
- <li class="covered" data-hits="1" data-linenumber="1">
1104
- <span class="hits">1</span>
1105
-
1106
-
1107
-
1108
-
1109
- <code class="ruby">require &#39;socket&#39;</code>
1110
- </li>
1111
- </div>
1112
-
1113
- <div>
1114
- <li class="never" data-hits="" data-linenumber="2">
1115
-
1116
-
1117
-
1118
-
1119
-
1120
- <code class="ruby"></code>
1121
- </li>
1122
- </div>
1123
-
1124
- <div>
1125
- <li class="covered" data-hits="1" data-linenumber="3">
1126
- <span class="hits">1</span>
1127
-
1128
-
1129
-
1130
-
1131
- <code class="ruby">module Chake</code>
1132
- </li>
1133
- </div>
1134
-
1135
- <div>
1136
- <li class="never" data-hits="" data-linenumber="4">
1137
-
1138
-
1139
-
1140
-
1141
-
1142
- <code class="ruby"></code>
1143
- </li>
1144
- </div>
1145
-
1146
- <div>
1147
- <li class="covered" data-hits="1" data-linenumber="5">
1148
- <span class="hits">1</span>
1149
-
1150
-
1151
-
1152
-
1153
- <code class="ruby"> class Backend</code>
1154
- </li>
1155
- </div>
1156
-
1157
- <div>
1158
- <li class="never" data-hits="" data-linenumber="6">
1159
-
1160
-
1161
-
1162
-
1163
-
1164
- <code class="ruby"></code>
1165
- </li>
1166
- </div>
1167
-
1168
- <div>
1169
- <li class="covered" data-hits="1" data-linenumber="7">
1170
- <span class="hits">1</span>
1171
-
1172
-
1173
-
1174
-
1175
- <code class="ruby"> class Local &lt; Backend</code>
1176
- </li>
1177
- </div>
1178
-
1179
- <div>
1180
- <li class="never" data-hits="" data-linenumber="8">
1181
-
1182
-
1183
-
1184
-
1185
-
1186
- <code class="ruby"></code>
1187
- </li>
1188
- </div>
1189
-
1190
- <div>
1191
- <li class="covered" data-hits="1" data-linenumber="9">
1192
- <span class="hits">1</span>
1193
-
1194
-
1195
-
1196
-
1197
- <code class="ruby"> def command_runner</code>
1198
- </li>
1199
- </div>
1200
-
1201
- <div>
1202
- <li class="covered" data-hits="3" data-linenumber="10">
1203
- <span class="hits">3</span>
1204
-
1205
-
1206
-
1207
-
1208
- <code class="ruby"> [&#39;sh&#39;, &#39;-c&#39;]</code>
1209
- </li>
1210
- </div>
1211
-
1212
- <div>
1213
- <li class="never" data-hits="" data-linenumber="11">
1214
-
1215
-
1216
-
1217
-
1218
-
1219
- <code class="ruby"> end</code>
1220
- </li>
1221
- </div>
1222
-
1223
- <div>
1224
- <li class="never" data-hits="" data-linenumber="12">
1225
-
1226
-
1227
-
1228
-
1229
-
1230
- <code class="ruby"></code>
1231
- </li>
1232
- </div>
1233
-
1234
- <div>
1235
- <li class="covered" data-hits="1" data-linenumber="13">
1236
- <span class="hits">1</span>
1237
-
1238
-
1239
-
1240
-
1241
- <code class="ruby"> def shell_command</code>
1242
- </li>
1243
- </div>
1244
-
1245
- <div>
1246
- <li class="missed" data-hits="0" data-linenumber="14">
1247
-
1248
-
1249
-
1250
-
1251
-
1252
- <code class="ruby"> ENV.fetch(&#39;SHELL&#39;, Etc.getpwuid.shell)</code>
1253
- </li>
1254
- </div>
1255
-
1256
- <div>
1257
- <li class="never" data-hits="" data-linenumber="15">
1258
-
1259
-
1260
-
1261
-
1262
-
1263
- <code class="ruby"> end</code>
1264
- </li>
1265
- </div>
1266
-
1267
- <div>
1268
- <li class="never" data-hits="" data-linenumber="16">
1269
-
1270
-
1271
-
1272
-
1273
-
1274
- <code class="ruby"></code>
1275
- </li>
1276
- </div>
1277
-
1278
- <div>
1279
- <li class="covered" data-hits="1" data-linenumber="17">
1280
- <span class="hits">1</span>
1281
-
1282
-
1283
-
1284
-
1285
- <code class="ruby"> def skip?</code>
1286
- </li>
1287
- </div>
1288
-
1289
- <div>
1290
- <li class="covered" data-hits="1" data-linenumber="18">
1291
- <span class="hits">1</span>
1292
-
1293
-
1294
-
1295
-
1296
- <code class="ruby"> node.hostname != Socket.gethostname</code>
1297
- </li>
1298
- </div>
1299
-
1300
- <div>
1301
- <li class="never" data-hits="" data-linenumber="19">
1302
-
1303
-
1304
-
1305
-
1306
-
1307
- <code class="ruby"> end</code>
1308
- </li>
1309
- </div>
1310
-
1311
- <div>
1312
- <li class="never" data-hits="" data-linenumber="20">
1313
-
1314
-
1315
-
1316
-
1317
-
1318
- <code class="ruby"></code>
1319
- </li>
1320
- </div>
1321
-
1322
- <div>
1323
- <li class="never" data-hits="" data-linenumber="21">
1324
-
1325
-
1326
-
1327
-
1328
-
1329
- <code class="ruby"> end</code>
1330
- </li>
1331
- </div>
1332
-
1333
- <div>
1334
- <li class="never" data-hits="" data-linenumber="22">
1335
-
1336
-
1337
-
1338
-
1339
-
1340
- <code class="ruby"></code>
1341
- </li>
1342
- </div>
1343
-
1344
- <div>
1345
- <li class="never" data-hits="" data-linenumber="23">
1346
-
1347
-
1348
-
1349
-
1350
-
1351
- <code class="ruby"> end</code>
1352
- </li>
1353
- </div>
1354
-
1355
- <div>
1356
- <li class="never" data-hits="" data-linenumber="24">
1357
-
1358
-
1359
-
1360
-
1361
-
1362
- <code class="ruby"></code>
1363
- </li>
1364
- </div>
1365
-
1366
- <div>
1367
- <li class="never" data-hits="" data-linenumber="25">
1368
-
1369
-
1370
-
1371
-
1372
-
1373
- <code class="ruby">end</code>
1374
- </li>
1375
- </div>
1376
-
1377
- </ol>
1378
- </pre>
1379
- </div>
1380
-
1381
-
1382
- <div class="source_table" id="8faefdcb0614d86c951274137a1f0a7e4a38322c">
1383
- <div class="header">
1384
- <h3>lib/chake/backend/ssh.rb</h3>
1385
- <h4>
1386
- <span class="yellow">
1387
- 86.84%
1388
- </span>
1389
-
1390
- lines covered
1391
- </h4>
1392
-
1393
-
1394
-
1395
- <div class="t-line-summary">
1396
- <b>38</b> relevant lines.
1397
- <span class="green"><b>33</b> lines covered</span> and
1398
- <span class="red"><b>5</b> lines missed.</span>
1399
- </div>
1400
-
1401
-
1402
-
1403
- </div>
1404
-
1405
- <pre>
1406
- <ol>
1407
-
1408
- <div>
1409
- <li class="covered" data-hits="1" data-linenumber="1">
1410
- <span class="hits">1</span>
1411
-
1412
-
1413
-
1414
-
1415
- <code class="ruby">module Chake</code>
1416
- </li>
1417
- </div>
1418
-
1419
- <div>
1420
- <li class="never" data-hits="" data-linenumber="2">
1421
-
1422
-
1423
-
1424
-
1425
-
1426
- <code class="ruby"></code>
1427
- </li>
1428
- </div>
1429
-
1430
- <div>
1431
- <li class="covered" data-hits="1" data-linenumber="3">
1432
- <span class="hits">1</span>
1433
-
1434
-
1435
-
1436
-
1437
- <code class="ruby"> class Backend</code>
1438
- </li>
1439
- </div>
1440
-
1441
- <div>
1442
- <li class="never" data-hits="" data-linenumber="4">
1443
-
1444
-
1445
-
1446
-
1447
-
1448
- <code class="ruby"></code>
1449
- </li>
1450
- </div>
1451
-
1452
- <div>
1453
- <li class="covered" data-hits="1" data-linenumber="5">
1454
- <span class="hits">1</span>
1455
-
1456
-
1457
-
1458
-
1459
- <code class="ruby"> class Ssh &lt; Backend</code>
1460
- </li>
1461
- </div>
1462
-
1463
- <div>
1464
- <li class="never" data-hits="" data-linenumber="6">
1465
-
1466
-
1467
-
1468
-
1469
-
1470
- <code class="ruby"></code>
1471
- </li>
1472
- </div>
1473
-
1474
- <div>
1475
- <li class="covered" data-hits="1" data-linenumber="7">
1476
- <span class="hits">1</span>
1477
-
1478
-
1479
-
1480
-
1481
- <code class="ruby"> def scp</code>
1482
- </li>
1483
- </div>
1484
-
1485
- <div>
1486
- <li class="covered" data-hits="1" data-linenumber="8">
1487
- <span class="hits">1</span>
1488
-
1489
-
1490
-
1491
-
1492
- <code class="ruby"> [&#39;scp&#39;, ssh_config, scp_options].flatten.compact</code>
1493
- </li>
1494
- </div>
1495
-
1496
- <div>
1497
- <li class="never" data-hits="" data-linenumber="9">
1498
-
1499
-
1500
-
1501
-
1502
-
1503
- <code class="ruby"> end</code>
1504
- </li>
1505
- </div>
1506
-
1507
- <div>
1508
- <li class="never" data-hits="" data-linenumber="10">
1509
-
1510
-
1511
-
1512
-
1513
-
1514
- <code class="ruby"></code>
1515
- </li>
1516
- </div>
1517
-
1518
- <div>
1519
- <li class="covered" data-hits="1" data-linenumber="11">
1520
- <span class="hits">1</span>
1521
-
1522
-
1523
-
1524
-
1525
- <code class="ruby"> def scp_dest</code>
1526
- </li>
1527
- </div>
1528
-
1529
- <div>
1530
- <li class="missed" data-hits="0" data-linenumber="12">
1531
-
1532
-
1533
-
1534
-
1535
-
1536
- <code class="ruby"> ssh_target + &#39;:&#39;</code>
1537
- </li>
1538
- </div>
1539
-
1540
- <div>
1541
- <li class="never" data-hits="" data-linenumber="13">
1542
-
1543
-
1544
-
1545
-
1546
-
1547
- <code class="ruby"> end</code>
1548
- </li>
1549
- </div>
1550
-
1551
- <div>
1552
- <li class="never" data-hits="" data-linenumber="14">
1553
-
1554
-
1555
-
1556
-
1557
-
1558
- <code class="ruby"></code>
1559
- </li>
1560
- </div>
1561
-
1562
- <div>
1563
- <li class="covered" data-hits="1" data-linenumber="15">
1564
- <span class="hits">1</span>
1565
-
1566
-
1567
-
1568
-
1569
- <code class="ruby"> def rsync</code>
1570
- </li>
1571
- </div>
1572
-
1573
- <div>
1574
- <li class="missed" data-hits="0" data-linenumber="16">
1575
-
1576
-
1577
-
1578
-
1579
-
1580
- <code class="ruby"> [ssh_prefix, &#39;rsync&#39;, rsync_ssh].flatten.compact</code>
1581
- </li>
1582
- </div>
1583
-
1584
- <div>
1585
- <li class="never" data-hits="" data-linenumber="17">
1586
-
1587
-
1588
-
1589
-
1590
-
1591
- <code class="ruby"> end</code>
1592
- </li>
1593
- </div>
1594
-
1595
- <div>
1596
- <li class="never" data-hits="" data-linenumber="18">
1597
-
1598
-
1599
-
1600
-
1601
-
1602
- <code class="ruby"></code>
1603
- </li>
1604
- </div>
1605
-
1606
- <div>
1607
- <li class="covered" data-hits="1" data-linenumber="19">
1608
- <span class="hits">1</span>
1609
-
1610
-
1611
-
1612
-
1613
- <code class="ruby"> def rsync_dest</code>
1614
- </li>
1615
- </div>
1616
-
1617
- <div>
1618
- <li class="covered" data-hits="1" data-linenumber="20">
1619
- <span class="hits">1</span>
1620
-
1621
-
1622
-
1623
-
1624
- <code class="ruby"> [ssh_target, node.path + &#39;/&#39;].join(&#39;:&#39;)</code>
1625
- </li>
1626
- </div>
1627
-
1628
- <div>
1629
- <li class="never" data-hits="" data-linenumber="21">
1630
-
1631
-
1632
-
1633
-
1634
-
1635
- <code class="ruby"> end</code>
1636
- </li>
1637
- </div>
1638
-
1639
- <div>
1640
- <li class="never" data-hits="" data-linenumber="22">
1641
-
1642
-
1643
-
1644
-
1645
-
1646
- <code class="ruby"></code>
1647
- </li>
1648
- </div>
1649
-
1650
- <div>
1651
- <li class="covered" data-hits="1" data-linenumber="23">
1652
- <span class="hits">1</span>
1653
-
1654
-
1655
-
1656
-
1657
- <code class="ruby"> def command_runner</code>
1658
- </li>
1659
- </div>
1660
-
1661
- <div>
1662
- <li class="covered" data-hits="4" data-linenumber="24">
1663
- <span class="hits">4</span>
1664
-
1665
-
1666
-
1667
-
1668
- <code class="ruby"> [ssh_prefix, &#39;ssh&#39;, ssh_config, ssh_options, ssh_target].flatten.compact</code>
1669
- </li>
1670
- </div>
1671
-
1672
- <div>
1673
- <li class="never" data-hits="" data-linenumber="25">
1674
-
1675
-
1676
-
1677
-
1678
-
1679
- <code class="ruby"> end</code>
1680
- </li>
1681
- </div>
1682
-
1683
- <div>
1684
- <li class="never" data-hits="" data-linenumber="26">
1685
-
1686
-
1687
-
1688
-
1689
-
1690
- <code class="ruby"></code>
1691
- </li>
1692
- </div>
1693
-
1694
- <div>
1695
- <li class="covered" data-hits="1" data-linenumber="27">
1696
- <span class="hits">1</span>
1697
-
1698
-
1699
-
1700
-
1701
- <code class="ruby"> def shell_command</code>
1702
- </li>
1703
- </div>
1704
-
1705
- <div>
1706
- <li class="missed" data-hits="0" data-linenumber="28">
1707
-
1708
-
1709
-
1710
-
1711
-
1712
- <code class="ruby"> command_runner</code>
1713
- </li>
1714
- </div>
1715
-
1716
- <div>
1717
- <li class="never" data-hits="" data-linenumber="29">
1718
-
1719
-
1720
-
1721
-
1722
-
1723
- <code class="ruby"> end</code>
1724
- </li>
1725
- </div>
1726
-
1727
- <div>
1728
- <li class="never" data-hits="" data-linenumber="30">
1729
-
1730
-
1731
-
1732
-
1733
-
1734
- <code class="ruby"></code>
1735
- </li>
1736
- </div>
1737
-
1738
- <div>
1739
- <li class="covered" data-hits="1" data-linenumber="31">
1740
- <span class="hits">1</span>
1741
-
1742
-
1743
-
1744
-
1745
- <code class="ruby"> private</code>
1746
- </li>
1747
- </div>
1748
-
1749
- <div>
1750
- <li class="never" data-hits="" data-linenumber="32">
1751
-
1752
-
1753
-
1754
-
1755
-
1756
- <code class="ruby"></code>
1757
- </li>
1758
- </div>
1759
-
1760
- <div>
1761
- <li class="covered" data-hits="1" data-linenumber="33">
1762
- <span class="hits">1</span>
1763
-
1764
-
1765
-
1766
-
1767
- <code class="ruby"> def rsync_ssh</code>
1768
- </li>
1769
- </div>
1770
-
1771
- <div>
1772
- <li class="covered" data-hits="1" data-linenumber="34">
1773
- <span class="hits">1</span>
1774
-
1775
-
1776
-
1777
-
1778
- <code class="ruby"> @rsync_ssh ||=</code>
1779
- </li>
1780
- </div>
1781
-
1782
- <div>
1783
- <li class="never" data-hits="" data-linenumber="35">
1784
-
1785
-
1786
-
1787
-
1788
-
1789
- <code class="ruby"> begin</code>
1790
- </li>
1791
- </div>
1792
-
1793
- <div>
1794
- <li class="covered" data-hits="1" data-linenumber="36">
1795
- <span class="hits">1</span>
1796
-
1797
-
1798
-
1799
-
1800
- <code class="ruby"> ssh_command = &#39;ssh&#39;</code>
1801
- </li>
1802
- </div>
1803
-
1804
- <div>
1805
- <li class="covered" data-hits="1" data-linenumber="37">
1806
- <span class="hits">1</span>
1807
-
1808
-
1809
-
1810
-
1811
- <code class="ruby"> if File.exist?(ssh_config_file)</code>
1812
- </li>
1813
- </div>
1814
-
1815
- <div>
1816
- <li class="missed" data-hits="0" data-linenumber="38">
1817
-
1818
-
1819
-
1820
-
1821
-
1822
- <code class="ruby"> ssh_command += &#39; -F &#39; + ssh_config_file</code>
1823
- </li>
1824
- </div>
1825
-
1826
- <div>
1827
- <li class="never" data-hits="" data-linenumber="39">
1828
-
1829
-
1830
-
1831
-
1832
-
1833
- <code class="ruby"> end</code>
1834
- </li>
1835
- </div>
1836
-
1837
- <div>
1838
- <li class="covered" data-hits="1" data-linenumber="40">
1839
- <span class="hits">1</span>
1840
-
1841
-
1842
-
1843
-
1844
- <code class="ruby"> if node.port</code>
1845
- </li>
1846
- </div>
1847
-
1848
- <div>
1849
- <li class="covered" data-hits="1" data-linenumber="41">
1850
- <span class="hits">1</span>
1851
-
1852
-
1853
-
1854
-
1855
- <code class="ruby"> ssh_command += &#39; -p &#39; + node.port.to_s</code>
1856
- </li>
1857
- </div>
1858
-
1859
- <div>
1860
- <li class="never" data-hits="" data-linenumber="42">
1861
-
1862
-
1863
-
1864
-
1865
-
1866
- <code class="ruby"> end</code>
1867
- </li>
1868
- </div>
1869
-
1870
- <div>
1871
- <li class="covered" data-hits="1" data-linenumber="43">
1872
- <span class="hits">1</span>
1873
-
1874
-
1875
-
1876
-
1877
- <code class="ruby"> if ssh_command == &#39;ssh&#39;</code>
1878
- </li>
1879
- </div>
1880
-
1881
- <div>
1882
- <li class="missed" data-hits="0" data-linenumber="44">
1883
-
1884
-
1885
-
1886
-
1887
-
1888
- <code class="ruby"> []</code>
1889
- </li>
1890
- </div>
1891
-
1892
- <div>
1893
- <li class="never" data-hits="" data-linenumber="45">
1894
-
1895
-
1896
-
1897
-
1898
-
1899
- <code class="ruby"> else</code>
1900
- </li>
1901
- </div>
1902
-
1903
- <div>
1904
- <li class="covered" data-hits="1" data-linenumber="46">
1905
- <span class="hits">1</span>
1906
-
1907
-
1908
-
1909
-
1910
- <code class="ruby"> [&#39;-e&#39;, ssh_command]</code>
1911
- </li>
1912
- </div>
1913
-
1914
- <div>
1915
- <li class="never" data-hits="" data-linenumber="47">
1916
-
1917
-
1918
-
1919
-
1920
-
1921
- <code class="ruby"> end</code>
1922
- </li>
1923
- </div>
1924
-
1925
- <div>
1926
- <li class="never" data-hits="" data-linenumber="48">
1927
-
1928
-
1929
-
1930
-
1931
-
1932
- <code class="ruby"> end</code>
1933
- </li>
1934
- </div>
1935
-
1936
- <div>
1937
- <li class="never" data-hits="" data-linenumber="49">
1938
-
1939
-
1940
-
1941
-
1942
-
1943
- <code class="ruby"> end</code>
1944
- </li>
1945
- </div>
1946
-
1947
- <div>
1948
- <li class="never" data-hits="" data-linenumber="50">
1949
-
1950
-
1951
-
1952
-
1953
-
1954
- <code class="ruby"></code>
1955
- </li>
1956
- </div>
1957
-
1958
- <div>
1959
- <li class="covered" data-hits="1" data-linenumber="51">
1960
- <span class="hits">1</span>
1961
-
1962
-
1963
-
1964
-
1965
- <code class="ruby"> def ssh_config</code>
1966
- </li>
1967
- </div>
1968
-
1969
- <div>
1970
- <li class="covered" data-hits="5" data-linenumber="52">
1971
- <span class="hits">5</span>
1972
-
1973
-
1974
-
1975
-
1976
- <code class="ruby"> File.exist?(ssh_config_file) &amp;&amp; [&#39;-F&#39;, ssh_config_file] || []</code>
1977
- </li>
1978
- </div>
1979
-
1980
- <div>
1981
- <li class="never" data-hits="" data-linenumber="53">
1982
-
1983
-
1984
-
1985
-
1986
-
1987
- <code class="ruby"> end</code>
1988
- </li>
1989
- </div>
1990
-
1991
- <div>
1992
- <li class="never" data-hits="" data-linenumber="54">
1993
-
1994
-
1995
-
1996
-
1997
-
1998
- <code class="ruby"></code>
1999
- </li>
2000
- </div>
2001
-
2002
- <div>
2003
- <li class="covered" data-hits="1" data-linenumber="55">
2004
- <span class="hits">1</span>
2005
-
2006
-
2007
-
2008
-
2009
- <code class="ruby"> def ssh_config_file</code>
2010
- </li>
2011
- </div>
2012
-
2013
- <div>
2014
- <li class="covered" data-hits="6" data-linenumber="56">
2015
- <span class="hits">6</span>
2016
-
2017
-
2018
-
2019
-
2020
- <code class="ruby"> @ssh_config_file ||= ENV.fetch(&#39;CHAKE_SSH_CONFIG&#39;, &#39;.ssh_config&#39;)</code>
2021
- </li>
2022
- </div>
2023
-
2024
- <div>
2025
- <li class="never" data-hits="" data-linenumber="57">
2026
-
2027
-
2028
-
2029
-
2030
-
2031
- <code class="ruby"> end</code>
2032
- </li>
2033
- </div>
2034
-
2035
- <div>
2036
- <li class="never" data-hits="" data-linenumber="58">
2037
-
2038
-
2039
-
2040
-
2041
-
2042
- <code class="ruby"></code>
2043
- </li>
2044
- </div>
2045
-
2046
- <div>
2047
- <li class="covered" data-hits="1" data-linenumber="59">
2048
- <span class="hits">1</span>
2049
-
2050
-
2051
-
2052
-
2053
- <code class="ruby"> def ssh_prefix</code>
2054
- </li>
2055
- </div>
2056
-
2057
- <div>
2058
- <li class="covered" data-hits="4" data-linenumber="60">
2059
- <span class="hits">4</span>
2060
-
2061
-
2062
-
2063
-
2064
- <code class="ruby"> @ssh_prefix ||= ENV.fetch(&#39;CHAKE_SSH_PREFIX&#39;, &#39;&#39;).split</code>
2065
- </li>
2066
- </div>
2067
-
2068
- <div>
2069
- <li class="never" data-hits="" data-linenumber="61">
2070
-
2071
-
2072
-
2073
-
2074
-
2075
- <code class="ruby"> end</code>
2076
- </li>
2077
- </div>
2078
-
2079
- <div>
2080
- <li class="never" data-hits="" data-linenumber="62">
2081
-
2082
-
2083
-
2084
-
2085
-
2086
- <code class="ruby"></code>
2087
- </li>
2088
- </div>
2089
-
2090
- <div>
2091
- <li class="covered" data-hits="1" data-linenumber="63">
2092
- <span class="hits">1</span>
2093
-
2094
-
2095
-
2096
-
2097
- <code class="ruby"> def ssh_target</code>
2098
- </li>
2099
- </div>
2100
-
2101
- <div>
2102
- <li class="covered" data-hits="5" data-linenumber="64">
2103
- <span class="hits">5</span>
2104
-
2105
-
2106
-
2107
-
2108
- <code class="ruby"> [node.remote_username, node.hostname].compact.join(&#39;@&#39;)</code>
2109
- </li>
2110
- </div>
2111
-
2112
- <div>
2113
- <li class="never" data-hits="" data-linenumber="65">
2114
-
2115
-
2116
-
2117
-
2118
-
2119
- <code class="ruby"> end</code>
2120
- </li>
2121
- </div>
2122
-
2123
- <div>
2124
- <li class="never" data-hits="" data-linenumber="66">
2125
-
2126
-
2127
-
2128
-
2129
-
2130
- <code class="ruby"></code>
2131
- </li>
2132
- </div>
2133
-
2134
- <div>
2135
- <li class="covered" data-hits="1" data-linenumber="67">
2136
- <span class="hits">1</span>
2137
-
2138
-
2139
-
2140
-
2141
- <code class="ruby"> def ssh_options</code>
2142
- </li>
2143
- </div>
2144
-
2145
- <div>
2146
- <li class="covered" data-hits="4" data-linenumber="68">
2147
- <span class="hits">4</span>
2148
-
2149
-
2150
-
2151
-
2152
- <code class="ruby"> node.port &amp;&amp; [&#39;-p&#39;, node.port.to_s] || []</code>
2153
- </li>
2154
- </div>
2155
-
2156
- <div>
2157
- <li class="never" data-hits="" data-linenumber="69">
2158
-
2159
-
2160
-
2161
-
2162
-
2163
- <code class="ruby"> end</code>
2164
- </li>
2165
- </div>
2166
-
2167
- <div>
2168
- <li class="never" data-hits="" data-linenumber="70">
2169
-
2170
-
2171
-
2172
-
2173
-
2174
- <code class="ruby"></code>
2175
- </li>
2176
- </div>
2177
-
2178
- <div>
2179
- <li class="covered" data-hits="1" data-linenumber="71">
2180
- <span class="hits">1</span>
2181
-
2182
-
2183
-
2184
-
2185
- <code class="ruby"> def scp_options</code>
2186
- </li>
2187
- </div>
2188
-
2189
- <div>
2190
- <li class="covered" data-hits="1" data-linenumber="72">
2191
- <span class="hits">1</span>
2192
-
2193
-
2194
-
2195
-
2196
- <code class="ruby"> node.port &amp;&amp; [&#39;-P&#39;, node.port.to_s] || []</code>
2197
- </li>
2198
- </div>
2199
-
2200
- <div>
2201
- <li class="never" data-hits="" data-linenumber="73">
2202
-
2203
-
2204
-
2205
-
2206
-
2207
- <code class="ruby"> end</code>
2208
- </li>
2209
- </div>
2210
-
2211
- <div>
2212
- <li class="never" data-hits="" data-linenumber="74">
2213
-
2214
-
2215
-
2216
-
2217
-
2218
- <code class="ruby"></code>
2219
- </li>
2220
- </div>
2221
-
2222
- <div>
2223
- <li class="never" data-hits="" data-linenumber="75">
2224
-
2225
-
2226
-
2227
-
2228
-
2229
- <code class="ruby"> end</code>
2230
- </li>
2231
- </div>
2232
-
2233
- <div>
2234
- <li class="never" data-hits="" data-linenumber="76">
2235
-
2236
-
2237
-
2238
-
2239
-
2240
- <code class="ruby"></code>
2241
- </li>
2242
- </div>
2243
-
2244
- <div>
2245
- <li class="never" data-hits="" data-linenumber="77">
2246
-
2247
-
2248
-
2249
-
2250
-
2251
- <code class="ruby"> end</code>
2252
- </li>
2253
- </div>
2254
-
2255
- <div>
2256
- <li class="never" data-hits="" data-linenumber="78">
2257
-
2258
-
2259
-
2260
-
2261
-
2262
- <code class="ruby"></code>
2263
- </li>
2264
- </div>
2265
-
2266
- <div>
2267
- <li class="never" data-hits="" data-linenumber="79">
2268
-
2269
-
2270
-
2271
-
2272
-
2273
- <code class="ruby">end</code>
2274
- </li>
2275
- </div>
2276
-
2277
- </ol>
2278
- </pre>
2279
- </div>
2280
-
2281
-
2282
- <div class="source_table" id="6f4df1f307637e63f54548e20e1b07ab4bb7f41c">
2283
- <div class="header">
2284
- <h3>lib/chake/node.rb</h3>
2285
- <h4>
2286
- <span class="green">
2287
- 100.0%
2288
- </span>
2289
-
2290
- lines covered
2291
- </h4>
2292
-
2293
-
2294
-
2295
- <div class="t-line-summary">
2296
- <b>35</b> relevant lines.
2297
- <span class="green"><b>35</b> lines covered</span> and
2298
- <span class="red"><b>0</b> lines missed.</span>
2299
- </div>
2300
-
2301
-
2302
-
2303
- </div>
2304
-
2305
- <pre>
2306
- <ol>
2307
-
2308
- <div>
2309
- <li class="covered" data-hits="1" data-linenumber="1">
2310
- <span class="hits">1</span>
2311
-
2312
-
2313
-
2314
-
2315
- <code class="ruby">require &#39;uri&#39;</code>
2316
- </li>
2317
- </div>
2318
-
2319
- <div>
2320
- <li class="covered" data-hits="1" data-linenumber="2">
2321
- <span class="hits">1</span>
2322
-
2323
-
2324
-
2325
-
2326
- <code class="ruby">require &#39;etc&#39;</code>
2327
- </li>
2328
- </div>
2329
-
2330
- <div>
2331
- <li class="covered" data-hits="1" data-linenumber="3">
2332
- <span class="hits">1</span>
2333
-
2334
-
2335
-
2336
-
2337
- <code class="ruby">require &#39;forwardable&#39;</code>
2338
- </li>
2339
- </div>
2340
-
2341
- <div>
2342
- <li class="never" data-hits="" data-linenumber="4">
2343
-
2344
-
2345
-
2346
-
2347
-
2348
- <code class="ruby"></code>
2349
- </li>
2350
- </div>
2351
-
2352
- <div>
2353
- <li class="covered" data-hits="1" data-linenumber="5">
2354
- <span class="hits">1</span>
2355
-
2356
-
2357
-
2358
-
2359
- <code class="ruby">require &#39;chake/backend&#39;</code>
2360
- </li>
2361
- </div>
2362
-
2363
- <div>
2364
- <li class="never" data-hits="" data-linenumber="6">
2365
-
2366
-
2367
-
2368
-
2369
-
2370
- <code class="ruby"></code>
2371
- </li>
2372
- </div>
2373
-
2374
- <div>
2375
- <li class="covered" data-hits="1" data-linenumber="7">
2376
- <span class="hits">1</span>
2377
-
2378
-
2379
-
2380
-
2381
- <code class="ruby">module Chake</code>
2382
- </li>
2383
- </div>
2384
-
2385
- <div>
2386
- <li class="never" data-hits="" data-linenumber="8">
2387
-
2388
-
2389
-
2390
-
2391
-
2392
- <code class="ruby"></code>
2393
- </li>
2394
- </div>
2395
-
2396
- <div>
2397
- <li class="covered" data-hits="1" data-linenumber="9">
2398
- <span class="hits">1</span>
2399
-
2400
-
2401
-
2402
-
2403
- <code class="ruby"> class Node</code>
2404
- </li>
2405
- </div>
2406
-
2407
- <div>
2408
- <li class="never" data-hits="" data-linenumber="10">
2409
-
2410
-
2411
-
2412
-
2413
-
2414
- <code class="ruby"></code>
2415
- </li>
2416
- </div>
2417
-
2418
- <div>
2419
- <li class="covered" data-hits="1" data-linenumber="11">
2420
- <span class="hits">1</span>
2421
-
2422
-
2423
-
2424
-
2425
- <code class="ruby"> extend Forwardable</code>
2426
- </li>
2427
- </div>
2428
-
2429
- <div>
2430
- <li class="never" data-hits="" data-linenumber="12">
2431
-
2432
-
2433
-
2434
-
2435
-
2436
- <code class="ruby"></code>
2437
- </li>
2438
- </div>
2439
-
2440
- <div>
2441
- <li class="covered" data-hits="1" data-linenumber="13">
2442
- <span class="hits">1</span>
2443
-
2444
-
2445
-
2446
-
2447
- <code class="ruby"> attr_reader :hostname</code>
2448
- </li>
2449
- </div>
2450
-
2451
- <div>
2452
- <li class="covered" data-hits="1" data-linenumber="14">
2453
- <span class="hits">1</span>
2454
-
2455
-
2456
-
2457
-
2458
- <code class="ruby"> attr_reader :port</code>
2459
- </li>
2460
- </div>
2461
-
2462
- <div>
2463
- <li class="covered" data-hits="1" data-linenumber="15">
2464
- <span class="hits">1</span>
2465
-
2466
-
2467
-
2468
-
2469
- <code class="ruby"> attr_reader :username</code>
2470
- </li>
2471
- </div>
2472
-
2473
- <div>
2474
- <li class="covered" data-hits="1" data-linenumber="16">
2475
- <span class="hits">1</span>
2476
-
2477
-
2478
-
2479
-
2480
- <code class="ruby"> attr_reader :remote_username</code>
2481
- </li>
2482
- </div>
2483
-
2484
- <div>
2485
- <li class="covered" data-hits="1" data-linenumber="17">
2486
- <span class="hits">1</span>
2487
-
2488
-
2489
-
2490
-
2491
- <code class="ruby"> attr_reader :path</code>
2492
- </li>
2493
- </div>
2494
-
2495
- <div>
2496
- <li class="covered" data-hits="1" data-linenumber="18">
2497
- <span class="hits">1</span>
2498
-
2499
-
2500
-
2501
-
2502
- <code class="ruby"> attr_reader :data</code>
2503
- </li>
2504
- </div>
2505
-
2506
- <div>
2507
- <li class="never" data-hits="" data-linenumber="19">
2508
-
2509
-
2510
-
2511
-
2512
-
2513
- <code class="ruby"></code>
2514
- </li>
2515
- </div>
2516
-
2517
- <div>
2518
- <li class="covered" data-hits="1" data-linenumber="20">
2519
- <span class="hits">1</span>
2520
-
2521
-
2522
-
2523
-
2524
- <code class="ruby"> def self.max_node_name_length</code>
2525
- </li>
2526
- </div>
2527
-
2528
- <div>
2529
- <li class="covered" data-hits="36" data-linenumber="21">
2530
- <span class="hits">36</span>
2531
-
2532
-
2533
-
2534
-
2535
- <code class="ruby"> @max_node_name_length ||= 0</code>
2536
- </li>
2537
- </div>
2538
-
2539
- <div>
2540
- <li class="never" data-hits="" data-linenumber="22">
2541
-
2542
-
2543
-
2544
-
2545
-
2546
- <code class="ruby"> end</code>
2547
- </li>
2548
- </div>
2549
-
2550
- <div>
2551
- <li class="covered" data-hits="1" data-linenumber="23">
2552
- <span class="hits">1</span>
2553
-
2554
-
2555
-
2556
-
2557
- <code class="ruby"> def self.max_node_name_length=(value)</code>
2558
- </li>
2559
- </div>
2560
-
2561
- <div>
2562
- <li class="covered" data-hits="3" data-linenumber="24">
2563
- <span class="hits">3</span>
2564
-
2565
-
2566
-
2567
-
2568
- <code class="ruby"> @max_node_name_length = value</code>
2569
- </li>
2570
- </div>
2571
-
2572
- <div>
2573
- <li class="never" data-hits="" data-linenumber="25">
2574
-
2575
-
2576
-
2577
-
2578
-
2579
- <code class="ruby"> end</code>
2580
- </li>
2581
- </div>
2582
-
2583
- <div>
2584
- <li class="never" data-hits="" data-linenumber="26">
2585
-
2586
-
2587
-
2588
-
2589
-
2590
- <code class="ruby"></code>
2591
- </li>
2592
- </div>
2593
-
2594
- <div>
2595
- <li class="covered" data-hits="1" data-linenumber="27">
2596
- <span class="hits">1</span>
2597
-
2598
-
2599
-
2600
-
2601
- <code class="ruby"> def initialize(hostname, data = {})</code>
2602
- </li>
2603
- </div>
2604
-
2605
- <div>
2606
- <li class="covered" data-hits="30" data-linenumber="28">
2607
- <span class="hits">30</span>
2608
-
2609
-
2610
-
2611
-
2612
- <code class="ruby"> uri = URI.parse(hostname)</code>
2613
- </li>
2614
- </div>
2615
-
2616
- <div>
2617
- <li class="covered" data-hits="30" data-linenumber="29">
2618
- <span class="hits">30</span>
2619
-
2620
-
2621
-
2622
-
2623
- <code class="ruby"> if !uri.host &amp;&amp; ((!uri.scheme &amp;&amp; uri.path) || (uri.scheme &amp;&amp; uri.opaque))</code>
2624
- </li>
2625
- </div>
2626
-
2627
- <div>
2628
- <li class="covered" data-hits="11" data-linenumber="30">
2629
- <span class="hits">11</span>
2630
-
2631
-
2632
-
2633
-
2634
- <code class="ruby"> uri = URI.parse(&quot;ssh://#{hostname}&quot;)</code>
2635
- </li>
2636
- </div>
2637
-
2638
- <div>
2639
- <li class="never" data-hits="" data-linenumber="31">
2640
-
2641
-
2642
-
2643
-
2644
-
2645
- <code class="ruby"> end</code>
2646
- </li>
2647
- </div>
2648
-
2649
- <div>
2650
- <li class="covered" data-hits="30" data-linenumber="32">
2651
- <span class="hits">30</span>
2652
-
2653
-
2654
-
2655
-
2656
- <code class="ruby"> if uri.path &amp;&amp; uri.path.empty?</code>
2657
- </li>
2658
- </div>
2659
-
2660
- <div>
2661
- <li class="covered" data-hits="18" data-linenumber="33">
2662
- <span class="hits">18</span>
2663
-
2664
-
2665
-
2666
-
2667
- <code class="ruby"> uri.path = nil</code>
2668
- </li>
2669
- </div>
2670
-
2671
- <div>
2672
- <li class="never" data-hits="" data-linenumber="34">
2673
-
2674
-
2675
-
2676
-
2677
-
2678
- <code class="ruby"> end</code>
2679
- </li>
2680
- </div>
2681
-
2682
- <div>
2683
- <li class="never" data-hits="" data-linenumber="35">
2684
-
2685
-
2686
-
2687
-
2688
-
2689
- <code class="ruby"></code>
2690
- </li>
2691
- </div>
2692
-
2693
- <div>
2694
- <li class="covered" data-hits="30" data-linenumber="36">
2695
- <span class="hits">30</span>
2696
-
2697
-
2698
-
2699
-
2700
- <code class="ruby"> @backend_name = uri.scheme</code>
2701
- </li>
2702
- </div>
2703
-
2704
- <div>
2705
- <li class="never" data-hits="" data-linenumber="37">
2706
-
2707
-
2708
-
2709
-
2710
-
2711
- <code class="ruby"></code>
2712
- </li>
2713
- </div>
2714
-
2715
- <div>
2716
- <li class="covered" data-hits="30" data-linenumber="38">
2717
- <span class="hits">30</span>
2718
-
2719
-
2720
-
2721
-
2722
- <code class="ruby"> @hostname = uri.host</code>
2723
- </li>
2724
- </div>
2725
-
2726
- <div>
2727
- <li class="covered" data-hits="30" data-linenumber="39">
2728
- <span class="hits">30</span>
2729
-
2730
-
2731
-
2732
-
2733
- <code class="ruby"> @port = uri.port</code>
2734
- </li>
2735
- </div>
2736
-
2737
- <div>
2738
- <li class="covered" data-hits="30" data-linenumber="40">
2739
- <span class="hits">30</span>
2740
-
2741
-
2742
-
2743
-
2744
- <code class="ruby"> @username = uri.user || Etc.getpwuid.name</code>
2745
- </li>
2746
- </div>
2747
-
2748
- <div>
2749
- <li class="covered" data-hits="30" data-linenumber="41">
2750
- <span class="hits">30</span>
2751
-
2752
-
2753
-
2754
-
2755
- <code class="ruby"> @remote_username = uri.user</code>
2756
- </li>
2757
- </div>
2758
-
2759
- <div>
2760
- <li class="covered" data-hits="30" data-linenumber="42">
2761
- <span class="hits">30</span>
2762
-
2763
-
2764
-
2765
-
2766
- <code class="ruby"> @path = uri.path || &quot;/var/tmp/chef.#{username}&quot;</code>
2767
- </li>
2768
- </div>
2769
-
2770
- <div>
2771
- <li class="covered" data-hits="30" data-linenumber="43">
2772
- <span class="hits">30</span>
2773
-
2774
-
2775
-
2776
-
2777
- <code class="ruby"> @data = data</code>
2778
- </li>
2779
- </div>
2780
-
2781
- <div>
2782
- <li class="never" data-hits="" data-linenumber="44">
2783
-
2784
-
2785
-
2786
-
2787
-
2788
- <code class="ruby"></code>
2789
- </li>
2790
- </div>
2791
-
2792
- <div>
2793
- <li class="covered" data-hits="30" data-linenumber="45">
2794
- <span class="hits">30</span>
2795
-
2796
-
2797
-
2798
-
2799
- <code class="ruby"> if @hostname.length &gt; self.class.max_node_name_length</code>
2800
- </li>
2801
- </div>
2802
-
2803
- <div>
2804
- <li class="covered" data-hits="3" data-linenumber="46">
2805
- <span class="hits">3</span>
2806
-
2807
-
2808
-
2809
-
2810
- <code class="ruby"> self.class.max_node_name_length = @hostname.length</code>
2811
- </li>
2812
- </div>
2813
-
2814
- <div>
2815
- <li class="never" data-hits="" data-linenumber="47">
2816
-
2817
-
2818
-
2819
-
2820
-
2821
- <code class="ruby"> end</code>
2822
- </li>
2823
- </div>
2824
-
2825
- <div>
2826
- <li class="never" data-hits="" data-linenumber="48">
2827
-
2828
-
2829
-
2830
-
2831
-
2832
- <code class="ruby"> end</code>
2833
- </li>
2834
- </div>
2835
-
2836
- <div>
2837
- <li class="never" data-hits="" data-linenumber="49">
2838
-
2839
-
2840
-
2841
-
2842
-
2843
- <code class="ruby"></code>
2844
- </li>
2845
- </div>
2846
-
2847
- <div>
2848
- <li class="covered" data-hits="1" data-linenumber="50">
2849
- <span class="hits">1</span>
2850
-
2851
-
2852
-
2853
-
2854
- <code class="ruby"> def backend</code>
2855
- </li>
2856
- </div>
2857
-
2858
- <div>
2859
- <li class="covered" data-hits="6" data-linenumber="51">
2860
- <span class="hits">6</span>
2861
-
2862
-
2863
-
2864
-
2865
- <code class="ruby"> @backend ||= Chake::Backend.get(@backend_name).new(self)</code>
2866
- </li>
2867
- </div>
2868
-
2869
- <div>
2870
- <li class="never" data-hits="" data-linenumber="52">
2871
-
2872
-
2873
-
2874
-
2875
-
2876
- <code class="ruby"> end</code>
2877
- </li>
2878
- </div>
2879
-
2880
- <div>
2881
- <li class="never" data-hits="" data-linenumber="53">
2882
-
2883
-
2884
-
2885
-
2886
-
2887
- <code class="ruby"></code>
2888
- </li>
2889
- </div>
2890
-
2891
- <div>
2892
- <li class="covered" data-hits="1" data-linenumber="54">
2893
- <span class="hits">1</span>
2894
-
2895
-
2896
-
2897
-
2898
- <code class="ruby"> def_delegators :backend, :run, :run_as_root, :run_shell, :rsync, :rsync_dest, :scp, :scp_dest, :skip?</code>
2899
- </li>
2900
- </div>
2901
-
2902
- <div>
2903
- <li class="never" data-hits="" data-linenumber="55">
2904
-
2905
-
2906
-
2907
-
2908
-
2909
- <code class="ruby"></code>
2910
- </li>
2911
- </div>
2912
-
2913
- <div>
2914
- <li class="never" data-hits="" data-linenumber="56">
2915
-
2916
-
2917
-
2918
-
2919
-
2920
- <code class="ruby"> end</code>
2921
- </li>
2922
- </div>
2923
-
2924
- <div>
2925
- <li class="never" data-hits="" data-linenumber="57">
2926
-
2927
-
2928
-
2929
-
2930
-
2931
- <code class="ruby"></code>
2932
- </li>
2933
- </div>
2934
-
2935
- <div>
2936
- <li class="never" data-hits="" data-linenumber="58">
2937
-
2938
-
2939
-
2940
-
2941
-
2942
- <code class="ruby">end</code>
2943
- </li>
2944
- </div>
2945
-
2946
- <div>
2947
- <li class="never" data-hits="" data-linenumber="59">
2948
-
2949
-
2950
-
2951
-
2952
-
2953
- <code class="ruby"></code>
2954
- </li>
2955
- </div>
2956
-
2957
- </ol>
2958
- </pre>
2959
- </div>
2960
-
2961
-
2962
- <div class="source_table" id="0b638ba835c7b1f7ced9cfc83771b9405879de96">
2963
- <div class="header">
2964
- <h3>spec/chake/backend/ssh_spec.rb</h3>
2965
- <h4>
2966
- <span class="green">
2967
- 100.0%
2968
- </span>
2969
-
2970
- lines covered
2971
- </h4>
2972
-
2973
-
2974
-
2975
- <div class="t-line-summary">
2976
- <b>21</b> relevant lines.
2977
- <span class="green"><b>21</b> lines covered</span> and
2978
- <span class="red"><b>0</b> lines missed.</span>
2979
- </div>
2980
-
2981
-
2982
-
2983
- </div>
2984
-
2985
- <pre>
2986
- <ol>
2987
-
2988
- <div>
2989
- <li class="covered" data-hits="1" data-linenumber="1">
2990
- <span class="hits">1</span>
2991
-
2992
-
2993
-
2994
-
2995
- <code class="ruby">require &#39;spec_helper&#39;</code>
2996
- </li>
2997
- </div>
2998
-
2999
- <div>
3000
- <li class="never" data-hits="" data-linenumber="2">
3001
-
3002
-
3003
-
3004
-
3005
-
3006
- <code class="ruby"></code>
3007
- </li>
3008
- </div>
3009
-
3010
- <div>
3011
- <li class="covered" data-hits="1" data-linenumber="3">
3012
- <span class="hits">1</span>
3013
-
3014
-
3015
-
3016
-
3017
- <code class="ruby">describe Chake::Backend::Ssh do</code>
3018
- </li>
3019
- </div>
3020
-
3021
- <div>
3022
- <li class="never" data-hits="" data-linenumber="4">
3023
-
3024
-
3025
-
3026
-
3027
-
3028
- <code class="ruby"></code>
3029
- </li>
3030
- </div>
3031
-
3032
- <div>
3033
- <li class="covered" data-hits="1" data-linenumber="5">
3034
- <span class="hits">1</span>
3035
-
3036
-
3037
-
3038
-
3039
- <code class="ruby"> include_examples &quot;Chake::Backend&quot;, Chake::Backend::Ssh</code>
3040
- </li>
3041
- </div>
3042
-
3043
- <div>
3044
- <li class="never" data-hits="" data-linenumber="6">
3045
-
3046
-
3047
-
3048
-
3049
-
3050
- <code class="ruby"></code>
3051
- </li>
3052
- </div>
3053
-
3054
- <div>
3055
- <li class="covered" data-hits="7" data-linenumber="7">
3056
- <span class="hits">7</span>
3057
-
3058
-
3059
-
3060
-
3061
- <code class="ruby"> let(:node) { Chake::Node.new(&#39;ssh://myuser@myhost/srv/chef&#39;) }</code>
3062
- </li>
3063
- </div>
3064
-
3065
- <div>
3066
- <li class="never" data-hits="" data-linenumber="8">
3067
-
3068
-
3069
-
3070
-
3071
-
3072
- <code class="ruby"></code>
3073
- </li>
3074
- </div>
3075
-
3076
- <div>
3077
- <li class="covered" data-hits="2" data-linenumber="9">
3078
- <span class="hits">2</span>
3079
-
3080
-
3081
-
3082
-
3083
- <code class="ruby"> it(&#39;runs commands with ssh&#39;) { expect(backend.command_runner).to eq([&#39;ssh&#39;, &#39;myuser@myhost&#39;]) }</code>
3084
- </li>
3085
- </div>
3086
-
3087
- <div>
3088
- <li class="never" data-hits="" data-linenumber="10">
3089
-
3090
-
3091
-
3092
-
3093
-
3094
- <code class="ruby"></code>
3095
- </li>
3096
- </div>
3097
-
3098
- <div>
3099
- <li class="covered" data-hits="2" data-linenumber="11">
3100
- <span class="hits">2</span>
3101
-
3102
-
3103
-
3104
-
3105
- <code class="ruby"> it(&#39;rsyncs over ssh&#39;) { expect(backend.rsync_dest).to eq(&#39;myuser@myhost:/srv/chef/&#39;) }</code>
3106
- </li>
3107
- </div>
3108
-
3109
- <div>
3110
- <li class="never" data-hits="" data-linenumber="12">
3111
-
3112
-
3113
-
3114
-
3115
-
3116
- <code class="ruby"></code>
3117
- </li>
3118
- </div>
3119
-
3120
- <div>
3121
- <li class="covered" data-hits="1" data-linenumber="13">
3122
- <span class="hits">1</span>
3123
-
3124
-
3125
-
3126
-
3127
- <code class="ruby"> it &#39;uses no remote username if none was passed&#39; do</code>
3128
- </li>
3129
- </div>
3130
-
3131
- <div>
3132
- <li class="covered" data-hits="1" data-linenumber="14">
3133
- <span class="hits">1</span>
3134
-
3135
-
3136
-
3137
-
3138
- <code class="ruby"> node = Chake::Node.new(&#39;theserver&#39;)</code>
3139
- </li>
3140
- </div>
3141
-
3142
- <div>
3143
- <li class="covered" data-hits="1" data-linenumber="15">
3144
- <span class="hits">1</span>
3145
-
3146
-
3147
-
3148
-
3149
- <code class="ruby"> expect(node.username).to eq(Etc.getpwuid.name)</code>
3150
- </li>
3151
- </div>
3152
-
3153
- <div>
3154
- <li class="covered" data-hits="1" data-linenumber="16">
3155
- <span class="hits">1</span>
3156
-
3157
-
3158
-
3159
-
3160
- <code class="ruby"> expect(node.remote_username).to be_nil</code>
3161
- </li>
3162
- </div>
3163
-
3164
- <div>
3165
- <li class="never" data-hits="" data-linenumber="17">
3166
-
3167
-
3168
-
3169
-
3170
-
3171
- <code class="ruby"> end</code>
3172
- </li>
3173
- </div>
3174
-
3175
- <div>
3176
- <li class="never" data-hits="" data-linenumber="18">
3177
-
3178
-
3179
-
3180
-
3181
-
3182
- <code class="ruby"></code>
3183
- </li>
3184
- </div>
3185
-
3186
- <div>
3187
- <li class="covered" data-hits="1" data-linenumber="19">
3188
- <span class="hits">1</span>
3189
-
3190
-
3191
-
3192
-
3193
- <code class="ruby"> it &#39;uses username is passwd&#39; do</code>
3194
- </li>
3195
- </div>
3196
-
3197
- <div>
3198
- <li class="covered" data-hits="1" data-linenumber="20">
3199
- <span class="hits">1</span>
3200
-
3201
-
3202
-
3203
-
3204
- <code class="ruby"> expect(node.username).to eq(&#39;myuser&#39;)</code>
3205
- </li>
3206
- </div>
3207
-
3208
- <div>
3209
- <li class="covered" data-hits="1" data-linenumber="21">
3210
- <span class="hits">1</span>
3211
-
3212
-
3213
-
3214
-
3215
- <code class="ruby"> expect(node.remote_username).to eq(&#39;myuser&#39;)</code>
3216
- </li>
3217
- </div>
3218
-
3219
- <div>
3220
- <li class="never" data-hits="" data-linenumber="22">
3221
-
3222
-
3223
-
3224
-
3225
-
3226
- <code class="ruby"> end</code>
3227
- </li>
3228
- </div>
3229
-
3230
- <div>
3231
- <li class="never" data-hits="" data-linenumber="23">
3232
-
3233
-
3234
-
3235
-
3236
-
3237
- <code class="ruby"></code>
3238
- </li>
3239
- </div>
3240
-
3241
- <div>
3242
- <li class="covered" data-hits="1" data-linenumber="24">
3243
- <span class="hits">1</span>
3244
-
3245
-
3246
-
3247
-
3248
- <code class="ruby"> context &#39;with a custom port&#39; do</code>
3249
- </li>
3250
- </div>
3251
-
3252
- <div>
3253
- <li class="covered" data-hits="4" data-linenumber="25">
3254
- <span class="hits">4</span>
3255
-
3256
-
3257
-
3258
-
3259
- <code class="ruby"> let(:node) { Chake::Node.new(&#39;ssh://myhost:2222&#39;) }</code>
3260
- </li>
3261
- </div>
3262
-
3263
- <div>
3264
- <li class="covered" data-hits="1" data-linenumber="26">
3265
- <span class="hits">1</span>
3266
-
3267
-
3268
-
3269
-
3270
- <code class="ruby"> it &#39;uses port with ssh&#39; do</code>
3271
- </li>
3272
- </div>
3273
-
3274
- <div>
3275
- <li class="covered" data-hits="1" data-linenumber="27">
3276
- <span class="hits">1</span>
3277
-
3278
-
3279
-
3280
-
3281
- <code class="ruby"> expect(backend.command_runner).to eq([&#39;ssh&#39;, &#39;-p&#39;, &#39;2222&#39;, &#39;myhost&#39;])</code>
3282
- </li>
3283
- </div>
3284
-
3285
- <div>
3286
- <li class="never" data-hits="" data-linenumber="28">
3287
-
3288
-
3289
-
3290
-
3291
-
3292
- <code class="ruby"> end</code>
3293
- </li>
3294
- </div>
3295
-
3296
- <div>
3297
- <li class="covered" data-hits="1" data-linenumber="29">
3298
- <span class="hits">1</span>
3299
-
3300
-
3301
-
3302
-
3303
- <code class="ruby"> it &#39;uses port with scp&#39; do</code>
3304
- </li>
3305
- </div>
3306
-
3307
- <div>
3308
- <li class="covered" data-hits="1" data-linenumber="30">
3309
- <span class="hits">1</span>
3310
-
3311
-
3312
-
3313
-
3314
- <code class="ruby"> expect(backend.scp).to eq([&#39;scp&#39;, &#39;-P&#39;, &#39;2222&#39;])</code>
3315
- </li>
3316
- </div>
3317
-
3318
- <div>
3319
- <li class="never" data-hits="" data-linenumber="31">
3320
-
3321
-
3322
-
3323
-
3324
-
3325
- <code class="ruby"> end</code>
3326
- </li>
3327
- </div>
3328
-
3329
- <div>
3330
- <li class="covered" data-hits="1" data-linenumber="32">
3331
- <span class="hits">1</span>
3332
-
3333
-
3334
-
3335
-
3336
- <code class="ruby"> it &#39;uses port with rsync&#39; do</code>
3337
- </li>
3338
- </div>
3339
-
3340
- <div>
3341
- <li class="covered" data-hits="1" data-linenumber="33">
3342
- <span class="hits">1</span>
3343
-
3344
-
3345
-
3346
-
3347
- <code class="ruby"> expect(backend.send(:rsync_ssh)).to eq([&#39;-e&#39;, &#39;ssh -p 2222&#39;])</code>
3348
- </li>
3349
- </div>
3350
-
3351
- <div>
3352
- <li class="never" data-hits="" data-linenumber="34">
3353
-
3354
-
3355
-
3356
-
3357
-
3358
- <code class="ruby"> end</code>
3359
- </li>
3360
- </div>
3361
-
3362
- <div>
3363
- <li class="never" data-hits="" data-linenumber="35">
3364
-
3365
-
3366
-
3367
-
3368
-
3369
- <code class="ruby"> end</code>
3370
- </li>
3371
- </div>
3372
-
3373
- <div>
3374
- <li class="never" data-hits="" data-linenumber="36">
3375
-
3376
-
3377
-
3378
-
3379
-
3380
- <code class="ruby"></code>
3381
- </li>
3382
- </div>
3383
-
3384
- <div>
3385
- <li class="never" data-hits="" data-linenumber="37">
3386
-
3387
-
3388
-
3389
-
3390
-
3391
- <code class="ruby">end</code>
3392
- </li>
3393
- </div>
3394
-
3395
- </ol>
3396
- </pre>
3397
- </div>
3398
-
3399
-
3400
- <div class="source_table" id="ac8821762e582e387630f20ab79b98f4f5a7f7d3">
3401
- <div class="header">
3402
- <h3>spec/chake/backend_spec.rb</h3>
3403
- <h4>
3404
- <span class="green">
3405
- 100.0%
3406
- </span>
3407
-
3408
- lines covered
3409
- </h4>
3410
-
3411
-
3412
-
3413
- <div class="t-line-summary">
3414
- <b>1</b> relevant lines.
3415
- <span class="green"><b>1</b> lines covered</span> and
3416
- <span class="red"><b>0</b> lines missed.</span>
3417
- </div>
3418
-
3419
-
3420
-
3421
- </div>
3422
-
3423
- <pre>
3424
- <ol>
3425
-
3426
- <div>
3427
- <li class="covered" data-hits="1" data-linenumber="1">
3428
- <span class="hits">1</span>
3429
-
3430
-
3431
-
3432
-
3433
- <code class="ruby">require &#39;chake/backend&#39;</code>
3434
- </li>
3435
- </div>
3436
-
3437
- <div>
3438
- <li class="never" data-hits="" data-linenumber="2">
3439
-
3440
-
3441
-
3442
-
3443
-
3444
- <code class="ruby"></code>
3445
- </li>
3446
- </div>
3447
-
3448
- </ol>
3449
- </pre>
3450
- </div>
3451
-
3452
-
3453
- <div class="source_table" id="a7d8a97d1649246ed1998a061b28bf4fd79b767a">
3454
- <div class="header">
3455
- <h3>spec/chake/node_spec.rb</h3>
3456
- <h4>
3457
- <span class="green">
3458
- 100.0%
3459
- </span>
3460
-
3461
- lines covered
3462
- </h4>
3463
-
3464
-
3465
-
3466
- <div class="t-line-summary">
3467
- <b>38</b> relevant lines.
3468
- <span class="green"><b>38</b> lines covered</span> and
3469
- <span class="red"><b>0</b> lines missed.</span>
3470
- </div>
3471
-
3472
-
3473
-
3474
- </div>
3475
-
3476
- <pre>
3477
- <ol>
3478
-
3479
- <div>
3480
- <li class="covered" data-hits="1" data-linenumber="1">
3481
- <span class="hits">1</span>
3482
-
3483
-
3484
-
3485
-
3486
- <code class="ruby">require &#39;chake/node&#39;</code>
3487
- </li>
3488
- </div>
3489
-
3490
- <div>
3491
- <li class="never" data-hits="" data-linenumber="2">
3492
-
3493
-
3494
-
3495
-
3496
-
3497
- <code class="ruby"></code>
3498
- </li>
3499
- </div>
3500
-
3501
- <div>
3502
- <li class="covered" data-hits="1" data-linenumber="3">
3503
- <span class="hits">1</span>
3504
-
3505
-
3506
-
3507
-
3508
- <code class="ruby">describe Chake::Node do</code>
3509
- </li>
3510
- </div>
3511
-
3512
- <div>
3513
- <li class="never" data-hits="" data-linenumber="4">
3514
-
3515
-
3516
-
3517
-
3518
-
3519
- <code class="ruby"></code>
3520
- </li>
3521
- </div>
3522
-
3523
- <div>
3524
- <li class="covered" data-hits="1" data-linenumber="5">
3525
- <span class="hits">1</span>
3526
-
3527
-
3528
-
3529
-
3530
- <code class="ruby"> before do</code>
3531
- </li>
3532
- </div>
3533
-
3534
- <div>
3535
- <li class="covered" data-hits="14" data-linenumber="6">
3536
- <span class="hits">14</span>
3537
-
3538
-
3539
-
3540
-
3541
- <code class="ruby"> ent = double</code>
3542
- </li>
3543
- </div>
3544
-
3545
- <div>
3546
- <li class="covered" data-hits="14" data-linenumber="7">
3547
- <span class="hits">14</span>
3548
-
3549
-
3550
-
3551
-
3552
- <code class="ruby"> allow(ent).to receive(:name).and_return(&#39;jonhdoe&#39;)</code>
3553
- </li>
3554
- </div>
3555
-
3556
- <div>
3557
- <li class="covered" data-hits="14" data-linenumber="8">
3558
- <span class="hits">14</span>
3559
-
3560
-
3561
-
3562
-
3563
- <code class="ruby"> allow(Etc).to receive(:getpwuid).and_return(ent)</code>
3564
- </li>
3565
- </div>
3566
-
3567
- <div>
3568
- <li class="never" data-hits="" data-linenumber="9">
3569
-
3570
-
3571
-
3572
-
3573
-
3574
- <code class="ruby"> end</code>
3575
- </li>
3576
- </div>
3577
-
3578
- <div>
3579
- <li class="never" data-hits="" data-linenumber="10">
3580
-
3581
-
3582
-
3583
-
3584
-
3585
- <code class="ruby"></code>
3586
- </li>
3587
- </div>
3588
-
3589
- <div>
3590
- <li class="covered" data-hits="8" data-linenumber="11">
3591
- <span class="hits">8</span>
3592
-
3593
-
3594
-
3595
-
3596
- <code class="ruby"> let(:simple) { Chake::Node.new(&#39;hostname&#39;) }</code>
3597
- </li>
3598
- </div>
3599
-
3600
- <div>
3601
- <li class="covered" data-hits="2" data-linenumber="12">
3602
- <span class="hits">2</span>
3603
-
3604
-
3605
-
3606
-
3607
- <code class="ruby"> it(&#39;has a name&#39;) { expect(simple.hostname).to eq(&#39;hostname&#39;) }</code>
3608
- </li>
3609
- </div>
3610
-
3611
- <div>
3612
- <li class="covered" data-hits="2" data-linenumber="13">
3613
- <span class="hits">2</span>
3614
-
3615
-
3616
-
3617
-
3618
- <code class="ruby"> it(&#39;uses ssh by default&#39;) { expect(simple.backend).to be_an_instance_of(Chake::Backend::Ssh) }</code>
3619
- </li>
3620
- </div>
3621
-
3622
- <div>
3623
- <li class="covered" data-hits="1" data-linenumber="14">
3624
- <span class="hits">1</span>
3625
-
3626
-
3627
-
3628
-
3629
- <code class="ruby"> it(&#39;user current username by default&#39;) {</code>
3630
- </li>
3631
- </div>
3632
-
3633
- <div>
3634
- <li class="covered" data-hits="1" data-linenumber="15">
3635
- <span class="hits">1</span>
3636
-
3637
-
3638
-
3639
-
3640
- <code class="ruby"> expect(simple.username).to eq(&#39;jonhdoe&#39;)</code>
3641
- </li>
3642
- </div>
3643
-
3644
- <div>
3645
- <li class="never" data-hits="" data-linenumber="16">
3646
-
3647
-
3648
-
3649
-
3650
-
3651
- <code class="ruby"> }</code>
3652
- </li>
3653
- </div>
3654
-
3655
- <div>
3656
- <li class="covered" data-hits="1" data-linenumber="17">
3657
- <span class="hits">1</span>
3658
-
3659
-
3660
-
3661
-
3662
- <code class="ruby"> it(&#39;writes to /var/tmp/chef.$username&#39;) {</code>
3663
- </li>
3664
- </div>
3665
-
3666
- <div>
3667
- <li class="covered" data-hits="1" data-linenumber="18">
3668
- <span class="hits">1</span>
3669
-
3670
-
3671
-
3672
-
3673
- <code class="ruby"> expect(simple.path).to eq(&#39;/var/tmp/chef.jonhdoe&#39;)</code>
3674
- </li>
3675
- </div>
3676
-
3677
- <div>
3678
- <li class="never" data-hits="" data-linenumber="19">
3679
-
3680
-
3681
-
3682
-
3683
-
3684
- <code class="ruby"> }</code>
3685
- </li>
3686
- </div>
3687
-
3688
- <div>
3689
- <li class="never" data-hits="" data-linenumber="20">
3690
-
3691
-
3692
-
3693
-
3694
-
3695
- <code class="ruby"></code>
3696
- </li>
3697
- </div>
3698
-
3699
- <div>
3700
- <li class="covered" data-hits="3" data-linenumber="21">
3701
- <span class="hits">3</span>
3702
-
3703
-
3704
-
3705
-
3706
- <code class="ruby"> let(:with_username) { Chake::Node.new(&#39;username@hostname&#39;) }</code>
3707
- </li>
3708
- </div>
3709
-
3710
- <div>
3711
- <li class="covered" data-hits="2" data-linenumber="22">
3712
- <span class="hits">2</span>
3713
-
3714
-
3715
-
3716
-
3717
- <code class="ruby"> it(&#39;accepts username&#39;) { expect(with_username.username).to eq(&#39;username&#39;) }</code>
3718
- </li>
3719
- </div>
3720
-
3721
- <div>
3722
- <li class="covered" data-hits="2" data-linenumber="23">
3723
- <span class="hits">2</span>
3724
-
3725
-
3726
-
3727
-
3728
- <code class="ruby"> it(&#39;uses ssh&#39;) { expect(with_username.backend).to be_an_instance_of(Chake::Backend::Ssh) }</code>
3729
- </li>
3730
- </div>
3731
-
3732
- <div>
3733
- <li class="never" data-hits="" data-linenumber="24">
3734
-
3735
-
3736
-
3737
-
3738
-
3739
- <code class="ruby"></code>
3740
- </li>
3741
- </div>
3742
-
3743
- <div>
3744
- <li class="covered" data-hits="2" data-linenumber="25">
3745
- <span class="hits">2</span>
3746
-
3747
-
3748
-
3749
-
3750
- <code class="ruby"> let(:with_backend) { Chake::Node.new(&#39;local://hostname&#39;)}</code>
3751
- </li>
3752
- </div>
3753
-
3754
- <div>
3755
- <li class="covered" data-hits="2" data-linenumber="26">
3756
- <span class="hits">2</span>
3757
-
3758
-
3759
-
3760
-
3761
- <code class="ruby"> it(&#39;accepts backend as URI scheme&#39;) { expect(with_backend.backend).to be_an_instance_of(Chake::Backend::Local) }</code>
3762
- </li>
3763
- </div>
3764
-
3765
- <div>
3766
- <li class="never" data-hits="" data-linenumber="27">
3767
-
3768
-
3769
-
3770
-
3771
-
3772
- <code class="ruby"></code>
3773
- </li>
3774
- </div>
3775
-
3776
- <div>
3777
- <li class="covered" data-hits="1" data-linenumber="28">
3778
- <span class="hits">1</span>
3779
-
3780
-
3781
-
3782
-
3783
- <code class="ruby"> it(&#39;wont accept any backend&#39;) do</code>
3784
- </li>
3785
- </div>
3786
-
3787
- <div>
3788
- <li class="covered" data-hits="2" data-linenumber="29">
3789
- <span class="hits">2</span>
3790
-
3791
-
3792
-
3793
-
3794
- <code class="ruby"> expect { Chake::Node.new(&#39;foobar://bazqux&#39;).backend }.to raise_error(ArgumentError)</code>
3795
- </li>
3796
- </div>
3797
-
3798
- <div>
3799
- <li class="never" data-hits="" data-linenumber="30">
3800
-
3801
-
3802
-
3803
-
3804
-
3805
- <code class="ruby"> end</code>
3806
- </li>
3807
- </div>
3808
-
3809
- <div>
3810
- <li class="never" data-hits="" data-linenumber="31">
3811
-
3812
-
3813
-
3814
-
3815
-
3816
- <code class="ruby"></code>
3817
- </li>
3818
- </div>
3819
-
3820
- <div>
3821
- <li class="covered" data-hits="2" data-linenumber="32">
3822
- <span class="hits">2</span>
3823
-
3824
-
3825
-
3826
-
3827
- <code class="ruby"> let(:with_data) { Chake::Node.new(&#39;local://localhost&#39;, &#39;run_list&#39; =&gt; [&#39;recipe[common]&#39;]) }</code>
3828
- </li>
3829
- </div>
3830
-
3831
- <div>
3832
- <li class="covered" data-hits="1" data-linenumber="33">
3833
- <span class="hits">1</span>
3834
-
3835
-
3836
-
3837
-
3838
- <code class="ruby"> it(&#39;takes data&#39;) do</code>
3839
- </li>
3840
- </div>
3841
-
3842
- <div>
3843
- <li class="covered" data-hits="1" data-linenumber="34">
3844
- <span class="hits">1</span>
3845
-
3846
-
3847
-
3848
-
3849
- <code class="ruby"> expect(with_data.data).to be_a(Hash)</code>
3850
- </li>
3851
- </div>
3852
-
3853
- <div>
3854
- <li class="never" data-hits="" data-linenumber="35">
3855
-
3856
-
3857
-
3858
-
3859
-
3860
- <code class="ruby"> end</code>
3861
- </li>
3862
- </div>
3863
-
3864
- <div>
3865
- <li class="never" data-hits="" data-linenumber="36">
3866
-
3867
-
3868
-
3869
-
3870
-
3871
- <code class="ruby"></code>
3872
- </li>
3873
- </div>
3874
-
3875
- <div>
3876
- <li class="covered" data-hits="2" data-linenumber="37">
3877
- <span class="hits">2</span>
3878
-
3879
-
3880
-
3881
-
3882
- <code class="ruby"> let(:with_port) { Chake::Node.new(&#39;ssh://foo.bar.com:2222&#39;) }</code>
3883
- </li>
3884
- </div>
3885
-
3886
- <div>
3887
- <li class="covered" data-hits="1" data-linenumber="38">
3888
- <span class="hits">1</span>
3889
-
3890
-
3891
-
3892
-
3893
- <code class="ruby"> it(&#39;accepts a port specification&#39;) do</code>
3894
- </li>
3895
- </div>
3896
-
3897
- <div>
3898
- <li class="covered" data-hits="1" data-linenumber="39">
3899
- <span class="hits">1</span>
3900
-
3901
-
3902
-
3903
-
3904
- <code class="ruby"> expect(with_port.port).to eq(2222)</code>
3905
- </li>
3906
- </div>
3907
-
3908
- <div>
3909
- <li class="never" data-hits="" data-linenumber="40">
3910
-
3911
-
3912
-
3913
-
3914
-
3915
- <code class="ruby"> end</code>
3916
- </li>
3917
- </div>
3918
-
3919
- <div>
3920
- <li class="never" data-hits="" data-linenumber="41">
3921
-
3922
-
3923
-
3924
-
3925
-
3926
- <code class="ruby"></code>
3927
- </li>
3928
- </div>
3929
-
3930
- <div>
3931
- <li class="covered" data-hits="2" data-linenumber="42">
3932
- <span class="hits">2</span>
3933
-
3934
-
3935
-
3936
-
3937
- <code class="ruby"> let(:with_port_but_no_scheme) { Chake::Node.new(&#39;foo.bar.com:2222&#39;) }</code>
3938
- </li>
3939
- </div>
3940
-
3941
- <div>
3942
- <li class="covered" data-hits="1" data-linenumber="43">
3943
- <span class="hits">1</span>
3944
-
3945
-
3946
-
3947
-
3948
- <code class="ruby"> it(&#39;accepts a port specification without a scheme&#39;) do</code>
3949
- </li>
3950
- </div>
3951
-
3952
- <div>
3953
- <li class="covered" data-hits="1" data-linenumber="44">
3954
- <span class="hits">1</span>
3955
-
3956
-
3957
-
3958
-
3959
- <code class="ruby"> expect(with_port_but_no_scheme.port).to eq(2222)</code>
3960
- </li>
3961
- </div>
3962
-
3963
- <div>
3964
- <li class="covered" data-hits="1" data-linenumber="45">
3965
- <span class="hits">1</span>
3966
-
3967
-
3968
-
3969
-
3970
- <code class="ruby"> expect(with_port_but_no_scheme.backend.to_s).to eq(&#39;ssh&#39;)</code>
3971
- </li>
3972
- </div>
3973
-
3974
- <div>
3975
- <li class="never" data-hits="" data-linenumber="46">
3976
-
3977
-
3978
-
3979
-
3980
-
3981
- <code class="ruby"> end</code>
3982
- </li>
3983
- </div>
3984
-
3985
- <div>
3986
- <li class="never" data-hits="" data-linenumber="47">
3987
-
3988
-
3989
-
3990
-
3991
-
3992
- <code class="ruby"></code>
3993
- </li>
3994
- </div>
3995
-
3996
- <div>
3997
- <li class="covered" data-hits="1" data-linenumber="48">
3998
- <span class="hits">1</span>
3999
-
4000
-
4001
-
4002
-
4003
- <code class="ruby"> [:run, :run_as_root, :rsync_dest].each do |method|</code>
4004
- </li>
4005
- </div>
4006
-
4007
- <div>
4008
- <li class="covered" data-hits="3" data-linenumber="49">
4009
- <span class="hits">3</span>
4010
-
4011
-
4012
-
4013
-
4014
- <code class="ruby"> it(&quot;delegates #{method} to backend&quot;) do</code>
4015
- </li>
4016
- </div>
4017
-
4018
- <div>
4019
- <li class="covered" data-hits="3" data-linenumber="50">
4020
- <span class="hits">3</span>
4021
-
4022
-
4023
-
4024
-
4025
- <code class="ruby"> node = simple</code>
4026
- </li>
4027
- </div>
4028
-
4029
- <div>
4030
- <li class="never" data-hits="" data-linenumber="51">
4031
-
4032
-
4033
-
4034
-
4035
-
4036
- <code class="ruby"></code>
4037
- </li>
4038
- </div>
4039
-
4040
- <div>
4041
- <li class="covered" data-hits="3" data-linenumber="52">
4042
- <span class="hits">3</span>
4043
-
4044
-
4045
-
4046
-
4047
- <code class="ruby"> backend = double</code>
4048
- </li>
4049
- </div>
4050
-
4051
- <div>
4052
- <li class="covered" data-hits="3" data-linenumber="53">
4053
- <span class="hits">3</span>
4054
-
4055
-
4056
-
4057
-
4058
- <code class="ruby"> args = Object.new</code>
4059
- </li>
4060
- </div>
4061
-
4062
- <div>
4063
- <li class="covered" data-hits="3" data-linenumber="54">
4064
- <span class="hits">3</span>
4065
-
4066
-
4067
-
4068
-
4069
- <code class="ruby"> allow(node).to receive(:backend).and_return(backend)</code>
4070
- </li>
4071
- </div>
4072
-
4073
- <div>
4074
- <li class="never" data-hits="" data-linenumber="55">
4075
-
4076
-
4077
-
4078
-
4079
-
4080
- <code class="ruby"></code>
4081
- </li>
4082
- </div>
4083
-
4084
- <div>
4085
- <li class="covered" data-hits="3" data-linenumber="56">
4086
- <span class="hits">3</span>
4087
-
4088
-
4089
-
4090
-
4091
- <code class="ruby"> expect(backend).to receive(method).with(args)</code>
4092
- </li>
4093
- </div>
4094
-
4095
- <div>
4096
- <li class="covered" data-hits="3" data-linenumber="57">
4097
- <span class="hits">3</span>
4098
-
4099
-
4100
-
4101
-
4102
- <code class="ruby"> node.send(method, args)</code>
4103
- </li>
4104
- </div>
4105
-
4106
- <div>
4107
- <li class="never" data-hits="" data-linenumber="58">
4108
-
4109
-
4110
-
4111
-
4112
-
4113
- <code class="ruby"> end</code>
4114
- </li>
4115
- </div>
4116
-
4117
- <div>
4118
- <li class="never" data-hits="" data-linenumber="59">
4119
-
4120
-
4121
-
4122
-
4123
-
4124
- <code class="ruby"> end</code>
4125
- </li>
4126
- </div>
4127
-
4128
- <div>
4129
- <li class="never" data-hits="" data-linenumber="60">
4130
-
4131
-
4132
-
4133
-
4134
-
4135
- <code class="ruby"></code>
4136
- </li>
4137
- </div>
4138
-
4139
- <div>
4140
- <li class="never" data-hits="" data-linenumber="61">
4141
-
4142
-
4143
-
4144
-
4145
-
4146
- <code class="ruby">end</code>
4147
- </li>
4148
- </div>
4149
-
4150
- </ol>
4151
- </pre>
4152
- </div>
4153
-
4154
-
4155
- </div>
4156
- </div>
4157
- </body>
4158
- </html>