1 |
f5d21adb
|
Tom McKay
|
module HammerCLICsv
|
2 |
|
|
module Utils
|
3 |
|
|
module Config
|
4 |
|
|
def credentials
|
5 |
|
|
@credentials ||= HammerCLIForeman::BasicCredentials.new(
|
6 |
|
|
:username => (HammerCLI::Settings.get(:_params, :username) || ENV['FOREMAN_USERNAME'] || HammerCLI::Settings.get(:foreman, :username)),
|
7 |
|
|
:password => (HammerCLI::Settings.get(:_params, :password) || ENV['FOREMAN_PASSWORD'] || HammerCLI::Settings.get(:foreman, :password))
|
8 |
|
|
)
|
9 |
|
|
@credentials
|
10 |
|
|
end
|
11 |
|
|
|
12 |
|
|
def resource_config
|
13 |
|
|
config = {}
|
14 |
|
|
config[:uri] = HammerCLI::Settings.get(:_params, :host) || HammerCLI::Settings.get(:foreman, :host)
|
15 |
|
|
config[:credentials] = credentials
|
16 |
|
|
config[:logger] = Logging.logger['API']
|
17 |
|
|
config[:api_version] = 2
|
18 |
|
|
config[:follow_redirects] = HammerCLI::Settings.get(:foreman, :follow_redirects) || :never
|
19 |
|
|
config[:aggressive_cache_checking] = HammerCLI::Settings.get(:foreman, :refresh_cache) || false
|
20 |
|
|
config[:headers] = { "Accept-Language" => HammerCLI::I18n.locale }
|
21 |
|
|
config[:language] = HammerCLI::I18n.locale
|
22 |
|
|
config[:timeout] = HammerCLI::Settings.get(:foreman, :request_timeout)
|
23 |
|
|
config[:timeout] = -1 if config[:timeout] && config[:timeout].to_i < 0
|
24 |
|
|
config[:apidoc_authenticated] = false
|
25 |
|
|
|
26 |
|
|
@username = config[:credentials].username
|
27 |
|
|
@password = config[:credentials].password
|
28 |
|
|
@server = config[:uri]
|
29 |
|
|
config
|
30 |
|
|
end
|
31 |
|
|
|
32 |
|
|
def api_connection
|
33 |
|
|
connection = HammerCLI::Connection.create(
|
34 |
|
|
'csv',
|
35 |
|
|
HammerCLI::Apipie::Command.resource_config.merge(resource_config),
|
36 |
|
|
HammerCLI::Apipie::Command.connection_options
|
37 |
|
|
)
|
38 |
|
|
connection.api
|
39 |
|
|
end
|
40 |
|
|
end
|
41 |
|
|
end
|
42 |
|
|
end |