foreman-tasks 0.15.2 → 0.15.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9daa93c0112f4c796a124787624ad95f01e241bcc2f80912560eb548cabc080d
4
- data.tar.gz: 0f2577e225a712c6e5041cb9c5006ac5707bf6f36cde9d9525f5118557037249
3
+ metadata.gz: 6eeb338059e6663ed8fffe8dc6bee396a1eb96bae7a695c2f56eff9ac5e44763
4
+ data.tar.gz: 7b9d63c8663eeece3479d9c3628dd514d00e5ff00595ee66097cae917342bd29
5
5
  SHA512:
6
- metadata.gz: 5aafc0509dedd3a27aeadbca202772220916f0e3ac20b35f28a8f25ece3190273b7c845f054d0be09ff1298a9cd244430cadf9294566a1cbfa570054a1a0de99
7
- data.tar.gz: 25705ff172efabb0cbba2725c61571f113a017cc85c4a386825d151dac30799d3c7257b38640c7a5ee7f460bcd1baa3a6e2d7b221397c57debba3e62c2949a0f
6
+ metadata.gz: 8d46d737bcfe6f9aef1ce43c53de352e598653e3de2134d72d913cc63047d1867697c00b0aae5373c31d3664023167f332b277c0eaa352c80e62e03688a51271
7
+ data.tar.gz: 783a5b165f308ddb6571660598f19d85e5e20323be9a467851569f57ebf15f9bb1b4e35390d2f412510feb1a4c6f91269726800be8e18acf9fdf365785516a1f
@@ -39,12 +39,12 @@ module Actions
39
39
  end
40
40
 
41
41
  def restore_current_taxonomies
42
+ old_taxonomies = [Organization, Location].reduce({}) { |acc, taxonomy| acc.merge(taxonomy => taxonomy.current) }
42
43
  Organization.current = Organization.unscoped.find(action.input[:current_organization_id]) if action.input[:current_organization_id].present?
43
44
  Location.current = Location.unscoped.find(action.input[:current_location_id]) if action.input[:current_location_id].present?
44
45
  yield
45
46
  ensure
46
- Organization.current = nil
47
- Location.current = nil
47
+ old_taxonomies.each { |taxonomy, value| taxonomy.current = value }
48
48
  end
49
49
 
50
50
  def current_taxonomies?
@@ -39,10 +39,11 @@ module Actions
39
39
  end
40
40
 
41
41
  def restore_curent_user
42
+ old_user = User.current
42
43
  User.current = User.unscoped.find(action.input[:current_user_id]) if action.input[:current_user_id].present?
43
44
  yield
44
45
  ensure
45
- User.current = nil
46
+ User.current = old_user
46
47
  end
47
48
  end
48
49
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.authors = ["Ivan Nečas"]
12
12
  s.email = ["inecas@redhat.com"]
13
13
  s.homepage = "https://github.com/theforeman/foreman-tasks"
14
- s.summary = "Foreman plugin for showing tasks information for resoruces and users"
14
+ s.summary = "Foreman plugin for showing tasks information for resources and users"
15
15
  s.description = <<-DESC
16
16
  The goal of this plugin is to unify the way of showing task statuses across the Foreman instance.
17
17
  It defines Task model for keeping the information about the tasks and Lock for assigning the tasks
@@ -1,3 +1,3 @@
1
1
  module ForemanTasks
2
- VERSION = '0.15.2'.freeze
2
+ VERSION = '0.15.3'.freeze
3
3
  end
@@ -11,6 +11,13 @@ module Actions
11
11
  def run; end
12
12
  end
13
13
 
14
+ class TestHookAction < Support::DummyDynflowAction
15
+ middleware.use KeepCurrentTaxonomies
16
+ execution_plan_hooks.use :null_hook, :on => :planning
17
+
18
+ def null_hook; end
19
+ end
20
+
14
21
  before do
15
22
  @org = mock('organization')
16
23
  @org.stubs(:id).returns(1)
@@ -62,6 +69,23 @@ module Actions
62
69
  @action = run_action(@action)
63
70
  end
64
71
  end
72
+
73
+ describe 'hook' do
74
+ test 'does not unset taxonomies before planning' do
75
+ Organization.stubs(:current).returns(@org)
76
+ Location.stubs(:current).returns(@loc)
77
+
78
+ Organization.stubs(:current=)
79
+ Location.stubs(:current=)
80
+
81
+ triggered = ForemanTasks.trigger(TestHookAction)
82
+ task = ForemanTasks::Task.where(:external_id => triggered.id).first
83
+ wait_for { task.reload.state == 'stopped' }
84
+
85
+ assert_equal(@org.id, task.execution_plan.entry_action.input['current_organization_id'])
86
+ assert_equal(@loc.id, task.execution_plan.entry_action.input['current_location_id'])
87
+ end
88
+ end
65
89
  end
66
90
  end
67
91
  end
@@ -11,11 +11,28 @@ module Actions
11
11
  def run; end
12
12
  end
13
13
 
14
+ class TestHookAction < Support::DummyDynflowAction
15
+ middleware.use KeepCurrentUser
16
+ execution_plan_hooks.use :null_hook, :on => :planning
17
+
18
+ def null_hook; end
19
+ end
20
+
14
21
  before do
15
22
  @user = mock('user')
16
23
  @user.stubs(:id).returns(1)
17
24
  end
18
25
 
26
+ describe 'hook' do
27
+ test 'does not reset current user before planning' do
28
+ triggered = ForemanTasks.trigger(TestHookAction)
29
+ task = ForemanTasks::Task.where(:external_id => triggered.id).first
30
+ wait_for { task.reload.state == 'stopped' }
31
+
32
+ assert_equal(User.current.id, task.execution_plan.entry_action.input['current_user_id'])
33
+ end
34
+ end
35
+
19
36
  describe 'plan' do
20
37
  test 'with current user set' do
21
38
  User.expects(:current).twice.returns(@user)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman-tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.15.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: 2019-04-30 00:00:00.000000000 Z
11
+ date: 2019-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: foreman-tasks-core
@@ -434,7 +434,7 @@ rubyforge_project:
434
434
  rubygems_version: 2.7.6
435
435
  signing_key:
436
436
  specification_version: 4
437
- summary: Foreman plugin for showing tasks information for resoruces and users
437
+ summary: Foreman plugin for showing tasks information for resources and users
438
438
  test_files:
439
439
  - test/controllers/api/recurring_logics_controller_test.rb
440
440
  - test/controllers/api/tasks_controller_test.rb