hammer_cli_foreman 3.5.0 → 3.5.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.
- checksums.yaml +4 -4
- data/config/foreman.yml +5 -0
- data/doc/release_notes.md +3 -0
- data/lib/hammer_cli_foreman/api/authenticator.rb +20 -0
- data/lib/hammer_cli_foreman/api/basic_auth.rb +71 -0
- data/lib/hammer_cli_foreman/api/connection.rb +3 -2
- data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +3 -62
- data/lib/hammer_cli_foreman/api/interactive_basic_auth_external.rb +17 -0
- data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +2 -2
- data/lib/hammer_cli_foreman/auth.rb +21 -0
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/test/unit/api/interactive_basic_auth_test.rb +2 -1
- metadata +77 -75
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc16859a1c7009f413c77229f58397aba4b0030da06342777e48a71175c63830
|
4
|
+
data.tar.gz: 595d6c7713563d97dea1cceb7d046c5f665d5e07fa2c6a133931959a4b1c0246
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb12b697b14fc4abc05c05363e16ff77d07a98b11584af354007397aeaf26c6cebdf7086e8d84828f711ef1814cb7307febe269bbb32920e8240ad0b79e714a2
|
7
|
+
data.tar.gz: 9e21177108564c9e0bd394fdd2603e06b4d2f3a50c9936d00ca800da2ec8ce28c1ee295f28434da5e011f12332dea7eaaf9ccd4104bf05734adbbec27027479f
|
data/config/foreman.yml
CHANGED
@@ -13,6 +13,11 @@
|
|
13
13
|
:username: 'admin'
|
14
14
|
#:password: 'example'
|
15
15
|
|
16
|
+
# Basic Auth External:
|
17
|
+
#:default_auth_type: 'Basic_Auth_External'
|
18
|
+
#:username: 'admin'
|
19
|
+
#:password: 'example'
|
20
|
+
|
16
21
|
# Oauth using the Password Grant Flow:
|
17
22
|
# This authentication method requires sessions to be enabled, uncomment the following
|
18
23
|
# lines to use this authentication method.
|
data/doc/release_notes.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
Release notes
|
2
2
|
=============
|
3
|
+
### 3.5.1 (2023-02-28)
|
4
|
+
* Support basic auth for external sources, [#11317](http://projects.theforeman.org/issues/11317)
|
5
|
+
|
3
6
|
### 3.5.0 (2022-10-31)
|
4
7
|
* Extract gce related info ([PR #606](https://github.com/theforeman/hammer-cli-foreman/pull/606)), [#35659](http://projects.theforeman.org/issues/35659)
|
5
8
|
* Change auth endpoint for negotiation, [#35473](http://projects.theforeman.org/issues/35473)
|
@@ -13,6 +13,8 @@ module HammerCLIForeman
|
|
13
13
|
void_auth
|
14
14
|
elsif auth_type == AUTH_TYPES[:basic_auth]
|
15
15
|
basic_auth
|
16
|
+
elsif auth_type == AUTH_TYPES[:basic_auth_external]
|
17
|
+
basic_auth_external
|
16
18
|
elsif auth_type == AUTH_TYPES[:negotiate]
|
17
19
|
negotiate_auth
|
18
20
|
elsif auth_type == AUTH_TYPES[:oauth_password_grant]
|
@@ -45,6 +47,24 @@ module HammerCLIForeman
|
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
50
|
+
def basic_auth_external
|
51
|
+
if HammerCLIForeman::Sessions.enabled?
|
52
|
+
authenticator = InteractiveBasicAuthExternal.new(
|
53
|
+
settings.get(:_params, :username) || ENV['FOREMAN_USERNAME'],
|
54
|
+
settings.get(:_params, :password) || ENV['FOREMAN_PASSWORD'],
|
55
|
+
uri
|
56
|
+
)
|
57
|
+
SessionAuthenticatorWrapper.new(authenticator, uri, auth_type)
|
58
|
+
else
|
59
|
+
username = settings.get(:_params, :username) || ENV['FOREMAN_USERNAME'] || settings.get(:foreman, :username)
|
60
|
+
password = settings.get(:_params, :password) || ENV['FOREMAN_PASSWORD']
|
61
|
+
if password.nil? && (username == settings.get(:foreman, :username))
|
62
|
+
password = settings.get(:foreman, :password)
|
63
|
+
end
|
64
|
+
InteractiveBasicAuthExternal.new(username, password, uri)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
48
68
|
def negotiate_auth
|
49
69
|
return unless HammerCLIForeman::Sessions.enabled?
|
50
70
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module HammerCLIForeman
|
2
|
+
module Api
|
3
|
+
module BasicAuth
|
4
|
+
def authenticate(request, args)
|
5
|
+
if HammerCLI.interactive?
|
6
|
+
get_user
|
7
|
+
get_password
|
8
|
+
end
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def error(ex)
|
13
|
+
return unless ex.is_a?(RestClient::Unauthorized)
|
14
|
+
|
15
|
+
clear
|
16
|
+
default_message = _('Invalid username or password.')
|
17
|
+
message = begin
|
18
|
+
response_msg = JSON.parse(ex.response.body)['error']
|
19
|
+
response_msg.is_a?(Hash) ? response_msg['message'] : response_msg
|
20
|
+
rescue
|
21
|
+
end
|
22
|
+
return UnauthorizedError.new(default_message) unless message
|
23
|
+
|
24
|
+
UnauthorizedError.new("#{message}\n#{default_message}")
|
25
|
+
end
|
26
|
+
|
27
|
+
def status
|
28
|
+
unless @user.nil? || @password.nil?
|
29
|
+
_("Using configured credentials for user '%s'.") % @user
|
30
|
+
else
|
31
|
+
_('Credentials are not configured.')
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def user(ask = nil)
|
36
|
+
@user ||= ask && get_user
|
37
|
+
end
|
38
|
+
|
39
|
+
def password(ask = nil)
|
40
|
+
@password ||= ask && get_password
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_credentials(user, password)
|
44
|
+
@user = user
|
45
|
+
@password = password
|
46
|
+
end
|
47
|
+
|
48
|
+
def clear
|
49
|
+
set_credentials(nil, nil)
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def get_user
|
55
|
+
@user ||= ask_user(_('[Foreman] Username:%s') % ' ')
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_password
|
59
|
+
@password ||= ask_user(_("[Foreman] Password for %{user}:%{wsp}") % { user: @user, wsp: ' ' }, true)
|
60
|
+
end
|
61
|
+
|
62
|
+
def ask_user(prompt, silent = false)
|
63
|
+
if silent
|
64
|
+
HammerCLI.interactive_output.ask(prompt) { |q| q.echo = false }
|
65
|
+
else
|
66
|
+
HammerCLI.interactive_output.ask(prompt)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'hammer_cli_foreman/api/session_authenticator_wrapper'
|
2
2
|
require 'hammer_cli_foreman/api/authenticator'
|
3
3
|
require 'hammer_cli_foreman/api/interactive_basic_auth'
|
4
|
+
require 'hammer_cli_foreman/api/interactive_basic_auth_external'
|
4
5
|
require 'hammer_cli_foreman/api/negotiate_auth'
|
5
6
|
require 'hammer_cli_foreman/api/oauth/authentication_code_grant'
|
6
7
|
require 'hammer_cli_foreman/api/oauth/password_grant'
|
@@ -11,6 +12,7 @@ module HammerCLIForeman
|
|
11
12
|
CONNECTION_NAME = 'foreman'
|
12
13
|
AUTH_TYPES = {
|
13
14
|
basic_auth: 'Basic_Auth',
|
15
|
+
basic_auth_external: 'Basic_Auth_External',
|
14
16
|
negotiate: 'Negotiate_Auth',
|
15
17
|
oauth_authentication_code_grant: 'Oauth_Authentication_Code_Grant',
|
16
18
|
oauth_password_grant: 'Oauth_Password_Grant'
|
@@ -44,8 +46,7 @@ module HammerCLIForeman
|
|
44
46
|
|
45
47
|
protected
|
46
48
|
|
47
|
-
def default_auth_type(
|
48
|
-
return AUTH_TYPES[:basic_auth] unless HammerCLIForeman::Sessions.enabled?
|
49
|
+
def default_auth_type(_settings)
|
49
50
|
HammerCLI::Settings.get(:foreman, :default_auth_type) || AUTH_TYPES[:basic_auth]
|
50
51
|
end
|
51
52
|
|
@@ -1,68 +1,9 @@
|
|
1
|
+
require 'hammer_cli_foreman/api/basic_auth'
|
2
|
+
|
1
3
|
module HammerCLIForeman
|
2
4
|
module Api
|
3
5
|
class InteractiveBasicAuth < ApipieBindings::Authenticators::BasicAuth
|
4
|
-
|
5
|
-
if HammerCLI.interactive?
|
6
|
-
get_user
|
7
|
-
get_password
|
8
|
-
end
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
def error(ex)
|
13
|
-
if ex.is_a?(RestClient::Unauthorized)
|
14
|
-
self.clear
|
15
|
-
message = _('Invalid username or password.')
|
16
|
-
begin
|
17
|
-
message = JSON.parse(ex.response.body)['error']['message']
|
18
|
-
rescue
|
19
|
-
end
|
20
|
-
UnauthorizedError.new(message)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def status
|
25
|
-
unless @user.nil? || @password.nil?
|
26
|
-
_("Using configured credentials for user '%s'.") % @user
|
27
|
-
else
|
28
|
-
_("Credentials are not configured.")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def user(ask=nil)
|
33
|
-
@user ||= ask && get_user
|
34
|
-
end
|
35
|
-
|
36
|
-
def password(ask=nil)
|
37
|
-
@password ||= ask && get_password
|
38
|
-
end
|
39
|
-
|
40
|
-
def set_credentials(user, password)
|
41
|
-
@user = user
|
42
|
-
@password = password
|
43
|
-
end
|
44
|
-
|
45
|
-
def clear
|
46
|
-
set_credentials(nil, nil)
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def get_user
|
52
|
-
@user ||= ask_user(_("[Foreman] Username:%s") % " ")
|
53
|
-
end
|
54
|
-
|
55
|
-
def get_password
|
56
|
-
@password ||= ask_user(_("[Foreman] Password for %{user}:%{wsp}") % {:user => @user, :wsp => " "}, true)
|
57
|
-
end
|
58
|
-
|
59
|
-
def ask_user(prompt, silent=false)
|
60
|
-
if silent
|
61
|
-
HammerCLI.interactive_output.ask(prompt) { |q| q.echo = false }
|
62
|
-
else
|
63
|
-
HammerCLI.interactive_output.ask(prompt)
|
64
|
-
end
|
65
|
-
end
|
6
|
+
include HammerCLIForeman::Api::BasicAuth
|
66
7
|
end
|
67
8
|
end
|
68
9
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'hammer_cli_foreman/api/basic_auth'
|
2
|
+
|
3
|
+
module HammerCLIForeman
|
4
|
+
module Api
|
5
|
+
class InteractiveBasicAuthExternal < ApipieBindings::Authenticators::BasicAuthExternal
|
6
|
+
include HammerCLIForeman::Api::BasicAuth
|
7
|
+
|
8
|
+
def initialize(user, password, foreman_url)
|
9
|
+
super(user, password, "#{foreman_url}/api/users/extlogin", HammerCLI::SSLOptions.new.get_options(foreman_url))
|
10
|
+
end
|
11
|
+
|
12
|
+
def session_id
|
13
|
+
auth_cookie&.delete_prefix('_session_id=')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -80,7 +80,7 @@ module HammerCLIForeman
|
|
80
80
|
|
81
81
|
def user(ask=nil)
|
82
82
|
return unless @authenticator.respond_to?(:user)
|
83
|
-
if
|
83
|
+
if [AUTH_TYPES[:basic_auth], AUTH_TYPES[:basic_auth_external]].include?(@auth_type)
|
84
84
|
@authenticator.user(ask)
|
85
85
|
elsif @auth_type == AUTH_TYPES[:oauth_authentication_code_grant] ||
|
86
86
|
@auth_type = AUTH_TYPES[:oauth_password_grant]
|
@@ -93,7 +93,7 @@ module HammerCLIForeman
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def set_auth_params(*args)
|
96
|
-
if
|
96
|
+
if [AUTH_TYPES[:basic_auth], AUTH_TYPES[:basic_auth_external]].include?(@auth_type)
|
97
97
|
@authenticator.set_credentials(*args)
|
98
98
|
elsif @auth_type == AUTH_TYPES[:oauth_authentication_code_grant] ||
|
99
99
|
@auth_type == AUTH_TYPES[:oauth_password_grant]
|
@@ -28,6 +28,27 @@ module HammerCLIForeman
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
class BasicExternal < HammerCLI::AbstractCommand
|
32
|
+
extend HammerCLIForeman::Authenticate::Login
|
33
|
+
|
34
|
+
command_name 'basic-external'
|
35
|
+
desc _('Authenticate against external source (IPA/PAM) with credentials')
|
36
|
+
|
37
|
+
option ['-u', '--username'], 'USERNAME', _('Username to access the remote system')
|
38
|
+
option ['-p', '--password'], 'PASSWORD', _('Password to access the remote system')
|
39
|
+
|
40
|
+
def execute
|
41
|
+
Basic.execute_with_params(
|
42
|
+
AUTH_TYPES[:basic_auth_external],
|
43
|
+
option_username || HammerCLI::Settings.get('_params', 'username'),
|
44
|
+
option_password || HammerCLI::Settings.get('_params', 'password')
|
45
|
+
)
|
46
|
+
logged_user = HammerCLIForeman.foreman_api_connection.authenticator.user
|
47
|
+
print_message(_("Successfully logged in as '%s'.") % logged_user)
|
48
|
+
HammerCLI::EX_OK
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
31
52
|
class Negotiate < HammerCLI::AbstractCommand
|
32
53
|
extend HammerCLIForeman::Authenticate::Login
|
33
54
|
|
@@ -105,8 +105,9 @@ describe HammerCLIForeman::Api::InteractiveBasicAuth do
|
|
105
105
|
response.stubs(:body).returns('{"error": {"message": "Unable to authenticate user admin"}}')
|
106
106
|
ex.response = response
|
107
107
|
new_ex = auth.error(ex)
|
108
|
+
expected = "Unable to authenticate user admin\nInvalid username or password."
|
108
109
|
|
109
|
-
assert_equal
|
110
|
+
assert_equal expected, new_ex.message
|
110
111
|
end
|
111
112
|
end
|
112
113
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli_foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomáš Strachota
|
8
8
|
- Martin Bačovský
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hammer_cli
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 3.
|
20
|
+
version: 3.5.1
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 3.
|
27
|
+
version: 3.5.1
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: apipie-bindings
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,19 +75,19 @@ dependencies:
|
|
75
75
|
version: 2.2.1
|
76
76
|
description: 'Foreman commands for Hammer CLI
|
77
77
|
|
78
|
-
|
78
|
+
'
|
79
79
|
email: tstracho@redhat.com
|
80
80
|
executables: []
|
81
81
|
extensions: []
|
82
82
|
extra_rdoc_files:
|
83
|
+
- doc/configuration.md
|
84
|
+
- doc/developer_docs.md
|
85
|
+
- doc/host_create.md
|
83
86
|
- doc/name_id_resolution.md
|
84
87
|
- doc/option_builder.md
|
85
|
-
- doc/using_hammer_cli_foreman_command.md
|
86
|
-
- doc/developer_docs.md
|
87
88
|
- doc/plugin.md
|
88
89
|
- doc/testing.md
|
89
|
-
- doc/
|
90
|
-
- doc/host_create.md
|
90
|
+
- doc/using_hammer_cli_foreman_command.md
|
91
91
|
- doc/release_notes.md
|
92
92
|
- README.md
|
93
93
|
files:
|
@@ -106,8 +106,10 @@ files:
|
|
106
106
|
- lib/hammer_cli_foreman.rb
|
107
107
|
- lib/hammer_cli_foreman/api.rb
|
108
108
|
- lib/hammer_cli_foreman/api/authenticator.rb
|
109
|
+
- lib/hammer_cli_foreman/api/basic_auth.rb
|
109
110
|
- lib/hammer_cli_foreman/api/connection.rb
|
110
111
|
- lib/hammer_cli_foreman/api/interactive_basic_auth.rb
|
112
|
+
- lib/hammer_cli_foreman/api/interactive_basic_auth_external.rb
|
111
113
|
- lib/hammer_cli_foreman/api/negotiate_auth.rb
|
112
114
|
- lib/hammer_cli_foreman/api/oauth/authentication_code_grant.rb
|
113
115
|
- lib/hammer_cli_foreman/api/oauth/password_grant.rb
|
@@ -350,7 +352,7 @@ homepage: https://github.com/theforeman/hammer-cli-foreman
|
|
350
352
|
licenses:
|
351
353
|
- GPL-3.0+
|
352
354
|
metadata: {}
|
353
|
-
post_install_message:
|
355
|
+
post_install_message:
|
354
356
|
rdoc_options: []
|
355
357
|
require_paths:
|
356
358
|
- lib
|
@@ -365,8 +367,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
365
367
|
- !ruby/object:Gem::Version
|
366
368
|
version: '0'
|
367
369
|
requirements: []
|
368
|
-
rubygems_version: 3.1.
|
369
|
-
signing_key:
|
370
|
+
rubygems_version: 3.1.6
|
371
|
+
signing_key:
|
370
372
|
specification_version: 4
|
371
373
|
summary: Foreman commands for Hammer
|
372
374
|
test_files:
|
@@ -384,106 +386,106 @@ test_files:
|
|
384
386
|
- test/data/1.24/foreman_api.json
|
385
387
|
- test/data/2.0/foreman_api.json
|
386
388
|
- test/data/2.1/foreman_api.json
|
387
|
-
- test/data/README.md
|
388
389
|
- test/data/2.4/foreman_api.json
|
389
390
|
- test/data/2.5/foreman_api.json
|
390
391
|
- test/data/3.1/foreman_api.json
|
391
392
|
- test/data/3.4/foreman_api.json
|
393
|
+
- test/data/README.md
|
394
|
+
- test/functional/architecture_test.rb
|
395
|
+
- test/functional/associating_commands_test.rb
|
396
|
+
- test/functional/audit_test.rb
|
392
397
|
- test/functional/auth_source_test.rb
|
398
|
+
- test/functional/bookmark_test.rb
|
393
399
|
- test/functional/commands/list_test.rb
|
400
|
+
- test/functional/compute_attribute_test.rb
|
401
|
+
- test/functional/compute_profile_test.rb
|
402
|
+
- test/functional/compute_resource_test.rb
|
403
|
+
- test/functional/domain/create_test.rb
|
404
|
+
- test/functional/domain/update_test.rb
|
405
|
+
- test/functional/filter_test.rb
|
406
|
+
- test/functional/host_test.rb
|
394
407
|
- test/functional/hostgroup/create_test.rb
|
395
408
|
- test/functional/hostgroup/update_test.rb
|
396
|
-
- test/functional/
|
397
|
-
- test/functional/compute_attribute_test.rb
|
398
|
-
- test/functional/ping_test.rb
|
399
|
-
- test/functional/user_test.rb
|
400
|
-
- test/functional/ssh_keys_test.rb
|
401
|
-
- test/functional/subnet/update_test.rb
|
402
|
-
- test/functional/subnet/create_test.rb
|
403
|
-
- test/functional/test_helper.rb
|
409
|
+
- test/functional/http_proxy_test.rb
|
404
410
|
- test/functional/location_test.rb
|
411
|
+
- test/functional/mail_notification_test.rb
|
405
412
|
- test/functional/media_test.rb
|
413
|
+
- test/functional/model_test.rb
|
414
|
+
- test/functional/operating_system_test.rb
|
415
|
+
- test/functional/organization_test.rb
|
406
416
|
- test/functional/partition_table_test.rb
|
407
417
|
- test/functional/personal_access_token_test.rb
|
418
|
+
- test/functional/ping_test.rb
|
419
|
+
- test/functional/realm_test.rb
|
420
|
+
- test/functional/registration_test.rb
|
408
421
|
- test/functional/report_template_test.rb
|
422
|
+
- test/functional/role_test.rb
|
409
423
|
- test/functional/settings_test.rb
|
424
|
+
- test/functional/ssh_keys_test.rb
|
410
425
|
- test/functional/status_test.rb
|
426
|
+
- test/functional/subnet/create_test.rb
|
427
|
+
- test/functional/subnet/update_test.rb
|
428
|
+
- test/functional/table_preference_test.rb
|
429
|
+
- test/functional/template_test.rb
|
430
|
+
- test/functional/test_helper.rb
|
411
431
|
- test/functional/user_mail_notification_test.rb
|
412
|
-
- test/functional/
|
413
|
-
- test/functional/compute_profile_test.rb
|
414
|
-
- test/functional/realm_test.rb
|
432
|
+
- test/functional/user_test.rb
|
415
433
|
- test/functional/usergroup_test.rb
|
416
|
-
- test/functional/organization_test.rb
|
417
434
|
- test/functional/virtual_machine_test.rb
|
418
|
-
- test/
|
419
|
-
- test/functional/domain/update_test.rb
|
420
|
-
- test/functional/filter_test.rb
|
421
|
-
- test/functional/host_test.rb
|
422
|
-
- test/functional/http_proxy_test.rb
|
423
|
-
- test/functional/mail_notification_test.rb
|
424
|
-
- test/functional/operating_system_test.rb
|
425
|
-
- test/functional/template_test.rb
|
426
|
-
- test/functional/associating_commands_test.rb
|
427
|
-
- test/functional/audit_test.rb
|
428
|
-
- test/functional/role_test.rb
|
429
|
-
- test/functional/bookmark_test.rb
|
430
|
-
- test/functional/model_test.rb
|
431
|
-
- test/functional/registration_test.rb
|
432
|
-
- test/functional/table_preference_test.rb
|
433
|
-
- test/unit/api/void_auth_test.rb
|
434
|
-
- test/unit/api/interactive_basic_auth_test.rb
|
435
|
+
- test/test_helper.rb
|
435
436
|
- test/unit/api/oauth/oauth_authentication_code_grant_test.rb
|
436
437
|
- test/unit/api/oauth/oauth_password_grant_test.rb
|
437
438
|
- test/unit/api/session_authenticator_wrapper_test.rb
|
438
|
-
- test/unit/
|
439
|
-
- test/unit/
|
439
|
+
- test/unit/api/void_auth_test.rb
|
440
|
+
- test/unit/api/interactive_basic_auth_test.rb
|
441
|
+
- test/unit/api_test.rb
|
442
|
+
- test/unit/apipie_resource_mock.rb
|
443
|
+
- test/unit/architecture_test.rb
|
444
|
+
- test/unit/audit_test.rb
|
445
|
+
- test/unit/auth_source_external.rb
|
440
446
|
- test/unit/auth_source_ldap_test.rb
|
441
|
-
- test/unit/
|
447
|
+
- test/unit/bookmark_test.rb
|
448
|
+
- test/unit/commands_test.rb
|
449
|
+
- test/unit/common_parameter_test.rb
|
450
|
+
- test/unit/compute_profile_test.rb
|
442
451
|
- test/unit/compute_resource_test.rb
|
452
|
+
- test/unit/config_report_test.rb
|
443
453
|
- test/unit/data/test_api.json
|
444
454
|
- test/unit/defaults_test.rb
|
445
|
-
- test/unit/
|
455
|
+
- test/unit/dependency_resolver_test.rb
|
456
|
+
- test/unit/domain_test.rb
|
457
|
+
- test/unit/exception_handler_test.rb
|
446
458
|
- test/unit/external_usergroup_test.rb
|
447
459
|
- test/unit/fact_test.rb
|
460
|
+
- test/unit/filter_test.rb
|
461
|
+
- test/unit/helpers/command.rb
|
448
462
|
- test/unit/helpers/fake_searchables.rb
|
449
463
|
- test/unit/helpers/resource_disabled.rb
|
450
|
-
- test/unit/
|
464
|
+
- test/unit/host_test.rb
|
465
|
+
- test/unit/hostgroup_test.rb
|
466
|
+
- test/unit/id_resolver_test.rb
|
451
467
|
- test/unit/image_test.rb
|
452
468
|
- test/unit/location_test.rb
|
453
|
-
- test/unit/messages_test.rb
|
454
469
|
- test/unit/mail_notification_test.rb
|
470
|
+
- test/unit/media_test.rb
|
471
|
+
- test/unit/messages_test.rb
|
472
|
+
- test/unit/model_test.rb
|
473
|
+
- test/unit/operating_system_test.rb
|
474
|
+
- test/unit/option_builders_test.rb
|
455
475
|
- test/unit/option_sources/id_params_test.rb
|
456
476
|
- test/unit/option_sources/ids_params_test.rb
|
457
477
|
- test/unit/organization_test.rb
|
458
478
|
- test/unit/output/formatters_test.rb
|
459
|
-
- test/unit/
|
479
|
+
- test/unit/param_filters_test.rb
|
480
|
+
- test/unit/partition_table_test.rb
|
460
481
|
- test/unit/realm_test.rb
|
482
|
+
- test/unit/role_test.rb
|
483
|
+
- test/unit/sessions_test.rb
|
461
484
|
- test/unit/settings_test.rb
|
462
|
-
- test/unit/
|
485
|
+
- test/unit/smart_proxy_test.rb
|
463
486
|
- test/unit/subnet_test.rb
|
487
|
+
- test/unit/template_test.rb
|
464
488
|
- test/unit/test_helper.rb
|
489
|
+
- test/unit/test_output_adapter.rb
|
465
490
|
- test/unit/user_test.rb
|
466
|
-
- test/unit/
|
467
|
-
- test/unit/role_test.rb
|
468
|
-
- test/unit/model_test.rb
|
469
|
-
- test/unit/operating_system_test.rb
|
470
|
-
- test/unit/option_builders_test.rb
|
471
|
-
- test/unit/architecture_test.rb
|
472
|
-
- test/unit/commands_test.rb
|
473
|
-
- test/unit/audit_test.rb
|
474
|
-
- test/unit/auth_source_external.rb
|
475
|
-
- test/unit/dependency_resolver_test.rb
|
476
|
-
- test/unit/exception_handler_test.rb
|
477
|
-
- test/unit/filter_test.rb
|
478
|
-
- test/unit/media_test.rb
|
479
|
-
- test/unit/sessions_test.rb
|
480
|
-
- test/unit/bookmark_test.rb
|
481
|
-
- test/unit/hostgroup_test.rb
|
482
|
-
- test/unit/api_test.rb
|
483
|
-
- test/unit/apipie_resource_mock.rb
|
484
|
-
- test/unit/compute_profile_test.rb
|
485
|
-
- test/unit/partition_table_test.rb
|
486
|
-
- test/unit/template_test.rb
|
487
|
-
- test/unit/smart_proxy_test.rb
|
488
|
-
- test/unit/domain_test.rb
|
489
|
-
- test/test_helper.rb
|
491
|
+
- test/unit/usergroup_test.rb
|