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.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/compliance/scap_contents_controller.rb +0 -2
- data/{lib → app/services}/foreman_openscap/bulk_upload.rb +14 -7
- data/lib/foreman_openscap/version.rb +1 -1
- data/lib/tasks/foreman_openscap_tasks.rake +0 -1
- data/test/lib/foreman_openscap/bulk_upload_test.rb +3 -4
- data/webpack/components/OpenscapRemediationWizard/Footer.js +54 -0
- data/webpack/components/OpenscapRemediationWizard/constants.js +9 -0
- data/webpack/components/OpenscapRemediationWizard/index.js +11 -5
- metadata +8 -39
- data/locale/cs_CZ/foreman_openscap.edit.po +0 -1455
- data/locale/cs_CZ/foreman_openscap.po.time_stamp +0 -0
- data/locale/de/foreman_openscap.edit.po +0 -1667
- data/locale/de/foreman_openscap.po.time_stamp +0 -0
- data/locale/en/foreman_openscap.edit.po +0 -1455
- data/locale/en/foreman_openscap.po.time_stamp +0 -0
- data/locale/en_GB/foreman_openscap.edit.po +0 -1467
- data/locale/en_GB/foreman_openscap.po.time_stamp +0 -0
- data/locale/es/foreman_openscap.edit.po +0 -1664
- data/locale/es/foreman_openscap.po.time_stamp +0 -0
- data/locale/fr/foreman_openscap.edit.po +0 -1676
- data/locale/fr/foreman_openscap.po.time_stamp +0 -0
- data/locale/gl/foreman_openscap.edit.po +0 -1455
- data/locale/gl/foreman_openscap.po.time_stamp +0 -0
- data/locale/it/foreman_openscap.edit.po +0 -1466
- data/locale/it/foreman_openscap.po.time_stamp +0 -0
- data/locale/ja/foreman_openscap.edit.po +0 -1659
- data/locale/ja/foreman_openscap.po.time_stamp +0 -0
- data/locale/ka/foreman_openscap.edit.po +0 -1654
- data/locale/ka/foreman_openscap.po.time_stamp +0 -0
- data/locale/ko/foreman_openscap.edit.po +0 -1470
- data/locale/ko/foreman_openscap.po.time_stamp +0 -0
- data/locale/pt_BR/foreman_openscap.edit.po +0 -1669
- data/locale/pt_BR/foreman_openscap.po.time_stamp +0 -0
- data/locale/ru/foreman_openscap.edit.po +0 -1474
- data/locale/ru/foreman_openscap.po.time_stamp +0 -0
- data/locale/sv_SE/foreman_openscap.edit.po +0 -1455
- data/locale/sv_SE/foreman_openscap.po.time_stamp +0 -0
- data/locale/zh_CN/foreman_openscap.edit.po +0 -1656
- data/locale/zh_CN/foreman_openscap.po.time_stamp +0 -0
- data/locale/zh_TW/foreman_openscap.edit.po +0 -1471
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '067348f069de3a505ff49bf8bddfb32ac0119374646235e546e4142442312fbc'
|
4
|
+
data.tar.gz: 5e4a33a0523ce68282648384180523e45b091eb8b4ef9a043fa3b13469d6b59f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 758ddac232cf116aa8e8365d8241008f12a2daf1d0a98cf5070f50df913587659c7446b6145372f22e6fd5c038e8956a04d233c550458b37d14bbfba20cfbfdb
|
7
|
+
data.tar.gz: c60ae37836fc25b7651453ea37d1714543ca335faf9047d723ff0444fbfe493e571444e337e290425912eb450658d0504d21cceb1e5b35f9bad6f04c86d7bbd4
|
@@ -7,21 +7,28 @@ module ForemanOpenscap
|
|
7
7
|
@result = OpenStruct.new(:errors => [], :results => [])
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
10
|
+
def security_guide_packages
|
11
|
+
%w(scap-security-guide)
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
15
|
-
`rpm -
|
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
|
-
|
20
|
-
|
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)
|
@@ -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(:
|
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(:
|
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 {
|
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:
|
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:
|
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:
|
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:
|
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.
|
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:
|
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.
|
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:
|