foreman_openscap 13.1.2 → 13.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/foreman_openscap/locale/de/foreman_openscap.js +5 -5
  3. data/app/assets/javascripts/foreman_openscap/locale/en/foreman_openscap.js +1 -1
  4. data/app/assets/javascripts/foreman_openscap/locale/en_GB/foreman_openscap.js +1 -1
  5. data/app/assets/javascripts/foreman_openscap/locale/es/foreman_openscap.js +1 -1
  6. data/app/assets/javascripts/foreman_openscap/locale/fr/foreman_openscap.js +26 -24
  7. data/app/assets/javascripts/foreman_openscap/locale/gl/foreman_openscap.js +1 -1
  8. data/app/assets/javascripts/foreman_openscap/locale/it/foreman_openscap.js +1 -1
  9. data/app/assets/javascripts/foreman_openscap/locale/ja/foreman_openscap.js +26 -28
  10. data/app/assets/javascripts/foreman_openscap/locale/ka/foreman_openscap.js +5 -5
  11. data/app/assets/javascripts/foreman_openscap/locale/ko/foreman_openscap.js +26 -28
  12. data/app/assets/javascripts/foreman_openscap/locale/pt_BR/foreman_openscap.js +1 -1
  13. data/app/assets/javascripts/foreman_openscap/locale/ru/foreman_openscap.js +1 -1
  14. data/app/assets/javascripts/foreman_openscap/locale/sv_SE/foreman_openscap.js +1 -1
  15. data/app/assets/javascripts/foreman_openscap/locale/zh_CN/foreman_openscap.js +22 -24
  16. data/app/assets/javascripts/foreman_openscap/locale/zh_TW/foreman_openscap.js +1 -1
  17. data/app/controllers/api/v2/compliance/hosts_bulk_actions_controller.rb +38 -1
  18. data/app/controllers/policies_controller.rb +1 -1
  19. data/app/models/concerns/foreman_openscap/host_extensions.rb +10 -4
  20. data/app/models/concerns/foreman_openscap/hostgroup_extensions.rb +7 -0
  21. data/app/models/foreman_openscap/asset.rb +21 -1
  22. data/app/models/foreman_openscap/compliance_status.rb +19 -7
  23. data/app/models/foreman_openscap/policy.rb +43 -3
  24. data/app/services/foreman_openscap/compliance_status_resetter.rb +26 -0
  25. data/config/routes.rb +2 -0
  26. data/lib/foreman_openscap/engine.rb +3 -1
  27. data/lib/foreman_openscap/version.rb +1 -1
  28. data/locale/de/LC_MESSAGES/foreman_openscap.mo +0 -0
  29. data/locale/de/foreman_openscap.po +5 -5
  30. data/locale/en/LC_MESSAGES/foreman_openscap.mo +0 -0
  31. data/locale/en/foreman_openscap.po +1 -1
  32. data/locale/en_GB/LC_MESSAGES/foreman_openscap.mo +0 -0
  33. data/locale/en_GB/foreman_openscap.po +1 -1
  34. data/locale/es/LC_MESSAGES/foreman_openscap.mo +0 -0
  35. data/locale/es/foreman_openscap.po +1 -1
  36. data/locale/foreman_openscap.pot +2 -2
  37. data/locale/fr/LC_MESSAGES/foreman_openscap.mo +0 -0
  38. data/locale/fr/foreman_openscap.po +26 -24
  39. data/locale/gl/LC_MESSAGES/foreman_openscap.mo +0 -0
  40. data/locale/gl/foreman_openscap.po +1 -1
  41. data/locale/it/LC_MESSAGES/foreman_openscap.mo +0 -0
  42. data/locale/it/foreman_openscap.po +1 -1
  43. data/locale/ja/LC_MESSAGES/foreman_openscap.mo +0 -0
  44. data/locale/ja/foreman_openscap.po +26 -28
  45. data/locale/ka/LC_MESSAGES/foreman_openscap.mo +0 -0
  46. data/locale/ka/foreman_openscap.po +5 -5
  47. data/locale/ko/LC_MESSAGES/foreman_openscap.mo +0 -0
  48. data/locale/ko/foreman_openscap.po +26 -28
  49. data/locale/pt_BR/LC_MESSAGES/foreman_openscap.mo +0 -0
  50. data/locale/pt_BR/foreman_openscap.po +1 -1
  51. data/locale/ru/LC_MESSAGES/foreman_openscap.mo +0 -0
  52. data/locale/ru/foreman_openscap.po +1 -1
  53. data/locale/sv_SE/LC_MESSAGES/foreman_openscap.mo +0 -0
  54. data/locale/sv_SE/foreman_openscap.po +1 -1
  55. data/locale/zh_CN/LC_MESSAGES/foreman_openscap.mo +0 -0
  56. data/locale/zh_CN/foreman_openscap.po +22 -24
  57. data/locale/zh_TW/LC_MESSAGES/foreman_openscap.mo +0 -0
  58. data/locale/zh_TW/foreman_openscap.po +1 -1
  59. data/test/functional/api/v2/compliance/hosts_bulk_actions_controller_test.rb +175 -1
  60. data/test/test_plugin_helper.rb +7 -0
  61. data/test/unit/compliance_status_resetter_test.rb +48 -0
  62. data/test/unit/compliance_status_test.rb +53 -4
  63. data/test/unit/concerns/host_extensions_test.rb +55 -0
  64. data/test/unit/concerns/hostgroup_extensions_test.rb +64 -0
  65. data/test/unit/policy_test.rb +90 -0
  66. data/webpack/components/BulkActions/compliancePolicy/BulkCompliancePolicyMenuItems.js +49 -0
  67. data/webpack/components/BulkActions/compliancePolicy/BulkCompliancePolicyModal.js +304 -0
  68. data/webpack/components/BulkActions/compliancePolicy/BulkCompliancePolicyModalScene.js +65 -0
  69. data/webpack/components/BulkActions/compliancePolicy/__tests__/actions.test.js +121 -0
  70. data/webpack/components/BulkActions/compliancePolicy/actions.js +32 -0
  71. data/webpack/components/BulkActions/compliancePolicy/constants.js +8 -0
  72. data/webpack/global_index.js +27 -1
  73. metadata +10 -1
@@ -42,6 +42,7 @@ module ForemanOpenscap
42
42
  validate :valid_tailoring, :valid_tailoring_profile, :no_mixed_deployments
43
43
  validate :valid_cron_line, :valid_weekday, :valid_day_of_month, :if => Proc.new { |policy| policy.should_validate?('Schedule') }
44
44
  after_save :assign_policy_to_hostgroups
45
+ after_save :reset_changed_assignment_hosts_to_inconclusive
45
46
  # before_destroy - ensure that the policy has no hostgroups, or classes
46
47
 
47
48
  default_scope do
@@ -179,10 +180,14 @@ module ForemanOpenscap
179
180
  :assetable_type => 'Host::Base',
180
181
  :assetable_id => hosts.map(&:id),
181
182
  :foreman_openscap_asset_policies => { :policy_id => id }
182
- ).pluck(:id)
183
+ ).pluck(:id, :assetable_id)
183
184
 
184
- self.asset_ids = self.asset_ids - policy_host_assets
185
- ForemanOpenscap::Asset.where(:id => policy_host_assets).destroy_all
185
+ asset_ids = policy_host_assets.map(&:first)
186
+ host_ids_to_reset = policy_host_assets.map(&:second)
187
+
188
+ self.asset_ids = self.asset_ids - asset_ids
189
+ ForemanOpenscap::Asset.where(:id => asset_ids).destroy_all
190
+ ForemanOpenscap::ComplianceStatusResetter.to_inconclusive(host_ids_to_reset)
186
191
  end
187
192
 
188
193
  def to_enc
@@ -251,12 +256,47 @@ module ForemanOpenscap
251
256
  end
252
257
 
253
258
  def assign_ids(ids, class_name)
259
+ before_host_ids = host_ids_reached_by_assignments(class_name)
254
260
  new_assets = ids.uniq.reject { |id| id.respond_to?(:empty?) && id.empty? }.reduce([]) do |memo, id|
255
261
  memo << assets.where(:assetable_type => class_name, :assetable_id => id).first_or_initialize
256
262
  end
257
263
  complimentary_class_name = class_name == 'Host::Base' ? 'Hostgroup' : 'Host::Base'
258
264
  existing_assets = self.assets.select { |assigned_asset| assigned_asset.assetable_type == complimentary_class_name }
259
265
  self.assets = existing_assets + new_assets
266
+ after_host_ids = host_ids_reached_by_assignments(class_name, self.assets)
267
+
268
+ return unless host_assignment_changed?(before_host_ids, after_host_ids)
269
+
270
+ remember_hosts_for_compliance_status_reset(before_host_ids + after_host_ids)
271
+ end
272
+
273
+ def host_ids_reached_by_assignments(class_name, assigned_assets = assets)
274
+ assetable_ids = assigned_assets.select { |asset| asset.assetable_type == class_name }.map { |asset| asset.assetable_id.to_i }
275
+
276
+ if class_name == 'Host::Base'
277
+ assetable_ids
278
+ else
279
+ hostgroup_ids = ::Hostgroup.where(:id => assetable_ids).flat_map(&:subtree_ids).uniq
280
+ ::Host.where(:hostgroup_id => hostgroup_ids).pluck(:id)
281
+ end
282
+ end
283
+
284
+ def remember_hosts_for_compliance_status_reset(host_ids)
285
+ @compliance_status_reset_host_ids ||= []
286
+ @compliance_status_reset_host_ids.concat(host_ids)
287
+ end
288
+
289
+ def host_assignment_changed?(before_host_ids, after_host_ids)
290
+ before_host_ids.to_set != after_host_ids.to_set
291
+ end
292
+
293
+ def reset_changed_assignment_hosts_to_inconclusive
294
+ host_ids = Array(@compliance_status_reset_host_ids).compact.uniq
295
+ return if host_ids.empty?
296
+
297
+ ForemanOpenscap::ComplianceStatusResetter.to_inconclusive(host_ids)
298
+ ensure
299
+ @compliance_status_reset_host_ids = nil
260
300
  end
261
301
 
262
302
  def no_mixed_deployments
@@ -0,0 +1,26 @@
1
+ module ForemanOpenscap
2
+ class ComplianceStatusResetter
3
+ def self.to_inconclusive(host_ids)
4
+ host_ids = Array(host_ids).compact.uniq
5
+ return if host_ids.empty?
6
+
7
+ now = Time.current
8
+ rows = host_ids.map do |host_id|
9
+ {
10
+ :host_id => host_id,
11
+ :type => ComplianceStatus.to_s,
12
+ :status => ComplianceStatus::INCONCLUSIVE,
13
+ :reported_at => now
14
+ }
15
+ end
16
+
17
+ ComplianceStatus.upsert_all(rows, :unique_by => %i[type host_id], :update_only => %i[status reported_at])
18
+
19
+ refresh_global_statuses(host_ids)
20
+ end
21
+
22
+ def self.refresh_global_statuses(host_ids)
23
+ ::Host::Managed.where(:id => host_ids).find_each(&:refresh_global_status!)
24
+ end
25
+ end
26
+ end
data/config/routes.rb CHANGED
@@ -105,6 +105,8 @@ Rails.application.routes.draw do
105
105
  end
106
106
 
107
107
  match 'hosts/bulk/change_openscap_proxy', :to => 'compliance/hosts_bulk_actions#change_openscap_proxy', :via => [:put]
108
+ match 'compliance/hosts/bulk/assign_compliance_policy', :to => 'compliance/hosts_bulk_actions#assign_compliance_policy', :via => [:put]
109
+ match 'compliance/hosts/bulk/unassign_compliance_policy', :to => 'compliance/hosts_bulk_actions#unassign_compliance_policy', :via => [:put]
108
110
  end
109
111
  end
110
112
  end
@@ -76,7 +76,9 @@ module ForemanOpenscap
76
76
  :resource_type => 'ForemanOpenscap::Policy'
77
77
  permission :assign_policies, { :policies => %i[select_multiple_hosts update_multiple_hosts
78
78
  disassociate_multiple_hosts
79
- remove_policy_from_multiple_hosts] },
79
+ remove_policy_from_multiple_hosts],
80
+ 'api/v2/compliance/hosts_bulk_actions' => %i[assign_compliance_policy
81
+ unassign_compliance_policy] },
80
82
  :resource_type => 'ForemanOpenscap::Policy'
81
83
  permission :view_scap_contents, { :scap_contents => %i[index show auto_complete_search],
82
84
  'api/v2/compliance/scap_contents' => %i[index show xml],
@@ -1,3 +1,3 @@
1
1
  module ForemanOpenscap
2
- VERSION = '13.1.2'.freeze
2
+ VERSION = '13.2.0'.freeze
3
3
  end
@@ -417,7 +417,7 @@ msgid "Hosts passing this rule"
417
417
  msgstr "Regel angewandt auf Hosts."
418
418
 
419
419
  msgid "Hosts to explicitly exclude in the action. All other hosts will be included in the action, unless an included parameter is passed as well."
420
- msgstr ""
420
+ msgstr "Hosts, die explizit von der Aktion ausgeschlossen werden sollen. Alle anderen Hosts werden in die Aktion einbezogen, sofern nicht zusätzlich ein Parameter \"included\" übergeben wird."
421
421
 
422
422
  msgid "Hosts to include in the action"
423
423
  msgstr ""
@@ -491,13 +491,13 @@ msgid "List Tailoring files"
491
491
  msgstr "Tailoring-Dateien anzeigen"
492
492
 
493
493
  msgid "List of host ids to exclude and not perform the action on"
494
- msgstr ""
494
+ msgstr "Liste der Host-Kennungen, die beim Ausführen der Aktion ignoriert werden sollen"
495
495
 
496
496
  msgid "List of host ids to perform the action on"
497
- msgstr ""
497
+ msgstr "Liste der Host-Kennungen, für die die Aktion durchgeführt werden soll"
498
498
 
499
499
  msgid "Loading"
500
- msgstr ""
500
+ msgstr "Lade"
501
501
 
502
502
  msgid "Loading..."
503
503
  msgstr "Ladevorgang …"
@@ -847,7 +847,7 @@ msgid "Schedule"
847
847
  msgstr "Plan"
848
848
 
849
849
  msgid "Search string describing which hosts to perform the action on"
850
- msgstr ""
850
+ msgstr "Suchbegriff, der angibt, auf welchen Hosts die Aktion ausgeführt werden soll"
851
851
 
852
852
  msgid "Select Action"
853
853
  msgstr "Aktion auswählen"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_openscap 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: 2026-09-22 17:29+0000\n"
11
+ "PO-Revision-Date: 2026-09-29 11:05+0000\n"
12
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
14
  "Language: \n"
@@ -489,7 +489,7 @@ msgid "List of host ids to perform the action on"
489
489
  msgstr ""
490
490
 
491
491
  msgid "Loading"
492
- msgstr ""
492
+ msgstr "Loading"
493
493
 
494
494
  msgid "Loading..."
495
495
  msgstr ""
@@ -493,7 +493,7 @@ msgid "List of host ids to perform the action on"
493
493
  msgstr ""
494
494
 
495
495
  msgid "Loading"
496
- msgstr ""
496
+ msgstr "Cargando"
497
497
 
498
498
  msgid "Loading..."
499
499
  msgstr "Cargando..."
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_openscap 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2026-09-22 17:29+0000\n"
12
- "PO-Revision-Date: 2026-09-22 17:29+0000\n"
11
+ "POT-Creation-Date: 2026-09-29 11:05+0000\n"
12
+ "PO-Revision-Date: 2026-09-29 11:05+0000\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -51,7 +51,7 @@ msgid "%s reports over time"
51
51
  msgstr "%s rapports sur la durée"
52
52
 
53
53
  msgid "%s selected hosts."
54
- msgstr ""
54
+ msgstr "%s hôtes sélectionnés"
55
55
 
56
56
  msgid "%s spool errors detected, inspect the appropriate file directly on proxy"
57
57
  msgstr "%s erreurs de spool détectées, inspectez le fichier approprié directement sur le proxy"
@@ -72,7 +72,7 @@ msgid "A summary of reports for OpenSCAP policies"
72
72
  msgstr "Récapitulatif des rapports de stratégies OpenSCAP"
73
73
 
74
74
  msgid "ALL selected hosts."
75
- msgstr ""
75
+ msgstr "TOUS les hôtes sélectionnés."
76
76
 
77
77
  msgid "Actions"
78
78
  msgstr "Actions"
@@ -93,19 +93,19 @@ msgid "Apply policy to hosts"
93
93
  msgstr "Appliquer la politique aux hôtes"
94
94
 
95
95
  msgid "Assign"
96
- msgstr ""
96
+ msgstr "Attribuer"
97
97
 
98
98
  msgid "Assign Compliance Policy"
99
99
  msgstr "Attribuer un stratégie de conformité"
100
100
 
101
101
  msgid "Assign OpenSCAP Proxy"
102
- msgstr ""
102
+ msgstr "Attribuer un proxy OpenSCAP"
103
103
 
104
104
  msgid "Assign OpenSCAP Proxy for "
105
- msgstr ""
105
+ msgstr "Attribuer un proxy OpenSCAP pour "
106
106
 
107
107
  msgid "Assign OpenSCAP Proxy to multiple hosts"
108
- msgstr ""
108
+ msgstr "Attribuer le proxy OpenSCAP à plusieurs hôtes"
109
109
 
110
110
  msgid "Back"
111
111
  msgstr "Précédent"
@@ -325,8 +325,9 @@ msgstr "Échec de l'enregistrement%s :"
325
325
 
326
326
  msgid "Failed to assign OpenSCAP Proxy to %{failed} of %{total} host."
327
327
  msgid_plural "Failed to assign OpenSCAP Proxy to %{failed} of %{total} hosts."
328
- msgstr[0] ""
329
- msgstr[1] ""
328
+ msgstr[0] "Échec de l'attribution du proxy OpenSCAP à %{failed} de %{total} hôte."
329
+ msgstr[1] "Échec de l'attribution du proxy OpenSCAP à %{failed} de %{total} hôtes."
330
+ msgstr[2] "Échec de l'attribution du proxy OpenSCAP à %{failed} de %{total} hôtes."
330
331
 
331
332
  msgid "Failed to delete %s compliance reports"
332
333
  msgstr "Impossible de supprimer les rapports de conformité %s"
@@ -417,10 +418,10 @@ msgid "Hosts passing this rule"
417
418
  msgstr "Hôtes passant cette règle"
418
419
 
419
420
  msgid "Hosts to explicitly exclude in the action. All other hosts will be included in the action, unless an included parameter is passed as well."
420
- msgstr ""
421
+ msgstr "Versions à exclure explicitement dans l'action. Tous les autres versions applicables seront incluses dans l'action, à moins qu'un paramètre inclus ne soit également transmis."
421
422
 
422
423
  msgid "Hosts to include in the action"
423
- msgstr ""
424
+ msgstr "Hôtes à inclure dans l'action"
424
425
 
425
426
  msgid "How the policy should be deployed"
426
427
  msgstr "Comment la stratégie doit-elle être déployée"
@@ -429,7 +430,7 @@ msgid "ID of OpenSCAP Proxy"
429
430
  msgstr "ID du proxy OpenSCAP"
430
431
 
431
432
  msgid "ID of the OpenSCAP Proxy to assign to the hosts"
432
- msgstr ""
433
+ msgstr "Identifiant du proxy OpenSCAP à attribuer aux hôtes"
433
434
 
434
435
  msgid "In Foreman, a compliance policy checklist is defined via %s."
435
436
  msgstr "Dans Foreman, une liste de stratégies de conformité est définie via %s."
@@ -473,7 +474,7 @@ msgid "Latest reports for policy: %s"
473
474
  msgstr "Derniers rapports pour stratégie : %s"
474
475
 
475
476
  msgid "Line chart"
476
- msgstr ""
477
+ msgstr "Graphique linéaire"
477
478
 
478
479
  msgid "List ARF reports"
479
480
  msgstr "Afficher tous les rapports ARF"
@@ -491,13 +492,13 @@ msgid "List Tailoring files"
491
492
  msgstr "Répertorier les fichiers de personnalisation"
492
493
 
493
494
  msgid "List of host ids to exclude and not perform the action on"
494
- msgstr ""
495
+ msgstr "Liste des identifiants d'hôte à exclure et sur lesquels ne pas performer l'action"
495
496
 
496
497
  msgid "List of host ids to perform the action on"
497
- msgstr ""
498
+ msgstr "Liste des identifiants d'hôte sur lesquels performer l'action"
498
499
 
499
500
  msgid "Loading"
500
- msgstr ""
501
+ msgstr "Chargement"
501
502
 
502
503
  msgid "Loading..."
503
504
  msgstr "Chargement..."
@@ -545,7 +546,7 @@ msgid "No ARF reports for this policy"
545
546
  msgstr "Aucun rapport ARF pour cette stratégie"
546
547
 
547
548
  msgid "No OpenSCAP Proxies available. Please configure a Smart Proxy with the OpenSCAP feature."
548
- msgstr ""
549
+ msgstr "Aucun proxy OpenSCAP disponible. Veuillez configurer un proxy intelligent compatible avec OpenSCAP."
549
550
 
550
551
  msgid "No OpenSCAP Proxy selected."
551
552
  msgstr "Aucun proxy OpenSCAP n'a été sélectionné."
@@ -569,7 +570,7 @@ msgid "No compliance reports were found."
569
570
  msgstr "Aucun rapport de conformité trouvé."
570
571
 
571
572
  msgid "No data available"
572
- msgstr ""
573
+ msgstr "Aucune donnée disponible"
573
574
 
574
575
  msgid "No hosts selected"
575
576
  msgstr "Aucun hôte sélectionné"
@@ -635,13 +636,13 @@ msgid "OpenSCAP Proxy"
635
636
  msgstr "Proxy OpenSCAP"
636
637
 
637
638
  msgid "OpenSCAP Proxy is set to %s"
638
- msgstr ""
639
+ msgstr "OpenSCAP Proxy est configuré pour %s"
639
640
 
640
641
  msgid "OpenSCAP Proxy to use for fetching SCAP content and uploading ARF reports. Leave blank and override appropriate parameters when using proxy load balancer."
641
642
  msgstr "Proxy OpenSCAP à utiliser pour récupérer le contenu SCAP et télécharger les rapports ARF. Laissez ce champ vide et remplacez les paramètres appropriés lors de l'utilisation de l'équilibreur de charge proxy."
642
643
 
643
644
  msgid "OpenSCAP Proxy with id %s not found"
644
- msgstr ""
645
+ msgstr "Proxy OpenSCAP avec identifiant %s introuvable"
645
646
 
646
647
  msgid "Openscap Proxy"
647
648
  msgstr "Proxy Openscap"
@@ -847,7 +848,7 @@ msgid "Schedule"
847
848
  msgstr "Programmer"
848
849
 
849
850
  msgid "Search string describing which hosts to perform the action on"
850
- msgstr ""
851
+ msgstr "Chaîne de recherche décrivant les hôtes sur lesquels performer l'action"
851
852
 
852
853
  msgid "Select Action"
853
854
  msgstr "Choisir l'action"
@@ -932,8 +933,9 @@ msgstr "Rapport ARF supprimé."
932
933
 
933
934
  msgid "Successfully updated %{success} host."
934
935
  msgid_plural "Successfully updated %{success} hosts."
935
- msgstr[0] ""
936
- msgstr[1] ""
936
+ msgstr[0] "Mise à jour réussie %{success} hôte."
937
+ msgstr[1] "Mise à jour réussie %{success} hôtes."
938
+ msgstr[2] "Mise à jour réussie %{success} hôtes."
937
939
 
938
940
  msgid "Summary from %{time} ago to now"
939
941
  msgstr "Résumé de %{time} à maintenant"
@@ -982,7 +984,7 @@ msgid "The job has started on selected host(s), you can check the status on the
982
984
  msgstr "Le job a démarré sur le ou les hôtes sélectionnés, vous pouvez vérifier l'état sur la page des détails de ce job."
983
985
 
984
986
  msgid "The selected OpenSCAP Proxy does not have the OpenSCAP feature enabled."
985
- msgstr ""
987
+ msgstr "Le proxy OpenSCAP sélectionné ne dispose pas de la fonctionnalité OpenSCAP activée."
986
988
 
987
989
  msgid "There are significant differences in deployment options."
988
990
  msgstr "Il existe des différences importantes dans les options de déploiement."
@@ -1000,7 +1002,7 @@ msgid "This profile will be used to override the one from scap content"
1000
1002
  msgstr "Ce profil sera utilisé pour remplacer celui du contenu scap"
1001
1003
 
1002
1004
  msgid "This will change previous proxy assignments on the selected hosts."
1003
- msgstr ""
1005
+ msgstr "Cela modifiera les affectations de proxy précédentes sur les hôtes sélectionnés."
1004
1006
 
1005
1007
  msgid "Title"
1006
1008
  msgstr "Titre"
@@ -489,7 +489,7 @@ msgid "List of host ids to perform the action on"
489
489
  msgstr ""
490
490
 
491
491
  msgid "Loading"
492
- msgstr ""
492
+ msgstr "Cargando"
493
493
 
494
494
  msgid "Loading..."
495
495
  msgstr ""
@@ -491,7 +491,7 @@ msgid "List of host ids to perform the action on"
491
491
  msgstr ""
492
492
 
493
493
  msgid "Loading"
494
- msgstr ""
494
+ msgstr "Caricamento in corso"
495
495
 
496
496
  msgid "Loading..."
497
497
  msgstr "Caricamento..."
@@ -48,7 +48,7 @@ msgid "%s reports over time"
48
48
  msgstr "経過レポート %s 件"
49
49
 
50
50
  msgid "%s selected hosts."
51
- msgstr ""
51
+ msgstr "選択した %s 台のホスト。"
52
52
 
53
53
  msgid "%s spool errors detected, inspect the appropriate file directly on proxy"
54
54
  msgstr "%s のスプールエラーが検出されました。プロキシーで直接適切なファイルを検証してください。"
@@ -69,7 +69,7 @@ msgid "A summary of reports for OpenSCAP policies"
69
69
  msgstr "OpenSCAP ポリシーのレポートの概要"
70
70
 
71
71
  msgid "ALL selected hosts."
72
- msgstr ""
72
+ msgstr "選択されたすべてのホスト。"
73
73
 
74
74
  msgid "Actions"
75
75
  msgstr "アクション"
@@ -90,19 +90,19 @@ msgid "Apply policy to hosts"
90
90
  msgstr "ホストにポリシーを適用"
91
91
 
92
92
  msgid "Assign"
93
- msgstr ""
93
+ msgstr "割り当て"
94
94
 
95
95
  msgid "Assign Compliance Policy"
96
96
  msgstr "コンプライアンスポリシーの割り当て"
97
97
 
98
98
  msgid "Assign OpenSCAP Proxy"
99
- msgstr ""
99
+ msgstr "OpenSCAP プロキシーを割り当てる"
100
100
 
101
101
  msgid "Assign OpenSCAP Proxy for "
102
- msgstr ""
102
+ msgstr "OpenSCAP プロキシーを割り当てる:"
103
103
 
104
104
  msgid "Assign OpenSCAP Proxy to multiple hosts"
105
- msgstr ""
105
+ msgstr "複数のホストに OpenSCAP プロキシーを割り当てる"
106
106
 
107
107
  msgid "Back"
108
108
  msgstr "戻る"
@@ -322,8 +322,7 @@ msgstr "%s の保存に失敗しました:"
322
322
 
323
323
  msgid "Failed to assign OpenSCAP Proxy to %{failed} of %{total} host."
324
324
  msgid_plural "Failed to assign OpenSCAP Proxy to %{failed} of %{total} hosts."
325
- msgstr[0] ""
326
- msgstr[1] ""
325
+ msgstr[0] "%{total} 台中 %{failed} 台のホストへの OpenSCAP プロキシーの割り当てに失敗しました。"
327
326
 
328
327
  msgid "Failed to delete %s compliance reports"
329
328
  msgstr "%s コンプライアンスレポートの削除に失敗しました"
@@ -341,7 +340,7 @@ msgid "Failed to fetch spool status from proxy"
341
340
  msgstr "プロキシーからスプールステータスを取得できませんでした"
342
341
 
343
342
  msgid "Failed to save when overriding parameters for %{config_tool}, cause: %{errors}"
344
- msgstr "%{config_tool} のパラメーターの上書き時に保存に失敗しました。原因: %{errors}"
343
+ msgstr "%{config_tool} のパラメーターのオーバーライド時に保存に失敗しました。原因: %{errors}"
345
344
 
346
345
  msgid "Failed to upload Arf Report, OpenSCAP proxy name or url not found in params when uploading for %s and host is missing openscap_proxy"
347
346
  msgstr "Arf レポートのアップロードに失敗しました。%s のアップロード時にパラメーターで OpenSCAP プロキシー名または url が見つかりませんでした。ホストには openscap_proxy が設定されていません。"
@@ -414,10 +413,10 @@ msgid "Hosts passing this rule"
414
413
  msgstr "このルールに合格のホスト"
415
414
 
416
415
  msgid "Hosts to explicitly exclude in the action. All other hosts will be included in the action, unless an included parameter is passed as well."
417
- msgstr ""
416
+ msgstr "アクションから明示的に除外するホスト。それ以外のホストは、包含パラメーターが指定されていない限り、すべてアクションに追加されます。"
418
417
 
419
418
  msgid "Hosts to include in the action"
420
- msgstr ""
419
+ msgstr "アクションに追加するホスト"
421
420
 
422
421
  msgid "How the policy should be deployed"
423
422
  msgstr "ポリシーのデプロイメント方法"
@@ -426,7 +425,7 @@ msgid "ID of OpenSCAP Proxy"
426
425
  msgstr "OpenSCAP プロキシーの ID"
427
426
 
428
427
  msgid "ID of the OpenSCAP Proxy to assign to the hosts"
429
- msgstr ""
428
+ msgstr "ホストに割り当てる OpenSCAP プロキシーの ID"
430
429
 
431
430
  msgid "In Foreman, a compliance policy checklist is defined via %s."
432
431
  msgstr "Foreman では、コンプライアンスポリシーのチェックリストは %s で定義されます。"
@@ -470,7 +469,7 @@ msgid "Latest reports for policy: %s"
470
469
  msgstr "ポリシーの最新レポート: %s"
471
470
 
472
471
  msgid "Line chart"
473
- msgstr ""
472
+ msgstr "折れ線グラフ"
474
473
 
475
474
  msgid "List ARF reports"
476
475
  msgstr "ARF レポートの一覧表示"
@@ -488,16 +487,16 @@ msgid "List Tailoring files"
488
487
  msgstr "テーラリングファイルの一覧表示"
489
488
 
490
489
  msgid "List of host ids to exclude and not perform the action on"
491
- msgstr ""
490
+ msgstr "除外してアクションを実行しないホスト ID の一覧"
492
491
 
493
492
  msgid "List of host ids to perform the action on"
494
- msgstr ""
493
+ msgstr "アクションを実行するホスト ID の一覧"
495
494
 
496
495
  msgid "Loading"
497
- msgstr ""
496
+ msgstr "ロード中"
498
497
 
499
498
  msgid "Loading..."
500
- msgstr "読み込み中..."
499
+ msgstr "ロード中..."
501
500
 
502
501
  msgid "Locations"
503
502
  msgstr "ロケーション"
@@ -542,7 +541,7 @@ msgid "No ARF reports for this policy"
542
541
  msgstr "このポリシーの ARF レポートがありません"
543
542
 
544
543
  msgid "No OpenSCAP Proxies available. Please configure a Smart Proxy with the OpenSCAP feature."
545
- msgstr ""
544
+ msgstr "利用可能な OpenSCAP プロキシーがありません。OpenSCAP 機能を備えた Smart Proxy を設定してください。"
546
545
 
547
546
  msgid "No OpenSCAP Proxy selected."
548
547
  msgstr "OpenSCAP プロキシーが選択されていません。"
@@ -566,7 +565,7 @@ msgid "No compliance reports were found."
566
565
  msgstr "コンプライアンスレポートが見つかりませんでした。"
567
566
 
568
567
  msgid "No data available"
569
- msgstr ""
568
+ msgstr "利用可能なデータはありません"
570
569
 
571
570
  msgid "No hosts selected"
572
571
  msgstr "ホストが選択されていません"
@@ -632,13 +631,13 @@ msgid "OpenSCAP Proxy"
632
631
  msgstr "OpenSCAP プロキシー"
633
632
 
634
633
  msgid "OpenSCAP Proxy is set to %s"
635
- msgstr ""
634
+ msgstr "OpenSCAP プロキシーは %s に設定されています。"
636
635
 
637
636
  msgid "OpenSCAP Proxy to use for fetching SCAP content and uploading ARF reports. Leave blank and override appropriate parameters when using proxy load balancer."
638
- msgstr "SCAP コンテンツのフェッチおよび ARF レポートのアップロードに使用する OpenSCAP プロキシー。プロキシーロードバランサーを使用する場合には、空白にして、適切なパラメーターを上書きします。"
637
+ msgstr "SCAP コンテンツのフェッチおよび ARF レポートのアップロードに使用する OpenSCAP プロキシー。プロキシーロードバランサーを使用する場合には、空白にして、適切なパラメーターをオーバーライドします。"
639
638
 
640
639
  msgid "OpenSCAP Proxy with id %s not found"
641
- msgstr ""
640
+ msgstr "ID %s の OpenSCAP プロキシーが見つかりません"
642
641
 
643
642
  msgid "Openscap Proxy"
644
643
  msgstr "OpenSCAP プロキシー"
@@ -760,7 +759,7 @@ msgid "Remote job"
760
759
  msgstr "リモートジョブ"
761
760
 
762
761
  msgid "Report Metrics"
763
- msgstr "レポートメトリックス"
762
+ msgstr "レポートメトリクス"
764
763
 
765
764
  msgid "Report Status"
766
765
  msgstr "レポートのステータス"
@@ -844,7 +843,7 @@ msgid "Schedule"
844
843
  msgstr "スケジュール"
845
844
 
846
845
  msgid "Search string describing which hosts to perform the action on"
847
- msgstr ""
846
+ msgstr "アクションを実行するホストを表す検索文字列"
848
847
 
849
848
  msgid "Select Action"
850
849
  msgstr "アクションの選択"
@@ -929,8 +928,7 @@ msgstr "ARF レポートが正常に削除されました。"
929
928
 
930
929
  msgid "Successfully updated %{success} host."
931
930
  msgid_plural "Successfully updated %{success} hosts."
932
- msgstr[0] ""
933
- msgstr[1] ""
931
+ msgstr[0] "%{success} 台のホストを正常に更新しました。"
934
932
 
935
933
  msgid "Summary from %{time} ago to now"
936
934
  msgstr "過去 %{time} から今までの概要"
@@ -979,7 +977,7 @@ msgid "The job has started on selected host(s), you can check the status on the
979
977
  msgstr "選択したホストでジョブが開始しました。ジョブの詳細ページでステータスを確認できます。"
980
978
 
981
979
  msgid "The selected OpenSCAP Proxy does not have the OpenSCAP feature enabled."
982
- msgstr ""
980
+ msgstr "選択された OpenSCAP プロキシーでは、OpenSCAP 機能が有効化されていません。"
983
981
 
984
982
  msgid "There are significant differences in deployment options."
985
983
  msgstr "デプロイメントオプションには大きな違いがあります。"
@@ -997,7 +995,7 @@ msgid "This profile will be used to override the one from scap content"
997
995
  msgstr "このプロファイルは、scap コンテンツのプロファイルをオーバーライドするために使用されます"
998
996
 
999
997
  msgid "This will change previous proxy assignments on the selected hosts."
1000
- msgstr ""
998
+ msgstr "これにより、選択したホスト上の以前のプロキシー割り当てが変更されます。"
1001
999
 
1002
1000
  msgid "Title"
1003
1001
  msgstr "タイトル"
@@ -416,7 +416,7 @@ msgid "Hosts to explicitly exclude in the action. All other hosts will be includ
416
416
  msgstr ""
417
417
 
418
418
  msgid "Hosts to include in the action"
419
- msgstr ""
419
+ msgstr "ჰოსტები, რომლებზეც ქმედებები გადატარდება"
420
420
 
421
421
  msgid "How the policy should be deployed"
422
422
  msgstr "წესის გაშლის მიმდევრობა"
@@ -483,13 +483,13 @@ msgid "List Tailoring files"
483
483
  msgstr "მორგების ფაილების სია"
484
484
 
485
485
  msgid "List of host ids to exclude and not perform the action on"
486
- msgstr ""
486
+ msgstr "ქმედების გადატარებისას ამოსაღები ჰოსტების ID-ების სია"
487
487
 
488
488
  msgid "List of host ids to perform the action on"
489
- msgstr ""
489
+ msgstr "ქმედების გადასატარებელი ჰოსტების ID-ების სია"
490
490
 
491
491
  msgid "Loading"
492
- msgstr ""
492
+ msgstr "იტვირთება"
493
493
 
494
494
  msgid "Loading..."
495
495
  msgstr "იტვირთება..."
@@ -839,7 +839,7 @@ msgid "Schedule"
839
839
  msgstr "განრიგი"
840
840
 
841
841
  msgid "Search string describing which hosts to perform the action on"
842
- msgstr ""
842
+ msgstr "ქმედების გადასატარებელი ჰოსტების მოსაძებნი სტრიქონი"
843
843
 
844
844
  msgid "Select Action"
845
845
  msgstr "აირჩიეთ ქმედება"