foreman_openscap 0.10.4 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/compliance/scap_contents_controller.rb +2 -1
  3. data/app/controllers/api/v2/compliance/tailoring_files_controller.rb +2 -1
  4. data/app/controllers/concerns/foreman_openscap/body_log_extensions.rb +18 -0
  5. data/app/controllers/concerns/foreman_openscap/hosts_controller_extensions.rb +1 -1
  6. data/app/controllers/openscap_proxies_controller.rb +2 -11
  7. data/app/controllers/policies_controller.rb +2 -2
  8. data/app/helpers/arf_reports_helper.rb +6 -0
  9. data/app/lib/proxy_api/openscap.rb +8 -0
  10. data/app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb +72 -11
  11. data/app/models/concerns/foreman_openscap/host_extensions.rb +48 -2
  12. data/app/models/concerns/foreman_openscap/log_extensions.rb +4 -0
  13. data/app/models/concerns/foreman_openscap/openscap_proxy_core_extensions.rb +1 -1
  14. data/app/models/foreman_openscap/arf_report.rb +2 -0
  15. data/app/services/proxy_status/openscap_spool.rb +13 -0
  16. data/app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb +19 -0
  17. data/app/views/arf_reports/_output.html.erb +5 -3
  18. data/app/views/compliance_hosts/show.html.erb +9 -7
  19. data/app/views/smart_proxies/_openscap_spool.html.erb +4 -4
  20. data/app/views/smart_proxies/plugins/_openscap.html.erb +1 -1
  21. data/lib/foreman_openscap/engine.rb +11 -2
  22. data/lib/foreman_openscap/version.rb +1 -1
  23. data/locale/action_names.rb +69 -0
  24. data/locale/de/LC_MESSAGES/foreman_openscap.mo +0 -0
  25. data/locale/de/foreman_openscap.edit.po +1419 -0
  26. data/locale/de/foreman_openscap.po +263 -17
  27. data/locale/de/foreman_openscap.po.time_stamp +0 -0
  28. data/locale/en_GB/LC_MESSAGES/foreman_openscap.mo +0 -0
  29. data/locale/en_GB/foreman_openscap.edit.po +1419 -0
  30. data/locale/en_GB/foreman_openscap.po +263 -17
  31. data/locale/en_GB/foreman_openscap.po.time_stamp +0 -0
  32. data/locale/es/LC_MESSAGES/foreman_openscap.mo +0 -0
  33. data/locale/es/foreman_openscap.edit.po +1419 -0
  34. data/locale/es/foreman_openscap.po +263 -17
  35. data/locale/es/foreman_openscap.po.time_stamp +0 -0
  36. data/locale/foreman_openscap.pot +438 -97
  37. data/locale/fr/LC_MESSAGES/foreman_openscap.mo +0 -0
  38. data/locale/fr/foreman_openscap.edit.po +1419 -0
  39. data/locale/fr/foreman_openscap.po +263 -17
  40. data/locale/fr/foreman_openscap.po.time_stamp +0 -0
  41. data/locale/gl/LC_MESSAGES/foreman_openscap.mo +0 -0
  42. data/locale/gl/foreman_openscap.edit.po +1419 -0
  43. data/locale/gl/foreman_openscap.po +263 -17
  44. data/locale/gl/foreman_openscap.po.time_stamp +0 -0
  45. data/locale/it/LC_MESSAGES/foreman_openscap.mo +0 -0
  46. data/locale/it/foreman_openscap.edit.po +1419 -0
  47. data/locale/it/foreman_openscap.po +263 -17
  48. data/locale/it/foreman_openscap.po.time_stamp +0 -0
  49. data/locale/ja/LC_MESSAGES/foreman_openscap.mo +0 -0
  50. data/locale/ja/foreman_openscap.edit.po +1419 -0
  51. data/locale/ja/foreman_openscap.po +263 -17
  52. data/locale/ja/foreman_openscap.po.time_stamp +0 -0
  53. data/locale/ko/LC_MESSAGES/foreman_openscap.mo +0 -0
  54. data/locale/ko/foreman_openscap.edit.po +1419 -0
  55. data/locale/ko/foreman_openscap.po +263 -17
  56. data/locale/ko/foreman_openscap.po.time_stamp +0 -0
  57. data/locale/pt_BR/LC_MESSAGES/foreman_openscap.mo +0 -0
  58. data/locale/pt_BR/foreman_openscap.edit.po +1419 -0
  59. data/locale/pt_BR/foreman_openscap.po +263 -17
  60. data/locale/pt_BR/foreman_openscap.po.time_stamp +0 -0
  61. data/locale/ru/LC_MESSAGES/foreman_openscap.mo +0 -0
  62. data/locale/ru/foreman_openscap.edit.po +1420 -0
  63. data/locale/ru/foreman_openscap.po +263 -17
  64. data/locale/ru/foreman_openscap.po.time_stamp +0 -0
  65. data/locale/sv_SE/LC_MESSAGES/foreman_openscap.mo +0 -0
  66. data/locale/sv_SE/foreman_openscap.edit.po +1419 -0
  67. data/locale/sv_SE/foreman_openscap.po +263 -17
  68. data/locale/sv_SE/foreman_openscap.po.time_stamp +0 -0
  69. data/locale/zh_CN/LC_MESSAGES/foreman_openscap.mo +0 -0
  70. data/locale/zh_CN/foreman_openscap.edit.po +1419 -0
  71. data/locale/zh_CN/foreman_openscap.po +263 -17
  72. data/locale/zh_CN/foreman_openscap.po.time_stamp +0 -0
  73. data/locale/zh_TW/LC_MESSAGES/foreman_openscap.mo +0 -0
  74. data/locale/zh_TW/foreman_openscap.edit.po +1419 -0
  75. data/locale/zh_TW/foreman_openscap.po +263 -17
  76. data/locale/zh_TW/foreman_openscap.po.time_stamp +0 -0
  77. data/test/factories/compliance_log_factory.rb +7 -0
  78. data/test/functional/api/v2/compliance/arf_reports_controller_test.rb +91 -0
  79. data/test/functional/openscap_proxies_controller_test.rb +3 -3
  80. data/test/test_plugin_helper.rb +16 -0
  81. data/test/unit/arf_report_test.rb +13 -0
  82. data/test/unit/concerns/host_extensions_test.rb +52 -0
  83. metadata +32 -4
  84. data/app/assets/javascripts/foreman_openscap/openscap_proxy.js +0 -7
  85. data/app/helpers/concerns/foreman_openscap/lookup_keys_helper_extensions.rb +0 -8
@@ -13,4 +13,11 @@ FactoryBot.define do
13
13
  msg.digest = Digest::SHA1.hexdigest(msg.value)
14
14
  end
15
15
  end
16
+
17
+ factory :compliance_source, :class => :source do
18
+ sequence(:value) { |n| "source#{n}" }
19
+ after(:build) do |source|
20
+ source.digest = Digest::SHA1.hexdigest(source.value)
21
+ end
22
+ end
16
23
  end
@@ -313,6 +313,97 @@ class Api::V2::Compliance::ArfReportsControllerTest < ActionController::TestCase
313
313
  end
314
314
  end
315
315
 
316
+ test "should find reports with rule name" do
317
+ reports_cleanup
318
+ host = FactoryBot.create(:compliance_host)
319
+ rule_name = 'xccdf_org.something_installed'
320
+ rule_names_1 = ['xccdf_org.something_tested', rule_name]
321
+ rule_names_2 = ['xccdf_org.nothing', 'xccdf_org.whatever']
322
+ rule_results_1 = ['fail', 'pass']
323
+ rule_results_2 = ['fail', 'fail']
324
+ report = create_report_with_rules(host, rule_names_1, rule_results_1)
325
+ create_report_with_rules(host, rule_names_2, rule_results_2)
326
+
327
+ get :index, :params => { :search => "xccdf_rule_name=#{rule_name}" }, :session => set_session_user
328
+ response = ActiveSupport::JSON.decode(@response.body)
329
+ assert_response :success
330
+ assert_equal 1, response['results'].count
331
+ assert_equal report.id, response['results'].first["id"].to_i
332
+ end
333
+
334
+ test "should find reports by rule with fail" do
335
+ reports_cleanup
336
+ host = FactoryBot.create(:compliance_host)
337
+ rule_name = 'xccdf_org.something_installed'
338
+ rule_names_1 = [rule_name, 'xccdf_org.nothing', 'xccdf_org.othered']
339
+ rule_names_2 = [rule_name, 'xccdf_org.whatever', 'xccdf_org.original']
340
+ rule_results_1 = ['fail', 'pass', 'fixed']
341
+ rule_results_2 = ['pass', 'pass', 'unknown']
342
+ report = create_report_with_rules(host, rule_names_1, rule_results_1)
343
+ create_report_with_rules(host, rule_names_2, rule_results_2)
344
+
345
+ get :index, :params => { :search => "xccdf_rule_failed=#{rule_name}" }, :session => set_session_user
346
+ response = ActiveSupport::JSON.decode(@response.body)
347
+ assert_response :success
348
+ assert_equal 1, response['results'].count
349
+ assert_equal report.id, response['results'].first["id"].to_i
350
+ end
351
+
352
+ test "should find reports by rule with pass" do
353
+ reports_cleanup
354
+ host = FactoryBot.create(:compliance_host)
355
+ rule_name = 'xccdf_org.something_installed'
356
+ rule_names_1 = [rule_name, 'xccdf_org.nothing', 'xccdf_org.othered']
357
+ rule_names_2 = [rule_name, 'xccdf_org.whatever', 'xccdf_org.original']
358
+ rule_results_1 = ['pass', 'fail', 'fixed']
359
+ rule_results_2 = ['notchecked', 'fail', 'unknown']
360
+ report = create_report_with_rules(host, rule_names_1, rule_results_1)
361
+ create_report_with_rules(host, rule_names_2, rule_results_2)
362
+
363
+ get :index, :params => { :search => "xccdf_rule_passed=#{rule_name}" }, :session => set_session_user
364
+ response = ActiveSupport::JSON.decode(@response.body)
365
+ assert_response :success
366
+ assert_equal 1, response['results'].count
367
+ assert_equal report.id, response['results'].first["id"].to_i
368
+ end
369
+
370
+ test "should find reports by rule with othered" do
371
+ reports_cleanup
372
+ host = FactoryBot.create(:compliance_host)
373
+ rule_name = 'xccdf_org.something_installed'
374
+ rule_names_1 = [rule_name, 'xccdf_org.nothing', 'xccdf_org.othered']
375
+ rule_names_2 = [rule_name, 'xccdf_org.whatever', 'xccdf_org.original']
376
+ rule_results_1 = ['notapplicable', 'fail', 'fixed']
377
+ rule_results_2 = ['pass', 'fail', 'unknown']
378
+ report = create_report_with_rules(host, rule_names_1, rule_results_1)
379
+ create_report_with_rules(host, rule_names_2, rule_results_2)
380
+
381
+ get :index, :params => { :search => "xccdf_rule_othered=#{rule_name}" }, :session => set_session_user
382
+ response = ActiveSupport::JSON.decode(@response.body)
383
+ assert_response :success
384
+ assert_equal 1, response['results'].count
385
+ assert_equal report.id, response['results'].first["id"].to_i
386
+ end
387
+
388
+ test "should find reports with rule name" do
389
+ reports_cleanup
390
+ host = FactoryBot.create(:compliance_host)
391
+ rule_name = 'xccdf_org.something_installed'
392
+ rule_names_1 = ['xccdf_org.something_tested', rule_name]
393
+ rule_names_2 = ['xccdf_org.nothing', 'xccdf_org.whatever']
394
+ rule_results_1 = ['fail', 'pass']
395
+ rule_results_2 = ['fail', 'fail']
396
+ host = FactoryBot.create(:compliance_host)
397
+ report = create_report_with_rules(host, rule_names_1, rule_results_1)
398
+ create_report_with_rules(host, rule_names_2, rule_results_2)
399
+
400
+ get :index, :params => { :search => "xccdf_rule_name=#{rule_name}" }, :session => set_session_user
401
+ response = ActiveSupport::JSON.decode(@response.body)
402
+ assert_response :success
403
+ assert_equal 1, response['results'].count
404
+ assert_equal report.id, response['results'].first["id"].to_i
405
+ end
406
+
316
407
  private
317
408
 
318
409
  def reports_cleanup
@@ -6,11 +6,11 @@ class OpenscapProxiesControllerTest < ActionController::TestCase
6
6
  include ApplicationHelper
7
7
 
8
8
  test "should render spool error" do
9
- spool_error = { "timestamp" => 1_487_144_633.951_368, "level" => "ERROR", "message" => "Failed to parse Arf Report in test" }
10
- OpenscapProxiesController.any_instance.stubs(:find_spool_error).returns(spool_error)
9
+ spool_error = { "errors_count" => 4 }
10
+ ProxyStatus::OpenscapSpool.any_instance.stubs(:spool_status).returns(spool_error)
11
11
  proxy = FactoryBot.create(:openscap_proxy)
12
12
  get :openscap_spool, :params => { :id => proxy.id }, :session => set_session_user
13
13
  assert_template :partial => 'smart_proxies/_openscap_spool'
14
- assert @response.body.match(date_time_relative_value(Time.at(spool_error["timestamp"])))
14
+ assert @response.body.match('4 spool errors detected, inspect the appropriate file directly on proxy')
15
15
  end
16
16
  end
@@ -29,6 +29,20 @@ module ScapTestProxy
29
29
  end
30
30
  end
31
31
 
32
+ module ScapTestCommon
33
+ private
34
+
35
+ def create_report_with_rules(host, rule_names, rule_results)
36
+ raise "rule_names and rule_results should have the same length!" if rule_names.size != rule_results.size
37
+ report = FactoryBot.create(:arf_report, :host_id => host.id)
38
+ rule_names.each_with_index do |item, index|
39
+ source = FactoryBot.create(:compliance_source, :value => rule_names[index])
40
+ log = FactoryBot.create(:compliance_log, :source => source, :report => report, :result => rule_results[index])
41
+ end
42
+ report
43
+ end
44
+ end
45
+
32
46
  class ActionMailer::TestCase
33
47
  include ScapClientPuppetclass
34
48
  setup :skip_scap_callback
@@ -37,6 +51,7 @@ end
37
51
  class ActionController::TestCase
38
52
  include ScapClientPuppetclass
39
53
  include ScapTestProxy
54
+ include ScapTestCommon
40
55
 
41
56
  setup :add_smart_proxy, :skip_scap_callback
42
57
  end
@@ -44,6 +59,7 @@ end
44
59
  class ActiveSupport::TestCase
45
60
  include ScapClientPuppetclass
46
61
  include ScapTestProxy
62
+ include ScapTestCommon
47
63
 
48
64
  setup :add_smart_proxy, :skip_scap_callback
49
65
  end
@@ -165,6 +165,19 @@ module ForemanOpenscap
165
165
  refute ForemanOpenscap::ArfReport.all.include? report
166
166
  end
167
167
 
168
+ test 'should get reports by rule result' do
169
+ rule_name = 'xccdf_org.something_installed'
170
+ rule_names_1 = ['xccdf_org.something_tested', rule_name]
171
+ rule_names_2 = ['xccdf_org.nothing', 'xccdf_org.whatever']
172
+ rule_results_1 = ['fail', 'pass']
173
+ rule_results_2 = ['fail', 'fail']
174
+ host = FactoryBot.create(:compliance_host)
175
+ report_1 = create_report_with_rules(host, rule_names_1, rule_results_1)
176
+ report_2 = create_report_with_rules(host, rule_names_2, rule_results_2)
177
+ res = ForemanOpenscap::ArfReport.by_rule_result(rule_name, 'pass').first
178
+ assert_equal res, report_1
179
+ end
180
+
168
181
  private
169
182
 
170
183
  def create_logs_for_report(report, log_params)
@@ -75,6 +75,48 @@ class HostExtensionsTest < ActiveSupport::TestCase
75
75
  assert_include res, host_2
76
76
  end
77
77
 
78
+ test "should correctly find hosts based on rule result" do
79
+ rule_name = 'xccdf_org.something'
80
+ rule_names = [rule_name, 'xccdf_org.nothing']
81
+ rule_results_1 = ['pass', 'fail']
82
+ rule_results_2 = ['fail', 'fail']
83
+ rule_results_3 = ['notchecked', 'fail']
84
+ host_1 = setup_host_with_reports_and_rules([rule_names, rule_names], [rule_results_2, rule_results_1], @policy)
85
+ host_2 = setup_host_with_reports_and_rules([rule_names, rule_names], [rule_results_1, rule_results_2], @policy)
86
+ host_3 = setup_host_with_reports_and_rules([rule_names, rule_names], [rule_results_1, rule_results_3], @policy)
87
+
88
+ res = Host.search_for "passes_xccdf_rule = #{rule_name}"
89
+ assert_equal res.first, host_1
90
+
91
+ res = Host.search_for "fails_xccdf_rule = #{rule_name}"
92
+ assert_equal res.first, host_2
93
+
94
+ res = Host.search_for "others_xccdf_rule = #{rule_name}"
95
+ assert_equal res.first, host_3
96
+ end
97
+
98
+ context "find_with_any_policy" do
99
+ setup do
100
+ @host.destroy
101
+ policy, host, host_2 = setup_hosts_with_inherited_policy.values_at(:policy, :host, :host_2)
102
+ policy, host_3, host_4 = setup_hosts_with_policy.values_at(:policy, :host, :host_2)
103
+ @compliance_hosts = [host, host_2, host_3, host_4]
104
+ @host_without_policy = FactoryBot.create(:host)
105
+ end
106
+
107
+ test "should find compliance hosts" do
108
+ res = Host.search_for "is_compliance_host = true"
109
+ assert_equal 4, res.count
110
+ assert_empty(@compliance_hosts - res | res - @compliance_hosts)
111
+ end
112
+
113
+ test "should find all but compliance hosts" do
114
+ res = Host.search_for "is_compliance_host = false"
115
+ assert_equal 1, res.count
116
+ assert_equal @host_without_policy, res.first
117
+ end
118
+ end
119
+
78
120
  private
79
121
 
80
122
  def setup_hosts_with_policy
@@ -98,4 +140,14 @@ class HostExtensionsTest < ActiveSupport::TestCase
98
140
  host_2 = FactoryBot.create(:compliance_host, :hostgroup_id => child.id)
99
141
  { :policy => policy, :host => host, :host_2 => host_2 }
100
142
  end
143
+
144
+ def setup_host_with_reports_and_rules(rule_names_ary, rule_results_ary, policy)
145
+ raise "rule_names_ary must have the same length as rule_results_ary" if rule_names_ary.size != rule_results_ary.size
146
+ host = FactoryBot.create(:host)
147
+ rule_names_ary.each_with_index do |item, index|
148
+ report = create_report_with_rules host, rule_names_ary[index], rule_results_ary[index]
149
+ FactoryBot.create(:policy_arf_report, :policy_id => policy.id, :arf_report_id => report.id)
150
+ end
151
+ host
152
+ end
101
153
  end
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: 0.10.4
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - slukasik@redhat.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-11 00:00:00.000000000 Z
11
+ date: 2018-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -35,7 +35,6 @@ files:
35
35
  - README.md
36
36
  - app/assets/javascripts/foreman_openscap/arf_reports.js
37
37
  - app/assets/javascripts/foreman_openscap/load_report.js
38
- - app/assets/javascripts/foreman_openscap/openscap_proxy.js
39
38
  - app/assets/javascripts/foreman_openscap/period_selector.js
40
39
  - app/assets/javascripts/foreman_openscap/policy_edit.js
41
40
  - app/assets/javascripts/foreman_openscap/reports.js
@@ -54,6 +53,7 @@ files:
54
53
  - app/controllers/concerns/foreman/controller/parameters/scap_content.rb
55
54
  - app/controllers/concerns/foreman/controller/parameters/tailoring_file.rb
56
55
  - app/controllers/concerns/foreman_openscap/arf_reports_controller_common_extensions.rb
56
+ - app/controllers/concerns/foreman_openscap/body_log_extensions.rb
57
57
  - app/controllers/concerns/foreman_openscap/hosts_controller_extensions.rb
58
58
  - app/controllers/openscap_proxies_controller.rb
59
59
  - app/controllers/policies_controller.rb
@@ -65,7 +65,6 @@ files:
65
65
  - app/helpers/compliance_dashboard_helper.rb
66
66
  - app/helpers/compliance_hosts_helper.rb
67
67
  - app/helpers/concerns/foreman_openscap/hosts_helper_extensions.rb
68
- - app/helpers/concerns/foreman_openscap/lookup_keys_helper_extensions.rb
69
68
  - app/helpers/policies_helper.rb
70
69
  - app/helpers/policy_dashboard_helper.rb
71
70
  - app/helpers/tailoring_files_helper.rb
@@ -98,6 +97,8 @@ files:
98
97
  - app/services/foreman_openscap/openscap_proxy_version_check.rb
99
98
  - app/services/foreman_openscap/policy_dashboard/data.rb
100
99
  - app/services/foreman_openscap/report_dashboard/data.rb
100
+ - app/services/proxy_status/openscap_spool.rb
101
+ - app/validators/concerns/foreman_openscap/bookmark_controller_validator_extensions.rb
101
102
  - app/validators/foreman_openscap/data_stream_validator.rb
102
103
  - app/views/api/v2/compliance/arf_reports/base.json.rabl
103
104
  - app/views/api/v2/compliance/arf_reports/index.json.rabl
@@ -234,34 +235,61 @@ files:
234
235
  - lib/foreman_openscap/version.rb
235
236
  - lib/tasks/foreman_openscap_tasks.rake
236
237
  - locale/Makefile
238
+ - locale/action_names.rb
237
239
  - locale/de/LC_MESSAGES/foreman_openscap.mo
240
+ - locale/de/foreman_openscap.edit.po
238
241
  - locale/de/foreman_openscap.po
242
+ - locale/de/foreman_openscap.po.time_stamp
239
243
  - locale/en_GB/LC_MESSAGES/foreman_openscap.mo
244
+ - locale/en_GB/foreman_openscap.edit.po
240
245
  - locale/en_GB/foreman_openscap.po
246
+ - locale/en_GB/foreman_openscap.po.time_stamp
241
247
  - locale/es/LC_MESSAGES/foreman_openscap.mo
248
+ - locale/es/foreman_openscap.edit.po
242
249
  - locale/es/foreman_openscap.po
250
+ - locale/es/foreman_openscap.po.time_stamp
243
251
  - locale/foreman_openscap.pot
244
252
  - locale/fr/LC_MESSAGES/foreman_openscap.mo
253
+ - locale/fr/foreman_openscap.edit.po
245
254
  - locale/fr/foreman_openscap.po
255
+ - locale/fr/foreman_openscap.po.time_stamp
246
256
  - locale/gl/LC_MESSAGES/foreman_openscap.mo
257
+ - locale/gl/foreman_openscap.edit.po
247
258
  - locale/gl/foreman_openscap.po
259
+ - locale/gl/foreman_openscap.po.time_stamp
248
260
  - locale/it/LC_MESSAGES/foreman_openscap.mo
261
+ - locale/it/foreman_openscap.edit.po
249
262
  - locale/it/foreman_openscap.po
263
+ - locale/it/foreman_openscap.po.time_stamp
250
264
  - locale/ja/LC_MESSAGES/foreman_openscap.mo
265
+ - locale/ja/foreman_openscap.edit.po
251
266
  - locale/ja/foreman_openscap.po
267
+ - locale/ja/foreman_openscap.po.time_stamp
252
268
  - locale/ko/LC_MESSAGES/foreman_openscap.mo
269
+ - locale/ko/foreman_openscap.edit.po
253
270
  - locale/ko/foreman_openscap.po
271
+ - locale/ko/foreman_openscap.po.time_stamp
254
272
  - locale/pt_BR/LC_MESSAGES/foreman_openscap.mo
273
+ - locale/pt_BR/foreman_openscap.edit.po
255
274
  - locale/pt_BR/foreman_openscap.po
275
+ - locale/pt_BR/foreman_openscap.po.time_stamp
256
276
  - locale/ru/LC_MESSAGES/foreman_openscap.mo
277
+ - locale/ru/foreman_openscap.edit.po
257
278
  - locale/ru/foreman_openscap.po
279
+ - locale/ru/foreman_openscap.po.time_stamp
258
280
  - locale/sv_SE/LC_MESSAGES/foreman_openscap.mo
281
+ - locale/sv_SE/foreman_openscap.edit.po
259
282
  - locale/sv_SE/foreman_openscap.po
283
+ - locale/sv_SE/foreman_openscap.po.time_stamp
260
284
  - locale/zanata.xml
261
285
  - locale/zh_CN/LC_MESSAGES/foreman_openscap.mo
286
+ - locale/zh_CN/foreman_openscap.edit.po
262
287
  - locale/zh_CN/foreman_openscap.po
288
+ - locale/zh_CN/foreman_openscap.po.time_stamp
263
289
  - locale/zh_TW/LC_MESSAGES/foreman_openscap.mo
290
+ - locale/zh_TW/foreman_openscap.edit.po
264
291
  - locale/zh_TW/foreman_openscap.po
292
+ - locale/zh_TW/foreman_openscap.po.time_stamp
265
293
  - test/factories/arf_report_factory.rb
266
294
  - test/factories/asset_factory.rb
267
295
  - test/factories/compliance_host_factory.rb
@@ -1,7 +0,0 @@
1
- function findSpoolLogs() {
2
- var table,
3
- string = 'Failed to parse Arf Report';
4
- $("div#table-proxy-status-logs_filter input").val(string);
5
- table = $('#table-proxy-status-logs').DataTable();
6
- table.search(string).draw();
7
- }
@@ -1,8 +0,0 @@
1
- module ForemanOpenscap
2
- module LookupKeysHelperExtensions
3
- def overridable_lookup_keys(klass, obj)
4
- return [] if klass.name == "foreman_scap_client"
5
- super klass, obj
6
- end
7
- end
8
- end