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.
Files changed (60) hide show
  1. checksums.yaml +7 -7
  2. data/app/assets/javascripts/foreman_openscap/policy_edit.js +2 -2
  3. data/app/controllers/api/v2/compliance/arf_reports_controller.rb +3 -9
  4. data/app/controllers/api/v2/compliance/policies_controller.rb +3 -9
  5. data/app/controllers/api/v2/compliance/scap_contents_controller.rb +18 -10
  6. data/app/controllers/arf_reports_controller.rb +5 -5
  7. data/app/controllers/policies_controller.rb +2 -2
  8. data/app/helpers/concerns/foreman_openscap/lookup_keys_helper_extensions.rb +14 -0
  9. data/app/helpers/dashboard_helper.rb +26 -0
  10. data/app/lib/proxy_api/available_proxy.rb +20 -2
  11. data/app/lib/proxy_api/migration.rb +13 -0
  12. data/app/lib/proxy_api/openscap.rb +2 -2
  13. data/app/mailers/foreman_openscap/policy_mailer.rb +1 -1
  14. data/app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb +1 -1
  15. data/app/models/concerns/foreman_openscap/host_extensions.rb +1 -1
  16. data/app/models/concerns/foreman_openscap/log_extensions.rb +10 -0
  17. data/app/models/concerns/foreman_openscap/openscap_proxy_core_extensions.rb +29 -9
  18. data/app/models/concerns/foreman_openscap/openscap_proxy_extensions.rb +1 -1
  19. data/app/models/foreman_openscap/arf_report.rb +2 -4
  20. data/app/models/foreman_openscap/policy.rb +3 -3
  21. data/app/models/foreman_openscap/scap_content.rb +7 -6
  22. data/app/services/foreman_openscap/report_dashboard/data.rb +1 -1
  23. data/app/views/api/v2/compliance/arf_reports/base.json.rabl +4 -1
  24. data/app/views/api/v2/compliance/arf_reports/main.json.rabl +5 -1
  25. data/app/views/api/v2/compliance/common/_loc.json.rabl +3 -0
  26. data/app/views/api/v2/compliance/common/_org.json.rabl +3 -0
  27. data/app/views/api/v2/compliance/policies/base.json.rabl +4 -1
  28. data/app/views/api/v2/compliance/scap_contents/base.json.rabl +4 -1
  29. data/app/views/api/v2/compliance/scap_contents/show.json.rabl +7 -1
  30. data/app/views/arf_reports/_list.html.erb +7 -1
  31. data/app/views/arf_reports/delete_multiple.html.erb +1 -1
  32. data/app/views/arf_reports/show.html.erb +1 -1
  33. data/app/views/compliance_hosts/_openscap_proxy.html.erb +1 -6
  34. data/app/views/compliance_hosts/show.html.erb +1 -1
  35. data/app/views/dashboard/_compliance_host_reports_widget.html.erb +2 -6
  36. data/app/views/foreman_openscap/policy_mailer/policy_summary.erb +1 -1
  37. data/app/views/policies/_form.html.erb +1 -1
  38. data/app/views/policies/welcome.html.erb +7 -6
  39. data/app/views/scap_contents/welcome.html.erb +1 -1
  40. data/config/routes.rb +5 -1
  41. data/db/migrate/20150821100137_migrate_from_scaptimony.rb +7 -6
  42. data/db/migrate/20150929152345_move_arf_reports_to_reports_table.rb +0 -97
  43. data/db/migrate/20151120090851_add_openscap_proxy_to_host_and_hostgroup.rb +0 -12
  44. data/db/seeds.d/openscap_policy_notification.rb +1 -1
  45. data/lib/foreman_openscap/bulk_upload.rb +1 -0
  46. data/lib/foreman_openscap/data_migration.rb +82 -0
  47. data/lib/foreman_openscap/engine.rb +5 -6
  48. data/lib/foreman_openscap/version.rb +1 -1
  49. data/lib/tasks/foreman_openscap_tasks.rake +14 -0
  50. data/test/factories/arf_report_factory.rb +1 -0
  51. data/test/factories/compliance_host_factory.rb +11 -1
  52. data/test/functional/api/v2/compliance/arf_reports_controller_test.rb +3 -1
  53. data/test/test_plugin_helper.rb +23 -2
  54. data/test/unit/scap_content_test.rb +1 -1
  55. data/test/unit/services/report_dashboard/data_test.rb +25 -0
  56. metadata +202 -194
  57. data/app/assets/javascripts/foreman_openscap/openscap_proxy.js +0 -52
  58. data/app/controllers/concerns/foreman_openscap/hosts_common_controller_extensions.rb +0 -45
  59. data/db/migrate/20151023131950_link_arf_report_directly_to_host.rb +0 -21
  60. 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 => 4, :sizey => 1
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 => 4, :sizey => 1
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
- Report.send(:include, ForemanOpenscap::ComplianceStatusScopedSearch)
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
@@ -1,3 +1,3 @@
1
1
  module ForemanOpenscap
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
@@ -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
@@ -8,5 +8,6 @@ FactoryGirl.define do
8
8
  logs []
9
9
  status 0
10
10
  metrics {}
11
+ openscap_proxy nil
11
12
  end
12
13
  end
@@ -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.build(:smart_proxy, :url => "http://test.org:8080")
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, :host_id => @host.id)
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
@@ -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
- setup :add_smart_proxy
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
- setup :add_smart_proxy
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 Proxy with OpenScap features')
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
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.4
5
5
  platform: ruby
6
- authors:
7
- - Šimon Lukašík
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
- date: 2016-01-28 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "<"
28
- - !ruby/object:Gem::Version
29
- version: '2.0'
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
- files:
37
- - LICENSE
38
- - README.md
39
- - app/assets/javascripts/foreman_openscap/arf_reports.js
40
- - app/assets/javascripts/foreman_openscap/load_report.js
41
- - app/assets/javascripts/foreman_openscap/openscap_proxy.js
42
- - app/assets/javascripts/foreman_openscap/period_selector.js
43
- - app/assets/javascripts/foreman_openscap/policy_edit.js
44
- - app/assets/javascripts/foreman_openscap/reports.js
45
- - app/assets/javascripts/foreman_openscap/scap_hosts_show.js
46
- - app/assets/stylesheets/foreman_openscap/policy.css
47
- - app/assets/stylesheets/foreman_openscap/reports.css
48
- - app/controllers/api/v2/compliance/arf_reports_controller.rb
49
- - app/controllers/api/v2/compliance/policies_controller.rb
50
- - app/controllers/api/v2/compliance/scap_contents_controller.rb
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/concerns/foreman_openscap/hostgroups_controller_extensions.rb
55
- - app/controllers/concerns/foreman_openscap/hosts_common_controller_extensions.rb
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/controllers/policy_dashboard_controller.rb
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/log_extensions.rb
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/smart_proxy_extensions.rb
76
- - app/models/foreman_openscap/arf_report.rb
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/compliance_status.rb
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/migrate/20141013172051_create_scaptimony_policies.rb
153
- - db/migrate/20141014105333_create_scaptimony_assets.rb
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/20141105174834_add_columns_to_scaptimony_policies.rb
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/20141121164042_replace_arf_report_breakdown_view.rb
171
- - db/migrate/20141206211151_create_scaptimony_assets_policies.rb
172
- - db/migrate/20141214112917_add_scap_file_to_scap_content.rb
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/20150111085317_polymorph_asset.rb
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/20150821100137_migrate_from_scaptimony.rb
176
+ - db/migrate/20141105174834_add_columns_to_scaptimony_policies.rb
180
177
  - db/migrate/20150827123826_remove_scaptimony_permissions.rb
181
- - db/migrate/20150925124959_create_policy_arf_reports.rb
182
- - db/migrate/20150929124853_add_result_to_logs.rb
183
- - db/migrate/20150929152345_move_arf_reports_to_reports_table.rb
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/20151119155419_add_arf_fields_to_message.rb
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/seeds.d/openscap_feature.rb
189
- - db/seeds.d/openscap_policy_notification.rb
190
- - db/seeds.d/openscap_scap_default.rb
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
- - lib/foreman_openscap/version.rb
196
- - lib/tasks/foreman_openscap_tasks.rake
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/policy_arf_report_factory.rb
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/functional/api/v2/compliance/arf_reports_controller_test.rb
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/openscap_host_test.rb
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
- require_paths:
229
+
230
+ require_paths:
224
231
  - lib
225
- required_ruby_version: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- required_rubygems_version: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - ">="
233
- - !ruby/object:Gem::Version
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.4.8
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/asset_factory.rb
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/compliance_host_factory.rb
249
- - test/lib/foreman_openscap/bulk_upload_test.rb
250
- - test/unit/scap_content_test.rb
251
- - test/unit/openscap_host_test.rb
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/files/scap_contents/ssg-fedora-ds.xml
257
- - test/functional/api/v2/compliance/policies_controller_test.rb
258
- - test/functional/api/v2/compliance/scap_contents_controller_test.rb
259
- - test/functional/api/v2/compliance/arf_reports_controller_test.rb
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