6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/onering/cli/reporter.rb', line 6
def self.configure(global={})
@global_opts = global
@api = Onering::CLI.connect(@global_opts.merge({
:autoconnect => false
}))
@opts = ::Trollop::options do
banner <<-EOS
Generate a system report that can be saved or submitted to a Onering server
Subcommands:
<none>
Generate and output the system inventory report.
get <property> [fallback]
Get a specific <property> from the report, return [fallback] if not found.
save
Generate and save the system inventory report to Onering.
Usage:
onering [global] report [options] [subcommands]
Options:
EOS
opt :id, "Override the autodetected Hardware ID for this node", :short => '-I', :type => :string
opt :fields, "Set the named FIELD to equal VALUE in the format FIELD=VALUE. Can be specified multiple times", :short => '-o', :type => :string, :multi => true
opt :save, "Save the report output to the configured Onering server"
opt :timeout, "The maximum amount of time to wait for a report to be generated", :type => :integer, :default => 60
opt :plugin_timeout, "The maximum amount of time to wait for a report plugin to return data", :type => :integer, :default => 10
opt :local, "Do not attempt to contact a remote server for retrieving values not found locally", :type => :boolean, :default => false
opt :cachefile, "Use the specified file as a local report cache", :type => :string, :short => '-F'
opt :nocache, "Do not attempt to use a cache file for report generation", :type => :boolean, :default => false
opt :maxage, "Maxmimum age (in seconds) of the cache before it is automatically regenerated", :type => :integer, :default => DEFAULT_CACHE_MAXAGE
stop_on %w{get save}
end
@_reporter = Onering::Reporter.new({
:id => @opts[:id],
:timeout => @opts[:timeout],
:plugin_timeout => @opts[:plugin_timeout],
:nocache => @opts[:nocache],
:cachefile => @opts[:cachefile],
:maxage => @opts[:maxage]
}.compact)
end
|