foreman_openscap 0.6.4 → 0.6.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/arf_reports_controller.rb +20 -5
- data/app/controllers/arf_reports_controller.rb +15 -3
- data/app/controllers/concerns/foreman_openscap/arf_reports_controller_common_extensions.rb +8 -0
- data/app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb +4 -4
- data/app/models/concerns/foreman_openscap/host_extensions.rb +14 -15
- data/app/models/foreman_openscap/arf_report.rb +9 -5
- data/app/models/foreman_openscap/policy.rb +6 -2
- data/app/services/foreman_openscap/openscap_proxy_assigned_version_check.rb +14 -0
- data/app/services/foreman_openscap/openscap_proxy_version_check.rb +1 -1
- data/app/views/arf_reports/show.html.erb +2 -1
- data/app/views/job_templates/run_openscap_scans.erb +21 -0
- data/config/routes.rb +2 -0
- data/db/seeds.d/75-job_templates.rb +10 -0
- data/lib/foreman_openscap/engine.rb +21 -2
- data/lib/foreman_openscap/version.rb +1 -1
- data/test/files/arf_report/arf_report.html +815 -0
- data/test/functional/arf_reports_controller_test.rb +26 -7
- data/test/unit/concerns/host_extensions_test.rb +25 -0
- data/test/unit/policy_test.rb +24 -0
- metadata +10 -2
@@ -1,21 +1,40 @@
|
|
1
1
|
require 'test_plugin_helper'
|
2
2
|
|
3
3
|
class ArfReportsControllerTest < ActionController::TestCase
|
4
|
-
|
5
|
-
test "should delete selected reports" do
|
6
|
-
host = FactoryGirl.create(:compliance_host)
|
4
|
+
setup do
|
7
5
|
ForemanOpenscap::Helper.stubs(:find_name_or_uuid_by_host)
|
8
6
|
::ProxyAPI::Openscap.any_instance.stubs(:destroy_report).returns(true)
|
9
|
-
|
7
|
+
@host = FactoryGirl.create(:compliance_host)
|
8
|
+
end
|
9
|
+
|
10
|
+
test "should delete arf report" do
|
11
|
+
ForemanOpenscap::ArfReport.any_instance.stubs(:openscap_proxy).returns(@host.openscap_proxy)
|
12
|
+
arf_report = FactoryGirl.create(:arf_report, :host_id => @host.id)
|
13
|
+
assert_difference("ForemanOpenscap::ArfReport.count", -1) do
|
14
|
+
delete :destroy, { :id => arf_report.id }, set_session_user
|
15
|
+
end
|
16
|
+
assert_redirected_to arf_reports_path
|
17
|
+
end
|
18
|
+
|
19
|
+
test "should delete multiple reports" do
|
20
|
+
ForemanOpenscap::ArfReport.any_instance.stubs(:openscap_proxy).returns(@host.openscap_proxy)
|
10
21
|
arf_reports = []
|
11
22
|
3.times do
|
12
|
-
arf_reports << FactoryGirl.create(:arf_report, :host_id => host.id)
|
23
|
+
arf_reports << FactoryGirl.create(:arf_report, :host_id => @host.id)
|
13
24
|
end
|
14
25
|
last_arf = arf_reports[-1]
|
15
|
-
assert_difference("ForemanOpenscap::ArfReport.count", -2) do
|
26
|
+
assert_difference("ForemanOpenscap::ArfReport.unscoped.count", -2) do
|
16
27
|
post :submit_delete_multiple, { :arf_report_ids => arf_reports[0..-2].map(&:id) }, set_session_user
|
17
28
|
end
|
18
29
|
assert_redirected_to arf_reports_path
|
19
|
-
assert_equal last_arf, ForemanOpenscap::ArfReport.first
|
30
|
+
assert_equal last_arf, ForemanOpenscap::ArfReport.unscoped.first
|
31
|
+
end
|
32
|
+
|
33
|
+
test "should download arf report as html" do
|
34
|
+
arf_report = FactoryGirl.create(:arf_report, :host_id => @host.id)
|
35
|
+
report_html = File.read("#{ForemanOpenscap::Engine.root}/test/files/arf_report/arf_report.html")
|
36
|
+
ForemanOpenscap::ArfReport.any_instance.stubs(:to_html).returns(report_html)
|
37
|
+
get :download_html, { :id => arf_report.id }, set_session_user
|
38
|
+
assert_equal report_html, @response.body
|
20
39
|
end
|
21
40
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test_plugin_helper'
|
2
|
+
|
3
|
+
class HostExtensionsTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
ForemanOpenscap::Policy.any_instance.stubs(:ensure_needed_puppetclasses).returns(true)
|
6
|
+
@scap_content = FactoryGirl.create(:scap_content)
|
7
|
+
@scap_content_profile = FactoryGirl.create(:scap_content_profile, :scap_content => @scap_content)
|
8
|
+
@policy = FactoryGirl.create(:policy, :scap_content => @scap_content, :scap_content_profile => @scap_content_profile)
|
9
|
+
@host = FactoryGirl.create(:compliance_host, :policies => [@policy])
|
10
|
+
end
|
11
|
+
|
12
|
+
test "should have download_path in enc without digest" do
|
13
|
+
ForemanOpenscap::OpenscapProxyAssignedVersionCheck.any_instance.stubs(:openscap_proxy_versions).
|
14
|
+
returns('test-proxy' => '0.5.4')
|
15
|
+
enc_out = JSON.parse @host.policies_enc
|
16
|
+
assert_equal 5, enc_out.first['download_path'].split('/').length
|
17
|
+
end
|
18
|
+
|
19
|
+
test "should have download_path in enc with digest" do
|
20
|
+
ForemanOpenscap::OpenscapProxyAssignedVersionCheck.any_instance.stubs(:openscap_proxy_versions).
|
21
|
+
returns({})
|
22
|
+
enc_out = JSON.parse @host.policies_enc
|
23
|
+
assert_equal 6, enc_out.first['download_path'].split('/').length
|
24
|
+
end
|
25
|
+
end
|
data/test/unit/policy_test.rb
CHANGED
@@ -7,6 +7,7 @@ class PolicyTest < ActiveSupport::TestCase
|
|
7
7
|
ForemanOpenscap::ScapContent.any_instance.stubs(:fetch_profiles).returns({ 'test_profile_key' => 'test_profile_title' })
|
8
8
|
@scap_content = FactoryGirl.create(:scap_content)
|
9
9
|
@scap_profile = FactoryGirl.create(:scap_content_profile)
|
10
|
+
@tailoring_profile = FactoryGirl.create(:scap_content_profile, :profile_id => 'xccdf_org.test.tailoring_test_profile')
|
10
11
|
end
|
11
12
|
|
12
13
|
test "should assign hostgroups by their ids" do
|
@@ -166,4 +167,27 @@ class PolicyTest < ActiveSupport::TestCase
|
|
166
167
|
p.tailoring_file_profile = tailoring_profile
|
167
168
|
assert p.save
|
168
169
|
end
|
170
|
+
|
171
|
+
test "should have digest in enc download path for scap content" do
|
172
|
+
p = ForemanOpenscap::Policy.new(:name => "custom_policy",
|
173
|
+
:scap_content_id => @scap_content.id,
|
174
|
+
:scap_content_profile_id => @scap_profile.id,
|
175
|
+
:period => 'monthly',
|
176
|
+
:day_of_month => '5')
|
177
|
+
assert_equal 6, p.to_enc['download_path'].split('/').length
|
178
|
+
assert_equal @scap_content.digest, p.to_enc['download_path'].split('/').last
|
179
|
+
end
|
180
|
+
|
181
|
+
test "should have digest in enc download path for tailoring file" do
|
182
|
+
tailoring_file = FactoryGirl.create(:tailoring_file)
|
183
|
+
p = ForemanOpenscap::Policy.new(:name => "custom_policy",
|
184
|
+
:scap_content_id => @scap_content.id,
|
185
|
+
:scap_content_profile_id => @scap_profile.id,
|
186
|
+
:tailoring_file => tailoring_file,
|
187
|
+
:tailoring_file_profile => @tailoring_profile,
|
188
|
+
:period => 'monthly',
|
189
|
+
:day_of_month => '5')
|
190
|
+
assert_equal 6, p.to_enc['tailoring_download_path'].split('/').length
|
191
|
+
assert_equal tailoring_file.digest, p.to_enc['tailoring_download_path'].split('/').last
|
192
|
+
end
|
169
193
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_openscap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Šimon Lukašík"
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-03-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: deface
|
@@ -56,6 +56,7 @@ files:
|
|
56
56
|
- app/controllers/concerns/foreman/controller/parameters/policy_api.rb
|
57
57
|
- app/controllers/concerns/foreman/controller/parameters/scap_content.rb
|
58
58
|
- app/controllers/concerns/foreman/controller/parameters/tailoring_file.rb
|
59
|
+
- app/controllers/concerns/foreman_openscap/arf_reports_controller_common_extensions.rb
|
59
60
|
- app/controllers/concerns/foreman_openscap/hostgroups_controller_extensions.rb
|
60
61
|
- app/controllers/concerns/foreman_openscap/hosts_controller_extensions.rb
|
61
62
|
- app/controllers/openscap_proxies_controller.rb
|
@@ -99,6 +100,7 @@ files:
|
|
99
100
|
- app/overrides/hosts/overview/host_compliance_status.rb
|
100
101
|
- app/services/foreman_openscap/arf_report_status_calculator.rb
|
101
102
|
- app/services/foreman_openscap/host_report_dashboard/data.rb
|
103
|
+
- app/services/foreman_openscap/openscap_proxy_assigned_version_check.rb
|
102
104
|
- app/services/foreman_openscap/openscap_proxy_version_check.rb
|
103
105
|
- app/services/foreman_openscap/policy_dashboard/data.rb
|
104
106
|
- app/services/foreman_openscap/report_dashboard/data.rb
|
@@ -140,6 +142,7 @@ files:
|
|
140
142
|
- app/views/foreman_openscap/policy_mailer/_list.erb
|
141
143
|
- app/views/foreman_openscap/policy_mailer/_policy.erb
|
142
144
|
- app/views/foreman_openscap/policy_mailer/policy_summary.erb
|
145
|
+
- app/views/job_templates/run_openscap_scans.erb
|
143
146
|
- app/views/policies/_form.html.erb
|
144
147
|
- app/views/policies/_list.html.erb
|
145
148
|
- app/views/policies/_scap_content_results.html.erb
|
@@ -217,6 +220,7 @@ files:
|
|
217
220
|
- db/migrate/20160925213031_change_scap_widget_names.rb
|
218
221
|
- db/migrate/20161109155255_create_tailoring_files.rb
|
219
222
|
- db/migrate/20161223153249_add_permissions_to_arf_report.rb
|
223
|
+
- db/seeds.d/75-job_templates.rb
|
220
224
|
- db/seeds.d/openscap_feature.rb
|
221
225
|
- db/seeds.d/openscap_policy_notification.rb
|
222
226
|
- lib/foreman_openscap.rb
|
@@ -263,6 +267,7 @@ files:
|
|
263
267
|
- test/factories/policy_factory.rb
|
264
268
|
- test/factories/scap_content_related.rb
|
265
269
|
- test/files/arf_report/arf_report.bz2
|
270
|
+
- test/files/arf_report/arf_report.html
|
266
271
|
- test/files/scap_contents/ssg-fedora-ds.xml
|
267
272
|
- test/files/tailoring_files/ssg-firefox-ds-tailoring-2.xml
|
268
273
|
- test/files/tailoring_files/ssg-firefox-ds-tailoring.xml
|
@@ -278,6 +283,7 @@ files:
|
|
278
283
|
- test/unit/arf_report_status_calculator_test.rb
|
279
284
|
- test/unit/arf_report_test.rb
|
280
285
|
- test/unit/compliance_status_test.rb
|
286
|
+
- test/unit/concerns/host_extensions_test.rb
|
281
287
|
- test/unit/concerns/openscap_proxy_extenstions_test.rb
|
282
288
|
- test/unit/openscap_host_test.rb
|
283
289
|
- test/unit/policy_mailer_test.rb
|
@@ -314,6 +320,7 @@ test_files:
|
|
314
320
|
- test/lib/foreman_openscap/bulk_upload_test.rb
|
315
321
|
- test/unit/scap_content_test.rb
|
316
322
|
- test/unit/concerns/openscap_proxy_extenstions_test.rb
|
323
|
+
- test/unit/concerns/host_extensions_test.rb
|
317
324
|
- test/unit/openscap_host_test.rb
|
318
325
|
- test/unit/tailoring_file_test.rb
|
319
326
|
- test/unit/policy_test.rb
|
@@ -342,3 +349,4 @@ test_files:
|
|
342
349
|
- test/files/tailoring_files/ssg-firefox-ds-tailoring-2.xml
|
343
350
|
- test/files/tailoring_files/ssg-firefox-ds-tailoring.xml
|
344
351
|
- test/files/arf_report/arf_report.bz2
|
352
|
+
- test/files/arf_report/arf_report.html
|