foreman-tasks 5.3.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/lib/actions/helpers/lifecycle_logging.rb +1 -1
  3. data/app/lib/actions/middleware/rails_executor_wrap.rb +2 -2
  4. data/app/lib/actions/proxy_action.rb +1 -1
  5. data/app/models/foreman_tasks/lock.rb +1 -1
  6. data/extra/foreman-tasks-cleanup.sh +19 -2
  7. data/lib/foreman_tasks/dynflow/configuration.rb +1 -1
  8. data/lib/foreman_tasks/dynflow.rb +1 -1
  9. data/lib/foreman_tasks/engine.rb +1 -1
  10. data/lib/foreman_tasks/tasks/export_tasks.rake +1 -1
  11. data/lib/foreman_tasks/version.rb +1 -1
  12. data/test/controllers/api/tasks_controller_test.rb +1 -2
  13. data/test/support/dummy_proxy_action.rb +1 -1
  14. data/test/unit/actions/proxy_action_test.rb +19 -13
  15. data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +2 -28
  16. data/webpack/ForemanTasks/Components/TasksTable/TasksTablePage.js +5 -9
  17. data/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js +1 -5
  18. data/webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js +2 -2
  19. data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTable.fixtures.js +1 -4
  20. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap +1 -6
  21. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap +1 -6
  22. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTable.test.js.snap +2 -22
  23. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap +2 -12
  24. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap +1 -4
  25. data/webpack/ForemanTasks/Components/TasksTable/index.js +2 -2
  26. data/webpack/__mocks__/foremanReact/components/Pagination/index.js +2 -0
  27. metadata +3 -3
  28. data/webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f5ae3bb36274977790149d11f722477d6db0254b251ffa1dc79ec850a206183
4
- data.tar.gz: bfd76d0fcc43a78e34c1831a392042e5770bd09276d95d126043f3a14db174b7
3
+ metadata.gz: a31c8423a352c5eeb6ff93b23ce8ed3d868ee4bdb16d456233f2c3df475342cd
4
+ data.tar.gz: c181fdc4c13d8c3cfb7e8d8469c9188a8972b97ca223e68cb50d9a901e23d552
5
5
  SHA512:
6
- metadata.gz: b2bde1cb649304ba13019b544c8db8f7fa72b2e0539d47b2db07d6e945364d08b4e5fa0b100b701aa7f080e8be308ad7a6af404eaee2865e7b13fd423f9a9300
7
- data.tar.gz: 00a77aaf192bbfc12a70dc034aa75bfd728c18956b1b9377bbef3d7fce7491c68cfa520d9fd04de4789c721fcc2d2b2b605b63a9165601092841e44184219dfc
6
+ metadata.gz: c7f2b880bb70b4fc2781ab9c5bff2c7bcd0434bc067669fae601f1815f6720e7dd771a170cdde8a4922565f1bd87c61d5b3dc1c0b10192bd895508d123aa84da
7
+ data.tar.gz: a4652958efa52fec83b6c0a8093914b1d22ad574bc4763cb66c3bc41e82bd67e5b1448be0fd79ae3ce64225cb44d6c25faeb324cd10a846dfbe77abee5d55b02
@@ -7,7 +7,7 @@ module Actions
7
7
 
8
8
  def log_task_state_change(execution_plan)
9
9
  return unless root_action?
10
- logger = Rails.application.dynflow.world.action_logger
10
+ logger = ::Rails.application.dynflow.world.action_logger
11
11
  task_id = ForemanTasks::Task::DynflowTask.where(external_id: execution_plan.id).pluck(:id).first
12
12
 
13
13
  task_id_parts = []
@@ -10,13 +10,13 @@ module Actions
10
10
  # for more details.
11
11
  class RailsExecutorWrap < Dynflow::Middleware
12
12
  def run(*args)
13
- Rails.application.executor.wrap do
13
+ ::Rails.application.executor.wrap do
14
14
  pass(*args)
15
15
  end
16
16
  end
17
17
 
18
18
  def finalize
19
- Rails.application.executor.wrap do
19
+ ::Rails.application.executor.wrap do
20
20
  pass
21
21
  end
22
22
  end
@@ -67,7 +67,7 @@ module Actions
67
67
  def trigger_proxy_task
68
68
  suspend do |_suspended_action|
69
69
  remote_task = prepare_remote_task
70
- remote_task.trigger(proxy_action_name, proxy_input)
70
+ ForemanTasks::RemoteTask.batch_trigger(remote_task.operation, [remote_task])
71
71
  output[:proxy_task_id] = remote_task.remote_task_id
72
72
  end
73
73
  end
@@ -9,7 +9,7 @@ module ForemanTasks
9
9
  |
10
10
  | #{_('Conflicts with tasks:')}
11
11
  HEADER
12
- url_helpers = Rails.application.routes.url_helpers
12
+ url_helpers = ::Rails.application.routes.url_helpers
13
13
  conflicting_tasks = conflicting_locks
14
14
  .map(&:task)
15
15
  .uniq
@@ -21,6 +21,21 @@ function build_rake() {
21
21
  echo
22
22
  }
23
23
 
24
+ function incorrect_usage() {
25
+ echo "$1" >&2
26
+ echo
27
+ usage
28
+
29
+ exit 1
30
+ }
31
+
32
+ function validate_options!() {
33
+ if [ -z "$TASK_SEARCH" ]; then
34
+ [ -n "$AFTER" ] && incorrect_usage "Error: -a|--after cannot be used without -s|--search"
35
+ [ -n "$STATES" ] && incorrect_usage "Error: -S|--states cannot be used without -s|--search"
36
+ fi
37
+ }
38
+
24
39
  function usage() {
25
40
  cat << EOF
26
41
  Usage: $PROGNAME [script_options...] [options...]
@@ -43,8 +58,8 @@ EOF
43
58
  echo Cleanup options:
44
59
  cat <<EOF | column -s\& -t
45
60
  -B|--batch-size BATCH_SIZE & process tasks in batches of BATCH_SIZE, 1000 by default
46
- -S|--states STATES & operate on tasks in STATES, comma separated list of states, set to all to operate on tasks in any state
47
- -a|--after AGE & operate on tasks older than AGE. Expected format is a number followed by the time unit (s,h,m,y), such as '10d' for 10 days
61
+ -S|--states STATES & operate on tasks in STATES, comma separated list of states, set to all to operate on tasks in any state. Has to be used together with -s|--search
62
+ -a|--after AGE & operate on tasks older than AGE. Expected format is a number followed by the time unit (s,h,m,y), such as '10d' for 10 days. Has to be used together with -s|--search
48
63
  -b|--backup & backup deleted tasks
49
64
  -n|--noop & do a dry run, print what would be done
50
65
  -s|--search QUERY & use QUERY in scoped search format to match tasks to delete
@@ -119,6 +134,8 @@ while true; do
119
134
  shift
120
135
  done
121
136
 
137
+ validate_options!
138
+
122
139
  if [ "$EXECUTE" -eq 1 ]; then
123
140
  build_rake | sh
124
141
  else
@@ -1,4 +1,4 @@
1
- require File.expand_path('lib/foreman/dynflow/configuration', Rails.root)
1
+ require File.expand_path('lib/foreman/dynflow/configuration', ::Rails.root)
2
2
 
3
3
  module ForemanTasks
4
4
  # Import all Dynflow configuration from Foreman, and add our own for Tasks
@@ -17,7 +17,7 @@ module ForemanTasks
17
17
  set(:custom_navigation) do
18
18
  { _('Back to tasks') => "/#{ForemanTasks::TasksController.controller_path}" }
19
19
  end
20
- set(:world) { Rails.application.dynflow.world }
20
+ set(:world) { ::Rails.application.dynflow.world }
21
21
  end
22
22
  end
23
23
  end
@@ -25,7 +25,7 @@ module ForemanTasks
25
25
 
26
26
  initializer 'foreman_tasks.register_plugin', :before => :finisher_hook do |_app|
27
27
  Foreman::Plugin.register :"foreman-tasks" do
28
- requires_foreman '>= 3.0.0'
28
+ requires_foreman '>= 3.2.0'
29
29
  divider :top_menu, :parent => :monitor_menu, :last => true, :caption => N_('Foreman Tasks')
30
30
  menu :top_menu, :tasks,
31
31
  :url_hash => { :controller => 'foreman_tasks/tasks', :action => :index },
@@ -300,7 +300,7 @@ namespace :foreman_tasks do
300
300
  end
301
301
  end
302
302
 
303
- SKIP_ERRORS = ['true', '1', 'y', 'yes'].include? ENV['SKIP_FAILED'].downcase
303
+ SKIP_ERRORS = ['true', '1', 'y', 'yes'].include? (ENV['SKIP_FAILED'] || '').downcase
304
304
 
305
305
  filter = if ENV['TASK_SEARCH'].nil? && ENV['TASK_DAYS'].nil?
306
306
  "started_at > \"#{7.days.ago.to_s(:db)}\" || " \
@@ -1,3 +1,3 @@
1
1
  module ForemanTasks
2
- VERSION = '5.3.0'.freeze
2
+ VERSION = '6.0.0'.freeze
3
3
  end
@@ -192,14 +192,13 @@ module ForemanTasks
192
192
  _(task.state).must_equal 'running'
193
193
  _(task.result).must_equal 'pending'
194
194
 
195
- callback = Support::DummyProxyAction.proxy.log[:trigger_task].first[1][:action_input][:callback]
195
+ callback = Support::DummyProxyAction.proxy.log[:trigger_task].first[1].first[1][:action_input][:callback]
196
196
  post :callback, params: { 'callback' => callback, 'data' => { 'result' => 'success' } }
197
197
  triggered.finished.wait(5)
198
198
 
199
199
  task.reload
200
200
  _(task.state).must_equal 'stopped'
201
201
  _(task.result).must_equal 'success'
202
- _(task.main_action.output['proxy_task_id']).must_equal Support::DummyProxyAction.proxy.uuid
203
202
  _(task.main_action.output['proxy_output']).must_equal('result' => 'success')
204
203
  end
205
204
  end
@@ -40,7 +40,7 @@ module Support
40
40
  def launch_tasks(operation, args = {})
41
41
  @log[:trigger_task] << [operation, args]
42
42
  @task_triggered.fulfill(true)
43
- { 'task_id' => @uuid, 'result' => 'success' }
43
+ { 'task_id' => @uuid, 'result' => 'success', 'parent' => { 'task_id' => @uuid } }
44
44
  end
45
45
  end
46
46
 
@@ -1,4 +1,5 @@
1
1
  require 'foreman_tasks_test_helper'
2
+ require 'ostruct'
2
3
 
3
4
  module ForemanTasks
4
5
  class ProxyActionTest < ActiveSupport::TestCase
@@ -22,24 +23,29 @@ module ForemanTasks
22
23
  'foo' => 'bar',
23
24
  'secrets' => secrets,
24
25
  'use_batch_triggering' => batch_triggering)
26
+ RemoteTask.any_instance.stubs(:action).returns(@action)
27
+ RemoteTask.any_instance.stubs(:task).returns(OpenStruct.new(:id => Support::DummyProxyAction.proxy.uuid))
28
+ @run_step_id = @action.run_step_id
29
+
25
30
  @action = run_action(@action)
26
31
  end
27
32
 
28
33
  describe 'first run' do
29
34
  it 'triggers the corresponding action on the proxy' do
30
35
  proxy_call = Support::DummyProxyAction.proxy.log[:trigger_task].first
31
- expected_call = ['single',
32
- { :action_class => 'Proxy::DummyAction',
33
- :action_input =>
34
- { 'foo' => 'bar',
35
- 'secrets' => secrets,
36
- 'connection_options' =>
37
- { 'retry_interval' => 15, 'retry_count' => 4,
38
- 'proxy_batch_triggering' => batch_triggering },
39
- 'use_batch_triggering' => batch_triggering,
40
- 'proxy_url' => 'proxy.example.com',
41
- 'proxy_action_name' => 'Proxy::DummyAction',
42
- 'callback' => { 'task_id' => Support::DummyProxyAction.proxy.uuid, 'step_id' => @action.run_step_id } } }]
36
+ action_input =
37
+ { :action_class => 'Proxy::DummyAction',
38
+ :action_input =>
39
+ { 'foo' => 'bar',
40
+ 'secrets' => secrets,
41
+ 'connection_options' =>
42
+ { 'retry_interval' => 15, 'retry_count' => 4,
43
+ 'proxy_batch_triggering' => batch_triggering },
44
+ 'use_batch_triggering' => batch_triggering,
45
+ 'proxy_url' => 'proxy.example.com',
46
+ 'proxy_action_name' => 'Proxy::DummyAction',
47
+ 'callback' => { 'task_id' => Support::DummyProxyAction.proxy.uuid, 'step_id' => @run_step_id } } }
48
+ expected_call = ['support', { @action.execution_plan_id => action_input }]
43
49
  _(proxy_call).must_equal(expected_call)
44
50
  end
45
51
 
@@ -73,7 +79,7 @@ module ForemanTasks
73
79
  describe 'cancel' do
74
80
  it 'sends the cancel event to the proxy when the cancel event is sent for the first time' do
75
81
  action = run_action(@action, ::Dynflow::Action::Cancellable::Cancel)
76
- _(Support::DummyProxyAction.proxy.log[:cancel_task].first).must_equal [Support::DummyProxyAction.proxy.uuid]
82
+ _(Support::DummyProxyAction.proxy.log[:cancel_task].first).must_equal [action.execution_plan_id]
77
83
  _(action.state).must_equal :suspended
78
84
  end
79
85
 
@@ -4,7 +4,7 @@ import { Table } from 'foremanReact/components/common/table';
4
4
  import { STATUS } from 'foremanReact/constants';
5
5
  import MessageBox from 'foremanReact/components/common/MessageBox';
6
6
  import { translate as __ } from 'foremanReact/common/I18n';
7
- import Pagination from 'foremanReact/components/Pagination/PaginationWrapper';
7
+ import Pagination from 'foremanReact/components/Pagination';
8
8
  import { getURIQuery } from 'foremanReact/common/helpers';
9
9
  import createTasksTableSchema from './TasksTableSchema';
10
10
  import { updateURlQuery } from './TasksTableHelpers';
@@ -18,7 +18,6 @@ const TasksTable = ({
18
18
  results,
19
19
  history,
20
20
  itemCount,
21
- pagination,
22
21
  selectedRows,
23
22
  selectPage,
24
23
  unselectAllRows,
@@ -82,16 +81,6 @@ const TasksTable = ({
82
81
  return <span>{__('No Tasks')}</span>;
83
82
  }
84
83
 
85
- const changeTablePage = ({ page, perPage }) => {
86
- updateURlQuery(
87
- {
88
- page,
89
- per_page: perPage,
90
- },
91
- history
92
- );
93
- };
94
-
95
84
  const setSortHistory = (by, order) => {
96
85
  updateURlQuery({ sort_by: by, sort_order: order }, history);
97
86
  };
@@ -133,14 +122,7 @@ const TasksTable = ({
133
122
  )}
134
123
  rows={results}
135
124
  />
136
- <Pagination
137
- className="tasks-pagination"
138
- viewType="table"
139
- itemCount={itemCount}
140
- pagination={pagination}
141
- onChange={changeTablePage}
142
- dropdownButtonId="tasks-table-dropdown"
143
- />
125
+ <Pagination itemCount={itemCount} />
144
126
  </div>
145
127
  );
146
128
  };
@@ -151,10 +133,6 @@ TasksTable.propTypes = {
151
133
  status: PropTypes.oneOf(Object.keys(STATUS)),
152
134
  error: PropTypes.instanceOf(Error),
153
135
  itemCount: PropTypes.number.isRequired,
154
- pagination: PropTypes.shape({
155
- page: PropTypes.number,
156
- perPage: PropTypes.number,
157
- }),
158
136
  history: PropTypes.object.isRequired,
159
137
  openClickedModal: PropTypes.func.isRequired,
160
138
  selectedRows: PropTypes.array,
@@ -172,10 +150,6 @@ TasksTable.propTypes = {
172
150
  TasksTable.defaultProps = {
173
151
  status: STATUS.PENDING,
174
152
  error: null,
175
- pagination: {
176
- page: 1,
177
- perPage: 20,
178
- },
179
153
  selectedRows: [],
180
154
  allRowsSelected: false,
181
155
  permissions: {
@@ -99,10 +99,10 @@ const TasksTablePage = ({
99
99
  <React.Fragment>
100
100
  {props.permissions.edit &&
101
101
  showSelectAll &&
102
- props.itemCount >= props.pagination.perPage && (
102
+ props.itemCount >= props.perPage && (
103
103
  <SelectAllAlert
104
104
  itemCount={props.itemCount}
105
- perPage={props.pagination.perPage}
105
+ perPage={props.perPage}
106
106
  selectAllRows={selectAllRows}
107
107
  unselectAllRows={props.unselectAllRows}
108
108
  allRowsSelected={props.allRowsSelected}
@@ -118,9 +118,8 @@ const TasksTablePage = ({
118
118
  TasksTablePage.propTypes = {
119
119
  allRowsSelected: PropTypes.bool,
120
120
  itemCount: PropTypes.number.isRequired,
121
- pagination: PropTypes.shape({
122
- perPage: PropTypes.number,
123
- }),
121
+ perPage: PropTypes.number,
122
+
124
123
  selectAllRows: PropTypes.func.isRequired,
125
124
  results: PropTypes.array.isRequired,
126
125
  getTableItems: PropTypes.func.isRequired,
@@ -142,10 +141,7 @@ TasksTablePage.propTypes = {
142
141
  };
143
142
 
144
143
  TasksTablePage.defaultProps = {
145
- pagination: {
146
- page: 1,
147
- perPage: 20,
148
- },
144
+ perPage: 20,
149
145
  allRowsSelected: false,
150
146
  actionName: '',
151
147
  status: STATUS.PENDING,
@@ -21,7 +21,6 @@ export const TasksTableQueryReducer = (state = initialState, action) => {
21
21
  const { type, payload, response } = action;
22
22
  const {
23
23
  subtotal,
24
- page,
25
24
  per_page: perPageString,
26
25
  action_name: actionName,
27
26
  can_edit: canEdit,
@@ -34,10 +33,7 @@ export const TasksTableQueryReducer = (state = initialState, action) => {
34
33
  return Immutable.merge(state, {
35
34
  itemCount: subtotal,
36
35
  actionName,
37
- pagination: {
38
- page: Number(page),
39
- perPage: Number(perPageString),
40
- },
36
+ perPage: Number(perPageString),
41
37
  selectedRows: [],
42
38
  permissions: {
43
39
  edit: canEdit,
@@ -12,8 +12,8 @@ export const selectTasksTableContent = state =>
12
12
  export const selectTasksTableQuery = state =>
13
13
  selectTasksTable(state).tasksTableQuery || {};
14
14
 
15
- export const selectPagitation = state =>
16
- selectTasksTableQuery(state).pagination || {};
15
+ export const selectPerPage = state =>
16
+ selectTasksTableQuery(state).perPage || 20;
17
17
 
18
18
  export const selectItemCount = state =>
19
19
  selectTasksTableQuery(state).itemCount || 0;
@@ -11,10 +11,7 @@ export const minProps = {
11
11
  unselectRow: jest.fn(),
12
12
  reloadPage: jest.fn(),
13
13
  selectedRows: [],
14
- pagination: {
15
- page: 1,
16
- perPage: 10,
17
- },
14
+ perPage: 10,
18
15
  history: { location: { search: '' } },
19
16
  results: ['a', 'b'],
20
17
  sort: {
@@ -23,13 +23,8 @@ exports[`SubTasksPage rendering render with minimal props 1`] = `
23
23
  openClickedModal={[MockFunction]}
24
24
  openModal={[MockFunction]}
25
25
  openModalAction={[MockFunction]}
26
- pagination={
27
- Object {
28
- "page": 1,
29
- "perPage": 10,
30
- }
31
- }
32
26
  parentTaskID="some-id"
27
+ perPage={10}
33
28
  reloadPage={[MockFunction]}
34
29
  results={
35
30
  Array [
@@ -15,12 +15,7 @@ exports[`TasksIndexPage rendering render with minimal props 1`] = `
15
15
  openClickedModal={[MockFunction]}
16
16
  openModal={[MockFunction]}
17
17
  openModalAction={[MockFunction]}
18
- pagination={
19
- Object {
20
- "page": 1,
21
- "perPage": 10,
22
- }
23
- }
18
+ perPage={10}
24
19
  reloadPage={[MockFunction]}
25
20
  results={
26
21
  Array [
@@ -20,18 +20,8 @@ exports[`TasksTable rendering render with loading Props 1`] = `
20
20
  ]
21
21
  }
22
22
  />
23
- <PaginationWrapper
24
- className="tasks-pagination"
25
- dropdownButtonId="tasks-table-dropdown"
23
+ <Pagination
26
24
  itemCount={2}
27
- onChange={[Function]}
28
- pagination={
29
- Object {
30
- "page": 1,
31
- "perPage": 10,
32
- }
33
- }
34
- viewType="table"
35
25
  />
36
26
  </div>
37
27
  `;
@@ -49,18 +39,8 @@ exports[`TasksTable rendering render with minimal Props 1`] = `
49
39
  ]
50
40
  }
51
41
  />
52
- <PaginationWrapper
53
- className="tasks-pagination"
54
- dropdownButtonId="tasks-table-dropdown"
42
+ <Pagination
55
43
  itemCount={2}
56
- onChange={[Function]}
57
- pagination={
58
- Object {
59
- "page": 1,
60
- "perPage": 10,
61
- }
62
- }
63
- viewType="table"
64
44
  />
65
45
  </div>
66
46
  `;
@@ -119,13 +119,8 @@ exports[`TasksTablePage rendering render with Breadcrubs and edit permissions 1`
119
119
  itemCount={2}
120
120
  openClickedModal={[MockFunction]}
121
121
  openModal={[Function]}
122
- pagination={
123
- Object {
124
- "page": 1,
125
- "perPage": 10,
126
- }
127
- }
128
122
  parentTaskID={null}
123
+ perPage={10}
129
124
  permissions={
130
125
  Object {
131
126
  "edit": false,
@@ -259,13 +254,8 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
259
254
  itemCount={2}
260
255
  openClickedModal={[MockFunction]}
261
256
  openModal={[Function]}
262
- pagination={
263
- Object {
264
- "page": 1,
265
- "perPage": 10,
266
- }
267
- }
268
257
  parentTaskID={null}
258
+ perPage={10}
269
259
  permissions={
270
260
  Object {
271
261
  "edit": false,
@@ -55,10 +55,7 @@ Object {
55
55
  "tasksTableQuery": Object {
56
56
  "actionName": undefined,
57
57
  "itemCount": 120,
58
- "pagination": Object {
59
- "page": 3,
60
- "perPage": 12,
61
- },
58
+ "perPage": 12,
62
59
  "permissions": Object {
63
60
  "edit": undefined,
64
61
  },
@@ -8,7 +8,7 @@ import {
8
8
  selectStatus,
9
9
  selectError,
10
10
  selectResults,
11
- selectPagitation,
11
+ selectPerPage,
12
12
  selectItemCount,
13
13
  selectSort,
14
14
  selectActionName,
@@ -24,7 +24,7 @@ const mapStateToProps = state => ({
24
24
  error: selectError(state),
25
25
  sort: selectSort(state),
26
26
  results: selectResults(state),
27
- pagination: selectPagitation(state),
27
+ perPage: selectPerPage(state),
28
28
  itemCount: selectItemCount(state),
29
29
  actionName: selectActionName(state),
30
30
  selectedRows: selectSelectedRows(state),
@@ -0,0 +1,2 @@
1
+ const Pagination = () => jest.fn();
2
+ export default Pagination;
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: 5.3.0
4
+ version: 6.0.0
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: 2021-12-14 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dynflow
@@ -572,7 +572,7 @@ files:
572
572
  - webpack/__mocks__/foremanReact/components/ForemanModal/ForemanModalHooks.js
573
573
  - webpack/__mocks__/foremanReact/components/ForemanModal/index.js
574
574
  - webpack/__mocks__/foremanReact/components/Layout/LayoutActions.js
575
- - webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js
575
+ - webpack/__mocks__/foremanReact/components/Pagination/index.js
576
576
  - webpack/__mocks__/foremanReact/components/ToastsList/index.js
577
577
  - webpack/__mocks__/foremanReact/components/common/ActionButtons/ActionButtons.js
578
578
  - webpack/__mocks__/foremanReact/components/common/MessageBox.js
@@ -1,2 +0,0 @@
1
- const PaginationWrapper = () => jest.fn();
2
- export default PaginationWrapper;