foreman_openscap 9.0.3 → 9.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/compliance/scap_contents_controller.rb +0 -2
  3. data/{lib → app/services}/foreman_openscap/bulk_upload.rb +14 -7
  4. data/lib/foreman_openscap/version.rb +1 -1
  5. data/lib/tasks/foreman_openscap_tasks.rake +0 -1
  6. data/test/lib/foreman_openscap/bulk_upload_test.rb +3 -4
  7. data/webpack/components/OpenscapRemediationWizard/Footer.js +54 -0
  8. data/webpack/components/OpenscapRemediationWizard/constants.js +9 -0
  9. data/webpack/components/OpenscapRemediationWizard/index.js +11 -5
  10. metadata +8 -39
  11. data/locale/cs_CZ/foreman_openscap.edit.po +0 -1455
  12. data/locale/cs_CZ/foreman_openscap.po.time_stamp +0 -0
  13. data/locale/de/foreman_openscap.edit.po +0 -1667
  14. data/locale/de/foreman_openscap.po.time_stamp +0 -0
  15. data/locale/en/foreman_openscap.edit.po +0 -1455
  16. data/locale/en/foreman_openscap.po.time_stamp +0 -0
  17. data/locale/en_GB/foreman_openscap.edit.po +0 -1467
  18. data/locale/en_GB/foreman_openscap.po.time_stamp +0 -0
  19. data/locale/es/foreman_openscap.edit.po +0 -1664
  20. data/locale/es/foreman_openscap.po.time_stamp +0 -0
  21. data/locale/fr/foreman_openscap.edit.po +0 -1676
  22. data/locale/fr/foreman_openscap.po.time_stamp +0 -0
  23. data/locale/gl/foreman_openscap.edit.po +0 -1455
  24. data/locale/gl/foreman_openscap.po.time_stamp +0 -0
  25. data/locale/it/foreman_openscap.edit.po +0 -1466
  26. data/locale/it/foreman_openscap.po.time_stamp +0 -0
  27. data/locale/ja/foreman_openscap.edit.po +0 -1659
  28. data/locale/ja/foreman_openscap.po.time_stamp +0 -0
  29. data/locale/ka/foreman_openscap.edit.po +0 -1654
  30. data/locale/ka/foreman_openscap.po.time_stamp +0 -0
  31. data/locale/ko/foreman_openscap.edit.po +0 -1470
  32. data/locale/ko/foreman_openscap.po.time_stamp +0 -0
  33. data/locale/pt_BR/foreman_openscap.edit.po +0 -1669
  34. data/locale/pt_BR/foreman_openscap.po.time_stamp +0 -0
  35. data/locale/ru/foreman_openscap.edit.po +0 -1474
  36. data/locale/ru/foreman_openscap.po.time_stamp +0 -0
  37. data/locale/sv_SE/foreman_openscap.edit.po +0 -1455
  38. data/locale/sv_SE/foreman_openscap.po.time_stamp +0 -0
  39. data/locale/zh_CN/foreman_openscap.edit.po +0 -1656
  40. data/locale/zh_CN/foreman_openscap.po.time_stamp +0 -0
  41. data/locale/zh_TW/foreman_openscap.edit.po +0 -1471
  42. data/locale/zh_TW/foreman_openscap.po.time_stamp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f47e20cecbc1294a564f405e94da207c92060f948a056aa0ef22d14b226eada
4
- data.tar.gz: cd21764970990472b08da16879541b9a049662ff91d4af42bb7c24f238c1e725
3
+ metadata.gz: '067348f069de3a505ff49bf8bddfb32ac0119374646235e546e4142442312fbc'
4
+ data.tar.gz: 5e4a33a0523ce68282648384180523e45b091eb8b4ef9a043fa3b13469d6b59f
5
5
  SHA512:
6
- metadata.gz: f300139aa92a12754ad23da61402e93fe5654cb831ecbbeef04f595c7654a38838d44c257066ae59a7e2c6e8aac44e1341ce7fb0ad9655102cb8bb1675fbbdf2
7
- data.tar.gz: 21fb172c6a58710a62da0fcca139d868001ab9eabcc7525557af8bbf930195cda66fd7362a6677155644b1b82b0318cb265efc3986f8ebf764f5e16da0432dad
6
+ metadata.gz: 758ddac232cf116aa8e8365d8241008f12a2daf1d0a98cf5070f50df913587659c7446b6145372f22e6fd5c038e8956a04d233c550458b37d14bbfba20cfbfdb
7
+ data.tar.gz: c60ae37836fc25b7651453ea37d1714543ca335faf9047d723ff0444fbfe493e571444e337e290425912eb450658d0504d21cceb1e5b35f9bad6f04c86d7bbd4
@@ -1,5 +1,3 @@
1
- require 'foreman_openscap/bulk_upload'
2
-
3
1
  module Api::V2
4
2
  module Compliance
5
3
  class ScapContentsController < ::Api::V2::BaseController
@@ -7,21 +7,28 @@ module ForemanOpenscap
7
7
  @result = OpenStruct.new(:errors => [], :results => [])
8
8
  end
9
9
 
10
- def files_from_guide
11
- `rpm -ql scap-security-guide | grep ds.xml`.split
10
+ def security_guide_packages
11
+ %w(scap-security-guide)
12
12
  end
13
13
 
14
- def scap_guide_installed?
15
- `rpm -qa | grep scap-security-guide`.present?
14
+ def files_from_guide(package)
15
+ `rpm -ql #{package} | grep ds.xml`.split
16
+ end
17
+
18
+ def package_installed?(package)
19
+ `rpm -qa | grep #{package}`.present?
16
20
  end
17
21
 
18
22
  def upload_from_scap_guide
19
- unless scap_guide_installed?
20
- @result.errors.push(_("Can't find scap-security-guide RPM, are you sure it is installed on your server?"))
23
+ package = security_guide_packages.find { |p| package_installed? p }
24
+ unless package
25
+ joined_packages = security_guide_packages.join(', ')
26
+ msg = _("Can't find %{packages} RPM(s), are you sure it is installed on your server?")
27
+ @result.errors.push(msg % {packages: joined_packages})
21
28
  return @result
22
29
  end
23
30
 
24
- upload_from_files(files_from_guide, true)
31
+ upload_from_files(files_from_guide(package), true)
25
32
  end
26
33
 
27
34
  def upload_from_files(files_array, from_scap_guide = false)
@@ -1,3 +1,3 @@
1
1
  module ForemanOpenscap
2
- VERSION = "9.0.3".freeze
2
+ VERSION = "9.0.5".freeze
3
3
  end
@@ -1,6 +1,5 @@
1
1
  # Tasks
2
2
  namespace :foreman_openscap do
3
- require 'foreman_openscap/bulk_upload'
4
3
  require 'foreman_openscap/message_cleaner'
5
4
 
6
5
  namespace :bulk_upload do
@@ -2,7 +2,6 @@ require 'test_plugin_helper'
2
2
 
3
3
  class BulkUploadTest < ActiveSupport::TestCase
4
4
  setup do
5
- require 'foreman_openscap/bulk_upload'
6
5
  ForemanOpenscap::ScapContent.all.map(&:destroy)
7
6
  end
8
7
 
@@ -48,14 +47,14 @@ class BulkUploadTest < ActiveSupport::TestCase
48
47
 
49
48
  test 'should handle case when scap security guide is not installed' do
50
49
  upload = ForemanOpenscap::BulkUpload.new
51
- upload.stubs(:scap_guide_installed?).returns(false)
50
+ upload.stubs(:package_installed?).returns(false)
52
51
  res = upload.upload_from_scap_guide
53
- assert_equal "Can't find scap-security-guide RPM, are you sure it is installed on your server?", res.errors.first
52
+ assert_equal "Can't find scap-security-guide RPM(s), are you sure it is installed on your server?", res.errors.first
54
53
  end
55
54
 
56
55
  test 'should upload files from guide' do
57
56
  upload = ForemanOpenscap::BulkUpload.new
58
- upload.stubs(:scap_guide_installed?).returns(true)
57
+ upload.stubs(:package_installed?).returns(true)
59
58
  upload.stubs(:files_from_guide).returns(["#{ForemanOpenscap::Engine.root}/test/files/scap_contents/ssg-fedora-ds.xml"])
60
59
  assert_difference('ForemanOpenscap::ScapContent.count', 1) do
61
60
  upload.upload_from_scap_guide
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ import {
3
+ Button,
4
+ WizardFooter,
5
+ WizardContextConsumer,
6
+ } from '@patternfly/react-core';
7
+ import { translate as __ } from 'foremanReact/common/I18n';
8
+ import { WIZARD_TITLES } from './constants';
9
+
10
+ export const Footer = () => (
11
+ <WizardFooter>
12
+ <WizardContextConsumer>
13
+ {({ activeStep, onNext, onBack, onClose, goToStepByName }) => {
14
+ const isValid =
15
+ activeStep && activeStep.enableNext !== undefined
16
+ ? activeStep.enableNext
17
+ : true;
18
+
19
+ return (
20
+ <>
21
+ {!activeStep.isFinishedStep ? (
22
+ <Button
23
+ ouiaId="oscap-rem-wiz-next-button"
24
+ variant="primary"
25
+ type="submit"
26
+ onClick={onNext}
27
+ isDisabled={!isValid}
28
+ >
29
+ {activeStep.name === WIZARD_TITLES.reviewRemediation
30
+ ? __('Run')
31
+ : __('Next')}
32
+ </Button>
33
+ ) : null}
34
+ <Button
35
+ ouiaId="oscap-rem-wiz-back-button"
36
+ variant="secondary"
37
+ onClick={onBack}
38
+ isDisabled={activeStep.name === WIZARD_TITLES.snippetSelect}
39
+ >
40
+ {__('Back')}
41
+ </Button>
42
+ <Button
43
+ ouiaId="oscap-rem-wiz-cancel-button"
44
+ variant="link"
45
+ onClick={onClose}
46
+ >
47
+ {__('Cancel')}
48
+ </Button>
49
+ </>
50
+ );
51
+ }}
52
+ </WizardContextConsumer>
53
+ </WizardFooter>
54
+ );
@@ -1,3 +1,5 @@
1
+ import { translate as __ } from 'foremanReact/common/I18n';
2
+
1
3
  export const OPENSCAP_REMEDIATION_MODAL_ID = 'openscapRemediationModal';
2
4
  export const HOSTS_PATH = '/hosts';
3
5
  export const FAIL_RULE_SEARCH = 'fails_xccdf_rule';
@@ -12,3 +14,10 @@ export const JOB_INVOCATION_API_REQUEST_KEY = 'OPENSCAP_REX_JOB_INVOCATIONS';
12
14
 
13
15
  export const SNIPPET_SH = 'urn:xccdf:fix:script:sh';
14
16
  export const SNIPPET_ANSIBLE = 'urn:xccdf:fix:script:ansible';
17
+
18
+ export const WIZARD_TITLES = {
19
+ snippetSelect: __('Select snippet'),
20
+ reviewHosts: __('Review hosts'),
21
+ reviewRemediation: __('Review remediation'),
22
+ finish: __('Done'),
23
+ };
@@ -7,12 +7,17 @@ import { sprintf, translate as __ } from 'foremanReact/common/I18n';
7
7
  import { API_OPERATIONS, get } from 'foremanReact/redux/API';
8
8
 
9
9
  import OpenscapRemediationWizardContext from './OpenscapRemediationWizardContext';
10
+ import { Footer } from './Footer';
10
11
  import {
11
12
  selectLogResponse,
12
13
  selectLogError,
13
14
  selectLogStatus,
14
15
  } from './OpenscapRemediationSelectors';
15
- import { REPORT_LOG_REQUEST_KEY, FAIL_RULE_SEARCH } from './constants';
16
+ import {
17
+ REPORT_LOG_REQUEST_KEY,
18
+ FAIL_RULE_SEARCH,
19
+ WIZARD_TITLES,
20
+ } from './constants';
16
21
  import { SnippetSelect, ReviewHosts, ReviewRemediation, Finish } from './steps';
17
22
 
18
23
  const OpenscapRemediationWizard = ({
@@ -66,7 +71,7 @@ const OpenscapRemediationWizard = ({
66
71
 
67
72
  const reviewHostsStep = {
68
73
  id: 2,
69
- name: __('Review hosts'),
74
+ name: WIZARD_TITLES.reviewHosts,
70
75
  component: <ReviewHosts />,
71
76
  canJumpTo: Boolean(snippet && method === 'job'),
72
77
  enableNext: Boolean(snippet && method),
@@ -74,7 +79,7 @@ const OpenscapRemediationWizard = ({
74
79
  const steps = [
75
80
  {
76
81
  id: 1,
77
- name: __('Select snippet'),
82
+ name: WIZARD_TITLES.snippetSelect,
78
83
  component: <SnippetSelect />,
79
84
  canJumpTo: true,
80
85
  enableNext: Boolean(snippet && method),
@@ -82,7 +87,7 @@ const OpenscapRemediationWizard = ({
82
87
  ...(snippet && method === 'job' ? [reviewHostsStep] : []),
83
88
  {
84
89
  id: 3,
85
- name: __('Review remediation'),
90
+ name: WIZARD_TITLES.reviewRemediation,
86
91
  component: <ReviewRemediation />,
87
92
  canJumpTo: Boolean(snippet && method),
88
93
  enableNext: method === 'job',
@@ -90,7 +95,7 @@ const OpenscapRemediationWizard = ({
90
95
  },
91
96
  {
92
97
  id: 4,
93
- name: __('Done'),
98
+ name: WIZARD_TITLES.finish,
94
99
  component: <Finish onClose={onWizardClose} />,
95
100
  isFinishedStep: true,
96
101
  },
@@ -128,6 +133,7 @@ const OpenscapRemediationWizard = ({
128
133
  isOpen={isRemediationWizardOpen}
129
134
  steps={steps}
130
135
  onClose={onWizardClose}
136
+ footer={<Footer />}
131
137
  />
132
138
  </OpenscapRemediationWizardContext.Provider>
133
139
  )}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_openscap
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.3
4
+ version: 9.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - slukasik@redhat.com
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-17 00:00:00.000000000 Z
11
+ date: 2025-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -116,6 +116,7 @@ files:
116
116
  - app/models/foreman_openscap/scap_content_profile.rb
117
117
  - app/models/foreman_openscap/tailoring_file.rb
118
118
  - app/services/foreman_openscap/arf_report_status_calculator.rb
119
+ - app/services/foreman_openscap/bulk_upload.rb
119
120
  - app/services/foreman_openscap/client_config/ansible.rb
120
121
  - app/services/foreman_openscap/client_config/base.rb
121
122
  - app/services/foreman_openscap/client_config/manual.rb
@@ -286,7 +287,6 @@ files:
286
287
  - db/seeds.d/openscap_feature.rb
287
288
  - db/seeds.d/openscap_policy_notification.rb
288
289
  - lib/foreman_openscap.rb
289
- - lib/foreman_openscap/bulk_upload.rb
290
290
  - lib/foreman_openscap/data_migration.rb
291
291
  - lib/foreman_openscap/engine.rb
292
292
  - lib/foreman_openscap/helper.rb
@@ -296,71 +296,39 @@ files:
296
296
  - locale/Makefile
297
297
  - locale/action_names.rb
298
298
  - locale/cs_CZ/LC_MESSAGES/foreman_openscap.mo
299
- - locale/cs_CZ/foreman_openscap.edit.po
300
299
  - locale/cs_CZ/foreman_openscap.po
301
- - locale/cs_CZ/foreman_openscap.po.time_stamp
302
300
  - locale/de/LC_MESSAGES/foreman_openscap.mo
303
- - locale/de/foreman_openscap.edit.po
304
301
  - locale/de/foreman_openscap.po
305
- - locale/de/foreman_openscap.po.time_stamp
306
302
  - locale/en/LC_MESSAGES/foreman_openscap.mo
307
- - locale/en/foreman_openscap.edit.po
308
303
  - locale/en/foreman_openscap.po
309
- - locale/en/foreman_openscap.po.time_stamp
310
304
  - locale/en_GB/LC_MESSAGES/foreman_openscap.mo
311
- - locale/en_GB/foreman_openscap.edit.po
312
305
  - locale/en_GB/foreman_openscap.po
313
- - locale/en_GB/foreman_openscap.po.time_stamp
314
306
  - locale/es/LC_MESSAGES/foreman_openscap.mo
315
- - locale/es/foreman_openscap.edit.po
316
307
  - locale/es/foreman_openscap.po
317
- - locale/es/foreman_openscap.po.time_stamp
318
308
  - locale/foreman_openscap.pot
319
309
  - locale/fr/LC_MESSAGES/foreman_openscap.mo
320
- - locale/fr/foreman_openscap.edit.po
321
310
  - locale/fr/foreman_openscap.po
322
- - locale/fr/foreman_openscap.po.time_stamp
323
311
  - locale/gl/LC_MESSAGES/foreman_openscap.mo
324
- - locale/gl/foreman_openscap.edit.po
325
312
  - locale/gl/foreman_openscap.po
326
- - locale/gl/foreman_openscap.po.time_stamp
327
313
  - locale/it/LC_MESSAGES/foreman_openscap.mo
328
- - locale/it/foreman_openscap.edit.po
329
314
  - locale/it/foreman_openscap.po
330
- - locale/it/foreman_openscap.po.time_stamp
331
315
  - locale/ja/LC_MESSAGES/foreman_openscap.mo
332
- - locale/ja/foreman_openscap.edit.po
333
316
  - locale/ja/foreman_openscap.po
334
- - locale/ja/foreman_openscap.po.time_stamp
335
317
  - locale/ka/LC_MESSAGES/foreman_openscap.mo
336
- - locale/ka/foreman_openscap.edit.po
337
318
  - locale/ka/foreman_openscap.po
338
- - locale/ka/foreman_openscap.po.time_stamp
339
319
  - locale/ko/LC_MESSAGES/foreman_openscap.mo
340
- - locale/ko/foreman_openscap.edit.po
341
320
  - locale/ko/foreman_openscap.po
342
- - locale/ko/foreman_openscap.po.time_stamp
343
321
  - locale/pt_BR/LC_MESSAGES/foreman_openscap.mo
344
- - locale/pt_BR/foreman_openscap.edit.po
345
322
  - locale/pt_BR/foreman_openscap.po
346
- - locale/pt_BR/foreman_openscap.po.time_stamp
347
323
  - locale/ru/LC_MESSAGES/foreman_openscap.mo
348
- - locale/ru/foreman_openscap.edit.po
349
324
  - locale/ru/foreman_openscap.po
350
- - locale/ru/foreman_openscap.po.time_stamp
351
325
  - locale/sv_SE/LC_MESSAGES/foreman_openscap.mo
352
- - locale/sv_SE/foreman_openscap.edit.po
353
326
  - locale/sv_SE/foreman_openscap.po
354
- - locale/sv_SE/foreman_openscap.po.time_stamp
355
327
  - locale/zanata.xml
356
328
  - locale/zh_CN/LC_MESSAGES/foreman_openscap.mo
357
- - locale/zh_CN/foreman_openscap.edit.po
358
329
  - locale/zh_CN/foreman_openscap.po
359
- - locale/zh_CN/foreman_openscap.po.time_stamp
360
330
  - locale/zh_TW/LC_MESSAGES/foreman_openscap.mo
361
- - locale/zh_TW/foreman_openscap.edit.po
362
331
  - locale/zh_TW/foreman_openscap.po
363
- - locale/zh_TW/foreman_openscap.po.time_stamp
364
332
  - package.json
365
333
  - test/factories/arf_report_factory.rb
366
334
  - test/factories/asset_factory.rb
@@ -418,6 +386,7 @@ files:
418
386
  - webpack/components/IndexTable/IndexTableHelper.js
419
387
  - webpack/components/IndexTable/index.js
420
388
  - webpack/components/LinkButton.js
389
+ - webpack/components/OpenscapRemediationWizard/Footer.js
421
390
  - webpack/components/OpenscapRemediationWizard/OpenscapRemediationSelectors.js
422
391
  - webpack/components/OpenscapRemediationWizard/OpenscapRemediationWizardContext.js
423
392
  - webpack/components/OpenscapRemediationWizard/ViewSelectedHostsLink.js
@@ -457,7 +426,7 @@ homepage: https://github.com/theforeman/foreman_openscap
457
426
  licenses:
458
427
  - GPL-3.0
459
428
  metadata: {}
460
- post_install_message:
429
+ post_install_message:
461
430
  rdoc_options: []
462
431
  require_paths:
463
432
  - lib
@@ -472,8 +441,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
472
441
  - !ruby/object:Gem::Version
473
442
  version: '0'
474
443
  requirements: []
475
- rubygems_version: 3.2.33
476
- signing_key:
444
+ rubygems_version: 3.3.27
445
+ signing_key:
477
446
  specification_version: 4
478
447
  summary: Foreman plug-in for displaying OpenSCAP audit reports
479
448
  test_files: