katello 3.18.2.1 → 3.18.3

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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c5ad1aaf8a0bb032cc1ffd42c4c070c77cc538044396af1cd40db8d00132e58
4
- data.tar.gz: fd418dbd20507da2ca47e937df543ccf1f5a2c8d254f17623aec03f0d5d2767b
3
+ metadata.gz: a81840cf9dd6dd5b365f58ff15fcb56479a8a4d28222aaacd1c62f8601684a9a
4
+ data.tar.gz: f11313470e9660b9a88f0e992cb9f7ea85545b48f7b7148bcf29c4a1e40a7cd7
5
5
  SHA512:
6
- metadata.gz: b21464bd7f2341093cb31c47a6ee1792d508b8d16f6c9f47db4e8cffb3bc737f02aa1150e50cc05352c668db37eadc5fe708cd0d2705010fbd0072f46b887877
7
- data.tar.gz: b67b69add02fae0357308a8301ac689814f2e32d835b5270c421d94cf46f6068b6398cd18cbb7da55913106deac0be816668939c605e7bf20d0a671740039402
6
+ metadata.gz: 48801531bfad55800f818b0cd7570dc9710bfa9853d87850936aadc95f01d538bc2235681785a8a7d6744143fc6365d4750afc37754d486f8cfe92f231b66051
7
+ data.tar.gz: 8fa055b8365689b7781c63b9c115a28bcccd858c274e1ded11b7c226f58efe3d2a787daf7eb754483c379d9e82bfa8028b23d917e7f8ad6ac77a07ba6eb6c44d
@@ -184,8 +184,8 @@ module Katello
184
184
  'application/vnd.docker.distribution.manifest.v1+prettyjws'
185
185
  end
186
186
  end
187
-
188
- render json: manifest_response, content_type: media_type
187
+ response.headers['Content-Type'] = media_type
188
+ render json: manifest_response
189
189
  end
190
190
  end
191
191
 
@@ -8,7 +8,7 @@ module Actions
8
8
  def plan(proxy)
9
9
  sequence do
10
10
  plan_action(Actions::Pulp::Orchestration::OrphanCleanup::RemoveOrphans, proxy)
11
- if proxy.pulp3_enabled?
11
+ if proxy.pulp3_enabled? && ::Katello::Ping.pulpcore_enabled
12
12
  plan_action(
13
13
  Actions::Pulp3::Orchestration::OrphanCleanup::RemoveOrphans,
14
14
  proxy)
@@ -126,7 +126,7 @@ module Katello
126
126
  facet_model = Facets.registered_facets[facet].hostgroup_configuration.model
127
127
  value = facet_model.where.not(attribute => nil).joins(:hostgroup).merge(
128
128
  ::Hostgroup.where(id: self.ancestor_ids).reorder(ancestry: :desc)
129
- ).limit(1).pluck(attribute)
129
+ ).limit(1).pluck(attribute).first
130
130
  end
131
131
  value
132
132
  end
@@ -122,20 +122,22 @@ module Katello
122
122
  end
123
123
 
124
124
  def applicable_differences
125
- consumer_ids = content_facet.send(applicable_units).pluck("#{content_unit_class.table_name}.id")
126
- content_ids = fetch_content_ids
125
+ ActiveRecord::Base.connection.uncached do
126
+ consumer_ids = content_facet.send(applicable_units).pluck("#{content_unit_class.table_name}.id")
127
+ content_ids = fetch_content_ids
127
128
 
128
- to_remove = consumer_ids - content_ids
129
- to_add = content_ids - consumer_ids
129
+ to_remove = consumer_ids - content_ids
130
+ to_add = content_ids - consumer_ids
130
131
 
131
- [to_add, to_remove]
132
+ [to_add, to_remove]
133
+ end
132
134
  end
133
135
 
134
136
  def insert(applicable_ids)
135
137
  unless applicable_ids.empty?
136
138
  inserts = applicable_ids.map { |applicable_id| "(#{applicable_id.to_i}, #{content_facet.id.to_i})" }
137
139
  sql = "INSERT INTO #{content_facet_association_class.table_name} (#{content_unit_association_id}, content_facet_id) VALUES #{inserts.join(', ')}"
138
- ActiveRecord::Base.connection.execute(sql)
140
+ ActiveRecord::Base.connection.exec_insert(sql)
139
141
  end
140
142
  end
141
143
 
@@ -58,6 +58,20 @@ module Katello
58
58
  fail NotImplementedError
59
59
  end
60
60
 
61
+ def self.ignore_409_exception(*)
62
+ yield
63
+ rescue => e
64
+ raise e unless e&.code == 409
65
+ nil
66
+ end
67
+
68
+ def cancel_task(task_href)
69
+ data = PulpcoreClient::TaskResponse.new(state: 'canceled')
70
+ self.class.ignore_409_exception do
71
+ tasks_api.tasks_cancel(task_href, data)
72
+ end
73
+ end
74
+
61
75
  def exporter_api
62
76
  PulpcoreClient::ExportersPulpApi.new(core_api_client)
63
77
  end
@@ -4,6 +4,8 @@ module Katello
4
4
  module Pulp3
5
5
  class Migration
6
6
  attr_accessor :smart_proxy, :reimport_all, :task_id
7
+ attr_reader :repository_types
8
+
7
9
  GET_QUERY_ID_LENGTH = 90
8
10
 
9
11
  MUTABLE_CONTENT_TYPES = [
@@ -16,7 +18,9 @@ module Katello
16
18
  ].freeze
17
19
 
18
20
  CORRUPTABLE_CONTENT_TYPES = [
19
- Katello::Rpm, Katello::FileUnit
21
+ Katello::Rpm,
22
+ Katello::FileUnit,
23
+ Katello::Deb
20
24
  ].freeze
21
25
 
22
26
  def self.repository_types_for_migration
@@ -70,7 +74,9 @@ module Katello
70
74
 
71
75
  def last_successful_migration_time
72
76
  task = ForemanTasks::Task.where(:label => Actions::Pulp3::ContentMigration.to_s, :result => 'success').order("started_at desc").first
73
- if reimport_all || task.nil?
77
+ reset_task = ForemanTasks::Task.where(:label => Actions::Pulp3::ContentMigrationReset.to_s).order("started_at desc").first
78
+ reset_more_recent = reset_task && task && reset_task.started_at > task.started_at
79
+ if reimport_all || task.nil? || reset_more_recent
74
80
  0
75
81
  else
76
82
  task.started_at.to_i
@@ -131,30 +137,31 @@ module Katello
131
137
  end
132
138
  plan = { plugins: plugins }
133
139
 
134
- # TODO: Don't provide the plan as a string once this is resolved: https://pulp.plan.io/issues/8211
135
- migration_plan_api.reset(migration_plan_api.create(plan: plan).pulp_href, plan.to_json)
140
+ pulp3_task = migration_plan_api.reset(migration_plan_api.create(plan: plan).pulp_href)
136
141
 
137
142
  content_types_for_migration.each do |content_type|
138
143
  if content_type.model_class == ::Katello::Erratum
139
144
  ::Katello::RepositoryErratum.update_all(erratum_pulp3_href: nil)
140
145
  else
141
- content_type.model_class.update_all(migrated_pulp3_href: nil)
146
+ content_type.model_class.update_all(migrated_pulp3_href: nil, missing_from_migration: false, ignore_missing_from_migration: false)
142
147
  end
143
148
  end
144
149
 
145
150
  @repository_types.each do |repo_type|
146
151
  if repo_type == "file"
147
- ::Katello::Repository.file_type.update(remote_href: nil, publication_href: nil, version_href: nil)
152
+ ::Katello::Repository.file_type.update_all(remote_href: nil, publication_href: nil, version_href: nil)
148
153
  elsif repo_type == "docker"
149
- ::Katello::Repository.docker_type.update(remote_href: nil, publication_href: nil, version_href: nil)
154
+ ::Katello::Repository.docker_type.update_all(remote_href: nil, publication_href: nil, version_href: nil)
150
155
  elsif repo_type == "yum"
151
- ::Katello::Repository.yum_type.update(remote_href: nil, publication_href: nil, version_href: nil)
156
+ ::Katello::Repository.yum_type.update_all(remote_href: nil, publication_href: nil, version_href: nil)
152
157
  end
153
158
  end
154
159
 
155
160
  ::Katello::Pulp3::RepositoryReference.destroy_all
156
161
  ::Katello::Pulp3::DistributionReference.destroy_all
157
162
  ::Katello::Pulp3::ContentGuard.destroy_all
163
+
164
+ pulp3_task
158
165
  end
159
166
 
160
167
  def create_migrations
@@ -298,10 +305,11 @@ module Katello
298
305
  to_import[[errata_id, repo_id]] ||= {erratum_id: errata_id, erratum_pulp3_href: pulp3_href, repository_id: repo_id}
299
306
  end
300
307
  end
301
- end
302
308
 
303
- Katello::RepositoryErratum.import([:erratum_id, :erratum_pulp3_href, :repository_id], to_import.values, :validate => false,
304
- on_duplicate_key_update: {conflict_target: [:erratum_id, :repository_id], columns: [:erratum_pulp3_href]})
309
+ Katello::RepositoryErratum.import([:erratum_id, :erratum_pulp3_href, :repository_id], to_import.values, :validate => false,
310
+ on_duplicate_key_update: {conflict_target: [:erratum_id, :repository_id], columns: [:erratum_pulp3_href]})
311
+ to_import = {}
312
+ end
305
313
  end
306
314
 
307
315
  def mark_missing_content(content_type)
@@ -327,7 +335,7 @@ module Katello
327
335
  unmigrated_units.select(:id, :pulp_id).find_in_batches(batch_size: GET_QUERY_ID_LENGTH) do |needing_hrefs|
328
336
  current_count += needing_hrefs.count
329
337
  update_import_status("Importing migrated content type #{content_type.label}: #{current_count}/#{total_count}")
330
- migrated_units = pulp2_content_api.list(pulp2_id__in: needing_hrefs.map { |unit| unit.pulp_id }.join(','))
338
+ migrated_units = pulp2_content_api.list(pulp2_id__in: needing_hrefs.map(&:pulp_id))
331
339
  migrated_units.results.each do |migrated_unit|
332
340
  content_type.model_class.where(pulp_id: migrated_unit.pulp2_id).update_all(migrated_pulp3_href: migrated_unit.pulp3_content)
333
341
  end
@@ -25,6 +25,19 @@ module Katello
25
25
  end
26
26
  end
27
27
 
28
+ def remove_orphaned_content
29
+ models = []
30
+ @migration.repository_types.each do |repo_type_label|
31
+ repo_type = ::Katello::RepositoryTypeManager.repository_types[repo_type_label]
32
+ indexable_types = repo_type.content_types_to_index
33
+ models += indexable_types&.map(&:model_class)
34
+ models.select! { |model| model.many_repository_associations }
35
+ end
36
+ models.each do |model|
37
+ model.joins("left join katello_#{model.repository_association} on #{model.table_name}.id = katello_#{model.repository_association}.#{model.unit_id_field}").where("katello_#{model.repository_association}.#{model.unit_id_field} IS NULL").destroy_all
38
+ end
39
+ end
40
+
28
41
  def deduplicated_content_types
29
42
  #even though YumMetatadataFile is de-depulicated, we're not indexing it in pulp3
30
43
  [Katello::PackageGroup]
@@ -1,7 +1,7 @@
1
+ # rubocop:disable Metrics/ClassLength
1
2
  require "pulpcore_client"
2
3
  module Katello
3
4
  module Pulp3
4
- # rubocop:disable Metrics/ClassLength
5
5
  class Repository
6
6
  include Katello::Util::HttpProxy
7
7
  attr_accessor :repo
@@ -158,10 +158,7 @@ module Katello
158
158
  end
159
159
 
160
160
  def compute_remote_options(computed_options = remote_options)
161
- [:client_cert, :client_key, :ca_cert].each do |key|
162
- computed_options[key] = Digest::SHA256.hexdigest(computed_options[key].chomp) if computed_options[key]
163
- end
164
- computed_options.except(:name)
161
+ computed_options.except(:name, :client_key)
165
162
  end
166
163
 
167
164
  def create
@@ -221,11 +218,38 @@ module Katello
221
218
  end
222
219
 
223
220
  def refresh_distributions
224
- dist_ref = distribution_reference
225
- if dist_ref
226
- update_distribution
221
+ if repo.docker?
222
+ dist = lookup_distributions(base_path: repo.container_repository_name).first
227
223
  else
224
+ dist = lookup_distributions(base_path: repo.relative_path).first
225
+ end
226
+
227
+ # First check if the distribution exists
228
+ if dist
229
+ dist_ref = distribution_reference
230
+ # If we have a DistributionReference, update the distribution
231
+ if dist_ref
232
+ return update_distribution
233
+ # If no DistributionReference, create a DistributionReference and return
234
+ else
235
+ save_distribution_references([dist.pulp_href])
236
+ return []
237
+ end
238
+ end
239
+
240
+ # So far, it looks like there is no distribution. Try to create one.
241
+ begin
228
242
  create_distribution(relative_path)
243
+ rescue api.class.client_module::ApiError => e
244
+ # Now it seems there is a distribution. Fetch it and save the reference.
245
+ if e.message.include?("\"base_path\":[\"This field must be unique.\"]") ||
246
+ e.message.include?("\"base_path\":[\"Overlaps with existing distribution\"")
247
+ dist = lookup_distributions(base_path: repo.relative_path).first
248
+ save_distribution_references([dist.pulp_href])
249
+ return []
250
+ else
251
+ raise e
252
+ end
229
253
  end
230
254
  end
231
255
 
@@ -275,7 +299,8 @@ module Katello
275
299
  pulp3_distribution_data = api.get_distribution(href)
276
300
  path, content_guard_href = pulp3_distribution_data&.base_path, pulp3_distribution_data&.content_guard
277
301
  unless distribution_reference
278
- DistributionReference.create!(path: path, href: href, repository_id: repo.id, content_guard_href: content_guard_href)
302
+ # Ensure that duplicates won't be created in the case of a race condition
303
+ DistributionReference.where(path: path, href: href, repository_id: repo.id, content_guard_href: content_guard_href).first_or_create!
279
304
  end
280
305
  end
281
306
  end
@@ -27,8 +27,7 @@ module Katello
27
27
  popts = super(repository_version)
28
28
  popts.merge!(
29
29
  {
30
- # structured is not necessary for subscription-manager
31
- #structured: true, # publish real suites (e.g. 'stable')
30
+ structured: true, # publish real suites (e.g. 'stable')
32
31
  simple: true # publish all into 'default'-suite
33
32
  }
34
33
  )
@@ -56,8 +56,10 @@ module Katello
56
56
  @pulp_data ||= tasks_api.read(@href).as_json.with_indifferent_access
57
57
  end
58
58
 
59
- def tasks_api
60
- ::Katello::Pulp3::Api::Core.new(@smart_proxy).tasks_api
59
+ delegate :tasks_api, to: :core_api
60
+
61
+ def core_api
62
+ ::Katello::Pulp3::Api::Core.new(@smart_proxy)
61
63
  end
62
64
 
63
65
  def task_group_href
@@ -94,10 +96,11 @@ module Katello
94
96
  end
95
97
 
96
98
  def cancel
97
- data = PulpcoreClient::TaskResponse.new(state: 'canceled')
98
- tasks_api.tasks_cancel(task_data['pulp_href'], data)
99
+ core_api.cancel_task(task_data['pulp_href'])
99
100
  #the main task may have completed, so cancel spawned tasks too
100
- task_data['spawned_tasks']&.each { |spawned| tasks_api.tasks_cancel(spawned['pulp_href'], data) }
101
+ task_data['spawned_tasks']&.each do |spawned|
102
+ core_api.cancel_task(spawned['pulp_href'])
103
+ end
101
104
  end
102
105
  end
103
106
  end
@@ -71,17 +71,25 @@ module Katello
71
71
  end
72
72
 
73
73
  def error
74
+ return if task_group_data[WAITING] > 0 || task_group_data[RUNNING] > 0
74
75
  if task_group_data[FAILED] > 0
75
76
  "#{task_group_data[FAILED]} subtask(s) failed for task group #{@href}."
77
+ elsif task_group_data[CANCELLED] > 0
78
+ "#{task_group_data[CANCELLED]} subtask(s) cancelled for task group #{@href}."
76
79
  end
77
80
  end
78
81
 
82
+ def core_api
83
+ ::Katello::Pulp3::Api::Core.new(@smart_proxy)
84
+ end
85
+
79
86
  def cancel
80
- tasks_api = ::Katello::Pulp3::Api::Core.new(@smart_proxy).tasks_api
81
- tasks_response = tasks_api.list(task_group: task_group_data['pulp_href'])
82
- data = PulpcoreClient::TaskResponse.new(state: 'canceled')
83
- tasks_response.results.collect do |result|
84
- tasks_api.tasks_cancel(result.pulp_href, data)
87
+ tasks_api = core_api.tasks_api
88
+ tasks_response = core_api.fetch_from_list do |page_opts|
89
+ tasks_api.list(page_opts.merge(task_group: task_group_data['pulp_href'], state__in: 'running,waiting'))
90
+ end
91
+ tasks_response.collect do |result|
92
+ ::Katello::Pulp3::Api::Core.new(@smart_proxy).cancel_task(result.pulp_href)
85
93
  end
86
94
  end
87
95
  end
@@ -0,0 +1,5 @@
1
+ class AddPulp3HrefsToContentTypesDeb < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column Katello::Deb.table_name, :migrated_pulp3_href, :string, :default => nil, :null => true
4
+ end
5
+ end
@@ -75,7 +75,7 @@ module Katello
75
75
 
76
76
  # make sure the Katello plugin is initialized before `after_initialize`
77
77
  # hook so that the resumed Dynflow tasks can rely on everything ready.
78
- initializer 'katello.register_plugin', :before => :finisher_hook do
78
+ initializer 'katello.register_plugin', :before => :finisher_hook, :after => 'foreman_remote_execution.register_plugin' do
79
79
  ::Foreman::AccessControl::Permission.prepend ::Katello::Concerns::PermissionExtensions
80
80
  require 'katello/plugin'
81
81
 
@@ -0,0 +1,18 @@
1
+ namespace :katello do
2
+ task :check_config => ['environment'] do
3
+ desc "Task that can be run before a content migration to check that the configuration valid"
4
+ fail_msg = _("The system appears to already be using pulp3 with all content migrated.")
5
+
6
+ puts "Checking for valid Katello configuraton."
7
+ if SETTINGS[:katello][:use_pulp_2_for_content_type].nil?
8
+ fail fail_msg
9
+ end
10
+
11
+ if !SETTINGS[:katello][:use_pulp_2_for_content_type][:docker] &&
12
+ !SETTINGS[:katello][:use_pulp_2_for_content_type][:file] &&
13
+ !SETTINGS[:katello][:use_pulp_2_for_content_type][:yum] &&
14
+ !SETTINGS[:katello][:use_pulp_2_for_content_type][:deb]
15
+ fail fail_msg
16
+ end
17
+ end
18
+ end
@@ -3,13 +3,15 @@ require "#{Katello::Engine.root}/app/services/katello/pulp3/migration_switchover
3
3
 
4
4
  namespace :katello do
5
5
  desc "Runs a Pulp 3 migration of pulp3 hrefs to pulp ids for supported content types."
6
- task :pulp3_content_switchover => ["dynflow:client"] do
6
+ task :pulp3_content_switchover => ["dynflow:client", "check_config"] do
7
7
  dryrun = ENV['DRYRUN']
8
+
8
9
  begin
9
10
  User.current = User.anonymous_admin
10
11
 
12
+ switchover_service = Katello::Pulp3::MigrationSwitchover.new(SmartProxy.pulp_primary)
13
+ switchover_service.remove_orphaned_content #run out of transaction for easier re-run
11
14
  ActiveRecord::Base.transaction do
12
- switchover_service = Katello::Pulp3::MigrationSwitchover.new(SmartProxy.pulp_primary)
13
15
  switchover_service.run
14
16
  fail "Dryrun completed without error, aborting and rolling back" if dryrun
15
17
  end
@@ -18,7 +20,7 @@ namespace :katello do
18
20
  exit 1
19
21
  end
20
22
 
21
- task = ForemanTasks.sync_task(Actions::Pulp3::ContentGuard::RefreshAllDistributions, SmartProxy.pulp_primary)
23
+ task = ForemanTasks.async_task(Actions::Pulp3::ContentGuard::RefreshAllDistributions, SmartProxy.pulp_primary)
22
24
  until !task.pending? || task.paused?
23
25
  sleep(10)
24
26
  task = ForemanTasks::Task.find(task.id)
@@ -1,6 +1,6 @@
1
1
  namespace :katello do
2
2
  desc "Runs a Pulp 2 to 3 Content Migration for supported types. May be run multiple times. Use wait=false to immediately return with a task url."
3
- task :pulp3_migration => ["dynflow:client"] do
3
+ task :pulp3_migration => ["dynflow:client", 'check_config'] do
4
4
  services = [:candlepin, :foreman_tasks, :pulp3, :pulp, :pulp_auth]
5
5
  Katello::Ping.ping!(services: services)
6
6
 
@@ -10,7 +10,8 @@ namespace :katello do
10
10
  migratable_repo_count = ::Katello::Repository.count - ::Katello::Repository.puppet_type.count -
11
11
  ::Katello::Repository.ostree_type.count - ::Katello::Repository.deb_type.count
12
12
 
13
- on_demand_rpm_count = Katello::RepositoryRpm.where(:repository_id => Katello::Repository.yum_type.on_demand).distinct.count
13
+ on_demand_rpm_count = Katello::RepositoryRpm.where(:repository_id => Katello::Repository.yum_type.on_demand).
14
+ select(:rpm_id).distinct.count
14
15
  on_demand_unmigrated_rpm_count = on_demand_rpm_count - migrated_rpm_count
15
16
  immediate_unmigrated_rpm_count = ::Katello::Rpm.count - migrated_rpm_count - on_demand_unmigrated_rpm_count
16
17
 
@@ -2,7 +2,7 @@ require File.expand_path("../engine", File.dirname(__FILE__))
2
2
 
3
3
  namespace :katello do
4
4
  desc "Runs a katello ping and prints out the statuses of each service"
5
- task :check_ping => :environment do
5
+ task :check_ping => [:environment, "dynflow:client"] do
6
6
  ::User.current = ::User.anonymous_admin
7
7
  ping_results = Katello::Ping.ping
8
8
  if ping_results[:status] != "ok"
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.18.2.1".freeze
2
+ VERSION = "3.18.3".freeze
3
3
  end
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.18.2.1
4
+ version: 3.18.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-16 00:00:00.000000000 Z
11
+ date: 2021-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -366,40 +366,40 @@ dependencies:
366
366
  requirements:
367
367
  - - ">="
368
368
  - !ruby/object:Gem::Version
369
- version: 3.9.0
369
+ version: 3.10.0
370
370
  - - "<"
371
371
  - !ruby/object:Gem::Version
372
- version: 3.10.0
372
+ version: 3.11.0
373
373
  type: :runtime
374
374
  prerelease: false
375
375
  version_requirements: !ruby/object:Gem::Requirement
376
376
  requirements:
377
377
  - - ">="
378
378
  - !ruby/object:Gem::Version
379
- version: 3.9.0
379
+ version: 3.10.0
380
380
  - - "<"
381
381
  - !ruby/object:Gem::Version
382
- version: 3.10.0
382
+ version: 3.11.0
383
383
  - !ruby/object:Gem::Dependency
384
384
  name: pulp_2to3_migration_client
385
385
  requirement: !ruby/object:Gem::Requirement
386
386
  requirements:
387
387
  - - ">="
388
388
  - !ruby/object:Gem::Version
389
- version: 0.7.0
389
+ version: 0.8.0
390
390
  - - "<"
391
391
  - !ruby/object:Gem::Version
392
- version: 0.8.0
392
+ version: 1.0.0
393
393
  type: :runtime
394
394
  prerelease: false
395
395
  version_requirements: !ruby/object:Gem::Requirement
396
396
  requirements:
397
397
  - - ">="
398
398
  - !ruby/object:Gem::Version
399
- version: 0.7.0
399
+ version: 0.8.0
400
400
  - - "<"
401
401
  - !ruby/object:Gem::Version
402
- version: 0.8.0
402
+ version: 1.0.0
403
403
  - !ruby/object:Gem::Dependency
404
404
  name: pulp_certguard_client
405
405
  requirement: !ruby/object:Gem::Requirement
@@ -2142,6 +2142,7 @@ files:
2142
2142
  - db/migrate/20201021150008_add_import_only_to_katello_content_view.rb
2143
2143
  - db/migrate/20201119211133_pulp3_migration_progress.rb
2144
2144
  - db/migrate/20210201165835_add_migration_missing_content.rb
2145
+ - db/migrate/20210420140050_add_pulp3_hrefs_to_content_types_deb.rb
2145
2146
  - db/seeds.d/101-locations.rb
2146
2147
  - db/seeds.d/102-organizations.rb
2147
2148
  - db/seeds.d/104-proxy.rb
@@ -4484,6 +4485,7 @@ files:
4484
4485
  - lib/katello/repository_types/puppet.rb
4485
4486
  - lib/katello/repository_types/yum.rb
4486
4487
  - lib/katello/scheduled_jobs.rb
4488
+ - lib/katello/tasks/check_config.rake
4487
4489
  - lib/katello/tasks/clean_backend_objects.rake
4488
4490
  - lib/katello/tasks/clean_old_file_repos.rake
4489
4491
  - lib/katello/tasks/clean_published_repo_directories.rake