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.
- checksums.yaml +4 -4
- data/app/lib/actions/helpers/lifecycle_logging.rb +1 -1
- data/app/lib/actions/middleware/rails_executor_wrap.rb +2 -2
- data/app/lib/actions/proxy_action.rb +1 -1
- data/app/models/foreman_tasks/lock.rb +1 -1
- data/extra/foreman-tasks-cleanup.sh +19 -2
- data/lib/foreman_tasks/dynflow/configuration.rb +1 -1
- data/lib/foreman_tasks/dynflow.rb +1 -1
- data/lib/foreman_tasks/engine.rb +1 -1
- data/lib/foreman_tasks/tasks/export_tasks.rake +1 -1
- data/lib/foreman_tasks/version.rb +1 -1
- data/test/controllers/api/tasks_controller_test.rb +1 -2
- data/test/support/dummy_proxy_action.rb +1 -1
- data/test/unit/actions/proxy_action_test.rb +19 -13
- data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +2 -28
- data/webpack/ForemanTasks/Components/TasksTable/TasksTablePage.js +5 -9
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableReducer.js +1 -5
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js +2 -2
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTable.fixtures.js +1 -4
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap +1 -6
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap +1 -6
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTable.test.js.snap +2 -22
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap +2 -12
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableReducer.test.js.snap +1 -4
- data/webpack/ForemanTasks/Components/TasksTable/index.js +2 -2
- data/webpack/__mocks__/foremanReact/components/Pagination/index.js +2 -0
- metadata +3 -3
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a31c8423a352c5eeb6ff93b23ce8ed3d868ee4bdb16d456233f2c3df475342cd
|
4
|
+
data.tar.gz: c181fdc4c13d8c3cfb7e8d8469c9188a8972b97ca223e68cb50d9a901e23d552
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
@@ -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
|
@@ -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
|
data/lib/foreman_tasks/engine.rb
CHANGED
@@ -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.
|
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)}\" || " \
|
@@ -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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
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 [
|
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
|
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.
|
102
|
+
props.itemCount >= props.perPage && (
|
103
103
|
<SelectAllAlert
|
104
104
|
itemCount={props.itemCount}
|
105
|
-
perPage={props.
|
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
|
-
|
122
|
-
|
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
|
-
|
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
|
-
|
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
|
16
|
-
selectTasksTableQuery(state).
|
15
|
+
export const selectPerPage = state =>
|
16
|
+
selectTasksTableQuery(state).perPage || 20;
|
17
17
|
|
18
18
|
export const selectItemCount = state =>
|
19
19
|
selectTasksTableQuery(state).itemCount || 0;
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap
CHANGED
@@ -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 [
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap
CHANGED
@@ -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
|
-
|
19
|
-
Object {
|
20
|
-
"page": 1,
|
21
|
-
"perPage": 10,
|
22
|
-
}
|
23
|
-
}
|
18
|
+
perPage={10}
|
24
19
|
reloadPage={[MockFunction]}
|
25
20
|
results={
|
26
21
|
Array [
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTable.test.js.snap
CHANGED
@@ -20,18 +20,8 @@ exports[`TasksTable rendering render with loading Props 1`] = `
|
|
20
20
|
]
|
21
21
|
}
|
22
22
|
/>
|
23
|
-
<
|
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
|
-
<
|
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
|
`;
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap
CHANGED
@@ -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,
|
@@ -8,7 +8,7 @@ import {
|
|
8
8
|
selectStatus,
|
9
9
|
selectError,
|
10
10
|
selectResults,
|
11
|
-
|
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
|
-
|
27
|
+
perPage: selectPerPage(state),
|
28
28
|
itemCount: selectItemCount(state),
|
29
29
|
actionName: selectActionName(state),
|
30
30
|
selectedRows: selectSelectedRows(state),
|
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:
|
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:
|
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/
|
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
|