boris 1.0.0.beta.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/CHANGELOG.md +11 -0
  2. data/README.md +114 -32
  3. data/Rakefile +19 -0
  4. data/lib/boris.rb +0 -13
  5. data/lib/boris/connectors.rb +25 -7
  6. data/lib/boris/connectors/snmp.rb +24 -4
  7. data/lib/boris/connectors/ssh.rb +32 -6
  8. data/lib/boris/connectors/wmi.rb +109 -54
  9. data/lib/boris/errors.rb +1 -1
  10. data/lib/boris/helpers/array.rb +62 -62
  11. data/lib/boris/helpers/constants.rb +22 -19
  12. data/lib/boris/helpers/hash.rb +7 -7
  13. data/lib/boris/helpers/network.rb +68 -0
  14. data/lib/boris/helpers/scrubber.rb +53 -51
  15. data/lib/boris/helpers/string.rb +148 -26
  16. data/lib/boris/lumberjack.rb +74 -47
  17. data/lib/boris/options.rb +28 -16
  18. data/lib/boris/profiler.rb +19 -0
  19. data/lib/boris/profilers/linux/redhat.rb +74 -0
  20. data/lib/boris/{profiles → profilers}/linux_core.rb +13 -4
  21. data/lib/boris/{profiles → profilers}/unix/solaris.rb +25 -15
  22. data/lib/boris/{profiles → profilers}/unix_core.rb +90 -85
  23. data/lib/boris/profilers/windows/windows2003.rb +11 -0
  24. data/lib/boris/profilers/windows/windows2008.rb +26 -0
  25. data/lib/boris/profilers/windows/windows2012.rb +11 -0
  26. data/lib/boris/{profiles → profilers}/windows_core.rb +36 -14
  27. data/lib/boris/structure.rb +173 -167
  28. data/lib/boris/target.rb +110 -168
  29. data/lib/boris/version.rb +3 -0
  30. metadata +32 -115
  31. data/boris.gemspec +0 -28
  32. data/doc/Array.html +0 -437
  33. data/doc/Boris.html +0 -230
  34. data/doc/Boris/ConnectionAlreadyActive.html +0 -123
  35. data/doc/Boris/ConnectionFailed.html +0 -127
  36. data/doc/Boris/Connector.html +0 -794
  37. data/doc/Boris/InvalidCredentials.html +0 -131
  38. data/doc/Boris/InvalidOption.html +0 -123
  39. data/doc/Boris/InvalidTargetName.html +0 -123
  40. data/doc/Boris/Lumberjack.html +0 -466
  41. data/doc/Boris/MissingCredentials.html +0 -123
  42. data/doc/Boris/NoActiveConnection.html +0 -123
  43. data/doc/Boris/NoProfileDetected.html +0 -123
  44. data/doc/Boris/Options.html +0 -783
  45. data/doc/Boris/Profiles.html +0 -117
  46. data/doc/Boris/Profiles/Linux.html +0 -1151
  47. data/doc/Boris/Profiles/RedHat.html +0 -875
  48. data/doc/Boris/Profiles/Solaris.html +0 -1230
  49. data/doc/Boris/Profiles/Structure.html +0 -2050
  50. data/doc/Boris/Profiles/UNIX.html +0 -893
  51. data/doc/Boris/Profiles/Windows.html +0 -1846
  52. data/doc/Boris/Profiles/Windows/Windows2003.html +0 -304
  53. data/doc/Boris/Profiles/Windows/Windows2008.html +0 -379
  54. data/doc/Boris/Profiles/Windows/Windows2012.html +0 -304
  55. data/doc/Boris/SNMPConnector.html +0 -512
  56. data/doc/Boris/SSHConnector.html +0 -633
  57. data/doc/Boris/Target.html +0 -2002
  58. data/doc/Boris/WMIConnector.html +0 -1134
  59. data/doc/BorisLogger.html +0 -217
  60. data/doc/Hash.html +0 -195
  61. data/doc/String.html +0 -1246
  62. data/doc/_index.html +0 -420
  63. data/doc/class_list.html +0 -53
  64. data/doc/css/common.css +0 -1
  65. data/doc/css/full_list.css +0 -57
  66. data/doc/css/style.css +0 -328
  67. data/doc/file.README.html +0 -183
  68. data/doc/file_list.html +0 -55
  69. data/doc/frames.html +0 -28
  70. data/doc/index.html +0 -183
  71. data/doc/js/app.js +0 -214
  72. data/doc/js/full_list.js +0 -173
  73. data/doc/js/jquery.js +0 -4
  74. data/doc/method_list.html +0 -1468
  75. data/doc/top-level-namespace.html +0 -126
  76. data/lib/boris/profiles/linux/redhat.rb +0 -77
  77. data/lib/boris/profiles/windows/windows2003.rb +0 -15
  78. data/lib/boris/profiles/windows/windows2008.rb +0 -23
  79. data/lib/boris/profiles/windows/windows2012.rb +0 -15
  80. data/test/connector_tests/test_snmp.rb +0 -35
  81. data/test/connector_tests/test_ssh.rb +0 -51
  82. data/test/connector_tests/test_wmi.rb +0 -129
  83. data/test/helper_tests/test_array.rb +0 -25
  84. data/test/helper_tests/test_hash.rb +0 -10
  85. data/test/helper_tests/test_string.rb +0 -136
  86. data/test/profile_tests/test_core_skeleton +0 -107
  87. data/test/profile_tests/test_linux_core.rb +0 -331
  88. data/test/profile_tests/test_redhat.rb +0 -134
  89. data/test/profile_tests/test_solaris.rb +0 -523
  90. data/test/profile_tests/test_unix_core.rb +0 -117
  91. data/test/profile_tests/test_windows.rb +0 -536
  92. data/test/setup_tests.rb +0 -14
  93. data/test/test_all.rb +0 -8
  94. data/test/test_options.rb +0 -44
  95. data/test/test_structure.rb +0 -136
  96. data/test/test_target.rb +0 -146
@@ -1,2002 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>
7
- Class: Boris::Target
8
-
9
- &mdash; Documentation by YARD 0.8.3
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- hasFrames = window.top.frames.main ? true : false;
19
- relpath = '../';
20
- framesUrl = "../frames.html#!" + escape(window.location.href);
21
- </script>
22
-
23
-
24
- <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
-
26
- <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
-
28
-
29
- </head>
30
- <body>
31
- <div id="header">
32
- <div id="menu">
33
-
34
- <a href="../_index.html">Index (T)</a> &raquo;
35
- <span class='title'><span class='object_link'><a href="../Boris.html" title="Boris (module)">Boris</a></span></span>
36
- &raquo;
37
- <span class="title">Target</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a class="full_list_link" id="class_list_link"
46
- href="../class_list.html">
47
- Class List
48
- </a>
49
-
50
- <a class="full_list_link" id="method_list_link"
51
- href="../method_list.html">
52
- Method List
53
- </a>
54
-
55
- <a class="full_list_link" id="file_list_link"
56
- href="../file_list.html">
57
- File List
58
- </a>
59
-
60
- </div>
61
- <div class="clear"></div>
62
- </div>
63
-
64
- <iframe id="search_frame"></iframe>
65
-
66
- <div id="content"><h1>Class: Boris::Target
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
- <dt class="r1">Inherits:</dt>
75
- <dd class="r1">
76
- <span class="inheritName">Object</span>
77
-
78
- <ul class="fullTree">
79
- <li>Object</li>
80
-
81
- <li class="next">Boris::Target</li>
82
-
83
- </ul>
84
- <a href="#" class="inheritanceTree">show all</a>
85
-
86
- </dd>
87
-
88
-
89
-
90
-
91
-
92
-
93
- <dt class="r2">Includes:</dt>
94
- <dd class="r2"><span class='object_link'><a href="Lumberjack.html" title="Boris::Lumberjack (module)">Lumberjack</a></span></dd>
95
-
96
-
97
-
98
-
99
-
100
- <dt class="r1 last">Defined in:</dt>
101
- <dd class="r1 last">lib/boris/target.rb</dd>
102
-
103
- </dl>
104
- <div class="clear"></div>
105
-
106
- <h2>Overview</h2><div class="docstring">
107
- <div class="discussion">
108
-
109
- <p><span class='object_link'><a href="" title="Boris::Target (class)">Target</a></span> is the basic class from which you can control the
110
- underlying framework for communicating with the device you wish to scan. A
111
- Target will allow you to provide options via <span class='object_link'><a href="Options.html" title="Boris::Options (class)">Options</a></span>, detect which
112
- profile to use, connect to, and eventually scan your target device,
113
- returning a large amount of data.</p>
114
-
115
-
116
- </div>
117
- </div>
118
- <div class="tags">
119
-
120
-
121
- </div>
122
-
123
-
124
-
125
- <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
126
- <ul class="summary">
127
-
128
- <li class="public ">
129
- <span class="summary_signature">
130
-
131
- <a href="#connector-instance_method" title="#connector (instance method)">- (Object) <strong>connector</strong> </a>
132
-
133
-
134
-
135
- </span>
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
- <span class="summary_desc"><div class='inline'>
149
- <p>Returns the value of attribute connector.</p>
150
- </div></span>
151
-
152
- </li>
153
-
154
-
155
- <li class="public ">
156
- <span class="summary_signature">
157
-
158
- <a href="#host-instance_method" title="#host (instance method)">- (Object) <strong>host</strong> </a>
159
-
160
-
161
-
162
- </span>
163
-
164
-
165
-
166
-
167
- <span class="note title readonly">readonly</span>
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- <span class="summary_desc"><div class='inline'>
178
- <p>Returns the value of attribute host.</p>
179
- </div></span>
180
-
181
- </li>
182
-
183
-
184
- <li class="public ">
185
- <span class="summary_signature">
186
-
187
- <a href="#logger-instance_method" title="#logger (instance method)">- (Object) <strong>logger</strong> </a>
188
-
189
-
190
-
191
- </span>
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
- <span class="summary_desc"><div class='inline'>
205
- <p>Returns the value of attribute logger.</p>
206
- </div></span>
207
-
208
- </li>
209
-
210
-
211
- <li class="public ">
212
- <span class="summary_signature">
213
-
214
- <a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a>
215
-
216
-
217
-
218
- </span>
219
-
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-
231
- <span class="summary_desc"><div class='inline'>
232
- <p>Returns the value of attribute options.</p>
233
- </div></span>
234
-
235
- </li>
236
-
237
-
238
- <li class="public ">
239
- <span class="summary_signature">
240
-
241
- <a href="#target_profile-instance_method" title="#target_profile (instance method)">- (Object) <strong>target_profile</strong> </a>
242
-
243
-
244
-
245
- </span>
246
-
247
-
248
-
249
-
250
- <span class="note title readonly">readonly</span>
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
- <span class="summary_desc"><div class='inline'>
261
- <p>Returns the value of attribute target_profile.</p>
262
- </div></span>
263
-
264
- </li>
265
-
266
-
267
- <li class="public ">
268
- <span class="summary_signature">
269
-
270
- <a href="#unavailable_connection_types-instance_method" title="#unavailable_connection_types (instance method)">- (Object) <strong>unavailable_connection_types</strong> </a>
271
-
272
-
273
-
274
- </span>
275
-
276
-
277
-
278
-
279
- <span class="note title readonly">readonly</span>
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
- <span class="summary_desc"><div class='inline'>
290
- <p>Returns the value of attribute unavailable_connection_types.</p>
291
- </div></span>
292
-
293
- </li>
294
-
295
-
296
- </ul>
297
-
298
-
299
-
300
-
301
-
302
- <h2>
303
- Instance Method Summary
304
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
305
- </h2>
306
-
307
- <ul class="summary">
308
-
309
- <li class="public ">
310
- <span class="summary_signature">
311
-
312
- <a href="#connect-instance_method" title="#connect (instance method)">- (Boolean) <strong>connect</strong> </a>
313
-
314
-
315
-
316
- </span>
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
- <span class="summary_desc"><div class='inline'>
327
- <p>Connects to the target using the credentials supplied via the connection
328
- type as specified by the credential.</p>
329
- </div></span>
330
-
331
- </li>
332
-
333
-
334
- <li class="public ">
335
- <span class="summary_signature">
336
-
337
- <a href="#connected%3F-instance_method" title="#connected? (instance method)">- (Boolean) <strong>connected?</strong> </a>
338
-
339
-
340
-
341
- </span>
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
-
351
- <span class="summary_desc"><div class='inline'>
352
- <p>Checks on the status of the connection.</p>
353
- </div></span>
354
-
355
- </li>
356
-
357
-
358
- <li class="public ">
359
- <span class="summary_signature">
360
-
361
- <a href="#detect_profile-instance_method" title="#detect_profile (instance method)">- (Module) <strong>detect_profile</strong> </a>
362
-
363
-
364
-
365
- </span>
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
- <span class="summary_desc"><div class='inline'>
376
- <p>Cycles through all of the profiles as specified in <span class='object_link'><a href="Options.html" title="Boris::Options (class)">Options</a></span> for
377
- this target.</p>
378
- </div></span>
379
-
380
- </li>
381
-
382
-
383
- <li class="public ">
384
- <span class="summary_signature">
385
-
386
- <a href="#disconnect-instance_method" title="#disconnect (instance method)">- (Boolean) <strong>disconnect</strong> </a>
387
-
388
-
389
-
390
- </span>
391
-
392
-
393
-
394
-
395
-
396
-
397
-
398
-
399
-
400
- <span class="summary_desc"><div class='inline'>
401
- <p>Gracefully disconnects from the target (if a connection exists).</p>
402
- </div></span>
403
-
404
- </li>
405
-
406
-
407
- <li class="public ">
408
- <span class="summary_signature">
409
-
410
- <a href="#force_profile_to-instance_method" title="#force_profile_to (instance method)">- (Object) <strong>force_profile_to</strong>(profile) </a>
411
-
412
-
413
-
414
- </span>
415
-
416
-
417
-
418
-
419
-
420
-
421
-
422
-
423
-
424
- <span class="summary_desc"><div class='inline'>
425
- <p>Allows us to force the use of a profile.</p>
426
- </div></span>
427
-
428
- </li>
429
-
430
-
431
- <li class="public ">
432
- <span class="summary_signature">
433
-
434
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Target) <strong>initialize</strong>(host, options = {}) </a>
435
-
436
-
437
-
438
- </span>
439
-
440
-
441
- <span class="note title constructor">constructor</span>
442
-
443
-
444
-
445
-
446
-
447
-
448
-
449
-
450
- <span class="summary_desc"><div class='inline'>
451
- <p>Create the target by passing in a mandatory hostname or IP address, and
452
- optional <span class='object_link'><a href="Options.html" title="Boris::Options (class)">options hash</a></span>.</p>
453
- </div></span>
454
-
455
- </li>
456
-
457
-
458
- <li class="public ">
459
- <span class="summary_signature">
460
-
461
- <a href="#retrieve_all-instance_method" title="#retrieve_all (instance method)">- (Object) <strong>retrieve_all</strong> </a>
462
-
463
-
464
-
465
- </span>
466
-
467
-
468
-
469
-
470
-
471
-
472
-
473
-
474
-
475
- <span class="summary_desc"><div class='inline'>
476
- <p>Calls all data-collecting methods.</p>
477
- </div></span>
478
-
479
- </li>
480
-
481
-
482
- <li class="public ">
483
- <span class="summary_signature">
484
-
485
- <a href="#suggested_connection_method-instance_method" title="#suggested_connection_method (instance method)">- (Symbol) <strong>suggested_connection_method</strong> </a>
486
-
487
-
488
-
489
- </span>
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
-
499
- <span class="summary_desc"><div class='inline'>
500
- <p>Attempts to suggest a connection method based on whether certain TCP ports
501
- on the target are responding (135 for WMI, 22 for SSH by default).</p>
502
- </div></span>
503
-
504
- </li>
505
-
506
-
507
- <li class="public ">
508
- <span class="summary_signature">
509
-
510
- <a href="#tcp_port_responding%3F-instance_method" title="#tcp_port_responding? (instance method)">- (Boolean) <strong>tcp_port_responding?</strong>(port) </a>
511
-
512
-
513
-
514
- </span>
515
-
516
-
517
-
518
-
519
-
520
-
521
-
522
-
523
-
524
- <span class="summary_desc"><div class='inline'>
525
- <p>Checks if the supplied TCP port is responding on the target.</p>
526
- </div></span>
527
-
528
- </li>
529
-
530
-
531
- <li class="public ">
532
- <span class="summary_signature">
533
-
534
- <a href="#to_json-instance_method" title="#to_json (instance method)">- (Object) <strong>to_json</strong>(pretty = false) </a>
535
-
536
-
537
-
538
- </span>
539
-
540
-
541
-
542
-
543
-
544
-
545
-
546
-
547
-
548
- <span class="summary_desc"><div class='inline'>
549
- <p>Parses the target's scanned data into JSON format for portability.</p>
550
- </div></span>
551
-
552
- </li>
553
-
554
-
555
- </ul>
556
-
557
-
558
-
559
-
560
-
561
-
562
-
563
-
564
-
565
-
566
-
567
- <h3 class="inherited">Methods included from <span class='object_link'><a href="Lumberjack.html" title="Boris::Lumberjack (module)">Lumberjack</a></span></h3>
568
- <p class="inherited"><span class='object_link'><a href="Lumberjack.html#debug-instance_method" title="Boris::Lumberjack#debug (method)">#debug</a></span>, <span class='object_link'><a href="Lumberjack.html#error-instance_method" title="Boris::Lumberjack#error (method)">#error</a></span>, <span class='object_link'><a href="Lumberjack.html#fatal-instance_method" title="Boris::Lumberjack#fatal (method)">#fatal</a></span>, <span class='object_link'><a href="Lumberjack.html#info-instance_method" title="Boris::Lumberjack#info (method)">#info</a></span>, <span class='object_link'><a href="Lumberjack.html#warn-instance_method" title="Boris::Lumberjack#warn (method)">#warn</a></span></p>
569
- <div id="constructor_details" class="method_details_list">
570
- <h2>Constructor Details</h2>
571
-
572
- <div class="method_details first">
573
- <h3 class="signature first" id="initialize-instance_method">
574
-
575
- - (<tt><span class='object_link'><a href="" title="Boris::Target (class)">Target</a></span></tt>) <strong>initialize</strong>(host, options = {})
576
-
577
-
578
-
579
-
580
-
581
- </h3><div class="docstring">
582
- <div class="discussion">
583
-
584
- <p>Create the target by passing in a mandatory hostname or IP address, and
585
- optional <span class='object_link'><a href="Options.html" title="Boris::Options (class)">options hash</a></span>.</p>
586
-
587
- <p>When a block is passed, the <span class='object_link'><a href="" title="Boris::Target (class)">Boris::Target</a></span> object itself is returned, and
588
- the connection will be automatically disconnected at the end of the block
589
- (if it exists).</p>
590
-
591
- <pre class="code ruby"><code><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>boris</span><span class='tstring_end'>'</span></span>
592
-
593
- <span class='id identifier rubyid_target'>target</span> <span class='op'>=</span> <span class='const'>Boris</span><span class='op'>::</span><span class='const'>Target</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>192.168.1.1</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:log_level</span><span class='op'>=&gt;</span><span class='symbol'>:debug</span><span class='rparen'>)</span></code></pre>
594
-
595
-
596
- </div>
597
- </div>
598
- <div class="tags">
599
- <p class="tag_title">Parameters:</p>
600
- <ul class="param">
601
-
602
- <li>
603
-
604
- <span class='name'>host</span>
605
-
606
-
607
- <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="String (class)">String</a></span></tt>)</span>
608
-
609
-
610
-
611
- &mdash;
612
- <div class='inline'>
613
- <p>hostname or IP address</p>
614
- </div>
615
-
616
- </li>
617
-
618
- <li>
619
-
620
- <span class='name'>options</span>
621
-
622
-
623
- <span class='type'>(<tt><span class='object_link'><a href="../Hash.html" title="Hash (class)">Hash</a></span></tt>)</span>
624
-
625
-
626
- <em class="default">(defaults to: <tt>{}</tt>)</em>
627
-
628
-
629
- &mdash;
630
- <div class='inline'>
631
- <p>an optional list of options. See <span class='object_link'><a href="Options.html" title="Boris::Options (class)">Options</a></span> for a list of all
632
- possible options.</p>
633
- </div>
634
-
635
- </li>
636
-
637
- </ul>
638
-
639
-
640
- </div><table class="source_code">
641
- <tr>
642
- <td>
643
- <pre class="lines">
644
-
645
-
646
- 44
647
- 45
648
- 46
649
- 47
650
- 48
651
- 49
652
- 50
653
- 51
654
- 52
655
- 53
656
- 54
657
- 55
658
- 56
659
- 57
660
- 58
661
- 59
662
- 60
663
- 61
664
- 62
665
- 63
666
- 64
667
- 65
668
- 66
669
- 67
670
- 68
671
- 69
672
- 70
673
- 71</pre>
674
- </td>
675
- <td>
676
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 44</span>
677
-
678
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
679
- <span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_host'>host</span>
680
-
681
- <span class='id identifier rubyid_options'>options</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
682
- <span class='ivar'>@options</span> <span class='op'>=</span> <span class='const'>Options</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
683
-
684
- <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>BorisLogger</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>STDERR</span><span class='rparen'>)</span>
685
-
686
- <span class='kw'>if</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:log_level</span><span class='rbracket'>]</span>
687
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_level'>level</span> <span class='op'>=</span> <span class='kw'>case</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:log_level</span><span class='rbracket'>]</span>
688
- <span class='kw'>when</span> <span class='symbol'>:debug</span> <span class='kw'>then</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>DEBUG</span>
689
- <span class='kw'>when</span> <span class='symbol'>:info</span> <span class='kw'>then</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span>
690
- <span class='kw'>when</span> <span class='symbol'>:warn</span> <span class='kw'>then</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>WARN</span>
691
- <span class='kw'>when</span> <span class='symbol'>:error</span> <span class='kw'>then</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>ERROR</span>
692
- <span class='kw'>when</span> <span class='symbol'>:fatal</span> <span class='kw'>then</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>FATAL</span>
693
- <span class='kw'>else</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid logger level specified (</span><span class='embexpr_beg'>#{</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:log_level</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='rbrace'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
694
- <span class='kw'>end</span>
695
- <span class='kw'>end</span>
696
-
697
- <span class='ivar'>@unavailable_connection_types</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
698
-
699
- <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
700
- <span class='kw'>yield</span> <span class='kw'>self</span>
701
- <span class='id identifier rubyid_disconnect'>disconnect</span> <span class='kw'>if</span> <span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
702
- <span class='kw'>else</span>
703
- <span class='kw'>self</span>
704
- <span class='kw'>end</span>
705
- <span class='kw'>end</span></pre>
706
- </td>
707
- </tr>
708
- </table>
709
- </div>
710
-
711
- </div>
712
-
713
- <div id="instance_attr_details" class="attr_details">
714
- <h2>Instance Attribute Details</h2>
715
-
716
-
717
- <span id="connector=-instance_method"></span>
718
- <div class="method_details first">
719
- <h3 class="signature first" id="connector-instance_method">
720
-
721
- - (<tt>Object</tt>) <strong>connector</strong>
722
-
723
-
724
-
725
-
726
-
727
- </h3><div class="docstring">
728
- <div class="discussion">
729
-
730
- <p>Returns the value of attribute connector</p>
731
-
732
-
733
- </div>
734
- </div>
735
- <div class="tags">
736
-
737
-
738
- </div><table class="source_code">
739
- <tr>
740
- <td>
741
- <pre class="lines">
742
-
743
-
744
- 27
745
- 28
746
- 29</pre>
747
- </td>
748
- <td>
749
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 27</span>
750
-
751
- <span class='kw'>def</span> <span class='id identifier rubyid_connector'>connector</span>
752
- <span class='ivar'>@connector</span>
753
- <span class='kw'>end</span></pre>
754
- </td>
755
- </tr>
756
- </table>
757
- </div>
758
-
759
-
760
- <span id=""></span>
761
- <div class="method_details ">
762
- <h3 class="signature " id="host-instance_method">
763
-
764
- - (<tt>Object</tt>) <strong>host</strong> <span class="extras">(readonly)</span>
765
-
766
-
767
-
768
-
769
-
770
- </h3><div class="docstring">
771
- <div class="discussion">
772
-
773
- <p>Returns the value of attribute host</p>
774
-
775
-
776
- </div>
777
- </div>
778
- <div class="tags">
779
-
780
-
781
- </div><table class="source_code">
782
- <tr>
783
- <td>
784
- <pre class="lines">
785
-
786
-
787
- 23
788
- 24
789
- 25</pre>
790
- </td>
791
- <td>
792
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 23</span>
793
-
794
- <span class='kw'>def</span> <span class='id identifier rubyid_host'>host</span>
795
- <span class='ivar'>@host</span>
796
- <span class='kw'>end</span></pre>
797
- </td>
798
- </tr>
799
- </table>
800
- </div>
801
-
802
-
803
- <span id="logger=-instance_method"></span>
804
- <div class="method_details ">
805
- <h3 class="signature " id="logger-instance_method">
806
-
807
- - (<tt>Object</tt>) <strong>logger</strong>
808
-
809
-
810
-
811
-
812
-
813
- </h3><div class="docstring">
814
- <div class="discussion">
815
-
816
- <p>Returns the value of attribute logger</p>
817
-
818
-
819
- </div>
820
- </div>
821
- <div class="tags">
822
-
823
-
824
- </div><table class="source_code">
825
- <tr>
826
- <td>
827
- <pre class="lines">
828
-
829
-
830
- 29
831
- 30
832
- 31</pre>
833
- </td>
834
- <td>
835
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 29</span>
836
-
837
- <span class='kw'>def</span> <span class='id identifier rubyid_logger'>logger</span>
838
- <span class='ivar'>@logger</span>
839
- <span class='kw'>end</span></pre>
840
- </td>
841
- </tr>
842
- </table>
843
- </div>
844
-
845
-
846
- <span id="options=-instance_method"></span>
847
- <div class="method_details ">
848
- <h3 class="signature " id="options-instance_method">
849
-
850
- - (<tt>Object</tt>) <strong>options</strong>
851
-
852
-
853
-
854
-
855
-
856
- </h3><div class="docstring">
857
- <div class="discussion">
858
-
859
- <p>Returns the value of attribute options</p>
860
-
861
-
862
- </div>
863
- </div>
864
- <div class="tags">
865
-
866
-
867
- </div><table class="source_code">
868
- <tr>
869
- <td>
870
- <pre class="lines">
871
-
872
-
873
- 28
874
- 29
875
- 30</pre>
876
- </td>
877
- <td>
878
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 28</span>
879
-
880
- <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span>
881
- <span class='ivar'>@options</span>
882
- <span class='kw'>end</span></pre>
883
- </td>
884
- </tr>
885
- </table>
886
- </div>
887
-
888
-
889
- <span id=""></span>
890
- <div class="method_details ">
891
- <h3 class="signature " id="target_profile-instance_method">
892
-
893
- - (<tt>Object</tt>) <strong>target_profile</strong> <span class="extras">(readonly)</span>
894
-
895
-
896
-
897
-
898
-
899
- </h3><div class="docstring">
900
- <div class="discussion">
901
-
902
- <p>Returns the value of attribute target_profile</p>
903
-
904
-
905
- </div>
906
- </div>
907
- <div class="tags">
908
-
909
-
910
- </div><table class="source_code">
911
- <tr>
912
- <td>
913
- <pre class="lines">
914
-
915
-
916
- 24
917
- 25
918
- 26</pre>
919
- </td>
920
- <td>
921
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 24</span>
922
-
923
- <span class='kw'>def</span> <span class='id identifier rubyid_target_profile'>target_profile</span>
924
- <span class='ivar'>@target_profile</span>
925
- <span class='kw'>end</span></pre>
926
- </td>
927
- </tr>
928
- </table>
929
- </div>
930
-
931
-
932
- <span id=""></span>
933
- <div class="method_details ">
934
- <h3 class="signature " id="unavailable_connection_types-instance_method">
935
-
936
- - (<tt>Object</tt>) <strong>unavailable_connection_types</strong> <span class="extras">(readonly)</span>
937
-
938
-
939
-
940
-
941
-
942
- </h3><div class="docstring">
943
- <div class="discussion">
944
-
945
- <p>Returns the value of attribute unavailable_connection_types</p>
946
-
947
-
948
- </div>
949
- </div>
950
- <div class="tags">
951
-
952
-
953
- </div><table class="source_code">
954
- <tr>
955
- <td>
956
- <pre class="lines">
957
-
958
-
959
- 25
960
- 26
961
- 27</pre>
962
- </td>
963
- <td>
964
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 25</span>
965
-
966
- <span class='kw'>def</span> <span class='id identifier rubyid_unavailable_connection_types'>unavailable_connection_types</span>
967
- <span class='ivar'>@unavailable_connection_types</span>
968
- <span class='kw'>end</span></pre>
969
- </td>
970
- </tr>
971
- </table>
972
- </div>
973
-
974
- </div>
975
-
976
-
977
- <div id="instance_method_details" class="method_details_list">
978
- <h2>Instance Method Details</h2>
979
-
980
-
981
- <div class="method_details first">
982
- <h3 class="signature first" id="connect-instance_method">
983
-
984
- - (<tt>Boolean</tt>) <strong>connect</strong>
985
-
986
-
987
-
988
-
989
-
990
- </h3><div class="docstring">
991
- <div class="discussion">
992
-
993
- <p>Connects to the target using the credentials supplied via the connection
994
- type as specified by the credential. This method will smartly bypass any
995
- further connection attempts if it is determined that the connection will
996
- likely never work (for example, if you try to connect via WMI to a Linux
997
- host (which will fail), any further attempts to connect to that host via
998
- WMI will be ignored).</p>
999
-
1000
-
1001
- </div>
1002
- </div>
1003
- <div class="tags">
1004
-
1005
- <p class="tag_title">Returns:</p>
1006
- <ul class="return">
1007
-
1008
- <li>
1009
-
1010
-
1011
- <span class='type'>(<tt>Boolean</tt>)</span>
1012
-
1013
-
1014
-
1015
- &mdash;
1016
- <div class='inline'>
1017
- <p>returns true if the connection attempt succeeded</p>
1018
- </div>
1019
-
1020
- </li>
1021
-
1022
- </ul>
1023
- <p class="tag_title">Raises:</p>
1024
- <ul class="raise">
1025
-
1026
- <li>
1027
-
1028
-
1029
- <span class='type'>(<tt><span class='object_link'><a href="ConnectionAlreadyActive.html" title="Boris::ConnectionAlreadyActive (class)">ConnectionAlreadyActive</a></span></tt>)</span>
1030
-
1031
-
1032
-
1033
- &mdash;
1034
- <div class='inline'>
1035
- <p>when a connection is already active</p>
1036
- </div>
1037
-
1038
- </li>
1039
-
1040
- <li>
1041
-
1042
-
1043
- <span class='type'>(<tt><span class='object_link'><a href="InvalidOption.html" title="Boris::InvalidOption (class)">InvalidOption</a></span></tt>)</span>
1044
-
1045
-
1046
-
1047
- &mdash;
1048
- <div class='inline'>
1049
- <p>if credentials are not specified in the target's options hash</p>
1050
- </div>
1051
-
1052
- </li>
1053
-
1054
- </ul>
1055
-
1056
- </div><table class="source_code">
1057
- <tr>
1058
- <td>
1059
- <pre class="lines">
1060
-
1061
-
1062
- 81
1063
- 82
1064
- 83
1065
- 84
1066
- 85
1067
- 86
1068
- 87
1069
- 88
1070
- 89
1071
- 90
1072
- 91
1073
- 92
1074
- 93
1075
- 94
1076
- 95
1077
- 96
1078
- 97
1079
- 98
1080
- 99
1081
- 100
1082
- 101
1083
- 102
1084
- 103
1085
- 104
1086
- 105
1087
- 106
1088
- 107
1089
- 108
1090
- 109
1091
- 110
1092
- 111
1093
- 112
1094
- 113
1095
- 114
1096
- 115
1097
- 116
1098
- 117
1099
- 118
1100
- 119
1101
- 120
1102
- 121
1103
- 122
1104
- 123
1105
- 124
1106
- 125
1107
- 126
1108
- 127
1109
- 128
1110
- 129
1111
- 130
1112
- 131
1113
- 132
1114
- 133
1115
- 134
1116
- 135
1117
- 136
1118
- 137</pre>
1119
- </td>
1120
- <td>
1121
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 81</span>
1122
-
1123
- <span class='kw'>def</span> <span class='id identifier rubyid_connect'>connect</span>
1124
- <span class='kw'>if</span> <span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
1125
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ConnectionAlreadyActive</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>a connect attempt has been made when active connection already exists</span><span class='tstring_end'>'</span></span>
1126
- <span class='kw'>elsif</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:credentials</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1127
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>InvalidOption</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>no credentials specified</span><span class='tstring_end'>'</span></span>
1128
- <span class='kw'>end</span>
1129
-
1130
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>preparing to connect</span><span class='tstring_end'>'</span></span>
1131
-
1132
- <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:credentials</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_cred'>cred</span><span class='op'>|</span>
1133
- <span class='kw'>if</span> <span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
1134
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>active connection established, will not try any more credentials</span><span class='tstring_end'>'</span></span>
1135
- <span class='kw'>break</span>
1136
- <span class='kw'>end</span>
1137
-
1138
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>using credential (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cred'>cred</span><span class='lbracket'>[</span><span class='symbol'>:user</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
1139
-
1140
- <span class='id identifier rubyid_cred'>cred</span><span class='lbracket'>[</span><span class='symbol'>:connection_types</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_conn_type'>conn_type</span><span class='op'>|</span>
1141
- <span class='kw'>if</span> <span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
1142
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>active connection established, will not try any more connection types</span><span class='tstring_end'>'</span></span>
1143
- <span class='kw'>break</span>
1144
- <span class='kw'>end</span>
1145
-
1146
- <span class='kw'>case</span> <span class='id identifier rubyid_conn_type'>conn_type</span>
1147
- <span class='kw'>when</span> <span class='symbol'>:snmp</span>
1148
- <span class='ivar'>@connector</span> <span class='op'>=</span> <span class='const'>SNMPConnector</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@host</span><span class='comma'>,</span> <span class='id identifier rubyid_cred'>cred</span><span class='comma'>,</span> <span class='ivar'>@options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
1149
- <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_establish_connection'>establish_connection</span>
1150
- <span class='comment'># we won't add snmp to the @unavailable_connection_types array, as it
1151
- </span> <span class='comment'># could respond later with another community string
1152
- </span> <span class='kw'>when</span> <span class='symbol'>:ssh</span>
1153
- <span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@unavailable_connection_types</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='symbol'>:ssh</span><span class='rparen'>)</span>
1154
- <span class='ivar'>@connector</span> <span class='op'>=</span> <span class='const'>SSHConnector</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@host</span><span class='comma'>,</span> <span class='id identifier rubyid_cred'>cred</span><span class='comma'>,</span> <span class='ivar'>@options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
1155
- <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_establish_connection'>establish_connection</span>
1156
-
1157
- <span class='kw'>if</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_reconnectable'>reconnectable</span> <span class='op'>==</span> <span class='kw'>false</span>
1158
- <span class='ivar'>@unavailable_connection_types</span> <span class='op'>&lt;&lt;</span> <span class='symbol'>:ssh</span>
1159
- <span class='kw'>end</span>
1160
- <span class='kw'>end</span>
1161
- <span class='kw'>when</span> <span class='symbol'>:wmi</span>
1162
- <span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@unavailable_connection_types</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='symbol'>:wmi</span><span class='rparen'>)</span>
1163
- <span class='ivar'>@connector</span> <span class='op'>=</span> <span class='const'>WMIConnector</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@host</span><span class='comma'>,</span> <span class='id identifier rubyid_cred'>cred</span><span class='comma'>,</span> <span class='ivar'>@options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
1164
- <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_establish_connection'>establish_connection</span>
1165
-
1166
- <span class='kw'>if</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_reconnectable'>reconnectable</span> <span class='op'>==</span> <span class='kw'>false</span>
1167
- <span class='ivar'>@unavailable_connection_types</span> <span class='op'>&lt;&lt;</span> <span class='symbol'>:wmi</span>
1168
- <span class='kw'>end</span>
1169
- <span class='kw'>end</span>
1170
- <span class='kw'>end</span>
1171
-
1172
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>connection established via </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_conn_type'>conn_type</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
1173
- <span class='kw'>end</span>
1174
- <span class='kw'>end</span>
1175
-
1176
- <span class='ivar'>@connector</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span> <span class='op'>==</span> <span class='kw'>false</span>
1177
-
1178
- <span class='kw'>return</span> <span class='ivar'>@connector</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1179
- <span class='kw'>end</span></pre>
1180
- </td>
1181
- </tr>
1182
- </table>
1183
- </div>
1184
-
1185
- <div class="method_details ">
1186
- <h3 class="signature " id="connected?-instance_method">
1187
-
1188
- - (<tt>Boolean</tt>) <strong>connected?</strong>
1189
-
1190
-
1191
-
1192
-
1193
-
1194
- </h3><div class="docstring">
1195
- <div class="discussion">
1196
-
1197
- <p>Checks on the status of the connection.</p>
1198
-
1199
-
1200
- </div>
1201
- </div>
1202
- <div class="tags">
1203
-
1204
- <p class="tag_title">Returns:</p>
1205
- <ul class="return">
1206
-
1207
- <li>
1208
-
1209
-
1210
- <span class='type'>(<tt>Boolean</tt>)</span>
1211
-
1212
-
1213
-
1214
- &mdash;
1215
- <div class='inline'>
1216
- <p>returns true if the connection to the target is active</p>
1217
- </div>
1218
-
1219
- </li>
1220
-
1221
- </ul>
1222
-
1223
- </div><table class="source_code">
1224
- <tr>
1225
- <td>
1226
- <pre class="lines">
1227
-
1228
-
1229
- 142
1230
- 143
1231
- 144</pre>
1232
- </td>
1233
- <td>
1234
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 142</span>
1235
-
1236
- <span class='kw'>def</span> <span class='id identifier rubyid_connected?'>connected?</span>
1237
- <span class='lparen'>(</span><span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1238
- <span class='kw'>end</span></pre>
1239
- </td>
1240
- </tr>
1241
- </table>
1242
- </div>
1243
-
1244
- <div class="method_details ">
1245
- <h3 class="signature " id="detect_profile-instance_method">
1246
-
1247
- - (<tt>Module</tt>) <strong>detect_profile</strong>
1248
-
1249
-
1250
-
1251
-
1252
-
1253
- </h3><div class="docstring">
1254
- <div class="discussion">
1255
-
1256
- <p>Cycles through all of the profiles as specified in <span class='object_link'><a href="Options.html" title="Boris::Options (class)">Options</a></span> for
1257
- this target. Each profile includes a method for determining whether the
1258
- output of a certain command will properly fit the target. Once a suitable
1259
- profile is determined, it is then loaded up, which provides <span class='object_link'><a href="../Boris.html" title="Boris (module)">Boris</a></span> the
1260
- instructions on how to proceed.</p>
1261
-
1262
-
1263
- </div>
1264
- </div>
1265
- <div class="tags">
1266
-
1267
- <p class="tag_title">Returns:</p>
1268
- <ul class="return">
1269
-
1270
- <li>
1271
-
1272
-
1273
- <span class='type'>(<tt>Module</tt>)</span>
1274
-
1275
-
1276
-
1277
- &mdash;
1278
- <div class='inline'>
1279
- <p>returns the Module of a suitable profile, else it will throw an error</p>
1280
- </div>
1281
-
1282
- </li>
1283
-
1284
- </ul>
1285
- <p class="tag_title">Raises:</p>
1286
- <ul class="raise">
1287
-
1288
- <li>
1289
-
1290
-
1291
- <span class='type'>(<tt><span class='object_link'><a href="InvalidOption.html" title="Boris::InvalidOption (class)">InvalidOption</a></span></tt>)</span>
1292
-
1293
-
1294
-
1295
- &mdash;
1296
- <div class='inline'>
1297
- <p>if no profiles are loaded prior to calling #detect_profile</p>
1298
- </div>
1299
-
1300
- </li>
1301
-
1302
- <li>
1303
-
1304
-
1305
- <span class='type'>(<tt><span class='object_link'><a href="NoActiveConnection.html" title="Boris::NoActiveConnection (class)">NoActiveConnection</a></span></tt>)</span>
1306
-
1307
-
1308
-
1309
- &mdash;
1310
- <div class='inline'>
1311
- <p>if no active connection is available when calling #detect_profile</p>
1312
- </div>
1313
-
1314
- </li>
1315
-
1316
- <li>
1317
-
1318
-
1319
- <span class='type'>(<tt><span class='object_link'><a href="NoProfileDetected.html" title="Boris::NoProfileDetected (class)">NoProfileDetected</a></span></tt>)</span>
1320
-
1321
-
1322
-
1323
- &mdash;
1324
- <div class='inline'>
1325
- <p>when no suitable profile was found</p>
1326
- </div>
1327
-
1328
- </li>
1329
-
1330
- </ul>
1331
-
1332
- <p class="tag_title">See Also:</p>
1333
- <ul class="see">
1334
-
1335
- <li><span class='object_link'><a href="#force_profile_to-instance_method" title="Boris::Target#force_profile_to (method)">#force_profile_to</a></span></li>
1336
-
1337
- </ul>
1338
-
1339
- </div><table class="source_code">
1340
- <tr>
1341
- <td>
1342
- <pre class="lines">
1343
-
1344
-
1345
- 159
1346
- 160
1347
- 161
1348
- 162
1349
- 163
1350
- 164
1351
- 165
1352
- 166
1353
- 167
1354
- 168
1355
- 169
1356
- 170
1357
- 171
1358
- 172
1359
- 173
1360
- 174
1361
- 175
1362
- 176
1363
- 177
1364
- 178
1365
- 179
1366
- 180
1367
- 181
1368
- 182
1369
- 183
1370
- 184
1371
- 185
1372
- 186</pre>
1373
- </td>
1374
- <td>
1375
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 159</span>
1376
-
1377
- <span class='kw'>def</span> <span class='id identifier rubyid_detect_profile'>detect_profile</span>
1378
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>InvalidOption</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>no profiles loaded</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:profiles</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>||</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:profiles</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1379
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoActiveConnection</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>no active connection</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='op'>!</span><span class='ivar'>@connector</span> <span class='op'>||</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span> <span class='op'>==</span> <span class='kw'>false</span><span class='rparen'>)</span>
1380
-
1381
- <span class='ivar'>@target_profile</span> <span class='op'>=</span> <span class='kw'>nil</span>
1382
-
1383
- <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:profiles</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_profile'>profile</span><span class='op'>|</span>
1384
- <span class='kw'>break</span> <span class='kw'>if</span> <span class='ivar'>@target_profile</span>
1385
-
1386
- <span class='kw'>if</span> <span class='id identifier rubyid_profile'>profile</span><span class='period'>.</span><span class='id identifier rubyid_connection_type'>connection_type</span> <span class='op'>==</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span>
1387
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>testing profile: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_profile'>profile</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1388
-
1389
- <span class='kw'>if</span> <span class='id identifier rubyid_profile'>profile</span><span class='period'>.</span><span class='id identifier rubyid_matches_target?'>matches_target?</span><span class='lparen'>(</span><span class='ivar'>@connector</span><span class='rparen'>)</span>
1390
- <span class='ivar'>@target_profile</span> <span class='op'>=</span> <span class='id identifier rubyid_profile'>profile</span>
1391
-
1392
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>suitable profile found (</span><span class='embexpr_beg'>#{</span><span class='ivar'>@target_profile</span><span class='rbrace'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
1393
-
1394
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span> <span class='ivar'>@target_profile</span>
1395
-
1396
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>profile set to </span><span class='embexpr_beg'>#{</span><span class='ivar'>@target_profile</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1397
- <span class='kw'>end</span>
1398
- <span class='kw'>end</span>
1399
- <span class='kw'>end</span>
1400
-
1401
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoProfileDetected</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>no suitable profile found</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@target_profile</span>
1402
-
1403
- <span class='ivar'>@target_profile</span>
1404
- <span class='kw'>end</span></pre>
1405
- </td>
1406
- </tr>
1407
- </table>
1408
- </div>
1409
-
1410
- <div class="method_details ">
1411
- <h3 class="signature " id="disconnect-instance_method">
1412
-
1413
- - (<tt>Boolean</tt>) <strong>disconnect</strong>
1414
-
1415
-
1416
-
1417
-
1418
-
1419
- </h3><div class="docstring">
1420
- <div class="discussion">
1421
-
1422
- <p>Gracefully disconnects from the target (if a connection exists).</p>
1423
-
1424
-
1425
- </div>
1426
- </div>
1427
- <div class="tags">
1428
-
1429
- <p class="tag_title">Returns:</p>
1430
- <ul class="return">
1431
-
1432
- <li>
1433
-
1434
-
1435
- <span class='type'>(<tt>Boolean</tt>)</span>
1436
-
1437
-
1438
-
1439
- &mdash;
1440
- <div class='inline'>
1441
- <p>returns true if the connection disconnected successfully</p>
1442
- </div>
1443
-
1444
- </li>
1445
-
1446
- </ul>
1447
-
1448
- </div><table class="source_code">
1449
- <tr>
1450
- <td>
1451
- <pre class="lines">
1452
-
1453
-
1454
- 191
1455
- 192
1456
- 193</pre>
1457
- </td>
1458
- <td>
1459
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 191</span>
1460
-
1461
- <span class='kw'>def</span> <span class='id identifier rubyid_disconnect'>disconnect</span>
1462
- <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_disconnect'>disconnect</span> <span class='kw'>if</span> <span class='ivar'>@connector</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_connected?'>connected?</span>
1463
- <span class='kw'>end</span></pre>
1464
- </td>
1465
- </tr>
1466
- </table>
1467
- </div>
1468
-
1469
- <div class="method_details ">
1470
- <h3 class="signature " id="force_profile_to-instance_method">
1471
-
1472
- - (<tt>Object</tt>) <strong>force_profile_to</strong>(profile)
1473
-
1474
-
1475
-
1476
-
1477
-
1478
- </h3><div class="docstring">
1479
- <div class="discussion">
1480
-
1481
- <p>Allows us to force the use of a profile. This can be used instead of
1482
- #detect_profile.</p>
1483
-
1484
-
1485
- </div>
1486
- </div>
1487
- <div class="tags">
1488
- <p class="tag_title">Parameters:</p>
1489
- <ul class="param">
1490
-
1491
- <li>
1492
-
1493
- <span class='name'>profile</span>
1494
-
1495
-
1496
- <span class='type'></span>
1497
-
1498
-
1499
-
1500
- &mdash;
1501
- <div class='inline'>
1502
- <p>the module of the profile we wish to set the target to use</p>
1503
- </div>
1504
-
1505
- </li>
1506
-
1507
- </ul>
1508
-
1509
-
1510
- <p class="tag_title">See Also:</p>
1511
- <ul class="see">
1512
-
1513
- <li><span class='object_link'><a href="#detect_profile-instance_method" title="Boris::Target#detect_profile (method)">#detect_profile</a></span></li>
1514
-
1515
- </ul>
1516
-
1517
- </div><table class="source_code">
1518
- <tr>
1519
- <td>
1520
- <pre class="lines">
1521
-
1522
-
1523
- 198
1524
- 199
1525
- 200
1526
- 201
1527
- 202</pre>
1528
- </td>
1529
- <td>
1530
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 198</span>
1531
-
1532
- <span class='kw'>def</span> <span class='id identifier rubyid_force_profile_to'>force_profile_to</span><span class='lparen'>(</span><span class='id identifier rubyid_profile'>profile</span><span class='rparen'>)</span>
1533
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span> <span class='id identifier rubyid_profile'>profile</span>
1534
- <span class='ivar'>@target_profile</span> <span class='op'>=</span> <span class='id identifier rubyid_profile'>profile</span>
1535
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>profile successfully forced to </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_profile'>profile</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1536
- <span class='kw'>end</span></pre>
1537
- </td>
1538
- </tr>
1539
- </table>
1540
- </div>
1541
-
1542
- <div class="method_details ">
1543
- <h3 class="signature " id="retrieve_all-instance_method">
1544
-
1545
- - (<tt>Object</tt>) <strong>retrieve_all</strong>
1546
-
1547
-
1548
-
1549
-
1550
-
1551
- </h3><div class="docstring">
1552
- <div class="discussion">
1553
-
1554
- <div class="note notetag">
1555
- <strong>Note:</strong>
1556
- <div class='inline'>
1557
- <p>Running the full gamut of data collection methods may take some time, and
1558
- connections over WMI usually take longer than their SSH counterparts.
1559
- Typically, a Linux server scan can be completed in around a minute, where a
1560
- Windows host will be completed in 2-3 minutes (in a perfect world, of
1561
- course).</p>
1562
- </div>
1563
- </div>
1564
-
1565
-
1566
- <p>Calls all data-collecting methods. Probably will be used in most cases
1567
- after a connection has been established to the host. Methods that will be
1568
- called include:</p>
1569
- <ul><li>
1570
- <p>get_file_systems (Array)</p>
1571
- </li><li>
1572
- <p>get_hardware (Hash)</p>
1573
- </li><li>
1574
- <p>get_hosted_shares (Array)</p>
1575
- </li><li>
1576
- <p>get_installed_applications (Array)</p>
1577
- </li><li>
1578
- <p>get_local_user_groups (Array)</p>
1579
- </li><li>
1580
- <p>get_installed_patches (Array)</p>
1581
- </li><li>
1582
- <p>get_installed_services (Array)</p>
1583
- </li><li>
1584
- <p>get_network_id (Hash)</p>
1585
- </li><li>
1586
- <p>get_network_interfaces (Array)</p>
1587
- </li><li>
1588
- <p>get_operating_system (Hash)</p>
1589
- </li></ul>
1590
-
1591
- <pre class="code ruby"><code><span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_retrieve_all'>retrieve_all</span>
1592
- <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_file_systems'>file_systems</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='comment'>#=&gt; 2
1593
- </span><span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_installed_applications'>installed_applications</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='comment'>#=&gt; {:application_name=&gt;'Adobe Reader'...}</span></code></pre>
1594
-
1595
- <p>This method will also scrub the data after retrieving all of the items.</p>
1596
-
1597
-
1598
- </div>
1599
- </div>
1600
- <div class="tags">
1601
-
1602
-
1603
- <p class="tag_title">See Also:</p>
1604
- <ul class="see">
1605
-
1606
- <li><span class='object_link'><a href="Profiles/Structure.html" title="Boris::Profiles::Structure (module)">Profiles::Structure: a complete list of the data scructure</a></span></li>
1607
-
1608
- </ul>
1609
-
1610
- </div><table class="source_code">
1611
- <tr>
1612
- <td>
1613
- <pre class="lines">
1614
-
1615
-
1616
- 228
1617
- 229
1618
- 230
1619
- 231
1620
- 232
1621
- 233
1622
- 234
1623
- 235
1624
- 236
1625
- 237
1626
- 238
1627
- 239
1628
- 240
1629
- 241
1630
- 242
1631
- 243
1632
- 244
1633
- 245</pre>
1634
- </td>
1635
- <td>
1636
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 228</span>
1637
-
1638
- <span class='kw'>def</span> <span class='id identifier rubyid_retrieve_all'>retrieve_all</span>
1639
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>retrieving all configuration items</span><span class='tstring_end'>'</span></span>
1640
-
1641
- <span class='id identifier rubyid_get_file_systems'>get_file_systems</span>
1642
- <span class='id identifier rubyid_get_hardware'>get_hardware</span>
1643
- <span class='id identifier rubyid_get_hosted_shares'>get_hosted_shares</span>
1644
- <span class='id identifier rubyid_get_installed_applications'>get_installed_applications</span>
1645
- <span class='id identifier rubyid_get_local_user_groups'>get_local_user_groups</span>
1646
- <span class='id identifier rubyid_get_installed_patches'>get_installed_patches</span>
1647
- <span class='id identifier rubyid_get_installed_services'>get_installed_services</span>
1648
- <span class='id identifier rubyid_get_network_id'>get_network_id</span>
1649
- <span class='id identifier rubyid_get_network_interfaces'>get_network_interfaces</span>
1650
- <span class='id identifier rubyid_get_operating_system'>get_operating_system</span>
1651
-
1652
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>all items retrieved successfully</span><span class='tstring_end'>'</span></span>
1653
-
1654
- <span class='id identifier rubyid_scrub_data!'>scrub_data!</span> <span class='kw'>if</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:auto_scrub_data</span><span class='rbracket'>]</span>
1655
- <span class='kw'>end</span></pre>
1656
- </td>
1657
- </tr>
1658
- </table>
1659
- </div>
1660
-
1661
- <div class="method_details ">
1662
- <h3 class="signature " id="suggested_connection_method-instance_method">
1663
-
1664
- - (<tt>Symbol</tt>) <strong>suggested_connection_method</strong>
1665
-
1666
-
1667
-
1668
-
1669
-
1670
- </h3><div class="docstring">
1671
- <div class="discussion">
1672
-
1673
- <p>Attempts to suggest a connection method based on whether certain TCP ports
1674
- on the target are responding (135 for WMI, 22 for SSH by default). Can be
1675
- used to speed up the process of determining whether we should try to
1676
- connect to our host using different methods, or bypass certain attempts
1677
- entirely.</p>
1678
-
1679
- <pre class="code ruby"><code><span class='id identifier rubyid_target'>target</span> <span class='op'>=</span> <span class='const'>Target</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>redhatserver01</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1680
- <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_suggested_connection_method'>suggested_connection_method</span> <span class='comment'>#=&gt; :ssh</span></code></pre>
1681
-
1682
-
1683
- </div>
1684
- </div>
1685
- <div class="tags">
1686
-
1687
- <p class="tag_title">Returns:</p>
1688
- <ul class="return">
1689
-
1690
- <li>
1691
-
1692
-
1693
- <span class='type'>(<tt>Symbol</tt>)</span>
1694
-
1695
-
1696
-
1697
- &mdash;
1698
- <div class='inline'>
1699
- <p>returns :wmi, :ssh, or nil</p>
1700
- </div>
1701
-
1702
- </li>
1703
-
1704
- </ul>
1705
-
1706
- <p class="tag_title">See Also:</p>
1707
- <ul class="see">
1708
-
1709
- <li>tcp_port_responding?</li>
1710
-
1711
- </ul>
1712
-
1713
- </div><table class="source_code">
1714
- <tr>
1715
- <td>
1716
- <pre class="lines">
1717
-
1718
-
1719
- 258
1720
- 259
1721
- 260
1722
- 261
1723
- 262
1724
- 263
1725
- 264
1726
- 265
1727
- 266
1728
- 267
1729
- 268
1730
- 269
1731
- 270
1732
- 271
1733
- 272
1734
- 273</pre>
1735
- </td>
1736
- <td>
1737
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 258</span>
1738
-
1739
- <span class='kw'>def</span> <span class='id identifier rubyid_suggested_connection_method'>suggested_connection_method</span>
1740
- <span class='id identifier rubyid_connection_method'>connection_method</span> <span class='op'>=</span> <span class='kw'>nil</span>
1741
-
1742
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>detecting if wmi is available</span><span class='tstring_end'>'</span></span>
1743
- <span class='id identifier rubyid_connection_method'>connection_method</span> <span class='op'>=</span> <span class='symbol'>:wmi</span> <span class='kw'>if</span> <span class='id identifier rubyid_tcp_port_responding?'>tcp_port_responding?</span><span class='lparen'>(</span><span class='const'>PORT_DEFAULTS</span><span class='lbracket'>[</span><span class='symbol'>:wmi</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1744
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>wmi does not appear to be responding</span><span class='tstring_end'>'</span></span>
1745
-
1746
- <span class='kw'>if</span> <span class='id identifier rubyid_connection_method'>connection_method</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1747
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>detecting if ssh is available</span><span class='tstring_end'>'</span></span>
1748
- <span class='id identifier rubyid_connection_method'>connection_method</span> <span class='op'>=</span> <span class='symbol'>:ssh</span> <span class='kw'>if</span> <span class='id identifier rubyid_tcp_port_responding?'>tcp_port_responding?</span><span class='lparen'>(</span><span class='const'>PORT_DEFAULTS</span><span class='lbracket'>[</span><span class='symbol'>:ssh</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1749
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ssh does not appear to be responding</span><span class='tstring_end'>'</span></span>
1750
- <span class='kw'>end</span>
1751
-
1752
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>failed to detect connection method</span><span class='tstring_end'>'</span></span><span class='kw'>if</span> <span class='id identifier rubyid_connection_method'>connection_method</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1753
- <span class='id identifier rubyid_connection_method'>connection_method</span>
1754
- <span class='kw'>end</span></pre>
1755
- </td>
1756
- </tr>
1757
- </table>
1758
- </div>
1759
-
1760
- <div class="method_details ">
1761
- <h3 class="signature " id="tcp_port_responding?-instance_method">
1762
-
1763
- - (<tt>Boolean</tt>) <strong>tcp_port_responding?</strong>(port)
1764
-
1765
-
1766
-
1767
-
1768
-
1769
- </h3><div class="docstring">
1770
- <div class="discussion">
1771
-
1772
- <p>Checks if the supplied TCP port is responding on the target. Useful for
1773
- determining which connection type we should use instead of taking more time
1774
- connecting to the target using different methods just to check if they
1775
- succeed or not.</p>
1776
-
1777
- <pre class="code ruby"><code><span class='id identifier rubyid_target'>target</span> <span class='op'>=</span> <span class='const'>Target</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>windowsserver01</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1778
- <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_tcp_port_responding?'>tcp_port_responding?</span><span class='lparen'>(</span><span class='int'>22</span><span class='rparen'>)</span> <span class='comment'>#=&gt; false</span></code></pre>
1779
-
1780
-
1781
- </div>
1782
- </div>
1783
- <div class="tags">
1784
- <p class="tag_title">Parameters:</p>
1785
- <ul class="param">
1786
-
1787
- <li>
1788
-
1789
- <span class='name'>port</span>
1790
-
1791
-
1792
- <span class='type'></span>
1793
-
1794
-
1795
-
1796
- &mdash;
1797
- <div class='inline'>
1798
- <p>the TCP port number we wish to test</p>
1799
- </div>
1800
-
1801
- </li>
1802
-
1803
- </ul>
1804
-
1805
- <p class="tag_title">Returns:</p>
1806
- <ul class="return">
1807
-
1808
- <li>
1809
-
1810
-
1811
- <span class='type'>(<tt>Boolean</tt>)</span>
1812
-
1813
-
1814
-
1815
- &mdash;
1816
- <div class='inline'>
1817
- <p>returns true of the supplied port is responding</p>
1818
- </div>
1819
-
1820
- </li>
1821
-
1822
- </ul>
1823
-
1824
- </div><table class="source_code">
1825
- <tr>
1826
- <td>
1827
- <pre class="lines">
1828
-
1829
-
1830
- 285
1831
- 286
1832
- 287
1833
- 288
1834
- 289
1835
- 290
1836
- 291
1837
- 292
1838
- 293
1839
- 294
1840
- 295
1841
- 296
1842
- 297
1843
- 298
1844
- 299
1845
- 300
1846
- 301
1847
- 302</pre>
1848
- </td>
1849
- <td>
1850
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 285</span>
1851
-
1852
- <span class='kw'>def</span> <span class='id identifier rubyid_tcp_port_responding?'>tcp_port_responding?</span><span class='lparen'>(</span><span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
1853
- <span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='kw'>false</span>
1854
-
1855
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>checking if port </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_port'>port</span><span class='rbrace'>}</span><span class='tstring_content'> is responding</span><span class='tstring_end'>&quot;</span></span>
1856
-
1857
- <span class='kw'>begin</span>
1858
- <span class='id identifier rubyid_conn'>conn</span> <span class='op'>=</span> <span class='const'>TCPSocket</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@host</span><span class='comma'>,</span> <span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
1859
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>port </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_port'>port</span><span class='rbrace'>}</span><span class='tstring_content'> is responding</span><span class='tstring_end'>&quot;</span></span>
1860
- <span class='id identifier rubyid_conn'>conn</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1861
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>connection to port closed</span><span class='tstring_end'>&quot;</span></span>
1862
- <span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='kw'>true</span>
1863
- <span class='kw'>rescue</span>
1864
- <span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>port </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_port'>port</span><span class='rbrace'>}</span><span class='tstring_content'> is not responding</span><span class='tstring_end'>&quot;</span></span>
1865
- <span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='kw'>false</span>
1866
- <span class='kw'>end</span>
1867
-
1868
- <span class='id identifier rubyid_status'>status</span>
1869
- <span class='kw'>end</span></pre>
1870
- </td>
1871
- </tr>
1872
- </table>
1873
- </div>
1874
-
1875
- <div class="method_details ">
1876
- <h3 class="signature " id="to_json-instance_method">
1877
-
1878
- - (<tt>Object</tt>) <strong>to_json</strong>(pretty = false)
1879
-
1880
-
1881
-
1882
-
1883
-
1884
- </h3><div class="docstring">
1885
- <div class="discussion">
1886
-
1887
- <p>Parses the target's scanned data into JSON format for portability.</p>
1888
-
1889
- <pre class="code ruby"><code><span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_get_network_id'>get_network_id</span>
1890
- <span class='id identifier rubyid_json_string'>json_string</span> <span class='op'>=</span> <span class='id identifier rubyid_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span> <span class='comment'>#=&gt; &quot;{\&quot;domain\&quot;:\&quot;mydomain.com\&quot;,\&quot;hostname\&quot;:\&quot;SERVER01\&quot;}&quot;...
1891
- </span>
1892
- <span class='comment'># The JSON string can later be parsed back into an object
1893
- </span><span class='id identifier rubyid_target_object'>target_object</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_json_string'>json_string</span><span class='comma'>,</span> <span class='symbol'>:symbolize_names</span><span class='op'>=&gt;</span><span class='kw'>true</span><span class='rparen'>)</span></code></pre>
1894
-
1895
-
1896
- </div>
1897
- </div>
1898
- <div class="tags">
1899
- <p class="tag_title">Parameters:</p>
1900
- <ul class="param">
1901
-
1902
- <li>
1903
-
1904
- <span class='name'>pretty</span>
1905
-
1906
-
1907
- <span class='type'></span>
1908
-
1909
-
1910
- <em class="default">(defaults to: <tt>false</tt>)</em>
1911
-
1912
-
1913
- &mdash;
1914
- <div class='inline'>
1915
- <p>a boolean value to determine whether the data should be returned in json
1916
- format with proper indentation.</p>
1917
- </div>
1918
-
1919
- </li>
1920
-
1921
- </ul>
1922
-
1923
-
1924
- </div><table class="source_code">
1925
- <tr>
1926
- <td>
1927
- <pre class="lines">
1928
-
1929
-
1930
- 313
1931
- 314
1932
- 315
1933
- 316
1934
- 317
1935
- 318
1936
- 319
1937
- 320
1938
- 321
1939
- 322
1940
- 323
1941
- 324
1942
- 325
1943
- 326
1944
- 327
1945
- 328
1946
- 329
1947
- 330
1948
- 331
1949
- 332
1950
- 333
1951
- 334
1952
- 335
1953
- 336
1954
- 337
1955
- 338</pre>
1956
- </td>
1957
- <td>
1958
- <pre class="code"><span class="info file"># File 'lib/boris/target.rb', line 313</span>
1959
-
1960
- <span class='kw'>def</span> <span class='id identifier rubyid_to_json'>to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_pretty'>pretty</span><span class='op'>=</span><span class='kw'>false</span><span class='rparen'>)</span>
1961
- <span class='id identifier rubyid_json'>json</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1962
-
1963
- <span class='id identifier rubyid_data_vars'>data_vars</span> <span class='op'>=</span> <span class='qwords_beg'>%w{
1964
- </span><span class='tstring_content'> file_systems</span><span class='words_sep'>
1965
- </span><span class='tstring_content'> hardware</span><span class='words_sep'>
1966
- </span><span class='tstring_content'> hosted_shares</span><span class='words_sep'>
1967
- </span><span class='tstring_content'> installed_applications</span><span class='words_sep'>
1968
- </span><span class='tstring_content'> installed_patches</span><span class='words_sep'>
1969
- </span><span class='tstring_content'> installed_services</span><span class='words_sep'>
1970
- </span><span class='tstring_content'> local_user_groups</span><span class='words_sep'>
1971
- </span><span class='tstring_content'> network_id</span><span class='words_sep'>
1972
- </span><span class='tstring_content'> network_interfaces</span><span class='words_sep'>
1973
- </span><span class='tstring_content'> operating_system</span><span class='words_sep'>
1974
- </span><span class='tstring_end'> }</span></span>
1975
-
1976
- <span class='id identifier rubyid_data_vars'>data_vars</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_var'>var</span><span class='op'>|</span>
1977
- <span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='id identifier rubyid_var'>var</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_var'>var</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rparen'>)</span>
1978
- <span class='kw'>end</span>
1979
-
1980
- <span class='id identifier rubyid_generated_json'>generated_json</span> <span class='op'>=</span> <span class='id identifier rubyid_pretty'>pretty</span> <span class='op'>?</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_pretty_generate'>pretty_generate</span><span class='lparen'>(</span><span class='id identifier rubyid_json'>json</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_generate'>generate</span><span class='lparen'>(</span><span class='id identifier rubyid_json'>json</span><span class='rparen'>)</span>
1981
-
1982
- <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>json generated successfully</span><span class='tstring_end'>&quot;</span></span>
1983
-
1984
- <span class='id identifier rubyid_generated_json'>generated_json</span>
1985
- <span class='kw'>end</span></pre>
1986
- </td>
1987
- </tr>
1988
- </table>
1989
- </div>
1990
-
1991
- </div>
1992
-
1993
- </div>
1994
-
1995
- <div id="footer">
1996
- Generated on Sun Feb 3 16:32:42 2013 by
1997
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1998
- 0.8.3 (ruby-1.9.3).
1999
- </div>
2000
-
2001
- </body>
2002
- </html>