foreman_openscap 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -7
- data/app/assets/javascripts/foreman_openscap/policy_edit.js +2 -2
- data/app/controllers/api/v2/compliance/arf_reports_controller.rb +3 -9
- data/app/controllers/api/v2/compliance/policies_controller.rb +3 -9
- data/app/controllers/api/v2/compliance/scap_contents_controller.rb +18 -10
- data/app/controllers/arf_reports_controller.rb +5 -5
- data/app/controllers/policies_controller.rb +2 -2
- data/app/helpers/concerns/foreman_openscap/lookup_keys_helper_extensions.rb +14 -0
- data/app/helpers/dashboard_helper.rb +26 -0
- data/app/lib/proxy_api/available_proxy.rb +20 -2
- data/app/lib/proxy_api/migration.rb +13 -0
- data/app/lib/proxy_api/openscap.rb +2 -2
- data/app/mailers/foreman_openscap/policy_mailer.rb +1 -1
- data/app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb +1 -1
- data/app/models/concerns/foreman_openscap/host_extensions.rb +1 -1
- data/app/models/concerns/foreman_openscap/log_extensions.rb +10 -0
- data/app/models/concerns/foreman_openscap/openscap_proxy_core_extensions.rb +29 -9
- data/app/models/concerns/foreman_openscap/openscap_proxy_extensions.rb +1 -1
- data/app/models/foreman_openscap/arf_report.rb +2 -4
- data/app/models/foreman_openscap/policy.rb +3 -3
- data/app/models/foreman_openscap/scap_content.rb +7 -6
- data/app/services/foreman_openscap/report_dashboard/data.rb +1 -1
- data/app/views/api/v2/compliance/arf_reports/base.json.rabl +4 -1
- data/app/views/api/v2/compliance/arf_reports/main.json.rabl +5 -1
- data/app/views/api/v2/compliance/common/_loc.json.rabl +3 -0
- data/app/views/api/v2/compliance/common/_org.json.rabl +3 -0
- data/app/views/api/v2/compliance/policies/base.json.rabl +4 -1
- data/app/views/api/v2/compliance/scap_contents/base.json.rabl +4 -1
- data/app/views/api/v2/compliance/scap_contents/show.json.rabl +7 -1
- data/app/views/arf_reports/_list.html.erb +7 -1
- data/app/views/arf_reports/delete_multiple.html.erb +1 -1
- data/app/views/arf_reports/show.html.erb +1 -1
- data/app/views/compliance_hosts/_openscap_proxy.html.erb +1 -6
- data/app/views/compliance_hosts/show.html.erb +1 -1
- data/app/views/dashboard/_compliance_host_reports_widget.html.erb +2 -6
- data/app/views/foreman_openscap/policy_mailer/policy_summary.erb +1 -1
- data/app/views/policies/_form.html.erb +1 -1
- data/app/views/policies/welcome.html.erb +7 -6
- data/app/views/scap_contents/welcome.html.erb +1 -1
- data/config/routes.rb +5 -1
- data/db/migrate/20150821100137_migrate_from_scaptimony.rb +7 -6
- data/db/migrate/20150929152345_move_arf_reports_to_reports_table.rb +0 -97
- data/db/migrate/20151120090851_add_openscap_proxy_to_host_and_hostgroup.rb +0 -12
- data/db/seeds.d/openscap_policy_notification.rb +1 -1
- data/lib/foreman_openscap/bulk_upload.rb +1 -0
- data/lib/foreman_openscap/data_migration.rb +82 -0
- data/lib/foreman_openscap/engine.rb +5 -6
- data/lib/foreman_openscap/version.rb +1 -1
- data/lib/tasks/foreman_openscap_tasks.rake +14 -0
- data/test/factories/arf_report_factory.rb +1 -0
- data/test/factories/compliance_host_factory.rb +11 -1
- data/test/functional/api/v2/compliance/arf_reports_controller_test.rb +3 -1
- data/test/test_plugin_helper.rb +23 -2
- data/test/unit/scap_content_test.rb +1 -1
- data/test/unit/services/report_dashboard/data_test.rb +25 -0
- metadata +202 -194
- data/app/assets/javascripts/foreman_openscap/openscap_proxy.js +0 -52
- data/app/controllers/concerns/foreman_openscap/hosts_common_controller_extensions.rb +0 -45
- data/db/migrate/20151023131950_link_arf_report_directly_to_host.rb +0 -21
- data/db/seeds.d/openscap_scap_default.rb +0 -2
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'rest_client'
|
3
|
+
require 'json'
|
4
|
+
require 'tempfile'
|
5
|
+
|
6
|
+
module ForemanOpenscap
|
7
|
+
class DataMigration
|
8
|
+
def initialize(proxy_id)
|
9
|
+
@proxy = ::SmartProxy.find(proxy_id)
|
10
|
+
puts "Found proxy #{@proxy.to_label}"
|
11
|
+
@url = @proxy.url
|
12
|
+
end
|
13
|
+
|
14
|
+
def available?
|
15
|
+
return false unless @proxy && @url
|
16
|
+
::ProxyAPI::AvailableProxy.new(:url => @url).available? && foreman_available?
|
17
|
+
end
|
18
|
+
|
19
|
+
def migrate
|
20
|
+
ForemanOpenscap::Asset.where(:assetable_type => "Host::Base").select { |a| a.host.nil? }.map(&:destroy)
|
21
|
+
ForemanOpenscap::Asset.where(:assetable_type => "Hostgroup").select { |a| a.hostgroup.nil? }.map(&:destroy)
|
22
|
+
|
23
|
+
old_arf_reports = ActiveRecord::Migration.execute("SELECT * FROM foreman_openscap_arf_reports;")
|
24
|
+
old_arf_reports.select do |report|
|
25
|
+
policy_id = report["policy_id"]
|
26
|
+
date = DateTime.strptime(report["created_at"], "%Y-%m-%d %H:%M:%S")
|
27
|
+
date += 1.second until arfs_by_reported(date).empty?
|
28
|
+
|
29
|
+
host_name = fetch_host_name(report["asset_id"])
|
30
|
+
arf_file = fetch_xml_file(report["id"])
|
31
|
+
|
32
|
+
next if arf_file.blank?
|
33
|
+
migrator = ::ProxyAPI::Migration.new(:url => @url)
|
34
|
+
|
35
|
+
migrated_id = migrator.migrate_arf_report(arf_file, host_name, policy_id, date.to_i)
|
36
|
+
|
37
|
+
migrated_arf = ForemanOpenscap::ArfReport.find(migrated_id["arf_id"])
|
38
|
+
migrated_arf.update_attribute(:openscap_proxy_id, @proxy.id)
|
39
|
+
puts "Migrated Old arf_report #{report['id']} as arf: #{migrated_arf.id}"
|
40
|
+
delete_old_records(report["id"]) if migrated_arf
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def foreman_available?
|
47
|
+
foreman_status_url = Setting[:foreman_url] + '/status'
|
48
|
+
response = JSON.parse(RestClient.get foreman_status_url)
|
49
|
+
return true if response["status"] == "ok"
|
50
|
+
rescue *::ProxyAPI::AvailableProxy::HTTP_ERRORS
|
51
|
+
return false
|
52
|
+
end
|
53
|
+
|
54
|
+
def fetch_xml_file(id)
|
55
|
+
query = ActiveRecord::Migration.execute("SELECT bzip_data FROM foreman_openscap_arf_report_raws WHERE arf_report_id=#{id} LIMIT 1;")
|
56
|
+
ActiveRecord::Base.connection.unescape_bytea(query.first['bzip_data'])
|
57
|
+
end
|
58
|
+
|
59
|
+
def delete_old_records(id)
|
60
|
+
ActiveRecord::Migration.execute("DELETE FROM foreman_openscap_arf_report_raws WHERE arf_report_id=#{id};")
|
61
|
+
ActiveRecord::Migration.execute("DELETE FROM foreman_openscap_arf_reports WHERE id=#{id};")
|
62
|
+
drop_empty_tables
|
63
|
+
end
|
64
|
+
|
65
|
+
def fetch_host_name(asset_id)
|
66
|
+
asset = ForemanOpenscap::Asset.find(asset_id)
|
67
|
+
asset.host.to_label
|
68
|
+
end
|
69
|
+
|
70
|
+
def arfs_by_reported(time)
|
71
|
+
ForemanOpenscap::ArfReport.where(:reported_at => time)
|
72
|
+
end
|
73
|
+
|
74
|
+
def drop_empty_tables
|
75
|
+
old_arfs = ActiveRecord::Migration.execute("SELECT * FROM foreman_openscap_arf_reports;")
|
76
|
+
ActiveRecord::Migration.drop_table(:foreman_openscap_arf_reports) unless old_arfs.any?
|
77
|
+
old_raws = ActiveRecord::Migration.execute("SELECT * FROM foreman_openscap_arf_report_raws;")
|
78
|
+
ActiveRecord::Migration.drop_table(:foreman_openscap_arf_report_raws) unless old_raws.any?
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
@@ -77,7 +77,7 @@ module ForemanOpenscap
|
|
77
77
|
:remove_policy_from_multiple_hosts]},
|
78
78
|
:resource_type => 'ForemanOpenscap::Policy'
|
79
79
|
permission :view_scap_contents, {:scap_contents => [:index, :show, :auto_complete_search],
|
80
|
-
'api/v2/compliance/scap_contents' => [:index, :show]},
|
80
|
+
'api/v2/compliance/scap_contents' => [:index, :show, :xml]},
|
81
81
|
:resource_type => 'ForemanOpenscap::ScapContent'
|
82
82
|
permission :edit_scap_contents, {:scap_contents => [:edit, :update],
|
83
83
|
'api/v2/compliance/scap_contents' => [:update]},
|
@@ -112,9 +112,9 @@ module ForemanOpenscap
|
|
112
112
|
|
113
113
|
# add dashboard widget
|
114
114
|
widget 'compliance_host_reports_widget',
|
115
|
-
:name => N_('OpenSCAP Host reports widget'), :sizex =>
|
115
|
+
:name => N_('OpenSCAP Host reports widget'), :sizex => 6, :sizey => 1
|
116
116
|
widget 'compliance_reports_breakdown_widget',
|
117
|
-
:name => N_('OpenSCAP Reports breakdown widget'), :sizex =>
|
117
|
+
:name => N_('OpenSCAP Reports breakdown widget'), :sizex => 6, :sizey => 1
|
118
118
|
|
119
119
|
# As 'arf_report_breakdowns' is a view and does not appear in schema.rb, db:test:prepare will not create the view
|
120
120
|
# which will make the following tests fail.
|
@@ -136,13 +136,12 @@ module ForemanOpenscap
|
|
136
136
|
Hostgroup.send(:include, ForemanOpenscap::HostgroupExtensions)
|
137
137
|
Hostgroup.send(:include, ForemanOpenscap::OpenscapProxyExtensions)
|
138
138
|
Hostgroup.send(:include, ForemanOpenscap::OpenscapProxyCoreExtensions)
|
139
|
-
|
139
|
+
ForemanOpenscap::ArfReport.send(:include, ForemanOpenscap::ComplianceStatusScopedSearch)
|
140
140
|
SmartProxy.send(:include, ForemanOpenscap::SmartProxyExtensions)
|
141
141
|
HostsController.send(:include, ForemanOpenscap::HostsControllerExtensions)
|
142
|
-
HostsController.send(:include, ForemanOpenscap::HostsCommonControllerExtensions)
|
143
142
|
HostgroupsController.send(:include, ForemanOpenscap::HostgroupsControllerExtensions)
|
144
|
-
HostgroupsController.send(:include, ForemanOpenscap::HostsCommonControllerExtensions)
|
145
143
|
Log.send(:include, ForemanOpenscap::LogExtensions)
|
144
|
+
LookupKeysHelper.send(:include, ForemanOpenscap::LookupKeysHelperExtensions)
|
146
145
|
end
|
147
146
|
|
148
147
|
rake_tasks do
|
@@ -15,6 +15,20 @@ namespace :foreman_openscap do
|
|
15
15
|
end
|
16
16
|
ForemanOpenscap::BulkUpload.new.upload_from_files(files_array)
|
17
17
|
end
|
18
|
+
|
19
|
+
task :default => [:environment] do
|
20
|
+
ForemanOpenscap::BulkUpload.new(true).generate_scap_default_content
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
task :migrate, [:proxy] => [:environment] do |task, args|
|
25
|
+
require 'foreman_openscap/data_migration'
|
26
|
+
puts 'Starting ARF reports migration process...'
|
27
|
+
puts "Migrating with proxy id: #{args[:proxy]}"
|
28
|
+
abort("Please pass migrating proxy id. run 'rake foreman_openscap:migrate[scap_proxy_id]'") unless args[:proxy]
|
29
|
+
migrate = ForemanOpenscap::DataMigration.new(args[:proxy])
|
30
|
+
abort("Foreman & proxy should be up for this migration") unless migrate.available?
|
31
|
+
migrate.migrate
|
18
32
|
end
|
19
33
|
|
20
34
|
task :rubocop do
|
@@ -1,9 +1,19 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
+
factory :openscap_feature, :class => Feature do
|
3
|
+
name 'Openscap'
|
4
|
+
end
|
5
|
+
|
6
|
+
factory :openscap_proxy, :class => SmartProxy do
|
7
|
+
sequence(:name) {|n| "proxy#{n}" }
|
8
|
+
sequence(:url) {|n| "https://somewhere#{n}.net:8443" }
|
9
|
+
features [FactoryGirl.create(:openscap_feature)]
|
10
|
+
end
|
11
|
+
|
2
12
|
factory :compliance_host, :class => Host::Managed do
|
3
13
|
sequence(:name) { |n| "host#{n}" }
|
4
14
|
sequence(:hostname) { |n| "hostname#{n}" }
|
5
15
|
root_pass 'xybxa6JUkz63w'
|
6
|
-
openscap_proxy FactoryGirl.
|
16
|
+
openscap_proxy FactoryGirl.create(:openscap_proxy)
|
7
17
|
policies []
|
8
18
|
end
|
9
19
|
end
|
@@ -5,7 +5,9 @@ class Api::V2::Compliance::ArfReportsControllerTest < ActionController::TestCase
|
|
5
5
|
# override validation of policy (puppetclass, lookup_key overrides)
|
6
6
|
ForemanOpenscap::Policy.any_instance.stubs(:valid?).returns(true)
|
7
7
|
@host = FactoryGirl.create(:compliance_host)
|
8
|
-
@report = FactoryGirl.create(:arf_report,
|
8
|
+
@report = FactoryGirl.create(:arf_report,
|
9
|
+
:host_id => @host.id,
|
10
|
+
:openscap_proxy => FactoryGirl.create(:smart_proxy, :url => "http://smart-proxy.org:8000"))
|
9
11
|
end
|
10
12
|
test "should get index" do
|
11
13
|
get :index, {}, set_session_user
|
data/test/test_plugin_helper.rb
CHANGED
@@ -6,14 +6,31 @@ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factorie
|
|
6
6
|
FactoryGirl.reload
|
7
7
|
|
8
8
|
Spork.each_run do
|
9
|
+
module ScapClientPuppetclass
|
10
|
+
def skip_scap_callback
|
11
|
+
Host::Managed.any_instance.stubs(:update_scap_client).returns(nil)
|
12
|
+
Host::Managed.any_instance.stubs(:scap_client_class_present).returns(nil)
|
13
|
+
Hostgroup.any_instance.stubs(:update_scap_client).returns(nil)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class ActionMailer::TestCase
|
18
|
+
include ScapClientPuppetclass
|
19
|
+
setup :skip_scap_callback
|
20
|
+
end
|
21
|
+
|
9
22
|
class ActionController::TestCase
|
10
|
-
|
23
|
+
include ScapClientPuppetclass
|
24
|
+
|
25
|
+
setup :add_smart_proxy, :skip_scap_callback
|
11
26
|
|
12
27
|
private
|
13
28
|
|
14
29
|
def add_smart_proxy
|
15
30
|
FactoryGirl.create(:smart_proxy, :url => 'http://localhost:8443', :features => [FactoryGirl.create(:feature, :name => 'Openscap')])
|
16
31
|
::ProxyAPI::Features.any_instance.stubs(:features).returns(%w(puppet openscap))
|
32
|
+
versions = { "version" => "1.11.0", "modules" => { "openscap" => "0.5.3" } }
|
33
|
+
::ProxyAPI::Version.any_instance.stubs(:proxy_versions).returns(versions)
|
17
34
|
ProxyAPI::Openscap.any_instance.stubs(:validate_scap_content).returns({'errors' => []})
|
18
35
|
ProxyAPI::Openscap.any_instance.stubs(:fetch_policies_for_scap_content)
|
19
36
|
.returns({'xccdf_org.ssgproject.content_profile_common' => 'Common Profile for General-Purpose Fedora Systems'})
|
@@ -21,13 +38,17 @@ Spork.each_run do
|
|
21
38
|
end
|
22
39
|
|
23
40
|
class ActiveSupport::TestCase
|
24
|
-
|
41
|
+
include ScapClientPuppetclass
|
42
|
+
|
43
|
+
setup :add_smart_proxy, :skip_scap_callback
|
25
44
|
|
26
45
|
private
|
27
46
|
|
28
47
|
def add_smart_proxy
|
29
48
|
FactoryGirl.create(:smart_proxy, :url => 'http://localhost:8443', :features => [FactoryGirl.create(:feature, :name => 'Openscap')])
|
30
49
|
::ProxyAPI::Features.any_instance.stubs(:features).returns(%w(puppet openscap))
|
50
|
+
versions = { "version" => "1.11.0", "modules" => { "openscap" => "0.5.3" } }
|
51
|
+
::ProxyAPI::Version.any_instance.stubs(:proxy_versions).returns(versions)
|
31
52
|
ProxyAPI::Openscap.any_instance.stubs(:validate_scap_content).returns({'errors' => []})
|
32
53
|
ProxyAPI::Openscap.any_instance.stubs(:fetch_policies_for_scap_content)
|
33
54
|
.returns({'xccdf_org.ssgproject.content_profile_common' => 'Common Profile for General-Purpose Fedora Systems'})
|
@@ -15,7 +15,7 @@ class ScapContentTest < ActiveSupport::TestCase
|
|
15
15
|
ProxyAPI::AvailableProxy.any_instance.stubs(:available?).returns(false)
|
16
16
|
scap_content = ForemanOpenscap::ScapContent.new(:title => 'Fedora', :scap_file => @scap_file)
|
17
17
|
refute(scap_content.save)
|
18
|
-
assert_includes(scap_content.errors.messages[:base], 'No
|
18
|
+
assert_includes(scap_content.errors.messages[:base], 'No proxy with OpenSCAP features')
|
19
19
|
end
|
20
20
|
|
21
21
|
test 'proxy_url should return the first available proxy it finds' do
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test_plugin_helper'
|
2
|
+
|
3
|
+
class DataTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
@host = FactoryGirl.create(:compliance_host)
|
6
|
+
@arf = FactoryGirl.create(:arf_report, :host_id => @host.id)
|
7
|
+
@source = FactoryGirl.create(:source)
|
8
|
+
@failed = []
|
9
|
+
@passed = []
|
10
|
+
3.times do
|
11
|
+
@failed << FactoryGirl.create(:compliance_log, :report_id => @arf.id, :source => @source)
|
12
|
+
end
|
13
|
+
2.times do
|
14
|
+
@passed << FactoryGirl.create(:compliance_log, :report_id => @arf.id, :result => "pass", :source => @source)
|
15
|
+
end
|
16
|
+
@othered = [FactoryGirl.create(:compliance_log, :report_id => @arf.id, :result => "unknown", :source => @source)]
|
17
|
+
end
|
18
|
+
|
19
|
+
test 'should fetch data' do
|
20
|
+
report_data = ForemanOpenscap::ReportDashboard::Data.new().report
|
21
|
+
assert_equal 3, report_data[:failed]
|
22
|
+
assert_equal 2, report_data[:passed]
|
23
|
+
assert_equal 1, report_data[:othered]
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,261 +1,269 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_openscap
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
7
|
-
-
|
6
|
+
authors:
|
7
|
+
- !binary |
|
8
|
+
xaBpbW9uIEx1a2HFocOtaw==
|
9
|
+
|
8
10
|
- Shlomi Zadok
|
9
11
|
- Marek Hulan
|
10
12
|
- Ondrej Prazak
|
11
13
|
autorequire:
|
12
14
|
bindir: bin
|
13
15
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
|
17
|
+
date: 2016-06-02 00:00:00 Z
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
17
20
|
name: deface
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '2.0'
|
23
|
-
type: :runtime
|
24
21
|
prerelease: false
|
25
|
-
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version:
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - <
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: "2.0"
|
27
|
+
type: :runtime
|
28
|
+
version_requirements: *id001
|
30
29
|
description: Foreman plug-in for managing security compliance reports
|
31
|
-
email:
|
30
|
+
email:
|
32
31
|
- slukasik@redhat.com
|
33
32
|
executables: []
|
33
|
+
|
34
34
|
extensions: []
|
35
|
+
|
35
36
|
extra_rdoc_files: []
|
36
|
-
|
37
|
-
|
38
|
-
-
|
39
|
-
- app/
|
40
|
-
- app/
|
41
|
-
- app/
|
42
|
-
- app/
|
43
|
-
- app/
|
44
|
-
- app/
|
45
|
-
- app/
|
46
|
-
- app/
|
47
|
-
- app/
|
48
|
-
- app/
|
49
|
-
- app/
|
50
|
-
- app/
|
37
|
+
|
38
|
+
files:
|
39
|
+
- app/services/foreman_openscap/host_report_dashboard/data.rb
|
40
|
+
- app/services/foreman_openscap/policy_dashboard/data.rb
|
41
|
+
- app/services/foreman_openscap/report_dashboard/data.rb
|
42
|
+
- app/services/foreman_openscap/arf_report_status_calculator.rb
|
43
|
+
- app/views/dashboard/_compliance_host_reports_widget.html.erb
|
44
|
+
- app/views/dashboard/_compliance_reports_breakdown_widget.html.erb
|
45
|
+
- app/views/arf_reports/index.html.erb
|
46
|
+
- app/views/arf_reports/_detailed_message.html.erb
|
47
|
+
- app/views/arf_reports/delete_multiple.html.erb
|
48
|
+
- app/views/arf_reports/show.html.erb
|
49
|
+
- app/views/arf_reports/show_html.html.erb
|
50
|
+
- app/views/arf_reports/_output.html.erb
|
51
|
+
- app/views/arf_reports/_list.html.erb
|
52
|
+
- app/views/arf_reports/_metrics.html.erb
|
53
|
+
- app/views/scap_contents/welcome.html.erb
|
54
|
+
- app/views/scap_contents/index.html.erb
|
55
|
+
- app/views/scap_contents/_form.html.erb
|
56
|
+
- app/views/scap_contents/new.html.erb
|
57
|
+
- app/views/scap_contents/edit.html.erb
|
58
|
+
- app/views/scap_contents/_list.html.erb
|
59
|
+
- app/views/api/v2/compliance/arf_reports/index.json.rabl
|
60
|
+
- app/views/api/v2/compliance/arf_reports/show.json.rabl
|
61
|
+
- app/views/api/v2/compliance/arf_reports/base.json.rabl
|
62
|
+
- app/views/api/v2/compliance/arf_reports/main.json.rabl
|
63
|
+
- app/views/api/v2/compliance/common/_org.json.rabl
|
64
|
+
- app/views/api/v2/compliance/common/_loc.json.rabl
|
65
|
+
- app/views/api/v2/compliance/scap_contents/index.json.rabl
|
66
|
+
- app/views/api/v2/compliance/scap_contents/show.json.rabl
|
67
|
+
- app/views/api/v2/compliance/scap_contents/base.json.rabl
|
68
|
+
- app/views/api/v2/compliance/scap_contents/main.json.rabl
|
69
|
+
- app/views/api/v2/compliance/policies/index.json.rabl
|
70
|
+
- app/views/api/v2/compliance/policies/create.json.rabl
|
71
|
+
- app/views/api/v2/compliance/policies/show.json.rabl
|
72
|
+
- app/views/api/v2/compliance/policies/base.json.rabl
|
73
|
+
- app/views/api/v2/compliance/policies/main.json.rabl
|
74
|
+
- app/views/policy_dashboard/index.html.erb
|
75
|
+
- app/views/policy_dashboard/_policy_chart_widget.html.erb
|
76
|
+
- app/views/policy_dashboard/_policy_reports.html.erb
|
77
|
+
- app/views/policy_dashboard/_policy_status_widget.html.erb
|
78
|
+
- app/views/policies/welcome.html.erb
|
79
|
+
- app/views/policies/index.html.erb
|
80
|
+
- app/views/policies/_form.html.erb
|
81
|
+
- app/views/policies/new.html.erb
|
82
|
+
- app/views/policies/show.html.erb
|
83
|
+
- app/views/policies/steps/_locations_form.html.erb
|
84
|
+
- app/views/policies/steps/_organizations_form.html.erb
|
85
|
+
- app/views/policies/steps/_hostgroups_form.html.erb
|
86
|
+
- app/views/policies/steps/_step_form.html.erb
|
87
|
+
- app/views/policies/steps/_scap_content_form.html.erb
|
88
|
+
- app/views/policies/steps/_schedule_form.html.erb
|
89
|
+
- app/views/policies/steps/_create_policy_form.html.erb
|
90
|
+
- app/views/policies/edit.html.erb
|
91
|
+
- app/views/policies/create.html.erb
|
92
|
+
- app/views/policies/_list.html.erb
|
93
|
+
- app/views/policies/disassociate_multiple_hosts.html.erb
|
94
|
+
- app/views/policies/select_multiple_hosts.html.erb
|
95
|
+
- app/views/policies/_scap_content_results.html.erb
|
96
|
+
- app/views/foreman_openscap/policy_mailer/_policy.erb
|
97
|
+
- app/views/foreman_openscap/policy_mailer/_hosts.erb
|
98
|
+
- app/views/foreman_openscap/policy_mailer/_list.erb
|
99
|
+
- app/views/foreman_openscap/policy_mailer/_dashboard.erb
|
100
|
+
- app/views/foreman_openscap/policy_mailer/policy_summary.erb
|
101
|
+
- app/views/compliance_hosts/show.html.erb
|
102
|
+
- app/views/compliance_hosts/_compliance_status.erb
|
103
|
+
- app/views/compliance_hosts/_openscap_proxy.html.erb
|
51
104
|
- app/controllers/arf_reports_controller.rb
|
52
|
-
- app/controllers/compliance_dashboard_controller.rb
|
53
105
|
- app/controllers/compliance_hosts_controller.rb
|
54
|
-
- app/controllers/
|
55
|
-
- app/controllers/
|
106
|
+
- app/controllers/compliance_dashboard_controller.rb
|
107
|
+
- app/controllers/scap_contents_controller.rb
|
108
|
+
- app/controllers/policy_dashboard_controller.rb
|
56
109
|
- app/controllers/concerns/foreman_openscap/hosts_controller_extensions.rb
|
110
|
+
- app/controllers/concerns/foreman_openscap/hostgroups_controller_extensions.rb
|
111
|
+
- app/controllers/api/v2/compliance/arf_reports_controller.rb
|
112
|
+
- app/controllers/api/v2/compliance/scap_contents_controller.rb
|
113
|
+
- app/controllers/api/v2/compliance/policies_controller.rb
|
57
114
|
- app/controllers/policies_controller.rb
|
58
|
-
- app/
|
59
|
-
- app/controllers/scap_contents_controller.rb
|
60
|
-
- app/helpers/arf_report_dashboard_helper.rb
|
61
|
-
- app/helpers/arf_reports_helper.rb
|
62
|
-
- app/helpers/compliance_hosts_helper.rb
|
63
|
-
- app/helpers/concerns/foreman_openscap/hosts_helper_extensions.rb
|
64
|
-
- app/helpers/policies_helper.rb
|
65
|
-
- app/helpers/policy_dashboard_helper.rb
|
115
|
+
- app/lib/proxy_api/migration.rb
|
66
116
|
- app/lib/proxy_api/available_proxy.rb
|
67
117
|
- app/lib/proxy_api/openscap.rb
|
118
|
+
- app/assets/javascripts/foreman_openscap/policy_edit.js
|
119
|
+
- app/assets/javascripts/foreman_openscap/scap_hosts_show.js
|
120
|
+
- app/assets/javascripts/foreman_openscap/load_report.js
|
121
|
+
- app/assets/javascripts/foreman_openscap/arf_reports.js
|
122
|
+
- app/assets/javascripts/foreman_openscap/period_selector.js
|
123
|
+
- app/assets/javascripts/foreman_openscap/reports.js
|
124
|
+
- app/assets/stylesheets/foreman_openscap/reports.css
|
125
|
+
- app/assets/stylesheets/foreman_openscap/policy.css
|
68
126
|
- app/mailers/foreman_openscap/policy_mailer.rb
|
127
|
+
- app/helpers/policy_dashboard_helper.rb
|
128
|
+
- app/helpers/compliance_hosts_helper.rb
|
129
|
+
- app/helpers/policies_helper.rb
|
130
|
+
- app/helpers/dashboard_helper.rb
|
131
|
+
- app/helpers/concerns/foreman_openscap/hosts_helper_extensions.rb
|
132
|
+
- app/helpers/concerns/foreman_openscap/lookup_keys_helper_extensions.rb
|
133
|
+
- app/helpers/arf_report_dashboard_helper.rb
|
134
|
+
- app/helpers/arf_reports_helper.rb
|
135
|
+
- app/overrides/hostgroups/form/select_openscap_proxy.rb
|
136
|
+
- app/overrides/hosts/form/select_openscap_proxy.rb
|
137
|
+
- app/overrides/hosts/overview/host_compliance_status.rb
|
138
|
+
- app/models/concerns/foreman_openscap/smart_proxy_extensions.rb
|
69
139
|
- app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb
|
70
|
-
- app/models/concerns/foreman_openscap/host_extensions.rb
|
71
140
|
- app/models/concerns/foreman_openscap/hostgroup_extensions.rb
|
72
|
-
- app/models/concerns/foreman_openscap/
|
73
|
-
- app/models/concerns/foreman_openscap/openscap_proxy_core_extensions.rb
|
141
|
+
- app/models/concerns/foreman_openscap/host_extensions.rb
|
74
142
|
- app/models/concerns/foreman_openscap/openscap_proxy_extensions.rb
|
75
|
-
- app/models/concerns/foreman_openscap/
|
76
|
-
- app/models/foreman_openscap/
|
143
|
+
- app/models/concerns/foreman_openscap/openscap_proxy_core_extensions.rb
|
144
|
+
- app/models/concerns/foreman_openscap/log_extensions.rb
|
145
|
+
- app/models/foreman_openscap/policy.rb
|
146
|
+
- app/models/foreman_openscap/compliance_status.rb
|
77
147
|
- app/models/foreman_openscap/asset.rb
|
78
148
|
- app/models/foreman_openscap/asset_policy.rb
|
79
|
-
- app/models/foreman_openscap/
|
80
|
-
- app/models/foreman_openscap/policy.rb
|
149
|
+
- app/models/foreman_openscap/scap_content_profile.rb
|
81
150
|
- app/models/foreman_openscap/policy_arf_report.rb
|
151
|
+
- app/models/foreman_openscap/arf_report.rb
|
82
152
|
- app/models/foreman_openscap/policy_revision.rb
|
83
153
|
- app/models/foreman_openscap/scap_content.rb
|
84
|
-
- app/models/foreman_openscap/scap_content_profile.rb
|
85
|
-
- app/overrides/hostgroups/form/select_openscap_proxy.rb
|
86
|
-
- app/overrides/hosts/form/select_openscap_proxy.rb
|
87
|
-
- app/overrides/hosts/overview/host_compliance_status.rb
|
88
|
-
- app/services/foreman_openscap/arf_report_status_calculator.rb
|
89
|
-
- app/services/foreman_openscap/host_report_dashboard/data.rb
|
90
|
-
- app/services/foreman_openscap/policy_dashboard/data.rb
|
91
|
-
- app/services/foreman_openscap/report_dashboard/data.rb
|
92
|
-
- app/views/api/v2/compliance/arf_reports/base.json.rabl
|
93
|
-
- app/views/api/v2/compliance/arf_reports/index.json.rabl
|
94
|
-
- app/views/api/v2/compliance/arf_reports/main.json.rabl
|
95
|
-
- app/views/api/v2/compliance/arf_reports/show.json.rabl
|
96
|
-
- app/views/api/v2/compliance/policies/base.json.rabl
|
97
|
-
- app/views/api/v2/compliance/policies/create.json.rabl
|
98
|
-
- app/views/api/v2/compliance/policies/index.json.rabl
|
99
|
-
- app/views/api/v2/compliance/policies/main.json.rabl
|
100
|
-
- app/views/api/v2/compliance/policies/show.json.rabl
|
101
|
-
- app/views/api/v2/compliance/scap_contents/base.json.rabl
|
102
|
-
- app/views/api/v2/compliance/scap_contents/index.json.rabl
|
103
|
-
- app/views/api/v2/compliance/scap_contents/main.json.rabl
|
104
|
-
- app/views/api/v2/compliance/scap_contents/show.json.rabl
|
105
|
-
- app/views/arf_reports/_detailed_message.html.erb
|
106
|
-
- app/views/arf_reports/_list.html.erb
|
107
|
-
- app/views/arf_reports/_metrics.html.erb
|
108
|
-
- app/views/arf_reports/_output.html.erb
|
109
|
-
- app/views/arf_reports/delete_multiple.html.erb
|
110
|
-
- app/views/arf_reports/index.html.erb
|
111
|
-
- app/views/arf_reports/show.html.erb
|
112
|
-
- app/views/arf_reports/show_html.html.erb
|
113
|
-
- app/views/compliance_hosts/_compliance_status.erb
|
114
|
-
- app/views/compliance_hosts/_openscap_proxy.html.erb
|
115
|
-
- app/views/compliance_hosts/show.html.erb
|
116
|
-
- app/views/dashboard/_compliance_host_reports_widget.html.erb
|
117
|
-
- app/views/dashboard/_compliance_reports_breakdown_widget.html.erb
|
118
|
-
- app/views/foreman_openscap/policy_mailer/_dashboard.erb
|
119
|
-
- app/views/foreman_openscap/policy_mailer/_hosts.erb
|
120
|
-
- app/views/foreman_openscap/policy_mailer/_list.erb
|
121
|
-
- app/views/foreman_openscap/policy_mailer/_policy.erb
|
122
|
-
- app/views/foreman_openscap/policy_mailer/policy_summary.erb
|
123
|
-
- app/views/policies/_form.html.erb
|
124
|
-
- app/views/policies/_list.html.erb
|
125
|
-
- app/views/policies/_scap_content_results.html.erb
|
126
|
-
- app/views/policies/create.html.erb
|
127
|
-
- app/views/policies/disassociate_multiple_hosts.html.erb
|
128
|
-
- app/views/policies/edit.html.erb
|
129
|
-
- app/views/policies/index.html.erb
|
130
|
-
- app/views/policies/new.html.erb
|
131
|
-
- app/views/policies/select_multiple_hosts.html.erb
|
132
|
-
- app/views/policies/show.html.erb
|
133
|
-
- app/views/policies/steps/_create_policy_form.html.erb
|
134
|
-
- app/views/policies/steps/_hostgroups_form.html.erb
|
135
|
-
- app/views/policies/steps/_locations_form.html.erb
|
136
|
-
- app/views/policies/steps/_organizations_form.html.erb
|
137
|
-
- app/views/policies/steps/_scap_content_form.html.erb
|
138
|
-
- app/views/policies/steps/_schedule_form.html.erb
|
139
|
-
- app/views/policies/steps/_step_form.html.erb
|
140
|
-
- app/views/policies/welcome.html.erb
|
141
|
-
- app/views/policy_dashboard/_policy_chart_widget.html.erb
|
142
|
-
- app/views/policy_dashboard/_policy_reports.html.erb
|
143
|
-
- app/views/policy_dashboard/_policy_status_widget.html.erb
|
144
|
-
- app/views/policy_dashboard/index.html.erb
|
145
|
-
- app/views/scap_contents/_form.html.erb
|
146
|
-
- app/views/scap_contents/_list.html.erb
|
147
|
-
- app/views/scap_contents/edit.html.erb
|
148
|
-
- app/views/scap_contents/index.html.erb
|
149
|
-
- app/views/scap_contents/new.html.erb
|
150
|
-
- app/views/scap_contents/welcome.html.erb
|
151
154
|
- config/routes.rb
|
152
|
-
- db/
|
153
|
-
- db/
|
154
|
-
- db/migrate/20141015092642_create_scaptimony_arf_reports.rb
|
155
|
-
- db/migrate/20141015115511_add_arf_report_unique_constraint.rb
|
156
|
-
- db/migrate/20141104164201_create_scaptimony_scap_contents.rb
|
157
|
-
- db/migrate/20141104171545_create_scaptimony_policy_revisions.rb
|
155
|
+
- db/seeds.d/openscap_policy_notification.rb
|
156
|
+
- db/seeds.d/openscap_feature.rb
|
158
157
|
- db/migrate/20141105174625_add_description_to_scaptimony_policy_revisions.rb
|
159
|
-
- db/migrate/
|
160
|
-
- db/migrate/20141107091756_add_columns_to_scaptimony_scap_contents.rb
|
161
|
-
- db/migrate/20141111104519_add_constraint_to_scaptimony_scap_contents.rb
|
162
|
-
- db/migrate/20141113221054_create_scaptimony_scap_content_profiles.rb
|
163
|
-
- db/migrate/20141116170632_remove_xccdf_profile_from_scaptimony_policies.rb
|
164
|
-
- db/migrate/20141116171305_add_profile_to_scaptimony_policies.rb
|
165
|
-
- db/migrate/20141118142954_add_constraint_to_scaptimony_policies.rb
|
166
|
-
- db/migrate/20141119164918_create_scaptimony_xccdf_results.rb
|
167
|
-
- db/migrate/20141119175434_create_scaptimony_xccdf_rules.rb
|
168
|
-
- db/migrate/20141119182606_create_scaptimony_xccdf_rule_results.rb
|
158
|
+
- db/migrate/20150929152345_move_arf_reports_to_reports_table.rb
|
169
159
|
- db/migrate/20141121120326_create_scaptimony_arf_report_breakdowns.rb
|
170
|
-
- db/migrate/
|
171
|
-
- db/migrate/
|
172
|
-
- db/migrate/
|
160
|
+
- db/migrate/20141014105333_create_scaptimony_assets.rb
|
161
|
+
- db/migrate/20151119155419_add_arf_fields_to_message.rb
|
162
|
+
- db/migrate/20150115155947_add_scaptimony_scap_content_digest.rb
|
163
|
+
- db/migrate/20141113221054_create_scaptimony_scap_content_profiles.rb
|
173
164
|
- db/migrate/20141216154502_rename_scaptimony_asset_policies.rb
|
174
|
-
- db/migrate/
|
165
|
+
- db/migrate/20141107091756_add_columns_to_scaptimony_scap_contents.rb
|
175
166
|
- db/migrate/20150112152944_create_scaptimony_arf_report_raws.rb
|
167
|
+
- db/migrate/20141206211151_create_scaptimony_assets_policies.rb
|
168
|
+
- db/migrate/20141119164918_create_scaptimony_xccdf_results.rb
|
169
|
+
- db/migrate/20141116171305_add_profile_to_scaptimony_policies.rb
|
170
|
+
- db/migrate/20141015115511_add_arf_report_unique_constraint.rb
|
171
|
+
- db/migrate/20150821100137_migrate_from_scaptimony.rb
|
172
|
+
- db/migrate/20141118142954_add_constraint_to_scaptimony_policies.rb
|
173
|
+
- db/migrate/20150925124959_create_policy_arf_reports.rb
|
176
174
|
- db/migrate/20150114210634_rename_scaptimony_arf_report_raw_raw.rb
|
177
|
-
- db/migrate/20150115155947_add_scaptimony_scap_content_digest.rb
|
178
175
|
- db/migrate/20150116083129_add_day_of_month_and_cron_line_to_scaptimony_policy.rb
|
179
|
-
- db/migrate/
|
176
|
+
- db/migrate/20141105174834_add_columns_to_scaptimony_policies.rb
|
180
177
|
- db/migrate/20150827123826_remove_scaptimony_permissions.rb
|
181
|
-
- db/migrate/
|
182
|
-
- db/migrate/
|
183
|
-
- db/migrate/
|
184
|
-
- db/migrate/20151023131950_link_arf_report_directly_to_host.rb
|
178
|
+
- db/migrate/20141119175434_create_scaptimony_xccdf_rules.rb
|
179
|
+
- db/migrate/20141119182606_create_scaptimony_xccdf_rule_results.rb
|
180
|
+
- db/migrate/20141013172051_create_scaptimony_policies.rb
|
185
181
|
- db/migrate/20151118165125_add_size_to_scap_content.rb
|
186
|
-
- db/migrate/
|
182
|
+
- db/migrate/20141111104519_add_constraint_to_scaptimony_scap_contents.rb
|
183
|
+
- db/migrate/20150929124853_add_result_to_logs.rb
|
184
|
+
- db/migrate/20141121164042_replace_arf_report_breakdown_view.rb
|
185
|
+
- db/migrate/20150111085317_polymorph_asset.rb
|
186
|
+
- db/migrate/20141214112917_add_scap_file_to_scap_content.rb
|
187
|
+
- db/migrate/20141015092642_create_scaptimony_arf_reports.rb
|
187
188
|
- db/migrate/20151120090851_add_openscap_proxy_to_host_and_hostgroup.rb
|
188
|
-
- db/
|
189
|
-
- db/
|
190
|
-
- db/
|
189
|
+
- db/migrate/20141116170632_remove_xccdf_profile_from_scaptimony_policies.rb
|
190
|
+
- db/migrate/20141104171545_create_scaptimony_policy_revisions.rb
|
191
|
+
- db/migrate/20141104164201_create_scaptimony_scap_contents.rb
|
191
192
|
- lib/foreman_openscap.rb
|
193
|
+
- lib/tasks/foreman_openscap_tasks.rake
|
194
|
+
- lib/foreman_openscap/version.rb
|
192
195
|
- lib/foreman_openscap/bulk_upload.rb
|
196
|
+
- lib/foreman_openscap/data_migration.rb
|
193
197
|
- lib/foreman_openscap/engine.rb
|
194
198
|
- lib/foreman_openscap/helper.rb
|
195
|
-
-
|
196
|
-
-
|
197
|
-
- test/factories/arf_report_factory.rb
|
198
|
-
- test/factories/asset_factory.rb
|
199
|
-
- test/factories/compliance_host_factory.rb
|
199
|
+
- LICENSE
|
200
|
+
- README.md
|
200
201
|
- test/factories/compliance_log_factory.rb
|
201
|
-
- test/factories/
|
202
|
-
- test/factories/policy_factory.rb
|
202
|
+
- test/factories/compliance_host_factory.rb
|
203
203
|
- test/factories/scap_content_related.rb
|
204
|
+
- test/factories/asset_factory.rb
|
205
|
+
- test/factories/arf_report_factory.rb
|
206
|
+
- test/factories/policy_factory.rb
|
207
|
+
- test/factories/policy_arf_report_factory.rb
|
204
208
|
- test/files/scap_contents/ssg-fedora-ds.xml
|
205
|
-
- test/
|
206
|
-
- test/functional/api/v2/compliance/policies_controller_test.rb
|
207
|
-
- test/functional/api/v2/compliance/scap_contents_controller_test.rb
|
208
|
-
- test/functional/arf_reports_controller_test.rb
|
209
|
-
- test/lib/foreman_openscap/bulk_upload_test.rb
|
210
|
-
- test/test_plugin_helper.rb
|
211
|
-
- test/unit/arf_report_status_calculator_test.rb
|
212
|
-
- test/unit/arf_report_test.rb
|
209
|
+
- test/unit/services/report_dashboard/data_test.rb
|
213
210
|
- test/unit/compliance_status_test.rb
|
214
|
-
- test/unit/
|
211
|
+
- test/unit/arf_report_test.rb
|
215
212
|
- test/unit/policy_mailer_test.rb
|
216
213
|
- test/unit/scap_content_test.rb
|
214
|
+
- test/unit/arf_report_status_calculator_test.rb
|
215
|
+
- test/unit/openscap_host_test.rb
|
216
|
+
- test/test_plugin_helper.rb
|
217
|
+
- test/lib/foreman_openscap/bulk_upload_test.rb
|
218
|
+
- test/functional/arf_reports_controller_test.rb
|
219
|
+
- test/functional/api/v2/compliance/arf_reports_controller_test.rb
|
220
|
+
- test/functional/api/v2/compliance/scap_contents_controller_test.rb
|
221
|
+
- test/functional/api/v2/compliance/policies_controller_test.rb
|
217
222
|
homepage: https://github.com/OpenSCAP/foreman_openscap
|
218
|
-
licenses:
|
223
|
+
licenses:
|
219
224
|
- GPL-3.0
|
220
225
|
metadata: {}
|
226
|
+
|
221
227
|
post_install_message:
|
222
228
|
rdoc_options: []
|
223
|
-
|
229
|
+
|
230
|
+
require_paths:
|
224
231
|
- lib
|
225
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
-
|
228
|
-
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
version: '0'
|
232
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- &id002
|
235
|
+
- ">="
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: "0"
|
238
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- *id002
|
235
241
|
requirements: []
|
242
|
+
|
236
243
|
rubyforge_project:
|
237
|
-
rubygems_version: 2.
|
244
|
+
rubygems_version: 2.0.17
|
238
245
|
signing_key:
|
239
246
|
specification_version: 4
|
240
247
|
summary: Foreman plug-in for displaying OpenSCAP audit reports
|
241
|
-
test_files:
|
242
|
-
- test/factories/policy_arf_report_factory.rb
|
243
|
-
- test/factories/policy_factory.rb
|
248
|
+
test_files:
|
244
249
|
- test/factories/compliance_log_factory.rb
|
245
|
-
- test/factories/
|
250
|
+
- test/factories/compliance_host_factory.rb
|
246
251
|
- test/factories/scap_content_related.rb
|
252
|
+
- test/factories/asset_factory.rb
|
247
253
|
- test/factories/arf_report_factory.rb
|
248
|
-
- test/factories/
|
249
|
-
- test/
|
250
|
-
- test/
|
251
|
-
- test/unit/
|
254
|
+
- test/factories/policy_factory.rb
|
255
|
+
- test/factories/policy_arf_report_factory.rb
|
256
|
+
- test/files/scap_contents/ssg-fedora-ds.xml
|
257
|
+
- test/unit/services/report_dashboard/data_test.rb
|
252
258
|
- test/unit/compliance_status_test.rb
|
253
|
-
- test/unit/arf_report_status_calculator_test.rb
|
254
|
-
- test/unit/policy_mailer_test.rb
|
255
259
|
- test/unit/arf_report_test.rb
|
256
|
-
- test/
|
257
|
-
- test/
|
258
|
-
- test/
|
259
|
-
- test/
|
260
|
-
- test/functional/arf_reports_controller_test.rb
|
260
|
+
- test/unit/policy_mailer_test.rb
|
261
|
+
- test/unit/scap_content_test.rb
|
262
|
+
- test/unit/arf_report_status_calculator_test.rb
|
263
|
+
- test/unit/openscap_host_test.rb
|
261
264
|
- test/test_plugin_helper.rb
|
265
|
+
- test/lib/foreman_openscap/bulk_upload_test.rb
|
266
|
+
- test/functional/arf_reports_controller_test.rb
|
267
|
+
- test/functional/api/v2/compliance/arf_reports_controller_test.rb
|
268
|
+
- test/functional/api/v2/compliance/scap_contents_controller_test.rb
|
269
|
+
- test/functional/api/v2/compliance/policies_controller_test.rb
|