katello 4.14.0.rc3 → 4.14.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/sync_management/sync_management.js +13 -9
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
  4. data/app/controllers/katello/api/v2/organizations_controller.rb +1 -0
  5. data/app/lib/actions/katello/capsule_content/sync.rb +1 -0
  6. data/app/lib/actions/katello/repository/create_root.rb +10 -2
  7. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +6 -2
  8. data/app/models/katello/concerns/host_managed_extensions.rb +18 -16
  9. data/app/models/katello/glue/pulp/repos.rb +3 -3
  10. data/app/models/katello/host/info_provider.rb +3 -0
  11. data/app/models/katello/host/subscription_facet.rb +1 -1
  12. data/app/models/katello/repository.rb +3 -1
  13. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +1 -1
  14. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +1 -1
  15. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  16. data/app/views/katello/api/v2/content_views/show.json.rabl +0 -1
  17. data/app/views/katello/sync_management/index.html.erb +2 -2
  18. data/db/migrate/20240729192228_add_convert2rhel_to_host_facets.rb +1 -1
  19. data/engines/bastion/app/assets/javascripts/bastion/i18n/i18n.module.js +4 -0
  20. data/engines/bastion/vendor/assets/javascripts/bastion/angular-gettext/angular-gettext.js +5 -1
  21. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +3 -3
  22. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +0 -1
  23. data/lib/katello/permission_creator.rb +6 -1
  24. data/lib/katello/version.rb +1 -1
  25. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/02_BulkErrataTable.js +0 -2
  26. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +0 -2
  27. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +0 -2
  28. data/webpack/redux/actions/RedHatRepositories/helpers.js +6 -6
  29. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +6 -4
  30. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +1 -1
  31. metadata +4 -52
  32. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  33. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  34. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  35. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  36. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  37. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  38. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  39. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  40. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  41. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  42. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  43. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  44. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  45. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  46. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  47. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  48. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  49. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  50. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  51. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  52. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  53. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  54. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  55. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  56. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  57. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  58. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  59. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  60. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  61. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  62. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  63. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  64. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  65. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  66. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  67. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  68. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  69. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  70. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  71. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  72. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  73. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  74. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  75. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  76. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  77. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  78. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  79. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59babbb3cb7836e9eb0567c1dea29d720eaa3b96968f4d078eeaf98d4e3177a1
4
- data.tar.gz: d57019bdcc781e11d389669b393f5ea8a8b144f09a6f87dbddac773a346b3257
3
+ metadata.gz: eb838f1316844984ac6a811415ee7ffd5b91c7e4b968b96de55b0bf3adf1f0b7
4
+ data.tar.gz: b8158bfab87d2e3cbe687af69e65962a8627bc78516f6f20b190864854eee4e3
5
5
  SHA512:
6
- metadata.gz: 0f668a837bd14561a7da7712b31b9f59df257276ea8b96224e9ca4bbd655cd799ae47474d98f7cb60a716765c41db9837730ead8499671799316bf24c2baf3ad
7
- data.tar.gz: 726e63b52258f087bcbf640d8a01c398e23a683fec281aeddfc3b2ac97383eff599d593f78ac638c3d4443e60b55f45de132966cab505ad0de3f07cdb87521f9
6
+ metadata.gz: e2e57134ff21bfaffb6bd31b2954adad011b6cb63991e66a2ca54d08f596b63c061177049402aa9831e8407ef2d7006f0b2d536892757c69e5cc5f716cdff687
7
+ data.tar.gz: f2badc68f6c7b3638fb076e2cabeca5a60c073fffee6d6a7c6e2f886a906085adc5d54fc5babc44280f00a1a1e5e7a188b25b7de64a359ead41950b9ec289367
@@ -205,10 +205,22 @@ KT.content = (function () {
205
205
  $(this).collapse();
206
206
  });
207
207
  };
208
+ populate_repo_status = function () {
209
+ var ids = [];
210
+ $.each(KT.repo_status, function (repo_id, status) {
211
+ if (status.is_running) {
212
+ ids.push(repo_id);
213
+ KT.content.draw_syncing(repo_id, status.progress.progress, status.sync_id);
214
+ }
215
+ });
216
+ KT.content.reset_products(KT.repo_status);
217
+ KT.content_actions.addSyncing(ids);
218
+ }
208
219
 
209
220
  return {
210
221
  updateProduct: updateProduct,
211
222
  updateRepo: updateRepo,
223
+ populateRepoStatus: populate_repo_status,
212
224
  finishRepo: finishRepo,
213
225
  select_all: select_all,
214
226
  select_none: select_none,
@@ -346,15 +358,7 @@ KT.content_actions = (function () {
346
358
  };
347
359
  })();
348
360
 
349
- var ids = [];
350
- $.each(KT.repo_status, function (repo_id, status) {
351
- if (status.is_running) {
352
- ids.push(repo_id);
353
- KT.content.draw_syncing(repo_id, status.progress.progress, status.sync_id);
354
- }
355
- });
356
- KT.content.reset_products(KT.repo_status);
357
- KT.content_actions.addSyncing(ids);
361
+ KT.content.populateRepoStatus();
358
362
 
359
363
  $("#select_all").click(KT.content.select_all);
360
364
  $("#select_none").click(KT.content.select_none);
@@ -332,9 +332,9 @@ module Katello
332
332
  end
333
333
  elsif params.key?(:organization_id) && !params.key?(:environment_id) && !params.key?(:environments)
334
334
  organization = Organization.current
335
- environments = organization.library.content_view_environment
335
+ environments = [organization.library.content_view_environment]
336
336
  elsif User.current.default_organization.present?
337
- environments = User.current.default_organization.library.content_view_environment
337
+ environments = [User.current.default_organization.library.content_view_environment]
338
338
  else
339
339
  fail HttpErrors::NotFound, _("User '%s' did not specify an organization ID and does not have a default organization.") % current_user.login
340
340
  end
@@ -50,6 +50,7 @@ module Katello
50
50
  param :id, :number, :desc => N_("organization ID"), :required => true
51
51
  def show
52
52
  @render_template = 'katello/api/v2/organizations/show'
53
+ @organization.manifest_expiration_date(cached: false) if params[:force_manifest_expire_cache]
53
54
  super
54
55
  end
55
56
 
@@ -2,6 +2,7 @@ module Actions
2
2
  module Katello
3
3
  module CapsuleContent
4
4
  class Sync < ::Actions::EntryAction
5
+ middleware.do_not_use Dynflow::Middleware::Common::Transaction
5
6
  include ::Actions::ObservableAction
6
7
  def resource_locks
7
8
  :link
@@ -3,11 +3,19 @@ module Actions
3
3
  module Repository
4
4
  class CreateRoot < Actions::EntryAction
5
5
  def plan(root, relative_path = nil)
6
- root.save!
6
+ begin
7
+ root.save!
8
+ rescue ActiveRecord::RecordInvalid => e
9
+ if root.is_container_push && e.message.include?("Container Repository Name") && e.message.include?("conflicts with an existing repository")
10
+ logger.warn("Skipping repository creation as container push repository already exists: #{root.container_push_name}")
11
+ return
12
+ end
13
+ raise e
14
+ end
7
15
  repository = ::Katello::Repository.new(:environment => root.organization.library,
8
16
  :content_view_version => root.organization.library.default_content_view_version,
9
17
  :root => root)
10
- repository.container_repository_name = relative_path
18
+ repository.container_repository_name = relative_path if root.docker? && root.is_container_push
11
19
  repository.relative_path = relative_path || repository.custom_repo_path
12
20
  repository.save!
13
21
 
@@ -14,7 +14,11 @@ module Actions
14
14
  to_delete = content_view.repository_references.select do |repository_reference|
15
15
  repo = repository_reference.root_repository.library_instance
16
16
  if delete_href?(repository_reference.repository_href, content_view)
17
- tasks << repo.backend_service(smart_proxy).delete_repository(repository_reference)
17
+ if repo.root.is_container_push?
18
+ tasks << repo.backend_service(smart_proxy).delete_distributions
19
+ else
20
+ tasks << repo.backend_service(smart_proxy).delete_repository(repository_reference)
21
+ end
18
22
  true
19
23
  else
20
24
  false
@@ -22,7 +26,7 @@ module Actions
22
26
  end
23
27
  to_delete.each(&:destroy)
24
28
 
25
- output[:pulp_tasks] = tasks
29
+ output[:pulp_tasks] = tasks.compact
26
30
  end
27
31
 
28
32
  #migrated composites may have the same RepositoryReference as their component
@@ -511,17 +511,17 @@ module Katello
511
511
  actions = %w(install remove update).freeze
512
512
  case action
513
513
  when 'install'
514
- yum_installable = ::Katello::Rpm.yum_installable_for_host(self).search_for(search).distinct.pluck(:name)
514
+ yum_installable = ::Katello::Rpm.search_for(search).distinct.pluck(:name)
515
515
  if yum_installable.empty?
516
- fail N_("No available packages found for search term '%s'. Check the host's content view environments and already-installed packages.") % search
516
+ fail N_("No available packages found for search term '%s'.") % search
517
517
  end
518
518
  yum_installable
519
519
  when 'remove'
520
520
  return [] if search.empty?
521
521
 
522
- yum_removable = installed_packages.search_for(search).distinct.pluck(:name)
522
+ yum_removable = ::Katello::InstalledPackage.search_for(search).distinct.pluck(:name)
523
523
  if yum_removable.empty?
524
- fail N_("Cannot remove package(s): This host does not have any installed packages matching the search term '%s'.") % search
524
+ fail N_("Cannot remove package(s): No installed packages found for search term '%s'.") % search
525
525
  end
526
526
  yum_removable
527
527
  when 'update'
@@ -536,14 +536,15 @@ module Katello
536
536
  end
537
537
  pkg_name_archs = installed_packages.search_for(search).distinct.pluck(:name, :arch)
538
538
  if pkg_name_archs.empty?
539
- fail _("Cannot upgrade packages: No installed packages found for search term '%s'") % search
539
+ fail _("Cannot upgrade packages: No installed packages found for search term '%s'.") % search
540
540
  end
541
- upgrades = ::Katello::Rpm.installable_for_hosts([self]).select(:id, :name, :arch, :nvra, :evr).order(evr: :desc).group_by { |i| [i.name, i.arch] }
542
- result = pkg_name_archs.map { |name, arch| versions_by_name_arch[[name, arch]] || upgrades[[name, arch]]&.first&.nvra }.compact
543
- if result.empty?
544
- fail _("No upgradable packages found for search term '%s'. The host may already have the latest version(s) installed.") % search
541
+ versionless_upgrades = ::Katello::Rpm.where(name: pkg_name_archs.map(&:first)).select(:id, :name, :arch, :evr).order(evr: :desc).group_by { |i| [i.name, i.arch] }
542
+ # Use versions_by_name_arch if a version is specified, otherwise use the latest version. If using the latest version, upgrade by name only, not by name and arch.
543
+ pkg_names_and_nvras = pkg_name_archs.map { |name, arch| versions_by_name_arch[[name, arch]] || versionless_upgrades[[name, arch]]&.first&.name }.compact
544
+ if pkg_names_and_nvras.empty?
545
+ fail _("No upgradable packages found for search term '%s'.") % search
545
546
  end
546
- result
547
+ pkg_names_and_nvras
547
548
  else
548
549
  fail ::Foreman::Exception.new(N_("package_names_for_job_template: Action must be one of %s"), actions.join(', '))
549
550
  end
@@ -554,7 +555,7 @@ module Katello
554
555
  actions = %w(install remove update).freeze
555
556
  case action
556
557
  when 'install'
557
- deb_installable = ::Katello::Deb.apt_installable_for_host(self).search_for(search).distinct.pluck(:name)
558
+ deb_installable = ::Katello::Deb.search_for(search).distinct.pluck(:name)
558
559
  if deb_installable.empty?
559
560
  fail _("No available debs found for search term '%s'. Check the host's content view environments and already-installed debs.") % search
560
561
  end
@@ -562,10 +563,10 @@ module Katello
562
563
  when 'remove'
563
564
  return [] if search.empty?
564
565
 
565
- installed_debs.search_for(search).distinct.pluck(:name)
566
+ ::Katello::InstalledDeb.search_for(search).distinct.pluck(:name)
566
567
  when 'update'
567
568
  return [] if search.empty?
568
- deb_results = installed_debs.search_for(search).distinct.pluck(:name)
569
+ deb_results = ::Katello::InstalledDeb.search_for(search).distinct.pluck(:name)
569
570
  if deb_results.empty?
570
571
  fail _("No installed debs found for search term '%s'") % search
571
572
  end
@@ -575,10 +576,11 @@ module Katello
575
576
  end
576
577
  end
577
578
 
578
- def advisory_ids(search:)
579
- ids = ::Katello::Erratum.installable_for_hosts([self]).search_for(search).pluck(:errata_id)
579
+ def advisory_ids(search:, check_installable_for_host: true)
580
+ errata_scope = check_installable_for_host ? ::Katello::Erratum.installable_for_hosts([self]) : ::Katello::Erratum
581
+ ids = errata_scope.search_for(search).pluck(:errata_id)
580
582
  if ids.empty?
581
- fail _("Cannot install errata: No installable errata found for search term '%s'") % search
583
+ fail _("Cannot install errata: No errata found for search term '%s'") % search
582
584
  end
583
585
  ids
584
586
  end
@@ -137,10 +137,10 @@ module Katello
137
137
 
138
138
  # Container push may concurrently call root add several times before the db can update.
139
139
  if repo_param[:is_container_push]
140
- RootRepository.create_or_find_by!(repo_param)
141
- else
142
- RootRepository.new(repo_param)
140
+ root = RootRepository.find_by(repo_param)
141
+ return root if root
143
142
  end
143
+ RootRepository.new(repo_param)
144
144
  end
145
145
  end
146
146
  end
@@ -35,8 +35,11 @@ module Katello
35
35
  end
36
36
 
37
37
  def content_view_info(content_view_environment)
38
+ return {} if content_view_environment.blank?
39
+
38
40
  content_view = content_view_environment.content_view
39
41
  return {} if content_view.blank?
42
+
40
43
  {
41
44
  'label' => content_view.try(:label),
42
45
  'latest-version' => content_view.try(:latest_version),
@@ -158,7 +158,7 @@ module Katello
158
158
  { :id => cve.content_view.cp_environment_id(cve.lifecycle_environment) }
159
159
  end
160
160
  else
161
- self.host.organization.default_content_view.cp_environment_id(self.host.organization.library)
161
+ [{ :id => self.host.organization.default_content_view.cp_environment_id(self.host.organization.library) }]
162
162
  end
163
163
  end
164
164
 
@@ -272,8 +272,10 @@ module Katello
272
272
  self.content_view_version.content_view
273
273
  end
274
274
 
275
+ # Skip setting container name if the repository is not container type or
276
+ # if it's a library instance of a container-push repo, indicating that the container name is set by the user.
275
277
  def skip_container_name?
276
- self.library_instance? && self.root.docker? && self.root.is_container_push
278
+ !self.root.docker? || (self.root.is_container_push && self.library_instance?)
277
279
  end
278
280
 
279
281
  def library_instance?
@@ -15,7 +15,7 @@ foreign_input_sets:
15
15
  exclude: action,package
16
16
  %>
17
17
 
18
- <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) -%>
18
+ <% advisory_ids = @host.advisory_ids(search: input("Errata search query"), check_installable_for_host: false) -%>
19
19
  <% render_error(N_("No errata matching given search query")) if !input("Errata search query").blank? && advisory_ids.blank? -%>
20
20
  # RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
21
21
 
@@ -12,7 +12,7 @@ template_inputs:
12
12
  required: false
13
13
  %>
14
14
 
15
- <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) -%>
15
+ <% advisory_ids = @host.advisory_ids(search: input("Errata search query"), check_installable_for_host: false) -%>
16
16
  <% render_error(N_("No errata matching given search query")) if !input("Errata search query").blank? && advisory_ids.blank? -%>
17
17
  # RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
18
18
 
@@ -13,6 +13,7 @@ attributes :generated_for
13
13
  attributes :related_cv_count
14
14
  attributes :related_composite_cvs
15
15
  attributes :filtered? => :filtered
16
+ attributes :needs_publish? => :needs_publish
16
17
 
17
18
  node :next_version do |content_view|
18
19
  content_view.next_version.to_f.to_s
@@ -3,7 +3,6 @@ object @resource
3
3
  extends "katello/api/v2/content_views/base"
4
4
 
5
5
  attributes :content_host_count
6
- attributes :needs_publish? => :needs_publish
7
6
 
8
7
  node :errors do
9
8
  unless @resource.valid?
@@ -8,9 +8,9 @@
8
8
  "complete": "<%= escape_javascript(_('Sync complete.')) %>",
9
9
  "no_start_time": "<%= escape_javascript(_('No start time currently available.')) %>"
10
10
  });
11
-
12
- KT.repo_status = $.parseJSON('<%= escape_javascript(@repo_status.to_json.html_safe) %>');
11
+ KT.repo_status = JSON.parse('<%= escape_javascript(@repo_status.to_json.html_safe) %>');
13
12
  KT.permissions = { "syncable" : <%= any_syncable? %> };
13
+ KT.content.populateRepoStatus();
14
14
  </script>
15
15
  <% end -%>
16
16
 
@@ -4,6 +4,6 @@ class AddConvert2rhelToHostFacets < ActiveRecord::Migration[6.1]
4
4
  end
5
5
 
6
6
  def down
7
- remove_column :subscription_facets, :convert2rhel_through_foreman
7
+ remove_column :katello_subscription_facets, :convert2rhel_through_foreman
8
8
  end
9
9
  end
@@ -5,6 +5,10 @@
5
5
  * @description
6
6
  * Module for internationalization.
7
7
  */
8
+ var loadAngularJSi18n = new Event('loadAngularJSi18n');
9
+
8
10
  angular.module('Bastion.i18n', [
9
11
  'gettext'
10
12
  ]);
13
+
14
+ document.dispatchEvent(loadAngularJSi18n);
@@ -1,3 +1,5 @@
1
+ var loadAngularJSgettext = new Event('loadAngularJSgettext');
2
+
1
3
  angular.module('gettext', []);
2
4
  angular.module('gettext').constant('gettext', function (str) {
3
5
  /*
@@ -342,4 +344,6 @@ angular.module('gettext').factory('gettextPlurals', function () {
342
344
  return n != 1 ? 1 : 0;
343
345
  }
344
346
  };
345
- });
347
+ });
348
+
349
+ document.dispatchEvent(loadAngularJSgettext);
@@ -9,7 +9,7 @@
9
9
  ng-upload="uploadContent(content)"
10
10
  upload-options-enable-rails-csrf>
11
11
 
12
- <div bst-form-group label="{{ 'Name' | translate }}">
12
+ <div bst-form-group label="{{ 'Name *' | translate }}">
13
13
  <input id="name"
14
14
  name="name"
15
15
  ng-model="contentCredential.name"
@@ -28,7 +28,7 @@
28
28
  </select>
29
29
  </div>
30
30
 
31
- <div bst-form-group label="{{ 'Content Credential Contents' | translate }}">
31
+ <div bst-form-group label="{{ 'Content Credential Contents *' | translate }}">
32
32
  <textarea name="content"
33
33
  ng-model="contentCredential.pastedContent"
34
34
  tabindex="1"
@@ -36,7 +36,7 @@
36
36
  style="font-family: monospace"
37
37
  rows="15"
38
38
  placeholder="{{ 'Paste contents of Content Credential' | translate }}"
39
- required>
39
+ >
40
40
  </textarea>
41
41
  </div>
42
42
 
@@ -39,7 +39,6 @@ angular.module('Bastion.content-hosts').service('ContentHostsModalHelper', ['$ui
39
39
  $uibModal.open({
40
40
  templateUrl: 'content-hosts/bulk/views/content-hosts-bulk-errata-modal.html',
41
41
  controller: 'ContentHostsBulkErrataModalController',
42
- openedClass: 'bastion',
43
42
  size: 'lg',
44
43
  resolve: {
45
44
  hostIds: this.resolveFunc()
@@ -51,6 +51,11 @@ module Katello
51
51
  end
52
52
 
53
53
  def capsule_content_permissions
54
+ @plugin.permission :view_smart_proxies,
55
+ {
56
+ 'katello/api/v2/capsules' => [:index, :show]
57
+ },
58
+ :resource_type => "SmartProxy"
54
59
  @plugin.permission :manage_capsule_content,
55
60
  {
56
61
  'katello/api/v2/capsule_content' => [:add_lifecycle_environment, :remove_lifecycle_environment,
@@ -62,7 +67,7 @@ module Katello
62
67
  @plugin.permission :view_capsule_content,
63
68
  {
64
69
  'katello/api/v2/capsule_content' => [:counts, :lifecycle_environments, :available_lifecycle_environments, :sync_status],
65
- 'smart_proxies' => [:pulp_storage, :pulp_status, :show_with_content],
70
+ 'smart_proxies' => [:pulp_storage, :pulp_status, :show_with_content, :index],
66
71
  'katello/api/v2/capsules' => [:index, :show]
67
72
  },
68
73
  :resource_type => "SmartProxy"
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.14.0.rc3".freeze
2
+ VERSION = "4.14.1".freeze
3
3
  end
@@ -148,8 +148,6 @@ const BulkErrataTable = () => {
148
148
  showCheckboxes
149
149
  apiUrl={ERRATA_URL}
150
150
  apiOptions={apiOptions}
151
- headerText={__('Errata')}
152
- header={null}
153
151
  controller="errata"
154
152
  customSearchProps={customSearchProps}
155
153
  creatable={false}
@@ -133,8 +133,6 @@ const BulkPackagesTable = ({
133
133
  showCheckboxes
134
134
  apiUrl={PACKAGES_URL}
135
135
  apiOptions={apiOptions}
136
- headerText={__('Packages')}
137
- header={null}
138
136
  controller="packages"
139
137
  customSearchProps={customSearchProps}
140
138
  creatable={false}
@@ -122,8 +122,6 @@ const HostReview = ({
122
122
  showCheckboxes
123
123
  apiUrl={HOSTS_API_PATH}
124
124
  apiOptions={apiOptions}
125
- headerText={__('Hosts')}
126
- header={null}
127
125
  controller="hosts"
128
126
  creatable={false}
129
127
  replacementResponse={response}
@@ -20,17 +20,17 @@ const recommendedRepositoriesRHEL = [
20
20
  'rhel-8-for-x86_64-appstream-kickstart',
21
21
  'rhel-8-for-x86_64-baseos-eus-rpms',
22
22
  'rhel-8-for-x86_64-appstream-eus-rpms',
23
- 'rhel-7-server-rpms',
24
- 'rhel-7-server-optional-rpms',
25
- 'rhel-7-server-extras-rpms',
26
- 'rhel-7-server-kickstart',
23
+ 'rhel-7-server-els-rpms',
24
+ 'rhel-7-server-els-optional-rpms',
27
25
  ];
28
26
 
29
27
  const recommendedRepositoriesSatTools = [
30
28
  'satellite-client-6-for-rhel-9-x86_64-rpms',
31
29
  'satellite-client-6-for-rhel-8-x86_64-rpms',
32
- 'rhel-7-server-satellite-client-6-rpms',
33
- 'rhel-6-server-els-satellite-client-6-rpms',
30
+ 'rhel-7-server-els-satellite-client-6-rpms',
31
+ 'rhel-7-server-els-satellite-6-client-2-rpms',
32
+ 'satellite-6-client-2-for-rhel-8-x86_64-rpms',
33
+ 'satellite-6-client-2-for-rhel-9-x86_64-rpms',
34
34
  ];
35
35
 
36
36
  const recommendedRepositoriesMisc = [
@@ -4,7 +4,7 @@ import { Grid, Col, Row, Tabs, Tab, FormControl, ControlLabel } from 'react-boot
4
4
  import { FormattedMessage } from 'react-intl';
5
5
  import { Button, Spinner } from 'patternfly-react';
6
6
  import { Alert } from '@patternfly/react-core';
7
- import { propsToCamelCase } from 'foremanReact/common/helpers';
7
+ import { propsToCamelCase, getDocsURL } from 'foremanReact/common/helpers';
8
8
  import ForemanModal from 'foremanReact/components/ForemanModal';
9
9
  import Slot from 'foremanReact/components/common/Slot';
10
10
  import { translate as __ } from 'foremanReact/common/I18n';
@@ -12,6 +12,7 @@ import TooltipButton from '../../../components/TooltipButton';
12
12
  import { LoadingState } from '../../../components/LoadingState';
13
13
  import { Table } from '../../../components/pf3Table';
14
14
 
15
+
15
16
  import { columns } from './ManifestHistoryTableSchema';
16
17
  import DeleteManifestModalText from './DeleteManifestModalText';
17
18
  import { MANAGE_MANIFEST_MODAL_ID, DELETE_MANIFEST_MODAL_ID } from './ManifestConstants';
@@ -32,7 +33,7 @@ class ManageManifestModal extends Component {
32
33
  }
33
34
 
34
35
  if (prevProps.taskInProgress && !this.props.taskInProgress) {
35
- this.props.loadOrganization();
36
+ this.props.loadOrganization({ force_manifest_expire_cache: true });
36
37
  this.props.loadManifestHistory();
37
38
  }
38
39
 
@@ -111,8 +112,9 @@ class ManageManifestModal extends Component {
111
112
  header: __('There is no manifest history to display.'),
112
113
  description: __('Import a manifest using the Manifest tab above.'),
113
114
  documentation: {
114
- label: __('Learn more about adding subscription manifests '),
115
- url: 'https://access.redhat.com/solutions/3410771',
115
+ label: __('Learn more about adding subscription manifests in '),
116
+ buttonLabel: __('the documentation.'),
117
+ url: getDocsURL('Managing_Content', 'Managing_Red_Hat_Subscriptions_content-management'),
116
118
  },
117
119
  });
118
120
 
@@ -204,7 +204,7 @@ class SubscriptionsPage extends Component {
204
204
  description: __('Add subscriptions using the Add Subscriptions button.'),
205
205
  action: {
206
206
  title: __('Add subscriptions'),
207
- url: 'subscriptions/add',
207
+ url: '/subscriptions/add',
208
208
  },
209
209
  }
210
210
  : {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katello
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.14.0.rc3
4
+ version: 4.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-12 00:00:00.000000000 Z
11
+ date: 2024-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -4387,103 +4387,55 @@ files:
4387
4387
  - locale/Makefile
4388
4388
  - locale/README
4389
4389
  - locale/action_names.rb
4390
- - locale/bn/LC_MESSAGES/katello.mo
4391
4390
  - locale/bn/katello.po
4392
- - locale/bn_IN/LC_MESSAGES/katello.mo
4393
4391
  - locale/bn_IN/katello.po
4394
- - locale/ca/LC_MESSAGES/katello.mo
4395
4392
  - locale/ca/katello.po
4396
- - locale/cs/LC_MESSAGES/katello.mo
4397
4393
  - locale/cs/katello.po
4398
- - locale/cs_CZ/LC_MESSAGES/katello.mo
4399
4394
  - locale/cs_CZ/katello.po
4400
- - locale/de/LC_MESSAGES/katello.mo
4401
4395
  - locale/de/katello.po
4402
- - locale/de_AT/LC_MESSAGES/katello.mo
4403
4396
  - locale/de_AT/katello.po
4404
- - locale/de_DE/LC_MESSAGES/katello.mo
4405
4397
  - locale/de_DE/katello.po
4406
- - locale/el/LC_MESSAGES/katello.mo
4407
4398
  - locale/el/katello.po
4408
- - locale/en/LC_MESSAGES/katello.mo
4409
4399
  - locale/en/katello.po
4410
- - locale/en_GB/LC_MESSAGES/katello.mo
4411
4400
  - locale/en_GB/katello.po
4412
- - locale/en_US/LC_MESSAGES/katello.mo
4413
4401
  - locale/en_US/katello.po
4414
- - locale/es/LC_MESSAGES/katello.mo
4415
4402
  - locale/es/katello.po
4416
- - locale/et_EE/LC_MESSAGES/katello.mo
4417
4403
  - locale/et_EE/katello.po
4418
- - locale/fr/LC_MESSAGES/katello.mo
4419
4404
  - locale/fr/katello.po
4420
- - locale/gl/LC_MESSAGES/katello.mo
4421
4405
  - locale/gl/katello.po
4422
- - locale/gu/LC_MESSAGES/katello.mo
4423
4406
  - locale/gu/katello.po
4424
- - locale/he_IL/LC_MESSAGES/katello.mo
4425
4407
  - locale/he_IL/katello.po
4426
- - locale/hi/LC_MESSAGES/katello.mo
4427
4408
  - locale/hi/katello.po
4428
- - locale/id/LC_MESSAGES/katello.mo
4429
4409
  - locale/id/katello.po
4430
- - locale/it/LC_MESSAGES/katello.mo
4431
4410
  - locale/it/katello.po
4432
- - locale/ja/LC_MESSAGES/katello.mo
4433
4411
  - locale/ja/katello.po
4434
- - locale/ka/LC_MESSAGES/katello.mo
4435
4412
  - locale/ka/katello.po
4436
4413
  - locale/katello.pot
4437
- - locale/kn/LC_MESSAGES/katello.mo
4438
4414
  - locale/kn/katello.po
4439
- - locale/ko/LC_MESSAGES/katello.mo
4440
4415
  - locale/ko/katello.po
4441
- - locale/ml_IN/LC_MESSAGES/katello.mo
4442
4416
  - locale/ml_IN/katello.po
4443
- - locale/mr/LC_MESSAGES/katello.mo
4444
4417
  - locale/mr/katello.po
4445
- - locale/nl_NL/LC_MESSAGES/katello.mo
4446
4418
  - locale/nl_NL/katello.po
4447
- - locale/or/LC_MESSAGES/katello.mo
4448
4419
  - locale/or/katello.po
4449
- - locale/pa/LC_MESSAGES/katello.mo
4450
4420
  - locale/pa/katello.po
4451
- - locale/pl/LC_MESSAGES/katello.mo
4452
4421
  - locale/pl/katello.po
4453
- - locale/pl_PL/LC_MESSAGES/katello.mo
4454
4422
  - locale/pl_PL/katello.po
4455
- - locale/pt/LC_MESSAGES/katello.mo
4456
4423
  - locale/pt/katello.po
4457
- - locale/pt_BR/LC_MESSAGES/katello.mo
4458
4424
  - locale/pt_BR/katello.po
4459
- - locale/ro/LC_MESSAGES/katello.mo
4460
4425
  - locale/ro/katello.po
4461
- - locale/ro_RO/LC_MESSAGES/katello.mo
4462
4426
  - locale/ro_RO/katello.po
4463
- - locale/ru/LC_MESSAGES/katello.mo
4464
4427
  - locale/ru/katello.po
4465
- - locale/sl/LC_MESSAGES/katello.mo
4466
4428
  - locale/sl/katello.po
4467
- - locale/sv_SE/LC_MESSAGES/katello.mo
4468
4429
  - locale/sv_SE/katello.po
4469
- - locale/ta/LC_MESSAGES/katello.mo
4470
4430
  - locale/ta/katello.po
4471
- - locale/ta_IN/LC_MESSAGES/katello.mo
4472
4431
  - locale/ta_IN/katello.po
4473
- - locale/te/LC_MESSAGES/katello.mo
4474
4432
  - locale/te/katello.po
4475
- - locale/tr/LC_MESSAGES/katello.mo
4476
4433
  - locale/tr/katello.po
4477
4434
  - locale/update-i18n
4478
- - locale/vi/LC_MESSAGES/katello.mo
4479
4435
  - locale/vi/katello.po
4480
- - locale/vi_VN/LC_MESSAGES/katello.mo
4481
4436
  - locale/vi_VN/katello.po
4482
- - locale/zh/LC_MESSAGES/katello.mo
4483
4437
  - locale/zh/katello.po
4484
- - locale/zh_CN/LC_MESSAGES/katello.mo
4485
4438
  - locale/zh_CN/katello.po
4486
- - locale/zh_TW/LC_MESSAGES/katello.mo
4487
4439
  - locale/zh_TW/katello.po
4488
4440
  - package.json
4489
4441
  - vendor/assets/images/katello/add2.png
@@ -5451,9 +5403,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
5451
5403
  version: '4'
5452
5404
  required_rubygems_version: !ruby/object:Gem::Requirement
5453
5405
  requirements:
5454
- - - ">"
5406
+ - - ">="
5455
5407
  - !ruby/object:Gem::Version
5456
- version: 1.3.1
5408
+ version: '0'
5457
5409
  requirements: []
5458
5410
  rubygems_version: 3.2.33
5459
5411
  signing_key:
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file