foreman_ansible_core 2.1.2 → 2.2.0
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 +5 -5
- data/lib/foreman_ansible_core.rb +18 -28
- data/lib/foreman_ansible_core/actions.rb +2 -0
- data/lib/foreman_ansible_core/command_creator.rb +3 -1
- data/lib/foreman_ansible_core/exception.rb +2 -0
- data/lib/foreman_ansible_core/playbook_runner.rb +2 -0
- data/lib/foreman_ansible_core/remote_execution_core/ansible_runner.rb +3 -0
- data/lib/foreman_ansible_core/remote_execution_core/settings_override.rb +2 -0
- data/lib/foreman_ansible_core/version.rb +3 -1
- metadata +3 -4
- data/lib/foreman_ansible_core/roles_reader.rb +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e195d6690093de003b7ddaf9b807ac0d79ad775a
|
4
|
+
data.tar.gz: 4286d8f97ffca80c17be58c302fb2aeffbf1d02f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1555fd4cb45577b25aa1f6b6ff4ba0ac02d354fa3c74e33790dc63e3454de9d70c1a01b4cc929b1096437395dfbdbb519e82e22f333710da2a5b5cf0d12331b
|
7
|
+
data.tar.gz: 23e7b36347e64370135f75e18165d424ba6ee7bc429335be4e83a1778e05d6fd17c38c2ba1f76e8a0515cd424b4cf644c0b7995b876aa3f4055e4ccb5bcaf53c
|
data/lib/foreman_ansible_core.rb
CHANGED
@@ -1,39 +1,29 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
rescue LoadError
|
6
|
-
# These gems are not available in a proxy SCLed context
|
7
|
-
# puts 'Running Foreman Ansible Core in non-SCL context'
|
8
|
-
end
|
9
|
-
# rubocop:enable Lint/HandleExceptions
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'foreman_tasks_core'
|
4
|
+
require 'foreman_remote_execution_core'
|
10
5
|
|
11
6
|
# Core actions for Foreman Ansible, used by both Foreman and Foreman proxy
|
12
7
|
# This comprises running playbooks for the moment
|
13
8
|
module ForemanAnsibleCore
|
14
9
|
require 'foreman_ansible_core/exception'
|
15
|
-
require 'foreman_ansible_core/roles_reader'
|
16
10
|
require 'foreman_ansible_core/version'
|
17
11
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
:working_dir => nil)
|
12
|
+
extend ForemanTasksCore::SettingsLoader
|
13
|
+
register_settings(:ansible, :ansible_dir => Dir.home,
|
14
|
+
:working_dir => nil)
|
22
15
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
16
|
+
if ForemanTasksCore.dynflow_present?
|
17
|
+
require 'foreman_tasks_core/runner'
|
18
|
+
require 'foreman_ansible_core/playbook_runner'
|
19
|
+
require 'foreman_ansible_core/actions'
|
28
20
|
end
|
29
21
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
)
|
38
|
-
end
|
22
|
+
require 'foreman_remote_execution_core/actions'
|
23
|
+
require 'foreman_ansible_core/remote_execution_core/ansible_runner'
|
24
|
+
require 'foreman_ansible_core/remote_execution_core/settings_override'
|
25
|
+
ForemanRemoteExecutionCore::Actions::RunScript.send(
|
26
|
+
:prepend,
|
27
|
+
ForemanAnsibleCore::RemoteExecutionCore::SettingsOverride
|
28
|
+
)
|
39
29
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module ForemanAnsibleCore
|
2
4
|
# Creates the actual command to be passed to foreman_tasks_core to run
|
3
5
|
class CommandCreator
|
@@ -48,7 +50,7 @@ module ForemanAnsibleCore
|
|
48
50
|
verbosity_level = @options[:verbosity_level]
|
49
51
|
# rubocop:disable Rails/Present
|
50
52
|
!verbosity_level.nil? && !verbosity_level.empty? &&
|
51
|
-
verbosity_level.to_i
|
53
|
+
verbosity_level.to_i.positive?
|
52
54
|
# rubocop:enable Rails/Present
|
53
55
|
end
|
54
56
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module ForemanAnsibleCore
|
2
4
|
module RemoteExecutionCore
|
3
5
|
# Takes an inventory and runs it through REXCore CommandRunner
|
@@ -14,6 +16,7 @@ module ForemanAnsibleCore
|
|
14
16
|
end
|
15
17
|
|
16
18
|
def start
|
19
|
+
@playbook_runner.logger = logger
|
17
20
|
@playbook_runner.start
|
18
21
|
rescue StandardError => e
|
19
22
|
logger.error(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_ansible_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lobato Garcia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -84,7 +84,6 @@ files:
|
|
84
84
|
- lib/foreman_ansible_core/playbook_runner.rb
|
85
85
|
- lib/foreman_ansible_core/remote_execution_core/ansible_runner.rb
|
86
86
|
- lib/foreman_ansible_core/remote_execution_core/settings_override.rb
|
87
|
-
- lib/foreman_ansible_core/roles_reader.rb
|
88
87
|
- lib/foreman_ansible_core/version.rb
|
89
88
|
homepage: https://github.com/theforeman/foreman_ansible
|
90
89
|
licenses:
|
@@ -106,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
105
|
version: '0'
|
107
106
|
requirements: []
|
108
107
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.6.8
|
110
109
|
signing_key:
|
111
110
|
specification_version: 4
|
112
111
|
summary: 'Ansible integration with Foreman (theforeman.org): core bits'
|
@@ -1,61 +0,0 @@
|
|
1
|
-
module ForemanAnsibleCore
|
2
|
-
# Implements the logic needed to read the roles and associated information
|
3
|
-
class RolesReader
|
4
|
-
class << self
|
5
|
-
DEFAULT_CONFIG_FILE = '/etc/ansible/ansible.cfg'.freeze
|
6
|
-
DEFAULT_ROLES_PATH = '/etc/ansible/roles'.freeze
|
7
|
-
|
8
|
-
def list_roles
|
9
|
-
roles_path.split(':').map { |path| read_roles(path) }.flatten
|
10
|
-
end
|
11
|
-
|
12
|
-
def roles_path(roles_line = roles_path_from_config)
|
13
|
-
# Default to /etc/ansible/roles if none found
|
14
|
-
return DEFAULT_ROLES_PATH if roles_line.empty?
|
15
|
-
roles_path_key = roles_line.first.split('=').first.strip
|
16
|
-
# In case of commented roles_path key "#roles_path", return default
|
17
|
-
return DEFAULT_ROLES_PATH unless roles_path_key == 'roles_path'
|
18
|
-
roles_line.first.split('=').last.strip
|
19
|
-
end
|
20
|
-
|
21
|
-
def logger
|
22
|
-
# Return a different logger depending on where ForemanAnsibleCore is
|
23
|
-
# running from
|
24
|
-
if defined?(::Foreman::Logging)
|
25
|
-
::Foreman::Logging.logger('foreman_ansible')
|
26
|
-
else
|
27
|
-
::Proxy::LogBuffer::Decorator.instance
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def read_roles(roles_path)
|
34
|
-
rescue_and_raise_file_exception ReadRolesException,
|
35
|
-
roles_path, 'roles' do
|
36
|
-
Dir.glob("#{roles_path}/*").map do |path|
|
37
|
-
path.split('/').last
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def roles_path_from_config
|
43
|
-
rescue_and_raise_file_exception ReadConfigFileException,
|
44
|
-
DEFAULT_CONFIG_FILE, 'config file' do
|
45
|
-
File.readlines(DEFAULT_CONFIG_FILE).select do |line|
|
46
|
-
line =~ /roles_path/
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def rescue_and_raise_file_exception(exception, path, type)
|
52
|
-
yield
|
53
|
-
rescue Errno::ENOENT, Errno::EACCES => e
|
54
|
-
logger.debug(e.backtrace)
|
55
|
-
exception_message = "Could not read Ansible #{type} "\
|
56
|
-
"#{path} - #{e.message}"
|
57
|
-
raise exception.new(exception_message)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|