foreman-tasks-core 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7182c93db320880e8ab630c2edcfef6baa2f6ce0
4
- data.tar.gz: b578ed3de2672e41910921ad1b5cfe0cc1872f6b
3
+ metadata.gz: 0e2b37c0d8ce49360cb333bd3e5468f0c96c64bf
4
+ data.tar.gz: 4b5be57f5f8a47415581f7c70182050891e5fbcb
5
5
  SHA512:
6
- metadata.gz: 4f8d31d820535c4ed018bad60c64710579f31761f3c0cd16477ee776233a0b98498f57821e72899275c20f9b2de8d3a780d5b4dcfa4ccd4e5db2a51b801a2d54
7
- data.tar.gz: 9c6c676b311f5d9507765409df16d1c49c72f3da1fea223d9c3496312a62048219cf89197f81aa5787a505b4f7204eb8f6ee6d0e8fd7631badddb08d6e7d346a
6
+ metadata.gz: efcf179686dce26f852bfd443f8c0e9e5e624ae8630711b8ebce454fa8cf9b6e251220d729e255da034d33eeecd309cd272c5b8eb6d7b749bf7c773e5ed287c1
7
+ data.tar.gz: 4d388300b3d9ff1fe0ccff4f7962fd5fd543522085bcde9170ab1ff08795ceaecfbb7b06b1ae16348167fc03fa054b006e54f3cb9bfdb1d2fd8c9bd8f21a404a
@@ -8,7 +8,7 @@ module ForemanTasksCore
8
8
  end
9
9
 
10
10
  def add_raw_output(raw_output)
11
- missing_args = %w(output_type output timestamp) - raw_output.keys
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
@@ -41,6 +41,17 @@ module ForemanTasksCore
41
41
  # if cleanup is needed
42
42
  end
43
43
 
44
+ def timeout
45
+ # Override when timeouts and regular kills should be handled differently
46
+ publish_data('Timeout for execution passed, trying to stop the job', 'debug')
47
+ kill
48
+ end
49
+
50
+ def timeout_interval
51
+ # A number of seconds after which the runner should receive a #timeout
52
+ # or nil for no timeout
53
+ end
54
+
44
55
  def publish_data(data, type)
45
56
  @continuous_output.add_output(data, type)
46
57
  end
@@ -26,6 +26,7 @@ module ForemanTasksCore
26
26
 
27
27
  def start_runner
28
28
  @logger.debug("start runner #{@runner.id}")
29
+ set_timeout if @runner.timeout_interval
29
30
  @runner.start
30
31
  refresh_runner
31
32
  ensure
@@ -43,6 +44,13 @@ module ForemanTasksCore
43
44
  plan_next_refresh
44
45
  end
45
46
 
47
+ def timeout_runner
48
+ @logger.debug("timeout runner #{@runner.id}")
49
+ @runner.timeout
50
+ rescue => e
51
+ handle_exception(e, false)
52
+ end
53
+
46
54
  def kill
47
55
  @logger.debug("kill runner #{@runner.id}")
48
56
  @runner.kill
@@ -65,6 +73,12 @@ module ForemanTasksCore
65
73
 
66
74
  private
67
75
 
76
+ def set_timeout
77
+ timeout_time = Time.now.getlocal + @runner.timeout_interval
78
+ @logger.debug("setting timeout for #{@runner.id} to #{timeout_time}")
79
+ @clock.ping(reference, timeout_time, :timeout_runner)
80
+ end
81
+
68
82
  def plan_next_refresh
69
83
  if !@finishing && !@refresh_planned
70
84
  @logger.debug("planning to refresh #{@runner.id}")
@@ -1,3 +1,3 @@
1
1
  module ForemanTasksCore
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,18 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman-tasks-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
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: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: 'Common code used both at Forman and Foreman proxy regarding tasks
14
-
15
- '
13
+ description: |
14
+ Common code used both at Forman and Foreman proxy regarding tasks
16
15
  email:
17
16
  - inecas@redhat.com
18
17
  executables: []
@@ -50,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
50
49
  version: '0'
51
50
  requirements: []
52
51
  rubyforge_project:
53
- rubygems_version: 2.5.1
52
+ rubygems_version: 2.4.5
54
53
  signing_key:
55
54
  specification_version: 4
56
55
  summary: Common code used both at Forman and Foreman proxy regarding tasks