katello 3.16.0 → 3.16.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
  3. data/app/controllers/katello/api/v2/host_tracer_controller.rb +0 -5
  4. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +15 -0
  5. data/app/controllers/katello/api/v2/repositories_controller.rb +10 -1
  6. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +11 -5
  7. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +1 -1
  8. data/app/lib/actions/katello/capsule_content/sync.rb +3 -2
  9. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +17 -3
  10. data/app/lib/actions/katello/product/destroy.rb +25 -4
  11. data/app/lib/actions/katello/repository/destroy.rb +5 -1
  12. data/app/lib/actions/katello/repository/multi_clone_contents.rb +5 -9
  13. data/app/lib/actions/katello/repository/sync.rb +35 -25
  14. data/app/lib/actions/katello/repository/update.rb +11 -16
  15. data/app/lib/actions/katello/repository/verify_checksum.rb +28 -0
  16. data/app/lib/actions/pulp/orchestration/repository/sync.rb +2 -1
  17. data/app/lib/actions/pulp/repository/sync.rb +2 -1
  18. data/app/lib/actions/pulp3/capsule_content/refresh_content_guard.rb +17 -0
  19. data/app/lib/actions/pulp3/capsule_content/sync.rb +3 -1
  20. data/app/lib/actions/pulp3/{ContentGuard → content_guard}/refresh.rb +0 -0
  21. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +1 -2
  22. data/app/lib/actions/pulp3/orchestration/repository/sync.rb +3 -1
  23. data/app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb +22 -0
  24. data/app/lib/actions/pulp3/repository/copy_content.rb +0 -1
  25. data/app/lib/actions/pulp3/repository/multi_copy_content.rb +1 -1
  26. data/app/lib/actions/pulp3/repository/presenters/repair_presenter.rb +85 -0
  27. data/app/lib/actions/pulp3/repository/repair.rb +29 -0
  28. data/app/lib/actions/pulp3/repository/save_version.rb +20 -16
  29. data/app/lib/actions/pulp3/repository/sync.rb +1 -1
  30. data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +6 -2
  31. data/app/lib/actions/pulp3/repository/upload_file.rb +1 -1
  32. data/app/lib/katello/concerns/base_template_scope_extensions.rb +4 -0
  33. data/app/lib/katello/resources/cdn.rb +3 -2
  34. data/app/lib/katello/util/cdn_var_substitutor.rb +9 -6
  35. data/app/models/katello/concerns/smart_proxy_extensions.rb +14 -3
  36. data/app/models/katello/content_view_package_filter.rb +1 -1
  37. data/app/models/katello/host/content_facet.rb +1 -0
  38. data/app/models/katello/ping.rb +1 -3
  39. data/app/models/katello/repository.rb +5 -0
  40. data/app/models/setting/content.rb +1 -1
  41. data/app/services/cert/certs.rb +10 -2
  42. data/app/services/katello/pulp3/repository.rb +7 -8
  43. data/app/services/katello/pulp3/repository/yum.rb +73 -6
  44. data/app/services/katello/pulp3/repository_mirror.rb +7 -2
  45. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +1 -1
  46. data/app/services/katello/smart_proxy_helper.rb +13 -16
  47. data/config/routes/api/rhsm.rb +1 -0
  48. data/config/routes/api/v2.rb +2 -0
  49. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +1 -0
  50. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +6 -0
  51. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +7 -1
  52. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +1 -0
  53. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +15 -0
  54. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +6 -0
  55. data/lib/katello/permission_creator.rb +2 -2
  56. data/lib/katello/plugin.rb +0 -1
  57. data/lib/katello/version.rb +1 -1
  58. data/webpack/redux/actions/RedHatRepositories/helpers.js +1 -1
  59. metadata +14 -4
  60. data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +0 -17
@@ -92,7 +92,7 @@ class Setting::Content < Setting
92
92
  self.set('check_services_before_actions', N_("Whether or not to check the status of backend services such as pulp and candlepin prior to performing some actions."),
93
93
  true, N_('Check services before actions')),
94
94
  self.set('foreman_proxy_content_batch_size', N_("How many repositories should be synced concurrently on the capsule. A smaller number may lead to longer sync times. A larger number will increase dynflow load."),
95
- 25, N_('Batch size to sync repositories in.')),
95
+ 100, N_('Batch size to sync repositories in.')),
96
96
  self.set('foreman_proxy_content_auto_sync', N_("Whether or not to auto sync the Smart Proxies after a Content View promotion."),
97
97
  true, N_('Sync Smart Proxies after Content View promotion')),
98
98
  self.set('default_download_policy', N_("Default download policy for custom repositories (either 'immediate', 'on_demand', or 'background')"), "immediate",
@@ -9,11 +9,19 @@ module Cert
9
9
  end
10
10
 
11
11
  def self.ssl_client_cert
12
- @ssl_client_cert ||= OpenSSL::X509::Certificate.new(File.open(Setting['pulp_client_cert'], 'r').read)
12
+ @ssl_client_cert ||= OpenSSL::X509::Certificate.new(File.open(ssl_client_cert_filename, 'r').read)
13
+ end
14
+
15
+ def self.ssl_client_cert_filename
16
+ Setting['pulp_client_cert']
13
17
  end
14
18
 
15
19
  def self.ssl_client_key
16
- @ssl_client_key ||= OpenSSL::PKey::RSA.new(File.open(Setting['pulp_client_key'], 'r').read)
20
+ @ssl_client_key ||= OpenSSL::PKey::RSA.new(File.open(ssl_client_key_filename, 'r').read)
21
+ end
22
+
23
+ def self.ssl_client_key_filename
24
+ Setting['pulp_client_key']
17
25
  end
18
26
 
19
27
  def self.verify_ueber_cert(organization)
@@ -193,16 +193,15 @@ module Katello
193
193
  ignore_404_exception { api.repositories_api.delete(href) } if href
194
194
  end
195
195
 
196
- def sync_params
197
- {remote: repo.remote_href, mirror: repo.root.mirror_on_sync}
196
+ def sync(options = {})
197
+ repository_sync_url_data = api.class.repository_sync_url_class.new(sync_url_params(options))
198
+ [api.repositories_api.sync(repository_reference.repository_href, repository_sync_url_data)]
198
199
  end
199
200
 
200
- def sync
201
- sync_url_params = sync_params
202
- skip_type_param = skip_types
203
- sync_url_params[:skip_types] = skip_type_param if skip_type_param
204
- repository_sync_url_data = api.class.repository_sync_url_class.new(sync_url_params)
205
- [api.repositories_api.sync(repository_reference.repository_href, repository_sync_url_data)]
201
+ def sync_url_params(_sync_options)
202
+ params = {remote: repo.remote_href, mirror: repo.root.mirror_on_sync}
203
+ params[:skip_types] = skip_types if skip_types
204
+ params
206
205
  end
207
206
 
208
207
  def create_publication
@@ -3,10 +3,13 @@ require 'pulp_rpm_client'
3
3
  module Katello
4
4
  module Pulp3
5
5
  class Repository
6
+ # rubocop:disable Metrics/ClassLength
6
7
  class Yum < ::Katello::Pulp3::Repository
7
8
  include Katello::Util::Errata
8
9
  include Katello::Util::PulpcoreContentFilters
9
10
 
11
+ UNIT_LIMIT = 10_000
12
+
10
13
  def remote_options
11
14
  if root.url.blank?
12
15
  common_remote_options.merge(url: nil, policy: root.download_policy)
@@ -31,10 +34,6 @@ module Katello
31
34
  }
32
35
  end
33
36
 
34
- def sync_params
35
- {remote: repo.remote_href, mirror: repo.root.mirror_on_sync, optimize: false}
36
- end
37
-
38
37
  def mirror_remote_options
39
38
  policy = smart_proxy.download_policy
40
39
 
@@ -63,6 +62,12 @@ module Katello
63
62
  end
64
63
  end
65
64
 
65
+ def sync_url_params(sync_options)
66
+ params = super
67
+ params[:optimize] = sync_options[:optimize] if sync_options.key?(:optimize)
68
+ params
69
+ end
70
+
66
71
  def self.distribution_bootable?(distribution)
67
72
  file_paths = distribution.results.first.images.map(&:path)
68
73
  file_paths.any? do |path|
@@ -102,14 +107,71 @@ module Katello
102
107
  data.config << config
103
108
  end
104
109
  end
105
- # FIXME: data's content being [] causes all content to be copied back
106
- tasks << api.copy_api.copy_content(data)
110
+ tasks << copy_content_chunked(data)
107
111
  else
108
112
  tasks << remove_all_content_from_mapping(repo_id_map)
109
113
  end
110
114
  tasks.flatten
111
115
  end
112
116
 
117
+ def copy_api_data_dup(data)
118
+ data_dup = PulpRpmClient::Copy.new
119
+ data_dup.dependency_solving = data.dependency_solving
120
+ data_dup.config = []
121
+ data.config.each do |repo_config|
122
+ config_hash = {
123
+ source_repo_version: repo_config[:source_repo_version],
124
+ dest_repo: repo_config[:dest_repo],
125
+ content: []
126
+ }
127
+ config_hash[:dest_base_version] = repo_config[:dest_base_version] if repo_config[:dest_base_version]
128
+ data_dup.config << config_hash
129
+ end
130
+ data_dup
131
+ end
132
+
133
+ def copy_content_chunked(data)
134
+ tasks = []
135
+ # Don't chunk if there aren't enough content units
136
+ if data.config.sum { |repo_config| repo_config[:content].size } <= UNIT_LIMIT
137
+ return api.copy_api.copy_content(data)
138
+ end
139
+
140
+ unit_copy_counter = 0
141
+ i = 0
142
+ leftover_units = data.config.first[:content].deep_dup
143
+
144
+ # Copy data and clear its content fields
145
+ data_dup = copy_api_data_dup(data)
146
+
147
+ while i < data_dup.config.size
148
+ # Copy all units within repo or only some?
149
+ if leftover_units.length < UNIT_LIMIT - unit_copy_counter
150
+ copy_amount = leftover_units.length
151
+ else
152
+ copy_amount = UNIT_LIMIT - unit_copy_counter
153
+ end
154
+
155
+ data_dup.config[i][:content] = leftover_units.pop(copy_amount)
156
+ unit_copy_counter += copy_amount
157
+ # Do copy call if limit is reached or if we're under the limit but on the last repo config.
158
+ if unit_copy_counter >= UNIT_LIMIT || (i == data_dup.config.size - 1 && leftover_units.empty?)
159
+ tasks << api.copy_api.copy_content(data_dup)
160
+ unit_copy_counter = 0
161
+ end
162
+
163
+ if leftover_units.empty?
164
+ # Nothing more to copy -- clear current config's content
165
+ data_dup.config[i][:content] = []
166
+ i += 1
167
+ # Fetch unit list for next data config
168
+ leftover_units = data.config[i][:content].deep_dup unless i == data_dup.config.size
169
+ end
170
+ end
171
+
172
+ tasks
173
+ end
174
+
113
175
  def remove_all_content_from_mapping(repo_id_map)
114
176
  tasks = []
115
177
  repo_id_map.each do |_source_repo_ids, dest_repo_id_map|
@@ -147,6 +209,11 @@ module Katello
147
209
  api.repositories_api.modify(repo_href, data)
148
210
  end
149
211
 
212
+ def repair(repository_version_href)
213
+ data = PulpRpmClient::RepositoryVersion.new
214
+ api.repository_versions_api.repair(repository_version_href, data)
215
+ end
216
+
150
217
  def remove_all_content
151
218
  data = PulpRpmClient::RepositoryAddRemoveContent.new(
152
219
  remove_content_units: ['*'])
@@ -11,6 +11,11 @@ module Katello
11
11
  @repo_service = repository_service
12
12
  end
13
13
 
14
+ def content_guard_href
15
+ content_guard_api = ::Katello::Pulp3::Api::ContentGuard.new(smart_proxy)
16
+ content_guard_api.list&.results&.first&.pulp_href
17
+ end
18
+
14
19
  def backend_object_name
15
20
  #Create repos in pulp3 instance with the name as this repo's pulp_id
16
21
  repo.pulp_id
@@ -78,6 +83,7 @@ module Katello
78
83
  base_path: path,
79
84
  name: "#{backend_object_name}"
80
85
  }
86
+ ret[:content_guard] = repo.unprotected ? nil : content_guard_href
81
87
  ret[:publication] = options[:publication] if options.key? :publication
82
88
  ret[:repository_version] = options[:repository_version] if options.key? :repository_version
83
89
  ret
@@ -85,10 +91,9 @@ module Katello
85
91
 
86
92
  def remote_options
87
93
  base_options = common_remote_options
94
+ base_options.merge(url: remote_feed_url)
88
95
  if (type_specific_options = repo_service.try(:mirror_remote_options))
89
96
  base_options.merge(type_specific_options)
90
- else
91
- base_options.merge(url: remote_feed_url)
92
97
  end
93
98
  end
94
99
 
@@ -10,7 +10,7 @@ module Katello
10
10
  repo_map = {}
11
11
 
12
12
  smart_proxy_helper = ::Katello::SmartProxyHelper.new(smart_proxy)
13
- katello_pulp_ids = smart_proxy_helper.repos_available_to_capsule.map(&:pulp_id)
13
+ katello_pulp_ids = smart_proxy_helper.combined_repos_available_to_capsule.map(&:pulp_id)
14
14
  pulp3_enabled_repo_types.each do |repo_type|
15
15
  api = repo_type.pulp3_service_class.api(smart_proxy)
16
16
  repo_map[api] = api.list_all.reject { |capsule_repo| katello_pulp_ids.include? capsule_repo.name }
@@ -13,34 +13,31 @@ module Katello
13
13
  @smart_proxy.pulp_master?
14
14
  end
15
15
 
16
- def repos_available_to_capsule(environment = nil, content_view = nil, repository = nil)
17
- ret = []
18
- if repository
19
- environment = repository.environment
20
- ret = [repository]
21
- else
22
- yum_repos = fetch_repos_available_to_capsule(environment, content_view) || []
23
- puppet_envs = fetch_puppet_environments_available_to_capsule(environment, content_view) || []
24
- ret = yum_repos + puppet_envs
25
- end
16
+ def lifecycle_environment_check(environment = nil, repository = nil)
17
+ environment = repository.environment if repository
26
18
 
27
19
  if environment && !self.smart_proxy.lifecycle_environments.include?(environment)
28
20
  fail _("Lifecycle environment '%{environment}' is not attached to this capsule.") % { :environment => environment.name }
29
21
  end
30
-
31
- ret
32
22
  end
33
23
 
34
- private
24
+ def combined_repos_available_to_capsule(environment = nil, content_view = nil, repository = nil)
25
+ lifecycle_environment_check(environment, repository)
26
+ if repository
27
+ [repository]
28
+ else
29
+ repositories_available_to_capsule(environment, content_view) + puppet_environments_available_to_capsule(environment, content_view)
30
+ end
31
+ end
35
32
 
36
- def fetch_repos_available_to_capsule(environments = nil, content_view = nil)
33
+ def repositories_available_to_capsule(environments, content_view)
37
34
  environments = @smart_proxy.lifecycle_environments if environments.nil?
38
35
  yum_repos = Katello::Repository.in_environment(environments)
39
36
  yum_repos = yum_repos.in_content_views([content_view]) if content_view
40
- yum_repos.select(&:node_syncable?)
37
+ yum_repos.smart_proxy_syncable
41
38
  end
42
39
 
43
- def fetch_puppet_environments_available_to_capsule(environments = nil, content_view = nil)
40
+ def puppet_environments_available_to_capsule(environments, content_view)
44
41
  environments = @smart_proxy.lifecycle_environments if environments.nil?
45
42
  puppet_environments = Katello::ContentViewPuppetEnvironment.in_environment(environments)
46
43
  puppet_environments = puppet_environments.in_content_view(content_view) if content_view
@@ -21,6 +21,7 @@ Katello::Engine.routes.draw do
21
21
  match '/owners/:organization_id/environments' => 'candlepin_proxies#rhsm_index', :via => :get
22
22
  match '/owners/:organization_id/pools' => 'candlepin_proxies#get', :via => :get, :as => :proxy_owner_pools_path
23
23
  match '/owners/:organization_id/servicelevels' => 'candlepin_proxies#get', :via => :get, :as => :proxy_owner_servicelevels_path
24
+ match '/owners/:organization_id/system_purpose' => 'candlepin_proxies#get', :via => :get, :as => :proxy_owner_system_purpose_path
24
25
  match '/environments/:environment_id/consumers' => 'candlepin_proxies#consumer_create', :via => :post
25
26
  match '/consumers/:id' => 'candlepin_proxies#consumer_show', :via => :get
26
27
  match '/consumers/:id' => 'candlepin_proxies#regenerate_identity_certificates', :via => :post
@@ -392,6 +392,7 @@ Katello::Engine.routes.draw do
392
392
  put :remove_docker_manifests, :action => :remove_content
393
393
  put :remove_content
394
394
  post :sync
395
+ post :verify_checksum
395
396
  post :export
396
397
  post :upload_content
397
398
  put :import_uploads
@@ -421,6 +422,7 @@ Katello::Engine.routes.draw do
421
422
  collection do
422
423
  match '/bulk/destroy' => 'products_bulk_actions#destroy_products', :via => :put
423
424
  match '/bulk/sync' => 'products_bulk_actions#sync_products', :via => :put
425
+ match '/bulk/verify_checksum' => 'products_bulk_actions#verify_checksum_products', :via => :put
424
426
  match '/bulk/sync_plan' => 'products_bulk_actions#update_sync_plans', :via => :put
425
427
  match '/bulk/http_proxy' => 'products_bulk_actions#update_http_proxy', :via => :put
426
428
  end
@@ -13,6 +13,7 @@ angular.module('Bastion.products').factory('ProductBulkAction',
13
13
  return BastionResource('katello/api/v2/products/bulk/:action', {}, {
14
14
  removeProducts: {method: 'PUT', params: {action: 'destroy'}},
15
15
  syncProducts: {method: 'PUT', params: {action: 'sync'}},
16
+ verifyChecksumProducts: {method: 'PUT', params: {action: 'verify_checksum'}},
16
17
  updateProductSyncPlan: {method: 'PUT', params: {action: 'sync_plan'}},
17
18
  updateProductHttpProxy: {method: 'PUT', params: {action: 'http_proxy'}}
18
19
  });
@@ -70,6 +70,12 @@
70
70
  }, errorHandler);
71
71
  };
72
72
 
73
+ $scope.verifyChecksum = function (repository) {
74
+ Repository.verifyChecksum({id: repository.id}, function (task) {
75
+ $state.go('product.repository.tasks.details', {taskId: task.id});
76
+ }, errorHandler);
77
+ };
78
+
73
79
  $scope.republishRepository = function (repository) {
74
80
  Repository.republish({id: repository.id}, function (task) {
75
81
  $state.go('product.repository.tasks.details', {taskId: task.id});
@@ -32,6 +32,12 @@
32
32
  </a>
33
33
  </li>
34
34
 
35
+ <li role="menuitem" ng-hide="hideSyncButton(repository, true)" ng-class="{disabled: disableSyncLink()}">
36
+ <a ng-click="verifyChecksum(repository)" disable-link="disableSyncLink()" translate>
37
+ Verify Content Checksum
38
+ </a>
39
+ </li>
40
+
35
41
  <li role="menuitem" ng-hide="syncInProgress(repository.last_sync) || denied('edit_products', product)">
36
42
  <a ng-click="republishRepository(repository)" translate>
37
43
  Republish Repository Metadata
@@ -90,4 +96,4 @@
90
96
  <div data-block="content">
91
97
  <section ui-view></section>
92
98
  </div>
93
- </div>
99
+ </div>
@@ -17,6 +17,7 @@ angular.module('Bastion.repositories').factory('Repository',
17
17
  {
18
18
  update: { method: 'PUT' },
19
19
  sync: { method: 'POST', params: { action: 'sync' } },
20
+ verifyChecksum: { method: 'POST', params: { action: 'verify_checksum' }},
20
21
  removePackages: { method: 'PUT', params: { action: 'remove_packages'}},
21
22
  removeContent: { method: 'PUT', params: { action: 'remove_content'}},
22
23
  autocomplete: {method: 'GET', isArray: true, params: {id: 'auto_complete_search'}},
@@ -101,6 +101,21 @@ angular.module('Bastion.products').controller('ProductsController',
101
101
  ProductBulkAction.syncProducts(getBulkParams(), success, bulkError);
102
102
  };
103
103
 
104
+ $scope.verifyChecksumProducts = function () {
105
+ var success;
106
+
107
+ success = function (task) {
108
+ var message = translate("Product verify checksum has been initiated in the background.");
109
+ Notification.setSuccessMessage(message, {
110
+ link: {
111
+ children: translate("Click to monitor task progress."),
112
+ href: translate("/foreman_tasks/tasks/%taskId").replace('%taskId', task.id)
113
+ }});
114
+ };
115
+
116
+ ProductBulkAction.verifyChecksumProducts(getBulkParams(), success, bulkError);
117
+ };
118
+
104
119
  $scope.goToDiscoveries = function () {
105
120
  nutupane.table.rows = [];
106
121
  nutupane.table.resource.results = [];
@@ -36,6 +36,12 @@
36
36
  </a>
37
37
  </li>
38
38
 
39
+ <li role="menuitem" ng-show="permitted('edit_products')" ng-class="{disabled: table.numSelected === 0}">
40
+ <a ng-click="verifyChecksumProducts()" disable-link="table.numSelected === 0" translate>
41
+ Verify Content Checksum
42
+ </a>
43
+ </li>
44
+
39
45
  <li role="menuitem" ng-show="permitted('edit_products')" ng-class="{disabled: table.numSelected === 0}">
40
46
  <a ng-click="openSyncPlanModal()" disable-link="table.numSelected === 0" translate>
41
47
  Manage Sync Plan
@@ -304,8 +304,8 @@ module Katello
304
304
  @plugin.permission :edit_products,
305
305
  {
306
306
  'katello/api/v2/products' => [:update],
307
- 'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content, :republish],
308
- 'katello/api/v2/products_bulk_actions' => [:update_sync_plans, :update_http_proxy],
307
+ 'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content, :republish, :verify_checksum],
308
+ 'katello/api/v2/products_bulk_actions' => [:update_sync_plans, :update_http_proxy, :verify_checksum_products],
309
309
  'katello/api/v2/content_uploads' => [:create, :update, :destroy],
310
310
  'katello/api/v2/organizations' => [:repo_discover, :cancel_repo_discover]
311
311
  },
@@ -218,7 +218,6 @@ Foreman::Plugin.register :katello do
218
218
  :parent => :lab_features_menu,
219
219
  :turbolinks => false
220
220
 
221
- allowed_template_helpers :subscription_manager_configuration_url, :repository_url
222
221
  extend_template_helpers Katello::KatelloUrlsHelper
223
222
  extend_template_helpers Katello::Concerns::BaseTemplateScopeExtensions
224
223
 
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.16.0".freeze
2
+ VERSION = "3.16.1".freeze
3
3
  end
@@ -35,7 +35,7 @@ const recommendedRepositoriesSatTools = [
35
35
  const recommendedRepositoriesMisc = [
36
36
  'rhel-server-rhscl-7-rpms',
37
37
  'rhel-7-server-satellite-capsule-6.8-rpms',
38
- 'rhel-7-server-ansible-2.8-rpms',
38
+ 'rhel-7-server-ansible-2.9-rpms',
39
39
  ];
40
40
 
41
41
  const recommendedRepositorySetLables = recommendedRepositoriesRHEL
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: 3.16.0
4
+ version: 3.16.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: 2020-08-10 00:00:00.000000000 Z
11
+ date: 2020-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -87,6 +87,9 @@ dependencies:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.14.1
90
+ - - "<="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.0.2
90
93
  type: :runtime
91
94
  prerelease: false
92
95
  version_requirements: !ruby/object:Gem::Requirement
@@ -94,6 +97,9 @@ dependencies:
94
97
  - - ">="
95
98
  - !ruby/object:Gem::Version
96
99
  version: 0.14.1
100
+ - - "<="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.0.2
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: dynflow
99
105
  requirement: !ruby/object:Gem::Requirement
@@ -892,13 +898,13 @@ files:
892
898
  - app/lib/actions/katello/repository/sync_hook.rb
893
899
  - app/lib/actions/katello/repository/update.rb
894
900
  - app/lib/actions/katello/repository/update_content_urls.rb
895
- - app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb
896
901
  - app/lib/actions/katello/repository/update_http_proxy_details.rb
897
902
  - app/lib/actions/katello/repository/update_metadata_sync.rb
898
903
  - app/lib/actions/katello/repository/update_redhat_repository.rb
899
904
  - app/lib/actions/katello/repository/upload_errata.rb
900
905
  - app/lib/actions/katello/repository/upload_files.rb
901
906
  - app/lib/actions/katello/repository/upload_package_group.rb
907
+ - app/lib/actions/katello/repository/verify_checksum.rb
902
908
  - app/lib/actions/katello/repository_set/disable_repository.rb
903
909
  - app/lib/actions/katello/repository_set/enable_repository.rb
904
910
  - app/lib/actions/katello/repository_set/scan_cdn.rb
@@ -980,12 +986,13 @@ files:
980
986
  - app/lib/actions/pulp/repository_group/create.rb
981
987
  - app/lib/actions/pulp/repository_group/delete.rb
982
988
  - app/lib/actions/pulp/repository_group/export.rb
983
- - app/lib/actions/pulp3/ContentGuard/refresh.rb
984
989
  - app/lib/actions/pulp3/abstract.rb
985
990
  - app/lib/actions/pulp3/abstract_async_task.rb
986
991
  - app/lib/actions/pulp3/capsule_content/generate_metadata.rb
992
+ - app/lib/actions/pulp3/capsule_content/refresh_content_guard.rb
987
993
  - app/lib/actions/pulp3/capsule_content/refresh_distribution.rb
988
994
  - app/lib/actions/pulp3/capsule_content/sync.rb
995
+ - app/lib/actions/pulp3/content_guard/refresh.rb
989
996
  - app/lib/actions/pulp3/content_migration.rb
990
997
  - app/lib/actions/pulp3/content_view/delete_repository_references.rb
991
998
  - app/lib/actions/pulp3/import_migration.rb
@@ -1000,6 +1007,7 @@ files:
1000
1007
  - app/lib/actions/pulp3/orchestration/repository/refresh_repos.rb
1001
1008
  - app/lib/actions/pulp3/orchestration/repository/remove_units.rb
1002
1009
  - app/lib/actions/pulp3/orchestration/repository/sync.rb
1010
+ - app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb
1003
1011
  - app/lib/actions/pulp3/orchestration/repository/update.rb
1004
1012
  - app/lib/actions/pulp3/orchestration/repository/upload_content.rb
1005
1013
  - app/lib/actions/pulp3/orphan_cleanup/delete_orphan_distributions.rb
@@ -1023,8 +1031,10 @@ files:
1023
1031
  - app/lib/actions/pulp3/repository/multi_copy_units.rb
1024
1032
  - app/lib/actions/pulp3/repository/presenters/abstract_sync_presenter.rb
1025
1033
  - app/lib/actions/pulp3/repository/presenters/content_unit_presenter.rb
1034
+ - app/lib/actions/pulp3/repository/presenters/repair_presenter.rb
1026
1035
  - app/lib/actions/pulp3/repository/refresh_distribution.rb
1027
1036
  - app/lib/actions/pulp3/repository/remove_units.rb
1037
+ - app/lib/actions/pulp3/repository/repair.rb
1028
1038
  - app/lib/actions/pulp3/repository/save_artifact.rb
1029
1039
  - app/lib/actions/pulp3/repository/save_distribution_references.rb
1030
1040
  - app/lib/actions/pulp3/repository/save_publication.rb