foreman_remote_execution 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.babelrc +9 -0
  3. data/.eslintignore +3 -0
  4. data/.eslintrc +49 -0
  5. data/.gitignore +1 -0
  6. data/.hound.yml +5 -0
  7. data/.rubocop.yml +4 -1
  8. data/.rubocop_todo.yml +63 -35
  9. data/.travis.yml +6 -0
  10. data/app/assets/javascripts/foreman_remote_execution/template_invocation.js +1 -1
  11. data/app/assets/stylesheets/foreman_remote_execution/job_invocations.css.scss +0 -14
  12. data/app/controllers/job_invocations_controller.rb +18 -0
  13. data/app/helpers/job_invocations_chart_helper.rb +77 -0
  14. data/app/helpers/job_invocations_helper.rb +79 -0
  15. data/app/helpers/remote_execution_helper.rb +10 -50
  16. data/app/models/job_invocation.rb +4 -0
  17. data/app/models/remote_execution_provider.rb +4 -0
  18. data/app/views/job_invocations/_card_results.html.erb +11 -0
  19. data/app/views/job_invocations/_card_schedule.html.erb +32 -0
  20. data/app/views/job_invocations/_card_target_hosts.html.erb +33 -0
  21. data/app/views/job_invocations/_card_user_input.html.erb +16 -0
  22. data/app/views/job_invocations/_tab_hosts.html.erb +1 -1
  23. data/app/views/job_invocations/_tab_overview.html.erb +25 -55
  24. data/app/views/job_invocations/_tab_preview_templates.html.erb +20 -0
  25. data/app/views/job_invocations/_user_input.html.erb +21 -0
  26. data/app/views/job_invocations/show.html.erb +14 -8
  27. data/app/views/job_invocations/show.js.erb +3 -6
  28. data/config/routes.rb +1 -0
  29. data/lib/foreman_remote_execution/engine.rb +2 -2
  30. data/lib/foreman_remote_execution/version.rb +1 -1
  31. data/package.json +62 -0
  32. data/test/unit/job_invocation_test.rb +15 -0
  33. data/webpack/index.js +29 -0
  34. data/webpack/react_app/components/jobInvocations/AggregateStatus/index.js +34 -0
  35. data/webpack/react_app/components/jobInvocations/AggregateStatus/index.test.js +36 -0
  36. data/webpack/react_app/components/jobInvocations/index.js +58 -0
  37. data/webpack/react_app/redux/actions/jobInvocations/index.js +74 -0
  38. data/webpack/react_app/redux/consts.js +6 -0
  39. data/webpack/react_app/redux/reducers/index.js +6 -0
  40. data/webpack/react_app/redux/reducers/jobInvocations/index.fixtures.js +78 -0
  41. data/webpack/react_app/redux/reducers/jobInvocations/index.js +32 -0
  42. data/webpack/react_app/redux/reducers/jobInvocations/index.test.js +37 -0
  43. data/webpack/test_setup.js +11 -0
  44. metadata +26 -2
@@ -0,0 +1,32 @@
1
+ import Immutable from 'seamless-immutable';
2
+
3
+ import {
4
+ JOB_INVOCATIONS_GET_JOB_INVOCATIONS,
5
+ JOB_INVOCATIONS_POLLING_STARTED,
6
+ JOB_INVOCATIONS_JOB_FINISHED,
7
+ } from '../../consts';
8
+
9
+ const initialState = Immutable({
10
+ isPolling: false,
11
+ jobInvocations: [],
12
+ statuses: [],
13
+ });
14
+
15
+ export default (state = initialState, action) => {
16
+ const { payload } = action;
17
+ switch (action.type) {
18
+ case JOB_INVOCATIONS_POLLING_STARTED:
19
+ return state.set('isPolling', true);
20
+ case JOB_INVOCATIONS_JOB_FINISHED:
21
+ return state
22
+ .set('isPolling', false)
23
+ .set('jobInvocations', payload.jobInvocations.job_invocations)
24
+ .set('statuses', payload.jobInvocations.statuses);
25
+ case JOB_INVOCATIONS_GET_JOB_INVOCATIONS:
26
+ return state
27
+ .set('jobInvocations', payload.jobInvocations.job_invocations)
28
+ .set('statuses', payload.jobInvocations.statuses);
29
+ default:
30
+ return state;
31
+ }
32
+ };
@@ -0,0 +1,37 @@
1
+ import {
2
+ JOB_INVOCATIONS_GET_JOB_INVOCATIONS,
3
+ JOB_INVOCATIONS_POLLING_STARTED,
4
+ JOB_INVOCATIONS_JOB_FINISHED,
5
+ } from '../../consts';
6
+
7
+ import {
8
+ initialState,
9
+ pollingStarted,
10
+ jobInvocationsPayload,
11
+ jobInvocationsReceived,
12
+ } from './index.fixtures';
13
+
14
+ import reducer from './index';
15
+
16
+ describe('job invocations chart reducer', () => {
17
+ it('should return the initial state', () => {
18
+ expect(reducer(undefined, {})).toEqual(initialState);
19
+ });
20
+ it('should start polling given POLLING_STARTED', () => {
21
+ expect(reducer(initialState, {
22
+ type: JOB_INVOCATIONS_POLLING_STARTED,
23
+ })).toEqual(pollingStarted);
24
+ });
25
+ it('should stop polling given JOB_FINISHED', () => {
26
+ expect(reducer(pollingStarted, {
27
+ type: JOB_INVOCATIONS_JOB_FINISHED,
28
+ payload: { jobInvocations: { job_invocations: [], statuses: [] } },
29
+ })).toEqual(initialState);
30
+ });
31
+ it('should receive job invocations given GET_JOB_INVOCATIONS', () => {
32
+ expect(reducer(pollingStarted, {
33
+ type: JOB_INVOCATIONS_GET_JOB_INVOCATIONS,
34
+ payload: jobInvocationsPayload,
35
+ })).toEqual(jobInvocationsReceived);
36
+ });
37
+ });
@@ -0,0 +1,11 @@
1
+ import 'babel-polyfill';
2
+
3
+ import { configure } from 'enzyme';
4
+ import Adapter from 'enzyme-adapter-react-16';
5
+
6
+ configure({ adapter: new Adapter() });
7
+
8
+ // Mocking translation function
9
+ global.__ = str => str;
10
+ global.n__ = str => str;
11
+ global.Jed = { sprintf: str => str };
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_remote_execution
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Remote Execution team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-03 00:00:00.000000000 Z
11
+ date: 2018-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -124,10 +124,14 @@ extra_rdoc_files:
124
124
  - README.md
125
125
  - LICENSE
126
126
  files:
127
+ - ".babelrc"
128
+ - ".eslintignore"
129
+ - ".eslintrc"
127
130
  - ".gitignore"
128
131
  - ".hound.yml"
129
132
  - ".rubocop.yml"
130
133
  - ".rubocop_todo.yml"
134
+ - ".travis.yml"
131
135
  - ".tx/config"
132
136
  - Gemfile
133
137
  - LICENSE
@@ -157,6 +161,8 @@ files:
157
161
  - app/helpers/concerns/foreman_remote_execution/hosts_helper_extensions.rb
158
162
  - app/helpers/concerns/foreman_remote_execution/job_templates_extensions.rb
159
163
  - app/helpers/job_invocation_output_helper.rb
164
+ - app/helpers/job_invocations_chart_helper.rb
165
+ - app/helpers/job_invocations_helper.rb
160
166
  - app/helpers/remote_execution_helper.rb
161
167
  - app/lib/actions/middleware/bind_job_invocation.rb
162
168
  - app/lib/actions/remote_execution/run_host_job.rb
@@ -225,6 +231,10 @@ files:
225
231
  - app/views/api/v2/template_inputs/show.json.rabl
226
232
  - app/views/dashboard/.gitkeep
227
233
  - app/views/job_invocation_task_groups/_job_invocation_task_groups.html.erb
234
+ - app/views/job_invocations/_card_results.html.erb
235
+ - app/views/job_invocations/_card_schedule.html.erb
236
+ - app/views/job_invocations/_card_target_hosts.html.erb
237
+ - app/views/job_invocations/_card_user_input.html.erb
228
238
  - app/views/job_invocations/_description_fields.html.erb
229
239
  - app/views/job_invocations/_form.html.erb
230
240
  - app/views/job_invocations/_host_actions_td.html.erb
@@ -234,6 +244,8 @@ files:
234
244
  - app/views/job_invocations/_preview_hosts_modal.html.erb
235
245
  - app/views/job_invocations/_tab_hosts.html.erb
236
246
  - app/views/job_invocations/_tab_overview.html.erb
247
+ - app/views/job_invocations/_tab_preview_templates.html.erb
248
+ - app/views/job_invocations/_user_input.html.erb
237
249
  - app/views/job_invocations/index.html.erb
238
250
  - app/views/job_invocations/new.html.erb
239
251
  - app/views/job_invocations/refresh.js.erb
@@ -341,6 +353,7 @@ files:
341
353
  - locale/zh_CN/foreman_remote_execution.po
342
354
  - locale/zh_TW/LC_MESSAGES/foreman_remote_execution.mo
343
355
  - locale/zh_TW/foreman_remote_execution.po
356
+ - package.json
344
357
  - test/benchmark/run_hosts_job_benchmark.rb
345
358
  - test/benchmark/targeting_benchmark.rb
346
359
  - test/factories/foreman_remote_execution_factories.rb
@@ -367,6 +380,17 @@ files:
367
380
  - test/unit/targeting_test.rb
368
381
  - test/unit/template_input_test.rb
369
382
  - test/unit/template_invocation_input_value_test.rb
383
+ - webpack/index.js
384
+ - webpack/react_app/components/jobInvocations/AggregateStatus/index.js
385
+ - webpack/react_app/components/jobInvocations/AggregateStatus/index.test.js
386
+ - webpack/react_app/components/jobInvocations/index.js
387
+ - webpack/react_app/redux/actions/jobInvocations/index.js
388
+ - webpack/react_app/redux/consts.js
389
+ - webpack/react_app/redux/reducers/index.js
390
+ - webpack/react_app/redux/reducers/jobInvocations/index.fixtures.js
391
+ - webpack/react_app/redux/reducers/jobInvocations/index.js
392
+ - webpack/react_app/redux/reducers/jobInvocations/index.test.js
393
+ - webpack/test_setup.js
370
394
  homepage: https://github.com/theforeman/foreman_remote_execution
371
395
  licenses: []
372
396
  metadata: {}