foreman_openscap 8.0.1 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/app/lib/proxy_api/openscap.rb +11 -0
  4. data/app/models/concerns/foreman_openscap/data_stream_content.rb +1 -5
  5. data/app/services/foreman_openscap/client_config/ansible.rb +1 -10
  6. data/app/validators/foreman_openscap/data_stream_validator.rb +1 -1
  7. data/config/initializers/inflections.rb +0 -2
  8. data/config/routes.rb +0 -15
  9. data/db/migrate/20240313111822_drop_oval.rb +17 -0
  10. data/lib/foreman_openscap/data_migration.rb +7 -6
  11. data/lib/foreman_openscap/engine.rb +2 -56
  12. data/lib/foreman_openscap/version.rb +1 -1
  13. data/test/factories/compliance_host_factory.rb +0 -12
  14. data/test/test_plugin_helper.rb +0 -2
  15. data/test/unit/scap_content_test.rb +2 -3
  16. data/webpack/components/OpenscapRemediationWizard/ViewSelectedHostsLink.js +2 -2
  17. data/webpack/components/OpenscapRemediationWizard/steps/ReviewHosts.js +12 -2
  18. data/webpack/components/OpenscapRemediationWizard/steps/ReviewRemediation.js +7 -4
  19. data/webpack/global_index.js +0 -4
  20. metadata +7 -169
  21. data/app/controllers/api/v2/compliance/oval_contents_controller.rb +0 -72
  22. data/app/controllers/api/v2/compliance/oval_policies_controller.rb +0 -111
  23. data/app/controllers/api/v2/compliance/oval_reports_controller.rb +0 -47
  24. data/app/controllers/concerns/foreman/controller/parameters/oval_content.rb +0 -22
  25. data/app/controllers/concerns/foreman/controller/parameters/oval_policy.rb +0 -22
  26. data/app/graphql/mutations/oval_contents/delete.rb +0 -9
  27. data/app/graphql/mutations/oval_policies/create.rb +0 -33
  28. data/app/graphql/mutations/oval_policies/delete.rb +0 -9
  29. data/app/graphql/mutations/oval_policies/update.rb +0 -15
  30. data/app/graphql/types/cve.rb +0 -17
  31. data/app/graphql/types/oval_check.rb +0 -11
  32. data/app/graphql/types/oval_content.rb +0 -19
  33. data/app/graphql/types/oval_policy.rb +0 -24
  34. data/app/lib/proxy_api/available_proxy.rb +0 -44
  35. data/app/models/concerns/foreman_openscap/oval_facet_host_extensions.rb +0 -38
  36. data/app/models/concerns/foreman_openscap/oval_facet_hostgroup_extensions.rb +0 -31
  37. data/app/models/foreman_openscap/cve.rb +0 -23
  38. data/app/models/foreman_openscap/host/oval_facet.rb +0 -14
  39. data/app/models/foreman_openscap/host_cve.rb +0 -7
  40. data/app/models/foreman_openscap/hostgroup/oval_facet.rb +0 -14
  41. data/app/models/foreman_openscap/hostgroup_oval_facet_oval_policy.rb +0 -6
  42. data/app/models/foreman_openscap/oval_content.rb +0 -28
  43. data/app/models/foreman_openscap/oval_facet_oval_policy.rb +0 -6
  44. data/app/models/foreman_openscap/oval_policy.rb +0 -54
  45. data/app/models/foreman_openscap/oval_status.rb +0 -45
  46. data/app/services/foreman_openscap/oval/check_collection.rb +0 -45
  47. data/app/services/foreman_openscap/oval/configure.rb +0 -83
  48. data/app/services/foreman_openscap/oval/cves.rb +0 -41
  49. data/app/services/foreman_openscap/oval/setup.rb +0 -93
  50. data/app/services/foreman_openscap/oval/setup_check.rb +0 -58
  51. data/app/services/foreman_openscap/oval/sync_oval_contents.rb +0 -42
  52. data/app/views/api/v2/compliance/oval_contents/base.json.rabl +0 -6
  53. data/app/views/api/v2/compliance/oval_contents/create.json.rabl +0 -3
  54. data/app/views/api/v2/compliance/oval_contents/destroy.json.rabl +0 -3
  55. data/app/views/api/v2/compliance/oval_contents/index.json.rabl +0 -3
  56. data/app/views/api/v2/compliance/oval_contents/show.json.rabl +0 -3
  57. data/app/views/api/v2/compliance/oval_contents/sync.json.rabl +0 -3
  58. data/app/views/api/v2/compliance/oval_contents/sync_result.json.rabl +0 -11
  59. data/app/views/api/v2/compliance/oval_contents/update.json.rabl +0 -3
  60. data/app/views/api/v2/compliance/oval_policies/create.json.rabl +0 -3
  61. data/app/views/api/v2/compliance/oval_policies/index.json.rabl +0 -3
  62. data/app/views/api/v2/compliance/oval_policies/main.json.rabl +0 -15
  63. data/app/views/api/v2/compliance/oval_policies/show.json.rabl +0 -3
  64. data/app/views/job_templates/run_oval_scans.erb +0 -24
  65. data/locale/cs_CZ/foreman_openscap.edit.po +0 -1863
  66. data/locale/cs_CZ/foreman_openscap.po.time_stamp +0 -0
  67. data/locale/de/foreman_openscap.edit.po +0 -1873
  68. data/locale/de/foreman_openscap.po.time_stamp +0 -0
  69. data/locale/en/foreman_openscap.edit.po +0 -1863
  70. data/locale/en/foreman_openscap.po.time_stamp +0 -0
  71. data/locale/en_GB/foreman_openscap.edit.po +0 -1863
  72. data/locale/en_GB/foreman_openscap.po.time_stamp +0 -0
  73. data/locale/es/foreman_openscap.edit.po +0 -1868
  74. data/locale/es/foreman_openscap.po.time_stamp +0 -0
  75. data/locale/fr/foreman_openscap.edit.po +0 -1874
  76. data/locale/fr/foreman_openscap.po.time_stamp +0 -0
  77. data/locale/gl/foreman_openscap.edit.po +0 -1863
  78. data/locale/gl/foreman_openscap.po.time_stamp +0 -0
  79. data/locale/it/foreman_openscap.edit.po +0 -1865
  80. data/locale/it/foreman_openscap.po.time_stamp +0 -0
  81. data/locale/ja/foreman_openscap.edit.po +0 -1869
  82. data/locale/ja/foreman_openscap.po.time_stamp +0 -0
  83. data/locale/ka/foreman_openscap.edit.po +0 -1863
  84. data/locale/ka/foreman_openscap.po.time_stamp +0 -0
  85. data/locale/ko/foreman_openscap.edit.po +0 -1863
  86. data/locale/ko/foreman_openscap.po.time_stamp +0 -0
  87. data/locale/pt_BR/foreman_openscap.edit.po +0 -1873
  88. data/locale/pt_BR/foreman_openscap.po.time_stamp +0 -0
  89. data/locale/ru/foreman_openscap.edit.po +0 -1867
  90. data/locale/ru/foreman_openscap.po.time_stamp +0 -0
  91. data/locale/sv_SE/foreman_openscap.edit.po +0 -1863
  92. data/locale/sv_SE/foreman_openscap.po.time_stamp +0 -0
  93. data/locale/zh_CN/foreman_openscap.edit.po +0 -1868
  94. data/locale/zh_CN/foreman_openscap.po.time_stamp +0 -0
  95. data/locale/zh_TW/foreman_openscap.edit.po +0 -1864
  96. data/locale/zh_TW/foreman_openscap.po.time_stamp +0 -0
  97. data/test/factories/oval_content_factory.rb +0 -7
  98. data/test/factories/oval_policy_factory.rb +0 -9
  99. data/test/fixtures/cve_fixtures.rb +0 -104
  100. data/test/functional/api/v2/compliance/oval_contents_controller_test.rb +0 -39
  101. data/test/functional/api/v2/compliance/oval_policies_controller_test.rb +0 -141
  102. data/test/functional/api/v2/compliance/oval_reports_controller_test.rb +0 -32
  103. data/test/graphql/mutations/oval_policies/delete_mutation_test.rb +0 -63
  104. data/test/graphql/queries/oval_content_query_test.rb +0 -29
  105. data/test/graphql/queries/oval_contents_query_test.rb +0 -35
  106. data/test/graphql/queries/oval_policies_query_test.rb +0 -35
  107. data/test/unit/oval_host_test.rb +0 -45
  108. data/test/unit/oval_policy_test.rb +0 -133
  109. data/test/unit/oval_status_test.rb +0 -47
  110. data/test/unit/services/oval/cves_test.rb +0 -81
  111. data/test/unit/services/oval/setup_check_test.rb +0 -37
  112. data/test/unit/services/oval/setup_test.rb +0 -87
  113. data/webpack/graphql/mutations/createOvalPolicy.gql +0 -22
  114. data/webpack/graphql/mutations/deleteOvalContent.gql +0 -9
  115. data/webpack/graphql/mutations/deleteOvalPolicy.gql +0 -9
  116. data/webpack/graphql/mutations/updateOvalPolicy.gql +0 -14
  117. data/webpack/graphql/queries/currentUserAttributes.gql +0 -11
  118. data/webpack/graphql/queries/cves.gql +0 -23
  119. data/webpack/graphql/queries/hostgroups.gql +0 -14
  120. data/webpack/graphql/queries/ovalContent.gql +0 -8
  121. data/webpack/graphql/queries/ovalContents.gql +0 -19
  122. data/webpack/graphql/queries/ovalPolicies.gql +0 -20
  123. data/webpack/graphql/queries/ovalPolicy.gql +0 -29
  124. data/webpack/helpers/pathsHelper.js +0 -29
  125. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsIndex.js +0 -71
  126. data/webpack/routes/OvalContents/OvalContentsIndex/OvalContentsTable.js +0 -83
  127. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.fixtures.js +0 -105
  128. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsDestroy.test.js +0 -124
  129. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.fixtures.js +0 -127
  130. data/webpack/routes/OvalContents/OvalContentsIndex/__tests__/OvalContentsIndex.test.js +0 -89
  131. data/webpack/routes/OvalContents/OvalContentsIndex/index.js +0 -13
  132. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.js +0 -138
  133. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNew.scss +0 -3
  134. data/webpack/routes/OvalContents/OvalContentsNew/OvalContentsNewHelper.js +0 -73
  135. data/webpack/routes/OvalContents/OvalContentsNew/__tests__/OvalContentsNew.test.js +0 -104
  136. data/webpack/routes/OvalContents/OvalContentsNew/index.js +0 -13
  137. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.js +0 -62
  138. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShow.test.js +0 -45
  139. data/webpack/routes/OvalContents/OvalContentsShow/OvalContentsShowHelper.js +0 -0
  140. data/webpack/routes/OvalContents/OvalContentsShow/index.js +0 -35
  141. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesIndex.js +0 -62
  142. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/OvalPoliciesTable.js +0 -74
  143. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.fixtures.js +0 -101
  144. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesDestroy.test.js +0 -117
  145. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.fixtures.js +0 -111
  146. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/__tests__/OvalPoliciesIndex.test.js +0 -81
  147. data/webpack/routes/OvalPolicies/OvalPoliciesIndex/index.js +0 -13
  148. data/webpack/routes/OvalPolicies/OvalPoliciesNew/HostgroupSelect.js +0 -135
  149. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyForm.js +0 -119
  150. data/webpack/routes/OvalPolicies/OvalPoliciesNew/NewOvalPolicyFormHelpers.js +0 -107
  151. data/webpack/routes/OvalPolicies/OvalPoliciesNew/OvalPoliciesNew.js +0 -32
  152. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.fixtures.js +0 -147
  153. data/webpack/routes/OvalPolicies/OvalPoliciesNew/__tests__/OvalPoliciesNew.test.js +0 -172
  154. data/webpack/routes/OvalPolicies/OvalPoliciesNew/index.js +0 -11
  155. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTab.js +0 -49
  156. data/webpack/routes/OvalPolicies/OvalPoliciesShow/CvesTable.js +0 -63
  157. data/webpack/routes/OvalPolicies/OvalPoliciesShow/DetailsTab.js +0 -87
  158. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTab.js +0 -49
  159. data/webpack/routes/OvalPolicies/OvalPoliciesShow/HostgroupsTable.js +0 -38
  160. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShow.js +0 -82
  161. data/webpack/routes/OvalPolicies/OvalPoliciesShow/OvalPoliciesShowHelper.js +0 -117
  162. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.fixtures.js +0 -48
  163. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesEdit.test.js +0 -202
  164. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.fixtures.js +0 -124
  165. data/webpack/routes/OvalPolicies/OvalPoliciesShow/__tests__/OvalPoliciesShow.test.js +0 -172
  166. data/webpack/routes/OvalPolicies/OvalPoliciesShow/index.js +0 -39
  167. data/webpack/routes/routes.js +0 -49
@@ -1,93 +0,0 @@
1
- module ForemanOpenscap
2
- module Oval
3
- class Setup
4
- include ::ForemanOpenscap::LookupKeyOverridesCommon
5
-
6
- def initialize
7
- @config = ForemanOpenscap::ClientConfig::Ansible.new(::ForemanOpenscap::OvalPolicy)
8
- @check_collection = CheckCollection.new initial_check_attrs
9
- end
10
-
11
- def run
12
- override @config
13
- @check_collection
14
- end
15
-
16
- def handle_config_not_available(config)
17
- return @check_collection.pass_check :foreman_ansible_present if config.available?
18
- fail_check :foreman_ansible_present
19
- end
20
-
21
- def handle_config_item_not_available(config, item)
22
- return @check_collection.pass_check :foreman_scap_client_role_present if item
23
- fail_check :foreman_scap_client_role_present
24
- end
25
-
26
- def handle_missing_lookup_keys(config, key_names)
27
- return @check_collection.pass_check :foreman_scap_client_vars_present if key_names.empty?
28
- fail_check :foreman_scap_client_vars_present, :missing_vars => key_names
29
- end
30
-
31
- def handle_server_param_override(config, param)
32
- handle_param_override :foreman_scap_client_server_overriden, config, param
33
- end
34
-
35
- def handle_port_param_override(config, param)
36
- handle_param_override :foreman_scap_client_port_overriden, config, param
37
- end
38
-
39
- def handle_policies_param_override(config, param)
40
- handle_param_override :foreman_scap_client_policies_overriden, config, param
41
- end
42
-
43
- def handle_param_override(check_id, config, param)
44
- return fail_check check_id if param.changed? && !param.save
45
- @check_collection.pass_check check_id
46
- end
47
-
48
- def fail_check(check_id, error_data = nil)
49
- @check_collection.fail_check(check_id, error_data)
50
- false
51
- end
52
-
53
- private
54
-
55
- def initial_check_attrs
56
- override_msg = _("Could not update Ansible Variables with override: true")
57
-
58
- [
59
- {
60
- :id => :foreman_ansible_present,
61
- :title => _("Is foreman_ansible present?"),
62
- :fail_msg => _("foreman_ansible plugin not found, please install it before running this action again.")
63
- },
64
- {
65
- :id => :foreman_scap_client_role_present,
66
- :title => _("Is theforeman.foreman_scap_client present?"),
67
- :fail_msg => @config.ansible_role_missing_msg
68
- },
69
- {
70
- :id => :foreman_scap_client_vars_present,
71
- :title => _("Are required variables for theforeman.foreman_scap_client present?"),
72
- :fail_msg => ->(hash) { _("The following Ansible Variables were not found: %{missing_vars}, please import them before running this action again.") % hash }
73
- },
74
- {
75
- :id => :foreman_scap_client_server_overriden,
76
- :title => _("Is %s param set to be overriden?") % @config.server_param,
77
- :fail_msg => override_msg
78
- },
79
- {
80
- :id => :foreman_scap_client_port_overriden,
81
- :title => _("Is %s param set to be overriden?") % @config.port_param,
82
- :fail_msg => override_msg
83
- },
84
- {
85
- :id => :foreman_scap_client_policies_overriden,
86
- :title => _("Is %s param set to be overriden?") % @config.policies_param,
87
- :fail_msg => override_msg
88
- }
89
- ]
90
- end
91
- end
92
- end
93
- end
@@ -1,58 +0,0 @@
1
- module ForemanOpenscap
2
- module Oval
3
- class SetupCheck
4
- attr_reader :result, :id, :title, :errors
5
-
6
- def initialize(hash)
7
- @id = hash[:id]
8
- @title = hash[:title]
9
- @fail_msg = hash[:fail_msg]
10
- @errors = hash[:errors]
11
- @result = :skip
12
- end
13
-
14
- def fail_with!(fail_data)
15
- @fail_msg_data = fail_data
16
- fail!
17
- end
18
-
19
- def fail!
20
- raise 'Cannot fail a check that expects fail message data, use fail_with! method instead' if @fail_msg.respond_to?(:call) && @fail_msg_data.empty?
21
- @result = :fail
22
- self
23
- end
24
-
25
- def pass!
26
- @result = :pass
27
- self
28
- end
29
-
30
- def failed?
31
- @result == :fail
32
- end
33
-
34
- def passed?
35
- @result == :pass
36
- end
37
-
38
- def skipped?
39
- @result == :skip
40
- end
41
-
42
- def fail_msg
43
- return unless failed?
44
- return @fail_msg.call(@fail_msg_data) if @fail_msg.respond_to?(:call) && @fail_msg_data
45
- @fail_msg
46
- end
47
-
48
- def to_h
49
- {
50
- :title => @title,
51
- :result => @result,
52
- :fail_message => failed? ? fail_msg : nil,
53
- :errors => @errors
54
- }
55
- end
56
- end
57
- end
58
- end
@@ -1,42 +0,0 @@
1
- module ForemanOpenscap
2
- module Oval
3
- class SyncOvalContents
4
- def sync(oval_content)
5
- begin
6
- content_blob = fetch_content_blob(oval_content.url)
7
- rescue StandardError => e
8
- oval_content.errors.add(:base, "#{fail_msg oval_content}, " + _("cause: ") + e.message)
9
- return oval_content
10
- end
11
-
12
- unless content_blob
13
- oval_content.errors.add(:base, fail_msg(oval_content))
14
- return oval_content
15
- end
16
- oval_content.scap_file = content_blob
17
- oval_content
18
- end
19
-
20
- def sync_all
21
- to_sync = ForemanOpenscap::OvalContent.where.not(:url => nil)
22
- to_sync.map { |content| content.tap { |item| sync(item).save } }
23
- end
24
-
25
- private
26
-
27
- def fail_msg(content)
28
- _("Failed to fetch content file from %s") % content.url
29
- end
30
-
31
- def fetch_content_blob(url)
32
- response = fetch url
33
- return unless response.code == 200
34
- response.body
35
- end
36
-
37
- def fetch(url)
38
- RestClient.get(url)
39
- end
40
- end
41
- end
42
- end
@@ -1,6 +0,0 @@
1
- object @oval_content
2
-
3
- extends "api/v2/compliance/common/org"
4
- extends "api/v2/compliance/common/loc"
5
-
6
- attributes :id, :name, :original_filename, :digest, :created_at, :updated_at, :url
@@ -1,3 +0,0 @@
1
- object @oval_content
2
-
3
- extends "api/v2/compliance/oval_contents/base"
@@ -1,3 +0,0 @@
1
- object @oval_content
2
-
3
- extends "api/v2/compliance/oval_contents/base"
@@ -1,3 +0,0 @@
1
- collection @oval_contents
2
-
3
- extends "api/v2/compliance/oval_contents/base"
@@ -1,3 +0,0 @@
1
- object @oval_content
2
-
3
- extends "api/v2/compliance/oval_contents/base"
@@ -1,3 +0,0 @@
1
- collection @oval_contents
2
-
3
- extends "api/v2/compliance/oval_contents/sync_result"
@@ -1,11 +0,0 @@
1
- object @oval_content
2
-
3
- attributes :id, :name
4
-
5
- node(:errors) do |content|
6
- content.errors.to_hash
7
- end
8
-
9
- node(:full_messages) do |content|
10
- content.errors.full_messages
11
- end
@@ -1,3 +0,0 @@
1
- object @oval_content
2
-
3
- extends "api/v2/compliance/oval_contents/base"
@@ -1,3 +0,0 @@
1
- object @oval_policy
2
-
3
- extends "api/v2/compliance/oval_policies/main"
@@ -1,3 +0,0 @@
1
- collection @oval_policies
2
-
3
- extends "api/v2/compliance/oval_policies/main"
@@ -1,15 +0,0 @@
1
- object @oval_policy
2
-
3
- extends "api/v2/compliance/common/org"
4
- extends "api/v2/compliance/common/loc"
5
- extends "api/v2/compliance/policies_common/attrs"
6
-
7
- attributes :created_at, :updated_at, :oval_content_id
8
-
9
- child :hosts => :hosts do |host|
10
- attributes :id, :name
11
- end
12
-
13
- child :hostgroups => :hostgroups do |hg|
14
- attributes :id, :name
15
- end
@@ -1,3 +0,0 @@
1
- object @oval_policy
2
-
3
- extends "api/v2/compliance/oval_policies/main"
@@ -1,24 +0,0 @@
1
- <%#
2
- name: Run OVAL scans
3
- job_category: OpenSCAP
4
- description_format: Run scan for specified OVAL Policies
5
- feature: foreman_openscap_run_oval_scans
6
- provider_type: SSH
7
- snippet: false
8
- provider_type: SSH
9
- kind: job_template
10
- template_inputs:
11
- - name: oval_policies
12
- description: Comma separated OVAL Policy Ids to run
13
- input_type: user
14
- advanced: true
15
- -%>
16
- <% unless input('oval_policies').blank? -%>
17
- <% input('oval_policies').split(',').map do |id| -%>
18
- /usr/bin/foreman_scap_client oval <%= id %>
19
- <% end -%>
20
- <% else -%>
21
- <% @host.oval_policies_enc_raw.map do |policy| -%>
22
- /usr/bin/foreman_scap_client oval <%= policy['id'] %>
23
- <% end -%>
24
- <% end -%>