chake 0.21.1 → 0.82

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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/.ackrc +2 -0
  3. data/.gitignore +22 -0
  4. data/.gitlab-ci.yml +24 -0
  5. data/.manifest +65 -0
  6. data/.rubocop.yml +55 -0
  7. data/.rubocop_todo.yml +40 -0
  8. data/ChangeLog.md +38 -0
  9. data/README.chef.md +70 -0
  10. data/README.itamae.md +58 -0
  11. data/README.md +118 -85
  12. data/README.shell.md +30 -0
  13. data/Rakefile +36 -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 +0 -64
  19. data/examples/test/config.rb +4 -4
  20. data/examples/test/cookbooks/example/files/{host-homer → host-lemur}/test.asc +0 -0
  21. data/lib/chake.rb +111 -153
  22. data/lib/chake/bootstrap/chef/01_installed.sh +4 -0
  23. data/lib/chake/bootstrap/{01_debian.sh → chef/02_debian.sh} +0 -0
  24. data/lib/chake/bootstrap/{99_unsupported.sh → chef/99_unsupported.sh} +0 -0
  25. data/lib/chake/config.rb +10 -8
  26. data/lib/chake/config_manager.rb +89 -0
  27. data/lib/chake/config_manager/chef.rb +35 -0
  28. data/lib/chake/config_manager/itamae.rb +57 -0
  29. data/lib/chake/config_manager/shell.rb +34 -0
  30. data/lib/chake/config_manager/skel/chef/Rakefile +1 -0
  31. data/lib/chake/config_manager/skel/chef/config.rb +4 -0
  32. data/lib/chake/config_manager/skel/chef/cookbooks/basics/recipes/default.rb +1 -0
  33. data/lib/chake/config_manager/skel/chef/nodes.yaml +3 -0
  34. data/lib/chake/config_manager/skel/itamae/Rakefile +1 -0
  35. data/lib/chake/config_manager/skel/itamae/cookbooks/basics/default.rb +1 -0
  36. data/lib/chake/config_manager/skel/itamae/nodes.yaml +3 -0
  37. data/lib/chake/config_manager/skel/itamae/roles/basic.rb +1 -0
  38. data/lib/chake/config_manager/skel/shell/Rakefile +1 -0
  39. data/lib/chake/config_manager/skel/shell/nodes.yaml +3 -0
  40. data/lib/chake/connection.rb +83 -0
  41. data/lib/chake/{backend → connection}/local.rb +2 -8
  42. data/lib/chake/{backend → connection}/ssh.rb +6 -14
  43. data/lib/chake/node.rb +49 -29
  44. data/lib/chake/readline.rb +6 -10
  45. data/lib/chake/version.rb +1 -1
  46. data/lib/chake/wipe.rb +18 -0
  47. data/man/.gitignore +2 -0
  48. data/man/Rakefile +28 -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 +87 -0
  55. data/spec/chake/config_manager/shell_spec.rb +54 -0
  56. data/spec/chake/config_manager_spec.rb +23 -0
  57. data/spec/chake/node_spec.rb +38 -15
  58. data/spec/spec_helper.rb +37 -17
  59. metadata +66 -47
  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
Binary file
Binary file
Binary file
data/coverage/index.html DELETED
@@ -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-03-26T08:13:24-03:00">2020-03-26T08:13:24-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.strip</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>