chake 0.20 → 0.81

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) 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 +36 -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 +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 +110 -154
  24. data/lib/chake/bootstrap/chef/01_installed.sh +4 -0
  25. data/lib/chake/bootstrap/{01_debian.sh → chef/02_debian.sh} +0 -0
  26. data/lib/chake/bootstrap/{99_unsupported.sh → chef/99_unsupported.sh} +0 -0
  27. data/lib/chake/config.rb +2 -7
  28. data/lib/chake/config_manager.rb +89 -0
  29. data/lib/chake/config_manager/chef.rb +35 -0
  30. data/lib/chake/config_manager/itamae.rb +57 -0
  31. data/lib/chake/config_manager/shell.rb +34 -0
  32. data/lib/chake/config_manager/skel/chef/Rakefile +1 -0
  33. data/lib/chake/config_manager/skel/chef/config.rb +4 -0
  34. data/lib/chake/config_manager/skel/chef/cookbooks/basics/recipes/default.rb +1 -0
  35. data/lib/chake/config_manager/skel/chef/nodes.yaml +3 -0
  36. data/lib/chake/config_manager/skel/itamae/Rakefile +1 -0
  37. data/lib/chake/config_manager/skel/itamae/cookbooks/basics/default.rb +1 -0
  38. data/lib/chake/config_manager/skel/itamae/nodes.yaml +3 -0
  39. data/lib/chake/config_manager/skel/itamae/roles/basic.rb +1 -0
  40. data/lib/chake/config_manager/skel/shell/Rakefile +1 -0
  41. data/lib/chake/config_manager/skel/shell/nodes.yaml +3 -0
  42. data/lib/chake/connection.rb +83 -0
  43. data/lib/chake/{backend → connection}/local.rb +2 -8
  44. data/lib/chake/{backend → connection}/ssh.rb +6 -14
  45. data/lib/chake/node.rb +49 -29
  46. data/lib/chake/readline.rb +6 -10
  47. data/lib/chake/version.rb +1 -1
  48. data/lib/chake/wipe.rb +18 -0
  49. data/man/.gitignore +2 -0
  50. data/man/Rakefile +28 -14
  51. data/man/readme2man.sed +5 -5
  52. data/spec/chake/backend/local_spec.rb +5 -6
  53. data/spec/chake/backend/ssh_spec.rb +8 -10
  54. data/spec/chake/backend_spec.rb +1 -2
  55. data/spec/chake/config_manager/chef_spec.rb +38 -0
  56. data/spec/chake/config_manager/itamae_spec.rb +87 -0
  57. data/spec/chake/config_manager/shell_spec.rb +54 -0
  58. data/spec/chake/config_manager_spec.rb +23 -0
  59. data/spec/chake/node_spec.rb +38 -15
  60. data/spec/spec_helper.rb +37 -17
  61. metadata +65 -39
  62. data/coverage/assets/0.10.0/application.css +0 -799
  63. data/coverage/assets/0.10.0/application.js +0 -34783
  64. data/coverage/assets/0.10.0/colorbox/border.png +0 -0
  65. data/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  66. data/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  67. data/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  68. data/coverage/assets/0.10.0/favicon_green.png +0 -0
  69. data/coverage/assets/0.10.0/favicon_red.png +0 -0
  70. data/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  71. data/coverage/assets/0.10.0/loading.gif +0 -0
  72. data/coverage/assets/0.10.0/magnify.png +0 -0
  73. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  74. data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  75. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  76. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  77. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  78. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  79. data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  80. data/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  81. data/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  82. data/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  83. data/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  84. data/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  85. data/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  86. data/coverage/index.html +0 -2326
  87. data/lib/chake/backend.rb +0 -80
@@ -1,2326 +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.10.0/application.js' type='text/javascript'></script>
7
- <link href='./assets/0.10.0/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
- <link rel="shortcut icon" type="image/png" href="./assets/0.10.0/favicon_green.png" />
9
- <link rel="icon" type="image/png" href="./assets/0.10.0/favicon.png" />
10
- </head>
11
-
12
- <body>
13
- <div id="loading">
14
- <img src="./assets/0.10.0/loading.gif" alt="loading"/>
15
- </div>
16
- <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2019-11-27T08:59:16-03:00">2019-11-27T08:59:16-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"><span class="green">92.47%</span></span>
25
- covered at
26
- <span class="covered_strength">
27
- <span class="green">
28
- 3.83
29
- </span>
30
- </span> hits/line)
31
- </h2>
32
- <a name="AllFiles"></a>
33
- <div>
34
- <b>7</b> files in total.
35
- <b>186</b> relevant lines.
36
- <span class="green"><b>172</b> lines covered</span> and
37
- <span class="red"><b>14</b> lines missed </span>
38
- </div>
39
- <table class="file_list">
40
- <thead>
41
- <tr>
42
- <th>File</th>
43
- <th>% covered</th>
44
- <th>Lines</th>
45
- <th>Relevant Lines</th>
46
- <th>Lines covered</th>
47
- <th>Lines missed</th>
48
- <th>Avg. Hits / Line</th>
49
- </tr>
50
- </thead>
51
- <tbody>
52
-
53
- <tr>
54
- <td class="strong"><a href="#f946681c65762e86a5af4e3d4826ca838f8c3581" class="src_link" title="lib/chake/backend.rb">lib/chake/backend.rb</a></td>
55
- <td class="yellow strong">81.4 %</td>
56
- <td>80</td>
57
- <td>43</td>
58
- <td>35</td>
59
- <td>8</td>
60
- <td>1.9</td>
61
- </tr>
62
-
63
- <tr>
64
- <td class="strong"><a href="#2e1a7647dbcdb46e1f25a425b26a95f3cd809f21" class="src_link" title="lib/chake/backend/local.rb">lib/chake/backend/local.rb</a></td>
65
- <td class="yellow strong">90.0 %</td>
66
- <td>25</td>
67
- <td>10</td>
68
- <td>9</td>
69
- <td>1</td>
70
- <td>1.1</td>
71
- </tr>
72
-
73
- <tr>
74
- <td class="strong"><a href="#8faefdcb0614d86c951274137a1f0a7e4a38322c" class="src_link" title="lib/chake/backend/ssh.rb">lib/chake/backend/ssh.rb</a></td>
75
- <td class="yellow strong">86.84 %</td>
76
- <td>79</td>
77
- <td>38</td>
78
- <td>33</td>
79
- <td>5</td>
80
- <td>1.4</td>
81
- </tr>
82
-
83
- <tr>
84
- <td class="strong"><a href="#6f4df1f307637e63f54548e20e1b07ab4bb7f41c" class="src_link" title="lib/chake/node.rb">lib/chake/node.rb</a></td>
85
- <td class="green strong">100.0 %</td>
86
- <td>59</td>
87
- <td>35</td>
88
- <td>35</td>
89
- <td>0</td>
90
- <td>12.1</td>
91
- </tr>
92
-
93
- <tr>
94
- <td class="strong"><a href="#0b638ba835c7b1f7ced9cfc83771b9405879de96" class="src_link" title="spec/chake/backend/ssh_spec.rb">spec/chake/backend/ssh_spec.rb</a></td>
95
- <td class="green strong">100.0 %</td>
96
- <td>37</td>
97
- <td>21</td>
98
- <td>21</td>
99
- <td>0</td>
100
- <td>1.5</td>
101
- </tr>
102
-
103
- <tr>
104
- <td class="strong"><a href="#ac8821762e582e387630f20ab79b98f4f5a7f7d3" class="src_link" title="spec/chake/backend_spec.rb">spec/chake/backend_spec.rb</a></td>
105
- <td class="green strong">100.0 %</td>
106
- <td>2</td>
107
- <td>1</td>
108
- <td>1</td>
109
- <td>0</td>
110
- <td>1.0</td>
111
- </tr>
112
-
113
- <tr>
114
- <td class="strong"><a href="#a7d8a97d1649246ed1998a061b28bf4fd79b767a" class="src_link" title="spec/chake/node_spec.rb">spec/chake/node_spec.rb</a></td>
115
- <td class="green strong">100.0 %</td>
116
- <td>61</td>
117
- <td>38</td>
118
- <td>38</td>
119
- <td>0</td>
120
- <td>2.9</td>
121
- </tr>
122
-
123
- </tbody>
124
- </table>
125
- </div>
126
-
127
-
128
-
129
- </div>
130
-
131
- <div id="footer">
132
- Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.16.1
133
- and simplecov-html v0.10.0<br/>
134
- using RSpec
135
- </div>
136
-
137
- <div class="source_files">
138
-
139
- <div class="source_table" id="f946681c65762e86a5af4e3d4826ca838f8c3581">
140
- <div class="header">
141
- <h3>lib/chake/backend.rb</h3>
142
- <h4><span class="yellow">81.4 %</span> covered</h4>
143
- <div>
144
- <b>43</b> relevant lines.
145
- <span class="green"><b>35</b> lines covered</span> and
146
- <span class="red"><b>8</b> lines missed.</span>
147
- </div>
148
- </div>
149
-
150
- <pre>
151
- <ol>
152
-
153
- <li class="covered" data-hits="1" data-linenumber="1">
154
- <span class="hits">1</span>
155
-
156
- <code class="ruby">module Chake</code>
157
- </li>
158
-
159
- <li class="never" data-hits="" data-linenumber="2">
160
-
161
-
162
- <code class="ruby"></code>
163
- </li>
164
-
165
- <li class="covered" data-hits="1" data-linenumber="3">
166
- <span class="hits">1</span>
167
-
168
- <code class="ruby"> class Backend &lt; Struct.new(:node)</code>
169
- </li>
170
-
171
- <li class="never" data-hits="" data-linenumber="4">
172
-
173
-
174
- <code class="ruby"></code>
175
- </li>
176
-
177
- <li class="covered" data-hits="1" data-linenumber="5">
178
- <span class="hits">1</span>
179
-
180
- <code class="ruby"> class CommandFailed &lt; Exception</code>
181
- </li>
182
-
183
- <li class="never" data-hits="" data-linenumber="6">
184
-
185
-
186
- <code class="ruby"> end</code>
187
- </li>
188
-
189
- <li class="never" data-hits="" data-linenumber="7">
190
-
191
-
192
- <code class="ruby"></code>
193
- </li>
194
-
195
- <li class="covered" data-hits="1" data-linenumber="8">
196
- <span class="hits">1</span>
197
-
198
- <code class="ruby"> def scp</code>
199
- </li>
200
-
201
- <li class="missed" data-hits="0" data-linenumber="9">
202
-
203
-
204
- <code class="ruby"> [&#39;scp&#39;]</code>
205
- </li>
206
-
207
- <li class="never" data-hits="" data-linenumber="10">
208
-
209
-
210
- <code class="ruby"> end</code>
211
- </li>
212
-
213
- <li class="never" data-hits="" data-linenumber="11">
214
-
215
-
216
- <code class="ruby"></code>
217
- </li>
218
-
219
- <li class="covered" data-hits="1" data-linenumber="12">
220
- <span class="hits">1</span>
221
-
222
- <code class="ruby"> def scp_dest</code>
223
- </li>
224
-
225
- <li class="missed" data-hits="0" data-linenumber="13">
226
-
227
-
228
- <code class="ruby"> &#39;&#39;</code>
229
- </li>
230
-
231
- <li class="never" data-hits="" data-linenumber="14">
232
-
233
-
234
- <code class="ruby"> end</code>
235
- </li>
236
-
237
- <li class="never" data-hits="" data-linenumber="15">
238
-
239
-
240
- <code class="ruby"></code>
241
- </li>
242
-
243
- <li class="covered" data-hits="1" data-linenumber="16">
244
- <span class="hits">1</span>
245
-
246
- <code class="ruby"> def rsync</code>
247
- </li>
248
-
249
- <li class="missed" data-hits="0" data-linenumber="17">
250
-
251
-
252
- <code class="ruby"> [&#39;rsync&#39;]</code>
253
- </li>
254
-
255
- <li class="never" data-hits="" data-linenumber="18">
256
-
257
-
258
- <code class="ruby"> end</code>
259
- </li>
260
-
261
- <li class="never" data-hits="" data-linenumber="19">
262
-
263
-
264
- <code class="ruby"></code>
265
- </li>
266
-
267
- <li class="covered" data-hits="1" data-linenumber="20">
268
- <span class="hits">1</span>
269
-
270
- <code class="ruby"> def rsync_dest</code>
271
- </li>
272
-
273
- <li class="covered" data-hits="1" data-linenumber="21">
274
- <span class="hits">1</span>
275
-
276
- <code class="ruby"> node.path + &#39;/&#39;</code>
277
- </li>
278
-
279
- <li class="never" data-hits="" data-linenumber="22">
280
-
281
-
282
- <code class="ruby"> end</code>
283
- </li>
284
-
285
- <li class="never" data-hits="" data-linenumber="23">
286
-
287
-
288
- <code class="ruby"></code>
289
- </li>
290
-
291
- <li class="covered" data-hits="1" data-linenumber="24">
292
- <span class="hits">1</span>
293
-
294
- <code class="ruby"> def run(cmd)</code>
295
- </li>
296
-
297
- <li class="covered" data-hits="2" data-linenumber="25">
298
- <span class="hits">2</span>
299
-
300
- <code class="ruby"> printf &quot;%#{Node.max_node_name_length}s: $ %s\n&quot;, node.hostname, cmd</code>
301
- </li>
302
-
303
- <li class="covered" data-hits="2" data-linenumber="26">
304
- <span class="hits">2</span>
305
-
306
- <code class="ruby"> io = IO.popen(command_runner + [&#39;/bin/sh&#39;], mode=&#39;w+&#39;, eer: [:child, :out])</code>
307
- </li>
308
-
309
- <li class="covered" data-hits="2" data-linenumber="27">
310
- <span class="hits">2</span>
311
-
312
- <code class="ruby"> io.write(cmd)</code>
313
- </li>
314
-
315
- <li class="covered" data-hits="2" data-linenumber="28">
316
- <span class="hits">2</span>
317
-
318
- <code class="ruby"> io.close_write</code>
319
- </li>
320
-
321
- <li class="covered" data-hits="2" data-linenumber="29">
322
- <span class="hits">2</span>
323
-
324
- <code class="ruby"> io.each_line do |line|</code>
325
- </li>
326
-
327
- <li class="covered" data-hits="4" data-linenumber="30">
328
- <span class="hits">4</span>
329
-
330
- <code class="ruby"> printf &quot;%#{Node.max_node_name_length}s: %s\n&quot;, node.hostname, line.strip</code>
331
- </li>
332
-
333
- <li class="never" data-hits="" data-linenumber="31">
334
-
335
-
336
- <code class="ruby"> end</code>
337
- </li>
338
-
339
- <li class="covered" data-hits="2" data-linenumber="32">
340
- <span class="hits">2</span>
341
-
342
- <code class="ruby"> io.close</code>
343
- </li>
344
-
345
- <li class="covered" data-hits="2" data-linenumber="33">
346
- <span class="hits">2</span>
347
-
348
- <code class="ruby"> if $?</code>
349
- </li>
350
-
351
- <li class="missed" data-hits="0" data-linenumber="34">
352
-
353
-
354
- <code class="ruby"> status = $?.exitstatus</code>
355
- </li>
356
-
357
- <li class="missed" data-hits="0" data-linenumber="35">
358
-
359
-
360
- <code class="ruby"> if status != 0</code>
361
- </li>
362
-
363
- <li class="missed" data-hits="0" data-linenumber="36">
364
-
365
-
366
- <code class="ruby"> raise CommandFailed.new([node.hostname, &#39;FAILED with exit status %d&#39; % status].join(&#39;: &#39;))</code>
367
- </li>
368
-
369
- <li class="never" data-hits="" data-linenumber="37">
370
-
371
-
372
- <code class="ruby"> end</code>
373
- </li>
374
-
375
- <li class="never" data-hits="" data-linenumber="38">
376
-
377
-
378
- <code class="ruby"> end</code>
379
- </li>
380
-
381
- <li class="never" data-hits="" data-linenumber="39">
382
-
383
-
384
- <code class="ruby"> end</code>
385
- </li>
386
-
387
- <li class="never" data-hits="" data-linenumber="40">
388
-
389
-
390
- <code class="ruby"></code>
391
- </li>
392
-
393
- <li class="covered" data-hits="1" data-linenumber="41">
394
- <span class="hits">1</span>
395
-
396
- <code class="ruby"> def run_shell</code>
397
- </li>
398
-
399
- <li class="missed" data-hits="0" data-linenumber="42">
400
-
401
-
402
- <code class="ruby"> system(*shell_command)</code>
403
- </li>
404
-
405
- <li class="never" data-hits="" data-linenumber="43">
406
-
407
-
408
- <code class="ruby"> end</code>
409
- </li>
410
-
411
- <li class="never" data-hits="" data-linenumber="44">
412
-
413
-
414
- <code class="ruby"></code>
415
- </li>
416
-
417
- <li class="covered" data-hits="1" data-linenumber="45">
418
- <span class="hits">1</span>
419
-
420
- <code class="ruby"> def run_as_root(cmd)</code>
421
- </li>
422
-
423
- <li class="covered" data-hits="4" data-linenumber="46">
424
- <span class="hits">4</span>
425
-
426
- <code class="ruby"> if node.remote_username == &#39;root&#39;</code>
427
- </li>
428
-
429
- <li class="covered" data-hits="2" data-linenumber="47">
430
- <span class="hits">2</span>
431
-
432
- <code class="ruby"> run(cmd)</code>
433
- </li>
434
-
435
- <li class="never" data-hits="" data-linenumber="48">
436
-
437
-
438
- <code class="ruby"> else</code>
439
- </li>
440
-
441
- <li class="covered" data-hits="2" data-linenumber="49">
442
- <span class="hits">2</span>
443
-
444
- <code class="ruby"> run(&#39;sudo &#39; + cmd)</code>
445
- </li>
446
-
447
- <li class="never" data-hits="" data-linenumber="50">
448
-
449
-
450
- <code class="ruby"> end</code>
451
- </li>
452
-
453
- <li class="never" data-hits="" data-linenumber="51">
454
-
455
-
456
- <code class="ruby"> end</code>
457
- </li>
458
-
459
- <li class="never" data-hits="" data-linenumber="52">
460
-
461
-
462
- <code class="ruby"></code>
463
- </li>
464
-
465
- <li class="covered" data-hits="1" data-linenumber="53">
466
- <span class="hits">1</span>
467
-
468
- <code class="ruby"> def to_s</code>
469
- </li>
470
-
471
- <li class="covered" data-hits="1" data-linenumber="54">
472
- <span class="hits">1</span>
473
-
474
- <code class="ruby"> self.class.backend_name</code>
475
- </li>
476
-
477
- <li class="never" data-hits="" data-linenumber="55">
478
-
479
-
480
- <code class="ruby"> end</code>
481
- </li>
482
-
483
- <li class="never" data-hits="" data-linenumber="56">
484
-
485
-
486
- <code class="ruby"></code>
487
- </li>
488
-
489
- <li class="covered" data-hits="1" data-linenumber="57">
490
- <span class="hits">1</span>
491
-
492
- <code class="ruby"> def skip?</code>
493
- </li>
494
-
495
- <li class="missed" data-hits="0" data-linenumber="58">
496
-
497
-
498
- <code class="ruby"> false</code>
499
- </li>
500
-
501
- <li class="never" data-hits="" data-linenumber="59">
502
-
503
-
504
- <code class="ruby"> end</code>
505
- </li>
506
-
507
- <li class="never" data-hits="" data-linenumber="60">
508
-
509
-
510
- <code class="ruby"></code>
511
- </li>
512
-
513
- <li class="covered" data-hits="1" data-linenumber="61">
514
- <span class="hits">1</span>
515
-
516
- <code class="ruby"> def self.backend_name</code>
517
- </li>
518
-
519
- <li class="covered" data-hits="10" data-linenumber="62">
520
- <span class="hits">10</span>
521
-
522
- <code class="ruby"> name.split(&quot;::&quot;).last.downcase</code>
523
- </li>
524
-
525
- <li class="never" data-hits="" data-linenumber="63">
526
-
527
-
528
- <code class="ruby"> end</code>
529
- </li>
530
-
531
- <li class="never" data-hits="" data-linenumber="64">
532
-
533
-
534
- <code class="ruby"></code>
535
- </li>
536
-
537
- <li class="covered" data-hits="1" data-linenumber="65">
538
- <span class="hits">1</span>
539
-
540
- <code class="ruby"> def self.inherited(subclass)</code>
541
- </li>
542
-
543
- <li class="covered" data-hits="2" data-linenumber="66">
544
- <span class="hits">2</span>
545
-
546
- <code class="ruby"> @backends ||= []</code>
547
- </li>
548
-
549
- <li class="covered" data-hits="2" data-linenumber="67">
550
- <span class="hits">2</span>
551
-
552
- <code class="ruby"> @backends &lt;&lt; subclass</code>
553
- </li>
554
-
555
- <li class="never" data-hits="" data-linenumber="68">
556
-
557
-
558
- <code class="ruby"> end</code>
559
- </li>
560
-
561
- <li class="never" data-hits="" data-linenumber="69">
562
-
563
-
564
- <code class="ruby"></code>
565
- </li>
566
-
567
- <li class="covered" data-hits="1" data-linenumber="70">
568
- <span class="hits">1</span>
569
-
570
- <code class="ruby"> def self.get(name)</code>
571
- </li>
572
-
573
- <li class="covered" data-hits="15" data-linenumber="71">
574
- <span class="hits">15</span>
575
-
576
- <code class="ruby"> backend = @backends.find { |b| b.backend_name == name }</code>
577
- </li>
578
-
579
- <li class="covered" data-hits="6" data-linenumber="72">
580
- <span class="hits">6</span>
581
-
582
- <code class="ruby"> backend || raise(ArgumentError.new(&quot;Invalid backend name: #{name}&quot;))</code>
583
- </li>
584
-
585
- <li class="never" data-hits="" data-linenumber="73">
586
-
587
-
588
- <code class="ruby"> end</code>
589
- </li>
590
-
591
- <li class="never" data-hits="" data-linenumber="74">
592
-
593
-
594
- <code class="ruby"></code>
595
- </li>
596
-
597
- <li class="never" data-hits="" data-linenumber="75">
598
-
599
-
600
- <code class="ruby"> end</code>
601
- </li>
602
-
603
- <li class="never" data-hits="" data-linenumber="76">
604
-
605
-
606
- <code class="ruby"></code>
607
- </li>
608
-
609
- <li class="never" data-hits="" data-linenumber="77">
610
-
611
-
612
- <code class="ruby">end</code>
613
- </li>
614
-
615
- <li class="never" data-hits="" data-linenumber="78">
616
-
617
-
618
- <code class="ruby"></code>
619
- </li>
620
-
621
- <li class="covered" data-hits="1" data-linenumber="79">
622
- <span class="hits">1</span>
623
-
624
- <code class="ruby">require &#39;chake/backend/ssh&#39;</code>
625
- </li>
626
-
627
- <li class="covered" data-hits="1" data-linenumber="80">
628
- <span class="hits">1</span>
629
-
630
- <code class="ruby">require &#39;chake/backend/local&#39;</code>
631
- </li>
632
-
633
- </ol>
634
- </pre>
635
- </div>
636
-
637
- <div class="source_table" id="2e1a7647dbcdb46e1f25a425b26a95f3cd809f21">
638
- <div class="header">
639
- <h3>lib/chake/backend/local.rb</h3>
640
- <h4><span class="yellow">90.0 %</span> covered</h4>
641
- <div>
642
- <b>10</b> relevant lines.
643
- <span class="green"><b>9</b> lines covered</span> and
644
- <span class="red"><b>1</b> lines missed.</span>
645
- </div>
646
- </div>
647
-
648
- <pre>
649
- <ol>
650
-
651
- <li class="covered" data-hits="1" data-linenumber="1">
652
- <span class="hits">1</span>
653
-
654
- <code class="ruby">require &#39;socket&#39;</code>
655
- </li>
656
-
657
- <li class="never" data-hits="" data-linenumber="2">
658
-
659
-
660
- <code class="ruby"></code>
661
- </li>
662
-
663
- <li class="covered" data-hits="1" data-linenumber="3">
664
- <span class="hits">1</span>
665
-
666
- <code class="ruby">module Chake</code>
667
- </li>
668
-
669
- <li class="never" data-hits="" data-linenumber="4">
670
-
671
-
672
- <code class="ruby"></code>
673
- </li>
674
-
675
- <li class="covered" data-hits="1" data-linenumber="5">
676
- <span class="hits">1</span>
677
-
678
- <code class="ruby"> class Backend</code>
679
- </li>
680
-
681
- <li class="never" data-hits="" data-linenumber="6">
682
-
683
-
684
- <code class="ruby"></code>
685
- </li>
686
-
687
- <li class="covered" data-hits="1" data-linenumber="7">
688
- <span class="hits">1</span>
689
-
690
- <code class="ruby"> class Local &lt; Backend</code>
691
- </li>
692
-
693
- <li class="never" data-hits="" data-linenumber="8">
694
-
695
-
696
- <code class="ruby"></code>
697
- </li>
698
-
699
- <li class="covered" data-hits="1" data-linenumber="9">
700
- <span class="hits">1</span>
701
-
702
- <code class="ruby"> def command_runner</code>
703
- </li>
704
-
705
- <li class="covered" data-hits="3" data-linenumber="10">
706
- <span class="hits">3</span>
707
-
708
- <code class="ruby"> [&#39;sh&#39;, &#39;-c&#39;]</code>
709
- </li>
710
-
711
- <li class="never" data-hits="" data-linenumber="11">
712
-
713
-
714
- <code class="ruby"> end</code>
715
- </li>
716
-
717
- <li class="never" data-hits="" data-linenumber="12">
718
-
719
-
720
- <code class="ruby"></code>
721
- </li>
722
-
723
- <li class="covered" data-hits="1" data-linenumber="13">
724
- <span class="hits">1</span>
725
-
726
- <code class="ruby"> def shell_command</code>
727
- </li>
728
-
729
- <li class="missed" data-hits="0" data-linenumber="14">
730
-
731
-
732
- <code class="ruby"> ENV.fetch(&#39;SHELL&#39;, Etc.getpwuid.shell)</code>
733
- </li>
734
-
735
- <li class="never" data-hits="" data-linenumber="15">
736
-
737
-
738
- <code class="ruby"> end</code>
739
- </li>
740
-
741
- <li class="never" data-hits="" data-linenumber="16">
742
-
743
-
744
- <code class="ruby"></code>
745
- </li>
746
-
747
- <li class="covered" data-hits="1" data-linenumber="17">
748
- <span class="hits">1</span>
749
-
750
- <code class="ruby"> def skip?</code>
751
- </li>
752
-
753
- <li class="covered" data-hits="1" data-linenumber="18">
754
- <span class="hits">1</span>
755
-
756
- <code class="ruby"> node.hostname != Socket.gethostname</code>
757
- </li>
758
-
759
- <li class="never" data-hits="" data-linenumber="19">
760
-
761
-
762
- <code class="ruby"> end</code>
763
- </li>
764
-
765
- <li class="never" data-hits="" data-linenumber="20">
766
-
767
-
768
- <code class="ruby"></code>
769
- </li>
770
-
771
- <li class="never" data-hits="" data-linenumber="21">
772
-
773
-
774
- <code class="ruby"> end</code>
775
- </li>
776
-
777
- <li class="never" data-hits="" data-linenumber="22">
778
-
779
-
780
- <code class="ruby"></code>
781
- </li>
782
-
783
- <li class="never" data-hits="" data-linenumber="23">
784
-
785
-
786
- <code class="ruby"> end</code>
787
- </li>
788
-
789
- <li class="never" data-hits="" data-linenumber="24">
790
-
791
-
792
- <code class="ruby"></code>
793
- </li>
794
-
795
- <li class="never" data-hits="" data-linenumber="25">
796
-
797
-
798
- <code class="ruby">end</code>
799
- </li>
800
-
801
- </ol>
802
- </pre>
803
- </div>
804
-
805
- <div class="source_table" id="8faefdcb0614d86c951274137a1f0a7e4a38322c">
806
- <div class="header">
807
- <h3>lib/chake/backend/ssh.rb</h3>
808
- <h4><span class="yellow">86.84 %</span> covered</h4>
809
- <div>
810
- <b>38</b> relevant lines.
811
- <span class="green"><b>33</b> lines covered</span> and
812
- <span class="red"><b>5</b> lines missed.</span>
813
- </div>
814
- </div>
815
-
816
- <pre>
817
- <ol>
818
-
819
- <li class="covered" data-hits="1" data-linenumber="1">
820
- <span class="hits">1</span>
821
-
822
- <code class="ruby">module Chake</code>
823
- </li>
824
-
825
- <li class="never" data-hits="" data-linenumber="2">
826
-
827
-
828
- <code class="ruby"></code>
829
- </li>
830
-
831
- <li class="covered" data-hits="1" data-linenumber="3">
832
- <span class="hits">1</span>
833
-
834
- <code class="ruby"> class Backend</code>
835
- </li>
836
-
837
- <li class="never" data-hits="" data-linenumber="4">
838
-
839
-
840
- <code class="ruby"></code>
841
- </li>
842
-
843
- <li class="covered" data-hits="1" data-linenumber="5">
844
- <span class="hits">1</span>
845
-
846
- <code class="ruby"> class Ssh &lt; Backend</code>
847
- </li>
848
-
849
- <li class="never" data-hits="" data-linenumber="6">
850
-
851
-
852
- <code class="ruby"></code>
853
- </li>
854
-
855
- <li class="covered" data-hits="1" data-linenumber="7">
856
- <span class="hits">1</span>
857
-
858
- <code class="ruby"> def scp</code>
859
- </li>
860
-
861
- <li class="covered" data-hits="1" data-linenumber="8">
862
- <span class="hits">1</span>
863
-
864
- <code class="ruby"> [&#39;scp&#39;, ssh_config, scp_options].flatten.compact</code>
865
- </li>
866
-
867
- <li class="never" data-hits="" data-linenumber="9">
868
-
869
-
870
- <code class="ruby"> end</code>
871
- </li>
872
-
873
- <li class="never" data-hits="" data-linenumber="10">
874
-
875
-
876
- <code class="ruby"></code>
877
- </li>
878
-
879
- <li class="covered" data-hits="1" data-linenumber="11">
880
- <span class="hits">1</span>
881
-
882
- <code class="ruby"> def scp_dest</code>
883
- </li>
884
-
885
- <li class="missed" data-hits="0" data-linenumber="12">
886
-
887
-
888
- <code class="ruby"> ssh_target + &#39;:&#39;</code>
889
- </li>
890
-
891
- <li class="never" data-hits="" data-linenumber="13">
892
-
893
-
894
- <code class="ruby"> end</code>
895
- </li>
896
-
897
- <li class="never" data-hits="" data-linenumber="14">
898
-
899
-
900
- <code class="ruby"></code>
901
- </li>
902
-
903
- <li class="covered" data-hits="1" data-linenumber="15">
904
- <span class="hits">1</span>
905
-
906
- <code class="ruby"> def rsync</code>
907
- </li>
908
-
909
- <li class="missed" data-hits="0" data-linenumber="16">
910
-
911
-
912
- <code class="ruby"> [ssh_prefix, &#39;rsync&#39;, rsync_ssh].flatten.compact</code>
913
- </li>
914
-
915
- <li class="never" data-hits="" data-linenumber="17">
916
-
917
-
918
- <code class="ruby"> end</code>
919
- </li>
920
-
921
- <li class="never" data-hits="" data-linenumber="18">
922
-
923
-
924
- <code class="ruby"></code>
925
- </li>
926
-
927
- <li class="covered" data-hits="1" data-linenumber="19">
928
- <span class="hits">1</span>
929
-
930
- <code class="ruby"> def rsync_dest</code>
931
- </li>
932
-
933
- <li class="covered" data-hits="1" data-linenumber="20">
934
- <span class="hits">1</span>
935
-
936
- <code class="ruby"> [ssh_target, node.path + &#39;/&#39;].join(&#39;:&#39;)</code>
937
- </li>
938
-
939
- <li class="never" data-hits="" data-linenumber="21">
940
-
941
-
942
- <code class="ruby"> end</code>
943
- </li>
944
-
945
- <li class="never" data-hits="" data-linenumber="22">
946
-
947
-
948
- <code class="ruby"></code>
949
- </li>
950
-
951
- <li class="covered" data-hits="1" data-linenumber="23">
952
- <span class="hits">1</span>
953
-
954
- <code class="ruby"> def command_runner</code>
955
- </li>
956
-
957
- <li class="covered" data-hits="4" data-linenumber="24">
958
- <span class="hits">4</span>
959
-
960
- <code class="ruby"> [ssh_prefix, &#39;ssh&#39;, ssh_config, ssh_options, ssh_target].flatten.compact</code>
961
- </li>
962
-
963
- <li class="never" data-hits="" data-linenumber="25">
964
-
965
-
966
- <code class="ruby"> end</code>
967
- </li>
968
-
969
- <li class="never" data-hits="" data-linenumber="26">
970
-
971
-
972
- <code class="ruby"></code>
973
- </li>
974
-
975
- <li class="covered" data-hits="1" data-linenumber="27">
976
- <span class="hits">1</span>
977
-
978
- <code class="ruby"> def shell_command</code>
979
- </li>
980
-
981
- <li class="missed" data-hits="0" data-linenumber="28">
982
-
983
-
984
- <code class="ruby"> command_runner</code>
985
- </li>
986
-
987
- <li class="never" data-hits="" data-linenumber="29">
988
-
989
-
990
- <code class="ruby"> end</code>
991
- </li>
992
-
993
- <li class="never" data-hits="" data-linenumber="30">
994
-
995
-
996
- <code class="ruby"></code>
997
- </li>
998
-
999
- <li class="covered" data-hits="1" data-linenumber="31">
1000
- <span class="hits">1</span>
1001
-
1002
- <code class="ruby"> private</code>
1003
- </li>
1004
-
1005
- <li class="never" data-hits="" data-linenumber="32">
1006
-
1007
-
1008
- <code class="ruby"></code>
1009
- </li>
1010
-
1011
- <li class="covered" data-hits="1" data-linenumber="33">
1012
- <span class="hits">1</span>
1013
-
1014
- <code class="ruby"> def rsync_ssh</code>
1015
- </li>
1016
-
1017
- <li class="covered" data-hits="1" data-linenumber="34">
1018
- <span class="hits">1</span>
1019
-
1020
- <code class="ruby"> @rsync_ssh ||=</code>
1021
- </li>
1022
-
1023
- <li class="never" data-hits="" data-linenumber="35">
1024
-
1025
-
1026
- <code class="ruby"> begin</code>
1027
- </li>
1028
-
1029
- <li class="covered" data-hits="1" data-linenumber="36">
1030
- <span class="hits">1</span>
1031
-
1032
- <code class="ruby"> ssh_command = &#39;ssh&#39;</code>
1033
- </li>
1034
-
1035
- <li class="covered" data-hits="1" data-linenumber="37">
1036
- <span class="hits">1</span>
1037
-
1038
- <code class="ruby"> if File.exist?(ssh_config_file)</code>
1039
- </li>
1040
-
1041
- <li class="missed" data-hits="0" data-linenumber="38">
1042
-
1043
-
1044
- <code class="ruby"> ssh_command += &#39; -F &#39; + ssh_config_file</code>
1045
- </li>
1046
-
1047
- <li class="never" data-hits="" data-linenumber="39">
1048
-
1049
-
1050
- <code class="ruby"> end</code>
1051
- </li>
1052
-
1053
- <li class="covered" data-hits="1" data-linenumber="40">
1054
- <span class="hits">1</span>
1055
-
1056
- <code class="ruby"> if node.port</code>
1057
- </li>
1058
-
1059
- <li class="covered" data-hits="1" data-linenumber="41">
1060
- <span class="hits">1</span>
1061
-
1062
- <code class="ruby"> ssh_command += &#39; -p &#39; + node.port.to_s</code>
1063
- </li>
1064
-
1065
- <li class="never" data-hits="" data-linenumber="42">
1066
-
1067
-
1068
- <code class="ruby"> end</code>
1069
- </li>
1070
-
1071
- <li class="covered" data-hits="1" data-linenumber="43">
1072
- <span class="hits">1</span>
1073
-
1074
- <code class="ruby"> if ssh_command == &#39;ssh&#39;</code>
1075
- </li>
1076
-
1077
- <li class="missed" data-hits="0" data-linenumber="44">
1078
-
1079
-
1080
- <code class="ruby"> []</code>
1081
- </li>
1082
-
1083
- <li class="never" data-hits="" data-linenumber="45">
1084
-
1085
-
1086
- <code class="ruby"> else</code>
1087
- </li>
1088
-
1089
- <li class="covered" data-hits="1" data-linenumber="46">
1090
- <span class="hits">1</span>
1091
-
1092
- <code class="ruby"> [&#39;-e&#39;, ssh_command]</code>
1093
- </li>
1094
-
1095
- <li class="never" data-hits="" data-linenumber="47">
1096
-
1097
-
1098
- <code class="ruby"> end</code>
1099
- </li>
1100
-
1101
- <li class="never" data-hits="" data-linenumber="48">
1102
-
1103
-
1104
- <code class="ruby"> end</code>
1105
- </li>
1106
-
1107
- <li class="never" data-hits="" data-linenumber="49">
1108
-
1109
-
1110
- <code class="ruby"> end</code>
1111
- </li>
1112
-
1113
- <li class="never" data-hits="" data-linenumber="50">
1114
-
1115
-
1116
- <code class="ruby"></code>
1117
- </li>
1118
-
1119
- <li class="covered" data-hits="1" data-linenumber="51">
1120
- <span class="hits">1</span>
1121
-
1122
- <code class="ruby"> def ssh_config</code>
1123
- </li>
1124
-
1125
- <li class="covered" data-hits="5" data-linenumber="52">
1126
- <span class="hits">5</span>
1127
-
1128
- <code class="ruby"> File.exist?(ssh_config_file) &amp;&amp; [&#39;-F&#39;, ssh_config_file] || []</code>
1129
- </li>
1130
-
1131
- <li class="never" data-hits="" data-linenumber="53">
1132
-
1133
-
1134
- <code class="ruby"> end</code>
1135
- </li>
1136
-
1137
- <li class="never" data-hits="" data-linenumber="54">
1138
-
1139
-
1140
- <code class="ruby"></code>
1141
- </li>
1142
-
1143
- <li class="covered" data-hits="1" data-linenumber="55">
1144
- <span class="hits">1</span>
1145
-
1146
- <code class="ruby"> def ssh_config_file</code>
1147
- </li>
1148
-
1149
- <li class="covered" data-hits="6" data-linenumber="56">
1150
- <span class="hits">6</span>
1151
-
1152
- <code class="ruby"> @ssh_config_file ||= ENV.fetch(&#39;CHAKE_SSH_CONFIG&#39;, &#39;.ssh_config&#39;)</code>
1153
- </li>
1154
-
1155
- <li class="never" data-hits="" data-linenumber="57">
1156
-
1157
-
1158
- <code class="ruby"> end</code>
1159
- </li>
1160
-
1161
- <li class="never" data-hits="" data-linenumber="58">
1162
-
1163
-
1164
- <code class="ruby"></code>
1165
- </li>
1166
-
1167
- <li class="covered" data-hits="1" data-linenumber="59">
1168
- <span class="hits">1</span>
1169
-
1170
- <code class="ruby"> def ssh_prefix</code>
1171
- </li>
1172
-
1173
- <li class="covered" data-hits="4" data-linenumber="60">
1174
- <span class="hits">4</span>
1175
-
1176
- <code class="ruby"> @ssh_prefix ||= ENV.fetch(&#39;CHAKE_SSH_PREFIX&#39;, &#39;&#39;).split</code>
1177
- </li>
1178
-
1179
- <li class="never" data-hits="" data-linenumber="61">
1180
-
1181
-
1182
- <code class="ruby"> end</code>
1183
- </li>
1184
-
1185
- <li class="never" data-hits="" data-linenumber="62">
1186
-
1187
-
1188
- <code class="ruby"></code>
1189
- </li>
1190
-
1191
- <li class="covered" data-hits="1" data-linenumber="63">
1192
- <span class="hits">1</span>
1193
-
1194
- <code class="ruby"> def ssh_target</code>
1195
- </li>
1196
-
1197
- <li class="covered" data-hits="5" data-linenumber="64">
1198
- <span class="hits">5</span>
1199
-
1200
- <code class="ruby"> [node.remote_username, node.hostname].compact.join(&#39;@&#39;)</code>
1201
- </li>
1202
-
1203
- <li class="never" data-hits="" data-linenumber="65">
1204
-
1205
-
1206
- <code class="ruby"> end</code>
1207
- </li>
1208
-
1209
- <li class="never" data-hits="" data-linenumber="66">
1210
-
1211
-
1212
- <code class="ruby"></code>
1213
- </li>
1214
-
1215
- <li class="covered" data-hits="1" data-linenumber="67">
1216
- <span class="hits">1</span>
1217
-
1218
- <code class="ruby"> def ssh_options</code>
1219
- </li>
1220
-
1221
- <li class="covered" data-hits="4" data-linenumber="68">
1222
- <span class="hits">4</span>
1223
-
1224
- <code class="ruby"> node.port &amp;&amp; [&#39;-p&#39;, node.port.to_s] || []</code>
1225
- </li>
1226
-
1227
- <li class="never" data-hits="" data-linenumber="69">
1228
-
1229
-
1230
- <code class="ruby"> end</code>
1231
- </li>
1232
-
1233
- <li class="never" data-hits="" data-linenumber="70">
1234
-
1235
-
1236
- <code class="ruby"></code>
1237
- </li>
1238
-
1239
- <li class="covered" data-hits="1" data-linenumber="71">
1240
- <span class="hits">1</span>
1241
-
1242
- <code class="ruby"> def scp_options</code>
1243
- </li>
1244
-
1245
- <li class="covered" data-hits="1" data-linenumber="72">
1246
- <span class="hits">1</span>
1247
-
1248
- <code class="ruby"> node.port &amp;&amp; [&#39;-P&#39;, node.port.to_s] || []</code>
1249
- </li>
1250
-
1251
- <li class="never" data-hits="" data-linenumber="73">
1252
-
1253
-
1254
- <code class="ruby"> end</code>
1255
- </li>
1256
-
1257
- <li class="never" data-hits="" data-linenumber="74">
1258
-
1259
-
1260
- <code class="ruby"></code>
1261
- </li>
1262
-
1263
- <li class="never" data-hits="" data-linenumber="75">
1264
-
1265
-
1266
- <code class="ruby"> end</code>
1267
- </li>
1268
-
1269
- <li class="never" data-hits="" data-linenumber="76">
1270
-
1271
-
1272
- <code class="ruby"></code>
1273
- </li>
1274
-
1275
- <li class="never" data-hits="" data-linenumber="77">
1276
-
1277
-
1278
- <code class="ruby"> end</code>
1279
- </li>
1280
-
1281
- <li class="never" data-hits="" data-linenumber="78">
1282
-
1283
-
1284
- <code class="ruby"></code>
1285
- </li>
1286
-
1287
- <li class="never" data-hits="" data-linenumber="79">
1288
-
1289
-
1290
- <code class="ruby">end</code>
1291
- </li>
1292
-
1293
- </ol>
1294
- </pre>
1295
- </div>
1296
-
1297
- <div class="source_table" id="6f4df1f307637e63f54548e20e1b07ab4bb7f41c">
1298
- <div class="header">
1299
- <h3>lib/chake/node.rb</h3>
1300
- <h4><span class="green">100.0 %</span> covered</h4>
1301
- <div>
1302
- <b>35</b> relevant lines.
1303
- <span class="green"><b>35</b> lines covered</span> and
1304
- <span class="red"><b>0</b> lines missed.</span>
1305
- </div>
1306
- </div>
1307
-
1308
- <pre>
1309
- <ol>
1310
-
1311
- <li class="covered" data-hits="1" data-linenumber="1">
1312
- <span class="hits">1</span>
1313
-
1314
- <code class="ruby">require &#39;uri&#39;</code>
1315
- </li>
1316
-
1317
- <li class="covered" data-hits="1" data-linenumber="2">
1318
- <span class="hits">1</span>
1319
-
1320
- <code class="ruby">require &#39;etc&#39;</code>
1321
- </li>
1322
-
1323
- <li class="covered" data-hits="1" data-linenumber="3">
1324
- <span class="hits">1</span>
1325
-
1326
- <code class="ruby">require &#39;forwardable&#39;</code>
1327
- </li>
1328
-
1329
- <li class="never" data-hits="" data-linenumber="4">
1330
-
1331
-
1332
- <code class="ruby"></code>
1333
- </li>
1334
-
1335
- <li class="covered" data-hits="1" data-linenumber="5">
1336
- <span class="hits">1</span>
1337
-
1338
- <code class="ruby">require &#39;chake/backend&#39;</code>
1339
- </li>
1340
-
1341
- <li class="never" data-hits="" data-linenumber="6">
1342
-
1343
-
1344
- <code class="ruby"></code>
1345
- </li>
1346
-
1347
- <li class="covered" data-hits="1" data-linenumber="7">
1348
- <span class="hits">1</span>
1349
-
1350
- <code class="ruby">module Chake</code>
1351
- </li>
1352
-
1353
- <li class="never" data-hits="" data-linenumber="8">
1354
-
1355
-
1356
- <code class="ruby"></code>
1357
- </li>
1358
-
1359
- <li class="covered" data-hits="1" data-linenumber="9">
1360
- <span class="hits">1</span>
1361
-
1362
- <code class="ruby"> class Node</code>
1363
- </li>
1364
-
1365
- <li class="never" data-hits="" data-linenumber="10">
1366
-
1367
-
1368
- <code class="ruby"></code>
1369
- </li>
1370
-
1371
- <li class="covered" data-hits="1" data-linenumber="11">
1372
- <span class="hits">1</span>
1373
-
1374
- <code class="ruby"> extend Forwardable</code>
1375
- </li>
1376
-
1377
- <li class="never" data-hits="" data-linenumber="12">
1378
-
1379
-
1380
- <code class="ruby"></code>
1381
- </li>
1382
-
1383
- <li class="covered" data-hits="1" data-linenumber="13">
1384
- <span class="hits">1</span>
1385
-
1386
- <code class="ruby"> attr_reader :hostname</code>
1387
- </li>
1388
-
1389
- <li class="covered" data-hits="1" data-linenumber="14">
1390
- <span class="hits">1</span>
1391
-
1392
- <code class="ruby"> attr_reader :port</code>
1393
- </li>
1394
-
1395
- <li class="covered" data-hits="1" data-linenumber="15">
1396
- <span class="hits">1</span>
1397
-
1398
- <code class="ruby"> attr_reader :username</code>
1399
- </li>
1400
-
1401
- <li class="covered" data-hits="1" data-linenumber="16">
1402
- <span class="hits">1</span>
1403
-
1404
- <code class="ruby"> attr_reader :remote_username</code>
1405
- </li>
1406
-
1407
- <li class="covered" data-hits="1" data-linenumber="17">
1408
- <span class="hits">1</span>
1409
-
1410
- <code class="ruby"> attr_reader :path</code>
1411
- </li>
1412
-
1413
- <li class="covered" data-hits="1" data-linenumber="18">
1414
- <span class="hits">1</span>
1415
-
1416
- <code class="ruby"> attr_reader :data</code>
1417
- </li>
1418
-
1419
- <li class="never" data-hits="" data-linenumber="19">
1420
-
1421
-
1422
- <code class="ruby"></code>
1423
- </li>
1424
-
1425
- <li class="covered" data-hits="1" data-linenumber="20">
1426
- <span class="hits">1</span>
1427
-
1428
- <code class="ruby"> def self.max_node_name_length</code>
1429
- </li>
1430
-
1431
- <li class="covered" data-hits="36" data-linenumber="21">
1432
- <span class="hits">36</span>
1433
-
1434
- <code class="ruby"> @max_node_name_length ||= 0</code>
1435
- </li>
1436
-
1437
- <li class="never" data-hits="" data-linenumber="22">
1438
-
1439
-
1440
- <code class="ruby"> end</code>
1441
- </li>
1442
-
1443
- <li class="covered" data-hits="1" data-linenumber="23">
1444
- <span class="hits">1</span>
1445
-
1446
- <code class="ruby"> def self.max_node_name_length=(value)</code>
1447
- </li>
1448
-
1449
- <li class="covered" data-hits="3" data-linenumber="24">
1450
- <span class="hits">3</span>
1451
-
1452
- <code class="ruby"> @max_node_name_length = value</code>
1453
- </li>
1454
-
1455
- <li class="never" data-hits="" data-linenumber="25">
1456
-
1457
-
1458
- <code class="ruby"> end</code>
1459
- </li>
1460
-
1461
- <li class="never" data-hits="" data-linenumber="26">
1462
-
1463
-
1464
- <code class="ruby"></code>
1465
- </li>
1466
-
1467
- <li class="covered" data-hits="1" data-linenumber="27">
1468
- <span class="hits">1</span>
1469
-
1470
- <code class="ruby"> def initialize(hostname, data = {})</code>
1471
- </li>
1472
-
1473
- <li class="covered" data-hits="30" data-linenumber="28">
1474
- <span class="hits">30</span>
1475
-
1476
- <code class="ruby"> uri = URI.parse(hostname)</code>
1477
- </li>
1478
-
1479
- <li class="covered" data-hits="30" data-linenumber="29">
1480
- <span class="hits">30</span>
1481
-
1482
- <code class="ruby"> if !uri.host &amp;&amp; ((!uri.scheme &amp;&amp; uri.path) || (uri.scheme &amp;&amp; uri.opaque))</code>
1483
- </li>
1484
-
1485
- <li class="covered" data-hits="11" data-linenumber="30">
1486
- <span class="hits">11</span>
1487
-
1488
- <code class="ruby"> uri = URI.parse(&quot;ssh://#{hostname}&quot;)</code>
1489
- </li>
1490
-
1491
- <li class="never" data-hits="" data-linenumber="31">
1492
-
1493
-
1494
- <code class="ruby"> end</code>
1495
- </li>
1496
-
1497
- <li class="covered" data-hits="30" data-linenumber="32">
1498
- <span class="hits">30</span>
1499
-
1500
- <code class="ruby"> if uri.path &amp;&amp; uri.path.empty?</code>
1501
- </li>
1502
-
1503
- <li class="covered" data-hits="18" data-linenumber="33">
1504
- <span class="hits">18</span>
1505
-
1506
- <code class="ruby"> uri.path = nil</code>
1507
- </li>
1508
-
1509
- <li class="never" data-hits="" data-linenumber="34">
1510
-
1511
-
1512
- <code class="ruby"> end</code>
1513
- </li>
1514
-
1515
- <li class="never" data-hits="" data-linenumber="35">
1516
-
1517
-
1518
- <code class="ruby"></code>
1519
- </li>
1520
-
1521
- <li class="covered" data-hits="30" data-linenumber="36">
1522
- <span class="hits">30</span>
1523
-
1524
- <code class="ruby"> @backend_name = uri.scheme</code>
1525
- </li>
1526
-
1527
- <li class="never" data-hits="" data-linenumber="37">
1528
-
1529
-
1530
- <code class="ruby"></code>
1531
- </li>
1532
-
1533
- <li class="covered" data-hits="30" data-linenumber="38">
1534
- <span class="hits">30</span>
1535
-
1536
- <code class="ruby"> @hostname = uri.host</code>
1537
- </li>
1538
-
1539
- <li class="covered" data-hits="30" data-linenumber="39">
1540
- <span class="hits">30</span>
1541
-
1542
- <code class="ruby"> @port = uri.port</code>
1543
- </li>
1544
-
1545
- <li class="covered" data-hits="30" data-linenumber="40">
1546
- <span class="hits">30</span>
1547
-
1548
- <code class="ruby"> @username = uri.user || Etc.getpwuid.name</code>
1549
- </li>
1550
-
1551
- <li class="covered" data-hits="30" data-linenumber="41">
1552
- <span class="hits">30</span>
1553
-
1554
- <code class="ruby"> @remote_username = uri.user</code>
1555
- </li>
1556
-
1557
- <li class="covered" data-hits="30" data-linenumber="42">
1558
- <span class="hits">30</span>
1559
-
1560
- <code class="ruby"> @path = uri.path || &quot;/var/tmp/chef.#{username}&quot;</code>
1561
- </li>
1562
-
1563
- <li class="covered" data-hits="30" data-linenumber="43">
1564
- <span class="hits">30</span>
1565
-
1566
- <code class="ruby"> @data = data</code>
1567
- </li>
1568
-
1569
- <li class="never" data-hits="" data-linenumber="44">
1570
-
1571
-
1572
- <code class="ruby"></code>
1573
- </li>
1574
-
1575
- <li class="covered" data-hits="30" data-linenumber="45">
1576
- <span class="hits">30</span>
1577
-
1578
- <code class="ruby"> if @hostname.length &gt; self.class.max_node_name_length</code>
1579
- </li>
1580
-
1581
- <li class="covered" data-hits="3" data-linenumber="46">
1582
- <span class="hits">3</span>
1583
-
1584
- <code class="ruby"> self.class.max_node_name_length = @hostname.length</code>
1585
- </li>
1586
-
1587
- <li class="never" data-hits="" data-linenumber="47">
1588
-
1589
-
1590
- <code class="ruby"> end</code>
1591
- </li>
1592
-
1593
- <li class="never" data-hits="" data-linenumber="48">
1594
-
1595
-
1596
- <code class="ruby"> end</code>
1597
- </li>
1598
-
1599
- <li class="never" data-hits="" data-linenumber="49">
1600
-
1601
-
1602
- <code class="ruby"></code>
1603
- </li>
1604
-
1605
- <li class="covered" data-hits="1" data-linenumber="50">
1606
- <span class="hits">1</span>
1607
-
1608
- <code class="ruby"> def backend</code>
1609
- </li>
1610
-
1611
- <li class="covered" data-hits="6" data-linenumber="51">
1612
- <span class="hits">6</span>
1613
-
1614
- <code class="ruby"> @backend ||= Chake::Backend.get(@backend_name).new(self)</code>
1615
- </li>
1616
-
1617
- <li class="never" data-hits="" data-linenumber="52">
1618
-
1619
-
1620
- <code class="ruby"> end</code>
1621
- </li>
1622
-
1623
- <li class="never" data-hits="" data-linenumber="53">
1624
-
1625
-
1626
- <code class="ruby"></code>
1627
- </li>
1628
-
1629
- <li class="covered" data-hits="1" data-linenumber="54">
1630
- <span class="hits">1</span>
1631
-
1632
- <code class="ruby"> def_delegators :backend, :run, :run_as_root, :run_shell, :rsync, :rsync_dest, :scp, :scp_dest, :skip?</code>
1633
- </li>
1634
-
1635
- <li class="never" data-hits="" data-linenumber="55">
1636
-
1637
-
1638
- <code class="ruby"></code>
1639
- </li>
1640
-
1641
- <li class="never" data-hits="" data-linenumber="56">
1642
-
1643
-
1644
- <code class="ruby"> end</code>
1645
- </li>
1646
-
1647
- <li class="never" data-hits="" data-linenumber="57">
1648
-
1649
-
1650
- <code class="ruby"></code>
1651
- </li>
1652
-
1653
- <li class="never" data-hits="" data-linenumber="58">
1654
-
1655
-
1656
- <code class="ruby">end</code>
1657
- </li>
1658
-
1659
- <li class="never" data-hits="" data-linenumber="59">
1660
-
1661
-
1662
- <code class="ruby"></code>
1663
- </li>
1664
-
1665
- </ol>
1666
- </pre>
1667
- </div>
1668
-
1669
- <div class="source_table" id="0b638ba835c7b1f7ced9cfc83771b9405879de96">
1670
- <div class="header">
1671
- <h3>spec/chake/backend/ssh_spec.rb</h3>
1672
- <h4><span class="green">100.0 %</span> covered</h4>
1673
- <div>
1674
- <b>21</b> relevant lines.
1675
- <span class="green"><b>21</b> lines covered</span> and
1676
- <span class="red"><b>0</b> lines missed.</span>
1677
- </div>
1678
- </div>
1679
-
1680
- <pre>
1681
- <ol>
1682
-
1683
- <li class="covered" data-hits="1" data-linenumber="1">
1684
- <span class="hits">1</span>
1685
-
1686
- <code class="ruby">require &#39;spec_helper&#39;</code>
1687
- </li>
1688
-
1689
- <li class="never" data-hits="" data-linenumber="2">
1690
-
1691
-
1692
- <code class="ruby"></code>
1693
- </li>
1694
-
1695
- <li class="covered" data-hits="1" data-linenumber="3">
1696
- <span class="hits">1</span>
1697
-
1698
- <code class="ruby">describe Chake::Backend::Ssh do</code>
1699
- </li>
1700
-
1701
- <li class="never" data-hits="" data-linenumber="4">
1702
-
1703
-
1704
- <code class="ruby"></code>
1705
- </li>
1706
-
1707
- <li class="covered" data-hits="1" data-linenumber="5">
1708
- <span class="hits">1</span>
1709
-
1710
- <code class="ruby"> include_examples &quot;Chake::Backend&quot;, Chake::Backend::Ssh</code>
1711
- </li>
1712
-
1713
- <li class="never" data-hits="" data-linenumber="6">
1714
-
1715
-
1716
- <code class="ruby"></code>
1717
- </li>
1718
-
1719
- <li class="covered" data-hits="7" data-linenumber="7">
1720
- <span class="hits">7</span>
1721
-
1722
- <code class="ruby"> let(:node) { Chake::Node.new(&#39;ssh://myuser@myhost/srv/chef&#39;) }</code>
1723
- </li>
1724
-
1725
- <li class="never" data-hits="" data-linenumber="8">
1726
-
1727
-
1728
- <code class="ruby"></code>
1729
- </li>
1730
-
1731
- <li class="covered" data-hits="2" data-linenumber="9">
1732
- <span class="hits">2</span>
1733
-
1734
- <code class="ruby"> it(&#39;runs commands with ssh&#39;) { expect(backend.command_runner).to eq([&#39;ssh&#39;, &#39;myuser@myhost&#39;]) }</code>
1735
- </li>
1736
-
1737
- <li class="never" data-hits="" data-linenumber="10">
1738
-
1739
-
1740
- <code class="ruby"></code>
1741
- </li>
1742
-
1743
- <li class="covered" data-hits="2" data-linenumber="11">
1744
- <span class="hits">2</span>
1745
-
1746
- <code class="ruby"> it(&#39;rsyncs over ssh&#39;) { expect(backend.rsync_dest).to eq(&#39;myuser@myhost:/srv/chef/&#39;) }</code>
1747
- </li>
1748
-
1749
- <li class="never" data-hits="" data-linenumber="12">
1750
-
1751
-
1752
- <code class="ruby"></code>
1753
- </li>
1754
-
1755
- <li class="covered" data-hits="1" data-linenumber="13">
1756
- <span class="hits">1</span>
1757
-
1758
- <code class="ruby"> it &#39;uses no remote username if none was passed&#39; do</code>
1759
- </li>
1760
-
1761
- <li class="covered" data-hits="1" data-linenumber="14">
1762
- <span class="hits">1</span>
1763
-
1764
- <code class="ruby"> node = Chake::Node.new(&#39;theserver&#39;)</code>
1765
- </li>
1766
-
1767
- <li class="covered" data-hits="1" data-linenumber="15">
1768
- <span class="hits">1</span>
1769
-
1770
- <code class="ruby"> expect(node.username).to eq(Etc.getpwuid.name)</code>
1771
- </li>
1772
-
1773
- <li class="covered" data-hits="1" data-linenumber="16">
1774
- <span class="hits">1</span>
1775
-
1776
- <code class="ruby"> expect(node.remote_username).to be_nil</code>
1777
- </li>
1778
-
1779
- <li class="never" data-hits="" data-linenumber="17">
1780
-
1781
-
1782
- <code class="ruby"> end</code>
1783
- </li>
1784
-
1785
- <li class="never" data-hits="" data-linenumber="18">
1786
-
1787
-
1788
- <code class="ruby"></code>
1789
- </li>
1790
-
1791
- <li class="covered" data-hits="1" data-linenumber="19">
1792
- <span class="hits">1</span>
1793
-
1794
- <code class="ruby"> it &#39;uses username is passwd&#39; do</code>
1795
- </li>
1796
-
1797
- <li class="covered" data-hits="1" data-linenumber="20">
1798
- <span class="hits">1</span>
1799
-
1800
- <code class="ruby"> expect(node.username).to eq(&#39;myuser&#39;)</code>
1801
- </li>
1802
-
1803
- <li class="covered" data-hits="1" data-linenumber="21">
1804
- <span class="hits">1</span>
1805
-
1806
- <code class="ruby"> expect(node.remote_username).to eq(&#39;myuser&#39;)</code>
1807
- </li>
1808
-
1809
- <li class="never" data-hits="" data-linenumber="22">
1810
-
1811
-
1812
- <code class="ruby"> end</code>
1813
- </li>
1814
-
1815
- <li class="never" data-hits="" data-linenumber="23">
1816
-
1817
-
1818
- <code class="ruby"></code>
1819
- </li>
1820
-
1821
- <li class="covered" data-hits="1" data-linenumber="24">
1822
- <span class="hits">1</span>
1823
-
1824
- <code class="ruby"> context &#39;with a custom port&#39; do</code>
1825
- </li>
1826
-
1827
- <li class="covered" data-hits="4" data-linenumber="25">
1828
- <span class="hits">4</span>
1829
-
1830
- <code class="ruby"> let(:node) { Chake::Node.new(&#39;ssh://myhost:2222&#39;) }</code>
1831
- </li>
1832
-
1833
- <li class="covered" data-hits="1" data-linenumber="26">
1834
- <span class="hits">1</span>
1835
-
1836
- <code class="ruby"> it &#39;uses port with ssh&#39; do</code>
1837
- </li>
1838
-
1839
- <li class="covered" data-hits="1" data-linenumber="27">
1840
- <span class="hits">1</span>
1841
-
1842
- <code class="ruby"> expect(backend.command_runner).to eq([&#39;ssh&#39;, &#39;-p&#39;, &#39;2222&#39;, &#39;myhost&#39;])</code>
1843
- </li>
1844
-
1845
- <li class="never" data-hits="" data-linenumber="28">
1846
-
1847
-
1848
- <code class="ruby"> end</code>
1849
- </li>
1850
-
1851
- <li class="covered" data-hits="1" data-linenumber="29">
1852
- <span class="hits">1</span>
1853
-
1854
- <code class="ruby"> it &#39;uses port with scp&#39; do</code>
1855
- </li>
1856
-
1857
- <li class="covered" data-hits="1" data-linenumber="30">
1858
- <span class="hits">1</span>
1859
-
1860
- <code class="ruby"> expect(backend.scp).to eq([&#39;scp&#39;, &#39;-P&#39;, &#39;2222&#39;])</code>
1861
- </li>
1862
-
1863
- <li class="never" data-hits="" data-linenumber="31">
1864
-
1865
-
1866
- <code class="ruby"> end</code>
1867
- </li>
1868
-
1869
- <li class="covered" data-hits="1" data-linenumber="32">
1870
- <span class="hits">1</span>
1871
-
1872
- <code class="ruby"> it &#39;uses port with rsync&#39; do</code>
1873
- </li>
1874
-
1875
- <li class="covered" data-hits="1" data-linenumber="33">
1876
- <span class="hits">1</span>
1877
-
1878
- <code class="ruby"> expect(backend.send(:rsync_ssh)).to eq([&#39;-e&#39;, &#39;ssh -p 2222&#39;])</code>
1879
- </li>
1880
-
1881
- <li class="never" data-hits="" data-linenumber="34">
1882
-
1883
-
1884
- <code class="ruby"> end</code>
1885
- </li>
1886
-
1887
- <li class="never" data-hits="" data-linenumber="35">
1888
-
1889
-
1890
- <code class="ruby"> end</code>
1891
- </li>
1892
-
1893
- <li class="never" data-hits="" data-linenumber="36">
1894
-
1895
-
1896
- <code class="ruby"></code>
1897
- </li>
1898
-
1899
- <li class="never" data-hits="" data-linenumber="37">
1900
-
1901
-
1902
- <code class="ruby">end</code>
1903
- </li>
1904
-
1905
- </ol>
1906
- </pre>
1907
- </div>
1908
-
1909
- <div class="source_table" id="ac8821762e582e387630f20ab79b98f4f5a7f7d3">
1910
- <div class="header">
1911
- <h3>spec/chake/backend_spec.rb</h3>
1912
- <h4><span class="green">100.0 %</span> covered</h4>
1913
- <div>
1914
- <b>1</b> relevant lines.
1915
- <span class="green"><b>1</b> lines covered</span> and
1916
- <span class="red"><b>0</b> lines missed.</span>
1917
- </div>
1918
- </div>
1919
-
1920
- <pre>
1921
- <ol>
1922
-
1923
- <li class="covered" data-hits="1" data-linenumber="1">
1924
- <span class="hits">1</span>
1925
-
1926
- <code class="ruby">require &#39;chake/backend&#39;</code>
1927
- </li>
1928
-
1929
- <li class="never" data-hits="" data-linenumber="2">
1930
-
1931
-
1932
- <code class="ruby"></code>
1933
- </li>
1934
-
1935
- </ol>
1936
- </pre>
1937
- </div>
1938
-
1939
- <div class="source_table" id="a7d8a97d1649246ed1998a061b28bf4fd79b767a">
1940
- <div class="header">
1941
- <h3>spec/chake/node_spec.rb</h3>
1942
- <h4><span class="green">100.0 %</span> covered</h4>
1943
- <div>
1944
- <b>38</b> relevant lines.
1945
- <span class="green"><b>38</b> lines covered</span> and
1946
- <span class="red"><b>0</b> lines missed.</span>
1947
- </div>
1948
- </div>
1949
-
1950
- <pre>
1951
- <ol>
1952
-
1953
- <li class="covered" data-hits="1" data-linenumber="1">
1954
- <span class="hits">1</span>
1955
-
1956
- <code class="ruby">require &#39;chake/node&#39;</code>
1957
- </li>
1958
-
1959
- <li class="never" data-hits="" data-linenumber="2">
1960
-
1961
-
1962
- <code class="ruby"></code>
1963
- </li>
1964
-
1965
- <li class="covered" data-hits="1" data-linenumber="3">
1966
- <span class="hits">1</span>
1967
-
1968
- <code class="ruby">describe Chake::Node do</code>
1969
- </li>
1970
-
1971
- <li class="never" data-hits="" data-linenumber="4">
1972
-
1973
-
1974
- <code class="ruby"></code>
1975
- </li>
1976
-
1977
- <li class="covered" data-hits="1" data-linenumber="5">
1978
- <span class="hits">1</span>
1979
-
1980
- <code class="ruby"> before do</code>
1981
- </li>
1982
-
1983
- <li class="covered" data-hits="14" data-linenumber="6">
1984
- <span class="hits">14</span>
1985
-
1986
- <code class="ruby"> ent = double</code>
1987
- </li>
1988
-
1989
- <li class="covered" data-hits="14" data-linenumber="7">
1990
- <span class="hits">14</span>
1991
-
1992
- <code class="ruby"> allow(ent).to receive(:name).and_return(&#39;jonhdoe&#39;)</code>
1993
- </li>
1994
-
1995
- <li class="covered" data-hits="14" data-linenumber="8">
1996
- <span class="hits">14</span>
1997
-
1998
- <code class="ruby"> allow(Etc).to receive(:getpwuid).and_return(ent)</code>
1999
- </li>
2000
-
2001
- <li class="never" data-hits="" data-linenumber="9">
2002
-
2003
-
2004
- <code class="ruby"> end</code>
2005
- </li>
2006
-
2007
- <li class="never" data-hits="" data-linenumber="10">
2008
-
2009
-
2010
- <code class="ruby"></code>
2011
- </li>
2012
-
2013
- <li class="covered" data-hits="8" data-linenumber="11">
2014
- <span class="hits">8</span>
2015
-
2016
- <code class="ruby"> let(:simple) { Chake::Node.new(&#39;hostname&#39;) }</code>
2017
- </li>
2018
-
2019
- <li class="covered" data-hits="2" data-linenumber="12">
2020
- <span class="hits">2</span>
2021
-
2022
- <code class="ruby"> it(&#39;has a name&#39;) { expect(simple.hostname).to eq(&#39;hostname&#39;) }</code>
2023
- </li>
2024
-
2025
- <li class="covered" data-hits="2" data-linenumber="13">
2026
- <span class="hits">2</span>
2027
-
2028
- <code class="ruby"> it(&#39;uses ssh by default&#39;) { expect(simple.backend).to be_an_instance_of(Chake::Backend::Ssh) }</code>
2029
- </li>
2030
-
2031
- <li class="covered" data-hits="1" data-linenumber="14">
2032
- <span class="hits">1</span>
2033
-
2034
- <code class="ruby"> it(&#39;user current username by default&#39;) {</code>
2035
- </li>
2036
-
2037
- <li class="covered" data-hits="1" data-linenumber="15">
2038
- <span class="hits">1</span>
2039
-
2040
- <code class="ruby"> expect(simple.username).to eq(&#39;jonhdoe&#39;)</code>
2041
- </li>
2042
-
2043
- <li class="never" data-hits="" data-linenumber="16">
2044
-
2045
-
2046
- <code class="ruby"> }</code>
2047
- </li>
2048
-
2049
- <li class="covered" data-hits="1" data-linenumber="17">
2050
- <span class="hits">1</span>
2051
-
2052
- <code class="ruby"> it(&#39;writes to /var/tmp/chef.$username&#39;) {</code>
2053
- </li>
2054
-
2055
- <li class="covered" data-hits="1" data-linenumber="18">
2056
- <span class="hits">1</span>
2057
-
2058
- <code class="ruby"> expect(simple.path).to eq(&#39;/var/tmp/chef.jonhdoe&#39;)</code>
2059
- </li>
2060
-
2061
- <li class="never" data-hits="" data-linenumber="19">
2062
-
2063
-
2064
- <code class="ruby"> }</code>
2065
- </li>
2066
-
2067
- <li class="never" data-hits="" data-linenumber="20">
2068
-
2069
-
2070
- <code class="ruby"></code>
2071
- </li>
2072
-
2073
- <li class="covered" data-hits="3" data-linenumber="21">
2074
- <span class="hits">3</span>
2075
-
2076
- <code class="ruby"> let(:with_username) { Chake::Node.new(&#39;username@hostname&#39;) }</code>
2077
- </li>
2078
-
2079
- <li class="covered" data-hits="2" data-linenumber="22">
2080
- <span class="hits">2</span>
2081
-
2082
- <code class="ruby"> it(&#39;accepts username&#39;) { expect(with_username.username).to eq(&#39;username&#39;) }</code>
2083
- </li>
2084
-
2085
- <li class="covered" data-hits="2" data-linenumber="23">
2086
- <span class="hits">2</span>
2087
-
2088
- <code class="ruby"> it(&#39;uses ssh&#39;) { expect(with_username.backend).to be_an_instance_of(Chake::Backend::Ssh) }</code>
2089
- </li>
2090
-
2091
- <li class="never" data-hits="" data-linenumber="24">
2092
-
2093
-
2094
- <code class="ruby"></code>
2095
- </li>
2096
-
2097
- <li class="covered" data-hits="2" data-linenumber="25">
2098
- <span class="hits">2</span>
2099
-
2100
- <code class="ruby"> let(:with_backend) { Chake::Node.new(&#39;local://hostname&#39;)}</code>
2101
- </li>
2102
-
2103
- <li class="covered" data-hits="2" data-linenumber="26">
2104
- <span class="hits">2</span>
2105
-
2106
- <code class="ruby"> it(&#39;accepts backend as URI scheme&#39;) { expect(with_backend.backend).to be_an_instance_of(Chake::Backend::Local) }</code>
2107
- </li>
2108
-
2109
- <li class="never" data-hits="" data-linenumber="27">
2110
-
2111
-
2112
- <code class="ruby"></code>
2113
- </li>
2114
-
2115
- <li class="covered" data-hits="1" data-linenumber="28">
2116
- <span class="hits">1</span>
2117
-
2118
- <code class="ruby"> it(&#39;wont accept any backend&#39;) do</code>
2119
- </li>
2120
-
2121
- <li class="covered" data-hits="2" data-linenumber="29">
2122
- <span class="hits">2</span>
2123
-
2124
- <code class="ruby"> expect { Chake::Node.new(&#39;foobar://bazqux&#39;).backend }.to raise_error(ArgumentError)</code>
2125
- </li>
2126
-
2127
- <li class="never" data-hits="" data-linenumber="30">
2128
-
2129
-
2130
- <code class="ruby"> end</code>
2131
- </li>
2132
-
2133
- <li class="never" data-hits="" data-linenumber="31">
2134
-
2135
-
2136
- <code class="ruby"></code>
2137
- </li>
2138
-
2139
- <li class="covered" data-hits="2" data-linenumber="32">
2140
- <span class="hits">2</span>
2141
-
2142
- <code class="ruby"> let(:with_data) { Chake::Node.new(&#39;local://localhost&#39;, &#39;run_list&#39; =&gt; [&#39;recipe[common]&#39;]) }</code>
2143
- </li>
2144
-
2145
- <li class="covered" data-hits="1" data-linenumber="33">
2146
- <span class="hits">1</span>
2147
-
2148
- <code class="ruby"> it(&#39;takes data&#39;) do</code>
2149
- </li>
2150
-
2151
- <li class="covered" data-hits="1" data-linenumber="34">
2152
- <span class="hits">1</span>
2153
-
2154
- <code class="ruby"> expect(with_data.data).to be_a(Hash)</code>
2155
- </li>
2156
-
2157
- <li class="never" data-hits="" data-linenumber="35">
2158
-
2159
-
2160
- <code class="ruby"> end</code>
2161
- </li>
2162
-
2163
- <li class="never" data-hits="" data-linenumber="36">
2164
-
2165
-
2166
- <code class="ruby"></code>
2167
- </li>
2168
-
2169
- <li class="covered" data-hits="2" data-linenumber="37">
2170
- <span class="hits">2</span>
2171
-
2172
- <code class="ruby"> let(:with_port) { Chake::Node.new(&#39;ssh://foo.bar.com:2222&#39;) }</code>
2173
- </li>
2174
-
2175
- <li class="covered" data-hits="1" data-linenumber="38">
2176
- <span class="hits">1</span>
2177
-
2178
- <code class="ruby"> it(&#39;accepts a port specification&#39;) do</code>
2179
- </li>
2180
-
2181
- <li class="covered" data-hits="1" data-linenumber="39">
2182
- <span class="hits">1</span>
2183
-
2184
- <code class="ruby"> expect(with_port.port).to eq(2222)</code>
2185
- </li>
2186
-
2187
- <li class="never" data-hits="" data-linenumber="40">
2188
-
2189
-
2190
- <code class="ruby"> end</code>
2191
- </li>
2192
-
2193
- <li class="never" data-hits="" data-linenumber="41">
2194
-
2195
-
2196
- <code class="ruby"></code>
2197
- </li>
2198
-
2199
- <li class="covered" data-hits="2" data-linenumber="42">
2200
- <span class="hits">2</span>
2201
-
2202
- <code class="ruby"> let(:with_port_but_no_scheme) { Chake::Node.new(&#39;foo.bar.com:2222&#39;) }</code>
2203
- </li>
2204
-
2205
- <li class="covered" data-hits="1" data-linenumber="43">
2206
- <span class="hits">1</span>
2207
-
2208
- <code class="ruby"> it(&#39;accepts a port specification without a scheme&#39;) do</code>
2209
- </li>
2210
-
2211
- <li class="covered" data-hits="1" data-linenumber="44">
2212
- <span class="hits">1</span>
2213
-
2214
- <code class="ruby"> expect(with_port_but_no_scheme.port).to eq(2222)</code>
2215
- </li>
2216
-
2217
- <li class="covered" data-hits="1" data-linenumber="45">
2218
- <span class="hits">1</span>
2219
-
2220
- <code class="ruby"> expect(with_port_but_no_scheme.backend.to_s).to eq(&#39;ssh&#39;)</code>
2221
- </li>
2222
-
2223
- <li class="never" data-hits="" data-linenumber="46">
2224
-
2225
-
2226
- <code class="ruby"> end</code>
2227
- </li>
2228
-
2229
- <li class="never" data-hits="" data-linenumber="47">
2230
-
2231
-
2232
- <code class="ruby"></code>
2233
- </li>
2234
-
2235
- <li class="covered" data-hits="1" data-linenumber="48">
2236
- <span class="hits">1</span>
2237
-
2238
- <code class="ruby"> [:run, :run_as_root, :rsync_dest].each do |method|</code>
2239
- </li>
2240
-
2241
- <li class="covered" data-hits="3" data-linenumber="49">
2242
- <span class="hits">3</span>
2243
-
2244
- <code class="ruby"> it(&quot;delegates #{method} to backend&quot;) do</code>
2245
- </li>
2246
-
2247
- <li class="covered" data-hits="3" data-linenumber="50">
2248
- <span class="hits">3</span>
2249
-
2250
- <code class="ruby"> node = simple</code>
2251
- </li>
2252
-
2253
- <li class="never" data-hits="" data-linenumber="51">
2254
-
2255
-
2256
- <code class="ruby"></code>
2257
- </li>
2258
-
2259
- <li class="covered" data-hits="3" data-linenumber="52">
2260
- <span class="hits">3</span>
2261
-
2262
- <code class="ruby"> backend = double</code>
2263
- </li>
2264
-
2265
- <li class="covered" data-hits="3" data-linenumber="53">
2266
- <span class="hits">3</span>
2267
-
2268
- <code class="ruby"> args = Object.new</code>
2269
- </li>
2270
-
2271
- <li class="covered" data-hits="3" data-linenumber="54">
2272
- <span class="hits">3</span>
2273
-
2274
- <code class="ruby"> allow(node).to receive(:backend).and_return(backend)</code>
2275
- </li>
2276
-
2277
- <li class="never" data-hits="" data-linenumber="55">
2278
-
2279
-
2280
- <code class="ruby"></code>
2281
- </li>
2282
-
2283
- <li class="covered" data-hits="3" data-linenumber="56">
2284
- <span class="hits">3</span>
2285
-
2286
- <code class="ruby"> expect(backend).to receive(method).with(args)</code>
2287
- </li>
2288
-
2289
- <li class="covered" data-hits="3" data-linenumber="57">
2290
- <span class="hits">3</span>
2291
-
2292
- <code class="ruby"> node.send(method, args)</code>
2293
- </li>
2294
-
2295
- <li class="never" data-hits="" data-linenumber="58">
2296
-
2297
-
2298
- <code class="ruby"> end</code>
2299
- </li>
2300
-
2301
- <li class="never" data-hits="" data-linenumber="59">
2302
-
2303
-
2304
- <code class="ruby"> end</code>
2305
- </li>
2306
-
2307
- <li class="never" data-hits="" data-linenumber="60">
2308
-
2309
-
2310
- <code class="ruby"></code>
2311
- </li>
2312
-
2313
- <li class="never" data-hits="" data-linenumber="61">
2314
-
2315
-
2316
- <code class="ruby">end</code>
2317
- </li>
2318
-
2319
- </ol>
2320
- </pre>
2321
- </div>
2322
-
2323
- </div>
2324
- </div>
2325
- </body>
2326
- </html>