boris 1.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.md +9 -0
- data/README.md +94 -0
- data/boris.gemspec +28 -0
- data/doc/Array.html +437 -0
- data/doc/Boris.html +230 -0
- data/doc/Boris/ConnectionAlreadyActive.html +123 -0
- data/doc/Boris/ConnectionFailed.html +127 -0
- data/doc/Boris/Connector.html +794 -0
- data/doc/Boris/InvalidCredentials.html +131 -0
- data/doc/Boris/InvalidOption.html +123 -0
- data/doc/Boris/InvalidTargetName.html +123 -0
- data/doc/Boris/Lumberjack.html +466 -0
- data/doc/Boris/MissingCredentials.html +123 -0
- data/doc/Boris/NoActiveConnection.html +123 -0
- data/doc/Boris/NoProfileDetected.html +123 -0
- data/doc/Boris/Options.html +783 -0
- data/doc/Boris/Profiles.html +117 -0
- data/doc/Boris/Profiles/Linux.html +1151 -0
- data/doc/Boris/Profiles/RedHat.html +875 -0
- data/doc/Boris/Profiles/Solaris.html +1230 -0
- data/doc/Boris/Profiles/Structure.html +2050 -0
- data/doc/Boris/Profiles/UNIX.html +893 -0
- data/doc/Boris/Profiles/Windows.html +1846 -0
- data/doc/Boris/Profiles/Windows/Windows2003.html +304 -0
- data/doc/Boris/Profiles/Windows/Windows2008.html +379 -0
- data/doc/Boris/Profiles/Windows/Windows2012.html +304 -0
- data/doc/Boris/SNMPConnector.html +512 -0
- data/doc/Boris/SSHConnector.html +633 -0
- data/doc/Boris/Target.html +2002 -0
- data/doc/Boris/WMIConnector.html +1134 -0
- data/doc/BorisLogger.html +217 -0
- data/doc/Hash.html +195 -0
- data/doc/String.html +1246 -0
- data/doc/_index.html +420 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +183 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +183 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1468 -0
- data/doc/top-level-namespace.html +126 -0
- data/lib/boris.rb +30 -0
- data/lib/boris/connectors.rb +47 -0
- data/lib/boris/connectors/snmp.rb +56 -0
- data/lib/boris/connectors/ssh.rb +110 -0
- data/lib/boris/connectors/wmi.rb +186 -0
- data/lib/boris/errors.rb +17 -0
- data/lib/boris/helpers/array.rb +63 -0
- data/lib/boris/helpers/constants.rb +20 -0
- data/lib/boris/helpers/hash.rb +8 -0
- data/lib/boris/helpers/scrubber.rb +51 -0
- data/lib/boris/helpers/string.rb +130 -0
- data/lib/boris/lumberjack.rb +47 -0
- data/lib/boris/options.rb +86 -0
- data/lib/boris/profiles/linux/redhat.rb +77 -0
- data/lib/boris/profiles/linux_core.rb +216 -0
- data/lib/boris/profiles/unix/solaris.rb +307 -0
- data/lib/boris/profiles/unix_core.rb +85 -0
- data/lib/boris/profiles/windows/windows2003.rb +15 -0
- data/lib/boris/profiles/windows/windows2008.rb +23 -0
- data/lib/boris/profiles/windows/windows2012.rb +15 -0
- data/lib/boris/profiles/windows_core.rb +530 -0
- data/lib/boris/structure.rb +167 -0
- data/lib/boris/target.rb +340 -0
- data/test/connector_tests/test_snmp.rb +35 -0
- data/test/connector_tests/test_ssh.rb +51 -0
- data/test/connector_tests/test_wmi.rb +129 -0
- data/test/helper_tests/test_array.rb +25 -0
- data/test/helper_tests/test_hash.rb +10 -0
- data/test/helper_tests/test_string.rb +136 -0
- data/test/profile_tests/test_core_skeleton +107 -0
- data/test/profile_tests/test_linux_core.rb +331 -0
- data/test/profile_tests/test_redhat.rb +134 -0
- data/test/profile_tests/test_solaris.rb +523 -0
- data/test/profile_tests/test_unix_core.rb +117 -0
- data/test/profile_tests/test_windows.rb +536 -0
- data/test/setup_tests.rb +14 -0
- data/test/test_all.rb +8 -0
- data/test/test_options.rb +44 -0
- data/test/test_structure.rb +136 -0
- data/test/test_target.rb +146 -0
- metadata +241 -0
@@ -0,0 +1,2002 @@
|
|
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
|
+
— 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> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../Boris.html" title="Boris (module)">Boris</a></span></span>
|
36
|
+
»
|
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'>=></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
|
+
—
|
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
|
+
—
|
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'>"</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'>"</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'>&&</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
|
+
—
|
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
|
+
—
|
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
|
+
—
|
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'>&&</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'>&&</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'>"</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'>"</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'>&&</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'><<</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'><<</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'>"</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'>"</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
|
+
—
|
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'>&&</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
|
+
—
|
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
|
+
—
|
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
|
+
—
|
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
|
+
—
|
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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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
|
+
—
|
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'>&&</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
|
+
—
|
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'>"</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'>"</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'>#=> 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'>#=> {:application_name=>'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'>#=> :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
|
+
—
|
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'>#=> 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
|
+
—
|
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
|
+
—
|
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'>"</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'>"</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'>"</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'>"</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'>"</span><span class='tstring_content'>connection to port closed</span><span class='tstring_end'>"</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'>"</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'>"</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'>#=> "{\"domain\":\"mydomain.com\",\"hostname\":\"SERVER01\"}"...
|
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'>=></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
|
+
—
|
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'>"</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'>"</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'>"</span><span class='tstring_content'>json generated successfully</span><span class='tstring_end'>"</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>
|