foreman-tasks-core 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/foreman_tasks_core.rb +1 -1
- data/lib/foreman_tasks_core/continuous_output.rb +1 -1
- data/lib/foreman_tasks_core/runner/action.rb +2 -2
- data/lib/foreman_tasks_core/runner/base.rb +2 -2
- data/lib/foreman_tasks_core/runner/command_runner.rb +1 -1
- data/lib/foreman_tasks_core/runner/dispatcher.rb +6 -6
- data/lib/foreman_tasks_core/runner/update.rb +1 -1
- data/lib/foreman_tasks_core/settings_loader.rb +2 -2
- data/lib/foreman_tasks_core/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7182c93db320880e8ab630c2edcfef6baa2f6ce0
|
4
|
+
data.tar.gz: b578ed3de2672e41910921ad1b5cfe0cc1872f6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f8d31d820535c4ed018bad60c64710579f31761f3c0cd16477ee776233a0b98498f57821e72899275c20f9b2de8d3a780d5b4dcfa4ccd4e5db2a51b801a2d54
|
7
|
+
data.tar.gz: 9c6c676b311f5d9507765409df16d1c49c72f3da1fea223d9c3496312a62048219cf89197f81aa5787a505b4f7204eb8f6ee6d0e8fd7631badddb08d6e7d346a
|
data/lib/foreman_tasks_core.rb
CHANGED
@@ -5,7 +5,7 @@ require 'foreman_tasks_core/settings_loader'
|
|
5
5
|
|
6
6
|
module ForemanTasksCore
|
7
7
|
def self.dynflow_world
|
8
|
-
raise
|
8
|
+
raise 'Dynflow world not set. Call initialize first' unless @dynflow_world
|
9
9
|
@dynflow_world
|
10
10
|
end
|
11
11
|
|
@@ -8,7 +8,7 @@ module ForemanTasksCore
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def add_raw_output(raw_output)
|
11
|
-
missing_args = %w
|
11
|
+
missing_args = %w(output_type output timestamp) - raw_output.keys
|
12
12
|
unless missing_args.empty?
|
13
13
|
raise ArgumentError, "Missing args for raw output: #{missing_args.inspect}"
|
14
14
|
end
|
@@ -17,12 +17,12 @@ module ForemanTasksCore
|
|
17
17
|
end
|
18
18
|
rescue => e
|
19
19
|
action_logger.error(e)
|
20
|
-
process_update(Runner::Update.encode_exception(
|
20
|
+
process_update(Runner::Update.encode_exception('Proxy error', e))
|
21
21
|
end
|
22
22
|
|
23
23
|
def finalize
|
24
24
|
# To mark the task as a whole as failed
|
25
|
-
error!
|
25
|
+
error! 'Script execution failed' if failed_run?
|
26
26
|
end
|
27
27
|
|
28
28
|
def rescue_strategy_for_self
|
@@ -6,7 +6,7 @@ module ForemanTasksCore
|
|
6
6
|
attr_reader :id
|
7
7
|
attr_accessor :logger
|
8
8
|
|
9
|
-
def initialize(*
|
9
|
+
def initialize(*_args)
|
10
10
|
@id = SecureRandom.uuid
|
11
11
|
@continuous_output = ::ForemanTasksCore::ContinuousOutput.new
|
12
12
|
end
|
@@ -16,7 +16,7 @@ module ForemanTasksCore
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def run_refresh
|
19
|
-
logger.debug(
|
19
|
+
logger.debug('refreshing runner')
|
20
20
|
refresh
|
21
21
|
new_data = @continuous_output
|
22
22
|
@continuous_output = ForemanTasksCore::ContinuousOutput.new
|
@@ -3,8 +3,8 @@ module ForemanTasksCore
|
|
3
3
|
class Dispatcher
|
4
4
|
def self.instance
|
5
5
|
return @instance if @instance
|
6
|
-
@instance =
|
7
|
-
|
6
|
+
@instance = new(ForemanTasksCore.dynflow_world.clock,
|
7
|
+
ForemanTasksCore.dynflow_world.logger)
|
8
8
|
end
|
9
9
|
|
10
10
|
class RunnerActor < ::Dynflow::Actor
|
@@ -34,7 +34,7 @@ module ForemanTasksCore
|
|
34
34
|
|
35
35
|
def refresh_runner
|
36
36
|
@logger.debug("refresh runner #{@runner.id}")
|
37
|
-
if update = @runner.run_refresh
|
37
|
+
if (update = @runner.run_refresh)
|
38
38
|
@suspended_action << update
|
39
39
|
finish if update.exit_status
|
40
40
|
end
|
@@ -68,7 +68,7 @@ module ForemanTasksCore
|
|
68
68
|
def plan_next_refresh
|
69
69
|
if !@finishing && !@refresh_planned
|
70
70
|
@logger.debug("planning to refresh #{@runner.id}")
|
71
|
-
@clock.ping(reference, Time.now + @refresh_interval, :refresh_runner)
|
71
|
+
@clock.ping(reference, Time.now.getlocal + @refresh_interval, :refresh_runner)
|
72
72
|
@refresh_planned = true
|
73
73
|
end
|
74
74
|
end
|
@@ -137,7 +137,7 @@ module ForemanTasksCore
|
|
137
137
|
def _finish(runner_id)
|
138
138
|
runner_actor = @runner_actors.delete(runner_id)
|
139
139
|
return unless runner_actor
|
140
|
-
@logger.debug("closing session for command [#{runner_id}],"
|
140
|
+
@logger.debug("closing session for command [#{runner_id}]," \
|
141
141
|
"#{@runner_actors.size} actors left ")
|
142
142
|
runner_actor.tell([:start_termination, Concurrent.future])
|
143
143
|
ensure
|
@@ -149,7 +149,7 @@ module ForemanTasksCore
|
|
149
149
|
"#{exception.class} #{exception.message}:\n #{exception.backtrace.join("\n")}")
|
150
150
|
suspended_action = @runner_suspended_actions[runner_id]
|
151
151
|
if suspended_action
|
152
|
-
suspended_action << Runner::Update.encode_exception(
|
152
|
+
suspended_action << Runner::Update.encode_exception('Runner error', exception, fatal)
|
153
153
|
end
|
154
154
|
_finish(runner_id) if fatal
|
155
155
|
end
|
@@ -14,7 +14,7 @@ module ForemanTasksCore
|
|
14
14
|
def self.encode_exception(context, exception, fatal = true)
|
15
15
|
continuous_output = ::ForemanTasksCore::ContinuousOutput.new
|
16
16
|
continuous_output.add_exception(context, exception)
|
17
|
-
|
17
|
+
new(continuous_output, fatal ? 'EXCEPTION' : nil)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -19,7 +19,7 @@ module ForemanTasksCore
|
|
19
19
|
def self.register_settings(names, object)
|
20
20
|
names = [names] unless names.is_a? Array
|
21
21
|
names.each do |name|
|
22
|
-
raise
|
22
|
+
raise 'settings name has to be a symbol' unless name.is_a? Symbol
|
23
23
|
raise "settings #{name} already registered" if SettingsLoader.settings_registered?(name)
|
24
24
|
name_to_settings[name] = object
|
25
25
|
end
|
@@ -47,7 +47,7 @@ module ForemanTasksCore
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def validate_settings!
|
50
|
-
raise
|
50
|
+
raise 'Only symbols expected in keys' unless @settings.keys.all? { |key| key.is_a? Symbol }
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman-tasks-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
|
13
|
+
description: 'Common code used both at Forman and Foreman proxy regarding tasks
|
14
|
+
|
15
|
+
'
|
15
16
|
email:
|
16
17
|
- inecas@redhat.com
|
17
18
|
executables: []
|
@@ -49,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
50
|
version: '0'
|
50
51
|
requirements: []
|
51
52
|
rubyforge_project:
|
52
|
-
rubygems_version: 2.
|
53
|
+
rubygems_version: 2.5.1
|
53
54
|
signing_key:
|
54
55
|
specification_version: 4
|
55
56
|
summary: Common code used both at Forman and Foreman proxy regarding tasks
|